<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Masahiro H</title>
    <description>The latest articles on DEV Community by Masahiro H (@mshr_h).</description>
    <link>https://dev.to/mshr_h</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F349619%2F499a0101-5e74-464f-95cf-a57e28e281a4.jpg</url>
      <title>DEV Community: Masahiro H</title>
      <link>https://dev.to/mshr_h</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mshr_h"/>
    <language>en</language>
    <item>
      <title>macOSでRISC-V版FedoraをQEMUで起動する</title>
      <dc:creator>Masahiro H</dc:creator>
      <pubDate>Sun, 03 May 2020 03:25:29 +0000</pubDate>
      <link>https://dev.to/mshr_h/macos-risc-v-fedora-qemu-14de</link>
      <guid>https://dev.to/mshr_h/macos-risc-v-fedora-qemu-14de</guid>
      <description>&lt;p&gt;macOS上のQEMUでRISC-V版Fedoraを動かしてみた。ビルド済みバイナリは下記から取得できるものを使用。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fedorapeople.org/groups/risc-v/disk-images/"&gt;https://fedorapeople.org/groups/risc-v/disk-images/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  実施環境
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;macOS Catalina 10.15.4&lt;/li&gt;
&lt;li&gt;brew導入済み&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  手順
&lt;/h1&gt;

&lt;p&gt;HomebrewでQEMUを導入する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;qemu
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;ワークスペースに移動し、Linuxカーネル、ブートローダ、Fedoraディスクイメージをダウンロードする。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/workspace
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;risc-v-fedora
&lt;span class="nv"&gt;$ &lt;/span&gt;wget https://fedorapeople.org/groups/risc-v/disk-images/vmlinux
&lt;span class="nv"&gt;$ &lt;/span&gt;wget https://fedorapeople.org/groups/risc-v/disk-images/bbl
&lt;span class="nv"&gt;$ &lt;/span&gt;wget https://fedorapeople.org/groups/risc-v/disk-images/stage4-disk.img.xz
&lt;span class="nv"&gt;$ &lt;/span&gt;xzdec &lt;span class="nt"&gt;-d&lt;/span&gt; stage4-disk.img.xz &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; stage4-disk.img
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;以下のコマンドでQEMUを起動する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;qemu-system-riscv64   &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-nographic&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-machine&lt;/span&gt; virt &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-kernel&lt;/span&gt; bbl &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-object&lt;/span&gt; rng-random,filename&lt;span class="o"&gt;=&lt;/span&gt;/dev/urandom,id&lt;span class="o"&gt;=&lt;/span&gt;rng0 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-device&lt;/span&gt; virtio-rng-device,rng&lt;span class="o"&gt;=&lt;/span&gt;rng0 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-append&lt;/span&gt; &lt;span class="s2"&gt;"console=ttyS0 ro root=/dev/vda"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-device&lt;/span&gt; virtio-blk-device,drive&lt;span class="o"&gt;=&lt;/span&gt;hd0 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-drive&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;./stage4-disk.img,format&lt;span class="o"&gt;=&lt;/span&gt;raw,id&lt;span class="o"&gt;=&lt;/span&gt;hd0 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-device&lt;/span&gt; virtio-net-device,netdev&lt;span class="o"&gt;=&lt;/span&gt;usernet &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-netdev&lt;/span&gt; user,id&lt;span class="o"&gt;=&lt;/span&gt;usernet,hostfwd&lt;span class="o"&gt;=&lt;/span&gt;tcp::10000-:22
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;ユーザ名は&lt;code&gt;root&lt;/code&gt;、パスワードは&lt;code&gt;riscv&lt;/code&gt;でログインする。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--17Hpt1Wk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uly1gt8y1t7ib0jndq0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--17Hpt1Wk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uly1gt8y1t7ib0jndq0f.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ホストのmacOSからSSHで接続もできる。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ssh -p 10000 root@localhost
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>riscv</category>
      <category>linux</category>
      <category>qemu</category>
      <category>macos</category>
    </item>
    <item>
      <title>Hugo+Github Pagesで新しい個人ウェブサイトを作った</title>
      <dc:creator>Masahiro H</dc:creator>
      <pubDate>Sun, 03 May 2020 03:23:25 +0000</pubDate>
      <link>https://dev.to/mshr_h/hugo-github-pages-35me</link>
      <guid>https://dev.to/mshr_h/hugo-github-pages-35me</guid>
      <description>&lt;p&gt;HugoとGithub Pagesで個人ブログを作ったので作業メモ。&lt;br&gt;
macOS Catalina 10.15.4で作業した。&lt;/p&gt;
&lt;h1&gt;
  
  
  手順
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;GitHub repositoryを作成&lt;/li&gt;
&lt;li&gt;Hugoでサイト作成&lt;/li&gt;
&lt;li&gt;GitHub Pagesで公開&lt;/li&gt;
&lt;li&gt;独自ドメイン設定&lt;/li&gt;
&lt;li&gt;記事を追加&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  GitHub repositoryを作成
&lt;/h2&gt;

&lt;p&gt;GitHubで新しくリポジトリ(例えば&lt;code&gt;blog&lt;/code&gt;という名前)を作成する。このリポジトリにはHugoのプロジェクトを配置する。プライベートリポジトリでも可。&lt;br&gt;
次に、&lt;code&gt;username.github.io&lt;/code&gt;リポジトリを作成する。ここにはHugoで生成したサイトのファイルを配置するため、パブリックリポジトリとして作成する必要がある。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/mshr-h/mshr-h.github.io"&gt;mshr-h/mshr-h.github.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ hugo new site blog
$ cd blog
$ git submodule add https://github.com/zhaohuabing/hugo-theme-cleanwhite themes/hugo-theme-cleanwhite
$ cp -r themes/beautifulhugo/exampleSite/* .
$ hugo server -D
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Hugoでサイト作成
&lt;/h2&gt;

&lt;p&gt;Hugoをインストールする。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;brew isntall hugo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;作業ディレクトリに移動し、&lt;code&gt;hugo&lt;/code&gt;コマンドで新規プロジェクトを作成する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/workspace
&lt;span class="nv"&gt;$ &lt;/span&gt;hugo new site blog
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;blog
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;テーマをインストールする。今回は&lt;a href="https://themes.gohugo.io/hugo-theme-cleanwhite"&gt;Clean White&lt;/a&gt;を選んだ。テーマはsubmoduleとして追加する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git init
&lt;span class="nv"&gt;$ &lt;/span&gt;git submodule add https://github.com/zhaohuabing/hugo-theme-cleanwhite.git themes/hugo-theme-cleanwhite
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;テーマが用意してくれているサンプルページをベースに構築する。サンプルページをコピーする。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/workspace/blog
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; themes/hugo-theme-cleanwhite/exampleSite/&lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;設定ファルを編集する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vim config.toml
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;code&gt;baseurl&lt;/code&gt;は独自ドメインを使わない場合&lt;code&gt;username.github.io&lt;/code&gt;、使う場合はそのドメインを指定する。&lt;code&gt;title&lt;/code&gt;はブログのタイトルを、&lt;code&gt;theme&lt;/code&gt;はテーマ名(&lt;code&gt;hugo-theme-cleanwhite&lt;/code&gt;)を指定する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="py"&gt;baseurl&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://keepcodingkeepclimbing.com/"&lt;/span&gt;
&lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Keep Coding, Keep Climbing"&lt;/span&gt;
&lt;span class="py"&gt;theme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"hugo-theme-cleanwhite"&lt;/span&gt;
&lt;span class="py"&gt;languageCode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"ja-jp"&lt;/span&gt;
&lt;span class="py"&gt;googleAnalytics&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="py"&gt;paginate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="c"&gt;#frontpage pagination&lt;/span&gt;
&lt;span class="py"&gt;hasCJKLanguage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="nn"&gt;[outputs]&lt;/span&gt;
&lt;span class="py"&gt;home&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"HTML"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"RSS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Algolia"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nn"&gt;[params]&lt;/span&gt;
&lt;span class="py"&gt;header_image&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"img/home-bg-jeep.jpg"&lt;/span&gt;
&lt;span class="py"&gt;SEOTitle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Keep Coding, Keep Climbing"&lt;/span&gt;
&lt;span class="py"&gt;description&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"programming and rock climbing"&lt;/span&gt;
&lt;span class="py"&gt;keyword&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"programming, software, machine learning, climbing, bouldering, blog"&lt;/span&gt;
&lt;span class="py"&gt;slogan&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"programming and rock climbing"&lt;/span&gt;
&lt;span class="py"&gt;image_404&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"img/404-bg.jpg"&lt;/span&gt;
&lt;span class="py"&gt;title_404&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"404 Not Found"&lt;/span&gt;
&lt;span class="py"&gt;omit_categories&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="c"&gt;# algolia site search&lt;/span&gt;
&lt;span class="py"&gt;algolia_search&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;algolia_appId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="py"&gt;algolia_indexName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="py"&gt;algolia_apiKey&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="c"&gt;# Sidebar settings&lt;/span&gt;
&lt;span class="py"&gt;sidebar_about_description&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Edge deep learning research engineer, open source enthusiast and rock climber"&lt;/span&gt;
&lt;span class="py"&gt;sidebar_avatar&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"img/avatar.jpg"&lt;/span&gt; &lt;span class="c"&gt;# use absolute URL, seeing it's used in both `/` and `/about/`&lt;/span&gt;
&lt;span class="py"&gt;featured_tags&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;featured_condition_size&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="py"&gt;about_me&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;custom_css&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;["css/custom-font.css"]&lt;/span&gt;

&lt;span class="nn"&gt;[params.social]&lt;/span&gt;
&lt;span class="py"&gt;rss&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;twitter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://twitter.com/mshrh3"&lt;/span&gt;
&lt;span class="py"&gt;linkedin&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://www.linkedin.com/in/masahiro-hiramori-63b992167/"&lt;/span&gt;
&lt;span class="py"&gt;github&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://github.com/mshr-h"&lt;/span&gt;
&lt;span class="py"&gt;googlescholar&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://scholar.google.com/citations?user=NSCMi88AAAAJ"&lt;/span&gt;
&lt;span class="py"&gt;facebook&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://www.facebook.com/masahiro.hiramori"&lt;/span&gt;

&lt;span class="nn"&gt;[[params.addtional_menus]]&lt;/span&gt;
&lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"CV"&lt;/span&gt;
&lt;span class="py"&gt;href&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/top/cv/"&lt;/span&gt;

&lt;span class="nn"&gt;[[params.addtional_menus]]&lt;/span&gt;
&lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"ABOUT"&lt;/span&gt;
&lt;span class="py"&gt;href&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/top/about/"&lt;/span&gt;

&lt;span class="nn"&gt;[outputFormats.Algolia]&lt;/span&gt;
&lt;span class="py"&gt;baseName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"algolia"&lt;/span&gt;
&lt;span class="py"&gt;isPlainText&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="py"&gt;mediaType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"application/json"&lt;/span&gt;
&lt;span class="py"&gt;notAlternative&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="nn"&gt;[params.algolia]&lt;/span&gt;
&lt;span class="py"&gt;vars&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"summary"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"date"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"publishdate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"expirydate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"permalink"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="py"&gt;params&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"categories"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"tags"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nn"&gt;[markup.tableOfContents]&lt;/span&gt;
&lt;span class="py"&gt;endLevel&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="py"&gt;startLevel&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="nn"&gt;[markup.highlight]&lt;/span&gt;
&lt;span class="py"&gt;style&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"dracula"&lt;/span&gt;

&lt;span class="nn"&gt;[markup.goldmark.renderer]&lt;/span&gt;
&lt;span class="py"&gt;unsafe&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;以下のコマンドでローカルにて確認できる。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;hugo server &lt;span class="nt"&gt;-D&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="http://localhost:1313/"&gt;http://localhost:1313/&lt;/a&gt;をブラウザで開くとサンプルページが表示される。&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Pagesで公開
&lt;/h2&gt;

&lt;p&gt;hugoでビルドしたページは&lt;code&gt;public/&lt;/code&gt;ディレクトリに生成される。このディレクトリを&lt;code&gt;username.github.io&lt;/code&gt;にプッシュすることで、GitHub Pagesが更新される。&lt;br&gt;
hugoで作成した&lt;code&gt;blog&lt;/code&gt;ディレクトリをリモートの&lt;code&gt;blog/&lt;/code&gt;リポジトリに紐付け、&lt;code&gt;public/&lt;/code&gt;ディレクトリを&lt;code&gt;username.github.io&lt;/code&gt;リポジトリに紐付ける。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/workspace/blog
&lt;span class="nv"&gt;$ &lt;/span&gt;git remote add origin https://github.com/mshr-h/blog
&lt;span class="nv"&gt;$ &lt;/span&gt;git submodule add &lt;span class="nt"&gt;-b&lt;/span&gt; master https://github.com/mshr-h/mshr-h.github.io public
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;この時点で各リポジトリとディレクトリの対応関係は以下の通り。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/workspace/blog/ &amp;lt;-&amp;gt; https://github.com/mshr-h/blog
            +-public &amp;lt;-&amp;gt; github.com/mshr-h/mshr-h.github.io
            +-themes/hugo-theme-cleanwhite/ &amp;lt;-&amp;gt; https://github.com/zhaohuabing/hugo-theme-cleanwhite.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Clean Whiteテーマにはデプロイスクリプト&lt;code&gt;deploy.sh&lt;/code&gt;が用意されているので、これ使ってデプロイする。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/workspace/blog
&lt;span class="nv"&gt;$ &lt;/span&gt;./deploy.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  独自ドメイン設定
&lt;/h2&gt;

&lt;p&gt;独自ドメインを使う場合、&lt;code&gt;username.github.io&lt;/code&gt;リポジトリとDNSレコードの設定が必要。&lt;/p&gt;

&lt;p&gt;&lt;code&gt;username.github.io&lt;/code&gt;リポジトリの設定タブからGitHub PagesのCustom domainに独自ドメインを指定する。&lt;/p&gt;

&lt;p&gt;DNSのAレコードに以下を追加する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;詳細は&lt;a href="https://help.github.com/en/github/working-with-github-pages/configuring-a-custom-domain-for-your-github-pages-site"&gt;ここ&lt;/a&gt;を参照する。&lt;/p&gt;

&lt;h2&gt;
  
  
  記事を追加
&lt;/h2&gt;

&lt;p&gt;新しい記事を作成し、デプロイする。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;hugo new post/2020-04-01-article-title.md
&lt;span class="nv"&gt;$ &lt;/span&gt;vim content/post/2020-04-01-article-title.md
&lt;span class="nv"&gt;$ &lt;/span&gt;./deploy.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  Clean Whiteテーマ特有の設定
&lt;/h1&gt;

&lt;p&gt;Clearn Whiteテーマはデフォルトで中華フォントのため、日本語フォントを使うためにはCustom CSSでフォントを指定する必要がある。&lt;/p&gt;

&lt;p&gt;&lt;code&gt;static/css/custom-font.css&lt;/code&gt;に以下の内容を保存する。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h5&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h6&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.navbar-custom&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Helvetica&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;"Sawarabi Gothic"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;Meiryo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;"メイリオ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;"Hiragino Kaku Gothic ProN"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;"ヒラギノ角ゴ ProN"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;YuGothic&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;"游ゴシック"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;Arial&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;code&gt;config.toml&lt;/code&gt;にすでに&lt;code&gt;custom_css&lt;/code&gt;に関して記載があるため、以下に書き換える。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="py"&gt;custom_css&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;["css/custom-font.css"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;これでブログの設定完了。&lt;/p&gt;

</description>
      <category>hugo</category>
      <category>github</category>
    </item>
    <item>
      <title>DNSレコードの種類</title>
      <dc:creator>Masahiro H</dc:creator>
      <pubDate>Sun, 03 May 2020 03:22:46 +0000</pubDate>
      <link>https://dev.to/mshr_h/dns-5hgl</link>
      <guid>https://dev.to/mshr_h/dns-5hgl</guid>
      <description>&lt;p&gt;DNSレコードとは、DNSを動作させるための設定情報のこと。DNSサーバは、ドメイン名とIPアドレスの対応表である「ゾーンファイル」を保持しており、このファイルに記載されている1行ごとの詳細情報をDNSレコードと呼ぶ。&lt;br&gt;
このゾーンファイル設定では、「レコードタイプ」と呼ぶ情報の種類に応じてDNSレコードを記述する。レコードタイプのうち、Vercelで購入したドメインに対して&lt;code&gt;now dns ls&lt;/code&gt;実行時に表示されるものを次に示す。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A(Address)レコード

&lt;ul&gt;
&lt;li&gt;ホスト名に対応するIPアドレスを定義する&lt;/li&gt;
&lt;li&gt;例えば、独自ドメインでGitHub Pagesを公開する際に使用する&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;CNAMEレコード

&lt;ul&gt;
&lt;li&gt;ドメインやホスト名の別の名義を定義する&lt;/li&gt;
&lt;li&gt;例えば、www付きドメインからwww無しドメインに転送する際に使用する&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;TXTレコード

&lt;ul&gt;
&lt;li&gt;ホスト名に関連付けるテキスト情報を定義する&lt;/li&gt;
&lt;li&gt;例えば、Google Search Consoleにドメインプロパティとしてドメインを登録する際に使用する&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;MXレコード

&lt;ul&gt;
&lt;li&gt;メールの転送先(メールサーバ)のホスト名を定義する&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;CAA(Certification Authority Authorization)レコード

&lt;ul&gt;
&lt;li&gt;SSL/TLSサーバ証明書を発行できる認証局(CA)を指定する&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dns</category>
      <category>network</category>
    </item>
    <item>
      <title>How to build onnx/onnx for your ARMv7l devices</title>
      <dc:creator>Masahiro H</dc:creator>
      <pubDate>Thu, 12 Mar 2020 10:38:34 +0000</pubDate>
      <link>https://dev.to/mshr_h/how-to-build-onnx-onnx-for-your-armv7l-devices-3cm5</link>
      <guid>https://dev.to/mshr_h/how-to-build-onnx-onnx-for-your-armv7l-devices-3cm5</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/microsoft/onnxruntime"&gt;microsoft/onnxruntime&lt;/a&gt; provides build instruction for ARMv7l python wheel which requires &lt;a href="https://github.com/onnx/onnx"&gt;onnx/onnx&lt;/a&gt;. But it doesn't provide binary package or build instruction for ARMv7l. So I've written a dockerfile to build &lt;a href="https://github.com/onnx/onnx"&gt;onnx/onnx&lt;/a&gt; python wheel.&lt;/p&gt;




&lt;h1&gt;
  
  
  Build instruction
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Create a build directory
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;build-onnx
&lt;span class="nb"&gt;cd &lt;/span&gt;build-onnx
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Save the dockerfile on into the build directory
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Dockerfile.arm32v7&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; balenalib/raspberrypi3-python:latest-stretch-build&lt;/span&gt;

&lt;span class="k"&gt;ARG&lt;/span&gt;&lt;span class="s"&gt; REPO_URL=https://github.com/onnx/onnx&lt;/span&gt;
&lt;span class="k"&gt;ARG&lt;/span&gt;&lt;span class="s"&gt; BRANCH=master&lt;/span&gt;

&lt;span class="c"&gt;#Enforces cross-compilation through Qemu&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"cross-build-start"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;RUN &lt;/span&gt;install_packages &lt;span class="se"&gt;\\&lt;/span&gt;
    sudo \\
    build-essential \\
    cmake \\
    git \\
    python3 \\
    python3-pip \\
    python3-dev \\
    libprotoc-dev \\
    protobuf-compiler

&lt;span class="k"&gt;RUN &lt;/span&gt;pip3 &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; pip setuptools wheel
&lt;span class="k"&gt;RUN &lt;/span&gt;pip3 &lt;span class="nb"&gt;install &lt;/span&gt;numpy

&lt;span class="c"&gt;# Prepare onnx Repo&lt;/span&gt;
&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /code&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;git clone &lt;span class="nt"&gt;--single-branch&lt;/span&gt; &lt;span class="nt"&gt;--branch&lt;/span&gt; &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;BRANCH&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="nt"&gt;--recursive&lt;/span&gt; &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;REPO_URL&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; onnx

&lt;span class="c"&gt;# Start the basic build&lt;/span&gt;
&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /code/onnx&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;python3 setup.py bdist_wheel

&lt;span class="c"&gt;# Build Output&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;&lt;span class="nb"&gt;realpath&lt;/span&gt; /code/onnx/dist/onnx-&lt;span class="k"&gt;*&lt;/span&gt;.whl

&lt;span class="k"&gt;RUN &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"cross-build-end"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Run docker build
&lt;/h2&gt;

&lt;p&gt;It will take several hours depending on your machine specs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; onnx-arm32v7 &lt;span class="nt"&gt;-f&lt;/span&gt; Dockerfile.arm32v7 &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Note the full path of the &lt;code&gt;.whl&lt;/code&gt; file
&lt;/h2&gt;

&lt;p&gt;It will print the path something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Step 12/13 : RUN realpath /code/onnx/dist/onnx-*.whl
---&amp;gt; Running in ded3b4302e29
/code/onnx/dist/onnx-1.6.0-cp35-cp35m-linux_armv7l.whl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Copy the Python wheel from the docker image
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;docker create &lt;span class="nt"&gt;-ti&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; onnx_temp onnx-arm32v7 bash
docker &lt;span class="nb"&gt;cp &lt;/span&gt;onnx_temp:/code/onnx/dist/onnx-1.6.0-cp35-cp35m-linux_armv7l.whl &lt;span class="nb"&gt;.&lt;/span&gt;
docker &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-fv&lt;/span&gt; onnx_temp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  6. Copy the wheel file to your ARMv7l device
&lt;/h2&gt;

&lt;p&gt;example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;scp onnx-1.6.0-cp35-cp35m-linux_armv7l.whl pi@RaspberryPi:/home/pi/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  7. On device, install the wheel file
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;onnx-1.6.0-cp35-cp35m-linux_armv7l.whl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>onnx</category>
      <category>docker</category>
      <category>raspberrypi</category>
    </item>
  </channel>
</rss>
