Elixir事始め(その2)

Getting StartedでElixirを学習しています。

Introduction

elixir-lang.jp

インタラクティブ・モード

iexコマンドを実行します。

$ iex
Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 

式を入力すると評価値が返されます。

iex(1)> 256 + 64
320
iex(2)>

iexを終了するためには「Control-C」を二度押します。

iex(1)> 
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
       (v)ersion (k)ill (D)b-tables (d)istribution
$

スクリプトファイルの実行

elixirコマンドでスクリプトファイルを実行します。

elixirの拡張子は .exs です。
Hello world!を出力するスクリプトを作成します。

hello_world.exs

IO.puts "Hello world!"

elixirを実行します。

$ elixir hello_world.exs 
Hello world!

Elixir事始め(その1)

発端

SWEST21の基調講演でNervesプロジェクトに興味を持ちました。Nervesプロジェクトは組込みソフトウェア開発にElixirを使用するためのフレームワークです。
そこでNervesを使うためにElixirを学ぶことにしました。

swest.toppers.jp

ちなみに、10年ほど前にElixirと同じくErlang VMで動作するErlangを学ぼうとして、挫折した経験がありますorz...。

ElixirのWebサイト

ElixirのWebサイト(日本語版)はhttps://elixir-lang.jp/です。

まずはGetting Startedを一通りやってみます。

インストール

Getting Startedの前にElixirをインストールします。

elixir-lang.jp

インストール先のOSはUbuntu 18.04です。

入力したコマンドは次の通りです

$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
$ sudo apt-get update
$ sudo apt-get install esl-erlang
$ sudo apt-get install elixir

インストールの確認

インストールしたElixirのバージョンは次のコマンドで確認できます。

$ elixir --version
Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Elixir 1.9.1 (compiled with Erlang/OTP 21)

Redox OSをVirtualBox上で動かしました(道半ば)

今度はVirtualBox上でRedox OSを動かそうとしてみました。
まずは、
qiita.com
を参考にして、ストレージをSATAAHCIとしてredox_0.5.0_livedisk.isoをマウントしてブートしてみましたが、

f:id:ytakeuch:20190328004047p:plain
Redox ISOイメージ ブート失敗

同上のページを参考にしてRAWイメージからVDIイメージを作成しました。

$ VBoxManage convertfromraw redox_0.5.0_harddrive.bin redox.vdi

redox.dviをハードディスクイメージとしてマウントしたらブートできました。

f:id:ytakeuch:20190328004328p:plain
Redox 画面

キーボードは効くのでブートできましたが、マウスが効きません。

Input→Mouse Integrationをいじったらマウスが効くようになりました。

しかし、ネットに繋がりません。

f:id:ytakeuch:20190328005610p:plain
Redox ネットに繋がりません

Intel PRO/1000 MT Desktop (82540EM)を選択しているのですが...

Redox OSをQEMU上で動かしました

Rustで書かれたOS、Redoxを動かしてみました。まずはQEMU上で動かしました。
QEMUを動かすホストはMacです。
まずは、QEMUをインストールします。

$ brew install qemu

Redoxのハードディスクイメージはhttps://gitlab.redox-os.org/redox-os/redox/-/jobs/10824/artifacts/file/build/img/redox_0.5.0_harddrive.bin.gzから落としました。

$ gunzip redox_0.5.0_harddrive.bin.gz

doc.redox-os.org
を参考にしてQEMUを実行します。

$ qemu-system-x86_64 -serial mon:stdio -d cpu_reset -d guest_errors -smp 4 -m 1024 -s -machine q35 -device ich9-intel-hda -device hda-duplex -net nic,model=e1000 -net user -device nec-usb-xhci,id=xhci -device usb-tablet,bus=xhci.0 -drive file=redox_0.5.0_harddrive.bin,format=raw

f:id:ytakeuch:20190326004412p:plain
Redoxログイン画面

ユーザ名: root、パスワード: passwordでログインします。

f:id:ytakeuch:20190326004540p:plain
Redox画面

ログインできました。



NURO光 G2Vプラン 工事失敗(パークシティ大宮ビューコート)

居住しているマンションでNURO 光 マンションタイプを募集していたのですが、いくら経っても開通しないのでNURO 光 G2Vプランを申し込んでみました。
NURO 光のサイトではNURO 光 提供サイトになっていたので...

f:id:ytakeuch:20190313220258p:plain
NURO 光 パークシティ大宮ビューコート

工事の人に来てもらいましたが、電話線が配管を通してMDF/IDFを通っておらず(コンクリで埋められてますw)、工事不可ということでお引取り願いました。

というわけで、パークシティ大宮ビューコートは(現在のところ)NURO 光 未対応です。

20年近く前にBフレッツを導入する時に判っていたのですが、電話線が通っているコンクリをはつらないといけないですね。
10年次の大規模改修で行っておく事案でした。

Cloudflareへ移行 + はてなブログで不具合(解決済)

DNSサービスをCloudflareへ移行したのですが、はてなブログで不具合が発生しました。
はてなブログのURLを http://blog.logicdesign.jp/ にしていたのですが、http://blog.logicdesign.jp/ にアクセスすると http://ytakeuch.hatenablog.com/ にリダイレクトされてしまいます。

原因は http://blog.logicdesign.jp/ へのアクセスをCloudflareのHTTP proxy経由しているためでした。

f:id:ytakeuch:20190305235541p:plain

f:id:ytakeuch:20190305235622p:plain

としたら治りました。

はてなブログHTTPSで配信するように移行しました。