8
1

闘魂Elixir ── hello_phoenixを楽しむ

Last updated at Posted at 2024-09-27

$\huge{元氣ですかーーーーッ!!!}$
$\huge{元氣があればなんでもできる!}$

$\huge{闘魂とは己に打ち克つこと。}$
$\huge{そして闘いを通じて己の魂を磨いていく}$
$\huge{ことだと思います}$

はじめに

私達ハウインターナショナル(福岡県飯塚市)は、毎月月末の金曜日に社内ハッカソンを開催しています。
社名に引っ掛けて ハウッカソン と呼んでいます。

本日(2024-09-27)、私が取り組んだことをご紹介します。

私はElixirというプログラミング言語が好きです。
理由を挙げればキリがありません。
端的に言うと、「好きなものは好きなのです」これしかありません。
これ以上の理由が必要でしょうか。

hello_phoenix

今回、題材にしたhello_phoenixを説明します。

ElixirにはIoT開発に特化したNervesというフレームワークがあります。簡単にRaspberry Piなどのデバイス上で動かすことができます。
またElixirには、Phoenixという、これまたすんごいWebアプリケーションフレームワークがあります。

Nervesの上で、Phoenixのアプリケーションを動かしてみましょうという欲張りなことをするサンプルプロジェクト ── それが、hello_phoenixです。

データベースはSQLiteを使用してCRUDを楽しめるサンプルです。

実行環境

実行環境を記しておきます。

Elixirのインストールはいつも @zacky1972 先生の記事を参照しながらやっています。
常に最新版での手順を更新し続けられています。ありがとうーーーッ!!!ございます。

Run

READMEの通りにやればできました。

コマンドを羅列しておきます。

git clone https://github.com/nerves-project/nerves_examples.git
cd nerves_examples/hello_phoenix
export MIX_TARGET=rpi4
export NERVES_NETWORK_SSID=your_wifi_name
export NERVES_NETWORK_PSK=your_wifi_password
cd ui
mix deps.get
mix assets.deploy
cd ../firmware
mix deps.get
mix firmware
mix burn

以下、補足です。

  • MIX_TARGETに指定する値はお使いのデバイスを指定してください
  • NERVES_NETWORK_SSIDNERVES_NETWORK_PSKの値はお使いのWi-Fiの認証情報で読み替えてください(Wi-Fiを使用せずにLANケーブルでネットワークに接続する場合は不要です)
  • mix burnコマンドはファームウェアをmicroSDカードへ焼き込むコマンドです
  • mix burnコマンドを実行するまえに、microSDカードを開発PCに差し込んでおいてください
  • ファームウェアの更新は mix upload で、Over the Airで更新することができます
    • ここで言う Over the Air とは、例としては、Wi-Fiで開発PCをネットワークに接続しているとして、Raspberry Piが同じネットワークにあると、開発PCからmix uploadコマンドを叩くだけでRaspberry Piを一切触らずにファームウェアを更新できることを指しています
    • microSDカードをデバイスから抜かずに更新できるのでけっこううれしい開発体験です
    • 仕組みが氣になる方は以下のドキュメントをご参照ください

microSDカードにファームウェアを焼き込んだあと

こんがり焼き上がったmicroSDカードをデバイスに装着し、 迷わず 電源ONです。
10秒程度まったあと、 http://nerves.local にブラウザでアクセスしてください。

スクリーンショット 2024-09-27 14.05.26.png

こんな画面が表示されるはずです :tada::tada::tada:

(mDNSという仕組みで(ちゃんと説明できない、ごめん🙏)で、nerves.localでアクセスできるはずですが、うまくいかないときは arp -a とかでネットワークに新しく接続されたデバイスのIPでアクセスを危ぶむことなく、踏み出してみてください)

CRUDを楽しむ!

http://nerves.local/users
にアクセスしてみてください。

Create

Createを楽しめます。

スクリーンショット 2024-09-27 10.52.25.png

Read

Readを楽しめます。

スクリーンショット 2024-09-27 10.53.00.png

Update

Updateを楽しめます。

スクリーンショット 2024-09-27 10.53.11.png

Delete

Deleteをもちろん楽しめます。

スクリーンショット 2024-09-27 10.53.20.png

Phoenixアプリの開発

さらに機能を追加したい場合には、このあたりを参考にして機能追加をしてください。

画面をここではお見せすることはできませんが、Phoenix LiveView Courseというオンデマンドのビデオ教材(つまり通信教育)で学んだ、景気のいい売上ダッシュボード(Snappy Sales)を組み込んだら、もちろん動かすことができました。


ランチ

福岡県飯塚市には、レイダックという、とてもおいしいハンバーガーショップ 🍔 があります。

2024-09-27_12-31-27_419.png

ハウッカソンの日は、会社の経費で、ハンバーガーランチを食べています!!!

本当においしいです! 吉田松陰先生や坂本龍馬さんが長崎へ行く際にきっと立ち寄った、おそらく一泊くらいはしたはずの飯塚にお立ち寄りの際はレイダックのハンバーガーをぜひ食べてみてください!


さいごに

Raspberry PiにRailsサーバーを立てて運用する」という記事を会社のメンバーが書きました。
それをみて、「Ruby on Rails ON Raspberry Pi OSももちろんいいですけど、hello_phoenixもいいですよ。ぜひこちら(Elixir)がわの世界へお越しください」と誘いました。

ちょっと待てよ、と。自分自身がhello_phoenixを動かしたことがないことに愕然としました。そこで、ハウッカソンで楽しんでみました。

ハンバーガーが本当においしかったので、そのこともお伝えしたく、記事をしたためました。

これからも、ハンバーガー片手に、NervesPhoenix、つまりはElixirを楽しんで行きます!!!


そうそう、ビッグニュースがありました!!!

paiza×Qiita記事投稿キャンペーン「プログラミング問題をやってみて書いたコードを投稿しよう!」というキャンペーンで、 @haw_ohnuma が最優秀賞(Apple Watch)を受賞しました :tada::tada::tada:

そして私もギリ!?、入賞(Amazonギフトカード500円分)を果たすことができました!

paizaさん、Qiitaさん、ありがとうーーーッございました!!!


闘魂とは、 「己に打ち克つこと。そして闘いを通じて己の魂を磨いていくことである」 との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。
アントニオ猪木さんのメッセージから元氣をもらったものとして、それを次代に語り継ぎ、自分自身が「闘魂」を体現するものでありたいとおもいます。


$\huge{元氣ですかーーーーッ!!!}$
$\huge{元氣があればなんでもできる!}$
$\huge{1、2、3 ぁっダァー!}$

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1