wolfmasa's blog

フロンターレとプログラミング関係の話題を、気が向いたときにつぶやくブログです。

まずRails new

まずは rails newをしてみる。

もちろんバージョンは

Rails 6.0.0

チュートリアルの内容なので、ざっと手順を紹介。今回はSimpleNoteというサンプルアプリを作ってみる。

# railsのインストール
sudo gem install rails

# create project
rails new SimpleNote .

cd SimpleNote

# 昔はなかったと思うが、webpackerのインストールが必要そう。
rails webpacker:install

# bunder install自体はnewの中でされるが、追加gemについては改めてインストール
vim Gemfile
bundler install

# passはいらなかったかも。。。予定ではMD5のハッシュ値を保存して認証に使おうかと
rails g scaffold user name:string email:string pass:string
rails g scaffold article title:string contents:text
rails db:migrate

とりあえずここまででUserとArticleのモデルとRouteなどの一式が作成。

次はRouteを設定して、Userが複数のArticleを持つ構造を表現し、かつ認証なんかも着手したい。

まずRails new

まずは rails newをしてみる。

もちろんバージョンは

Rails 6.0.0

チュートリアルの内容なので、ざっと手順を紹介。今回はSimpleNoteというサンプルアプリを作ってみる。

# railsのインストール
sudo gem install rails

# create project
rails new SimpleNote .

cd SimpleNote

# 昔はなかったと思うが、webpackerのインストールが必要そう。
rails webpacker:install

# bunder install自体はnewの中でされるが、追加gemについては改めてインストール
vim Gemfile
bundler install

# passはいらなかったかも。。。予定ではMD5のハッシュ値を保存して認証に使おうかと
rails g scaffold user name:string email:string pass:string
rails g scaffold article title:string contents:text
rails db:migrate

とりあえずここまででUserとArticleのモデルとRouteなどの一式が作成。

次はRouteを設定して、Userが複数のArticleを持つ構造を表現し、かつ認証なんかも着手したい。

まずRails new

まずは rails newをしてみる。

もちろんバージョンは

Rails 6.0.0

チュートリアルの内容なので、ざっと手順を紹介。今回はSimpleNoteというサンプルアプリを作ってみる。

# railsのインストール
sudo gem install rails

# create project
rails new SimpleNote .

cd SimpleNote

# 昔はなかったと思うが、webpackerのインストールが必要そう。
rails webpacker:install

# bunder install自体はnewの中でされるが、追加gemについては改めてインストール
vim Gemfile
bundler install

# passはいらなかったかも。。。予定ではMD5のハッシュ値を保存して認証に使おうかと
rails g scaffold user name:string email:string pass:string
rails g scaffold article title:string contents:text
rails db:migrate

とりあえずここまででUserとArticleのモデルとRouteなどの一式が作成。

次はRouteを設定して、Userが複数のArticleを持つ構造を表現し、かつ認証なんかも着手したい。

Rails 6.0

Rails 6.0がリリースされたようです。

railsguides.jp

version 4くらいからあまり真面目に追っていなかったので、改めてRailsを再入門したいと思います。

Rails 6の主な変更点

Action Mailbox

Action Mailboxは、受信メールをコントローラ的なメールボックスにルーティングできます。Action Mailboxの詳細はAction Mailboxの基礎を参照してください。

Railsアプリでメールを受信して、DBに格納できたりするらしい。確かに、例えばEvernoteみたいにメールを受け取ってそのままノートに登録したり、Webサービスでメールを受け取りたいシチュエーションはある気がする。

Rails6で導入されるAction Mailboxを試してみた - bagelee(ベーグリー)

調べていると、メールって簡単にハンドリングできるんだなと妙に感心してしまいました。昔はメールサーバ立てて、色々設定して、大変そうだなーってイメージしかなかったんだけど。。。

Action Text

Action Textは、リッチテキストコンテンツと編集機能をRailsで使えるようにします。Trixエディタは、リンク/引用/リスト/画像埋め込み/ギャラリーなどあらゆるものを扱えます。Trixエディタで生成されるリッチテキストコンテンツは独自のRichTextモデルに保存され、アプリ内にある既存のActive Recordモデルに関連付けられます。 埋め込み画像などの添付ファイルは自動的にActive Storageを用いて保存され、RichTextモデルに関連付けられます。

サンプルにあるような、リッチテキストをブラウザで編集する環境が簡単に(セットアップはいくつかいる模様)実装できるコンポーネントのよう。

ただ、エディタ機能が常にいるかというと、ちょっとニッチな気もするので、Rails本体にいるのか?bundlerインストールでも良いのでは?と思わなくもない。(何か理由があるんだろうなと思いつつ)

とはいえ、APIサーバではなくサイトを簡単に(1パッケージで)作る人からすると嬉しいのかな。それよりも認証系がもっと簡単に扱えないかな。

触ってみる(これから)

勉強も兼ねて、久しぶりに簡単なサービスを作ってみようと思います。

以前は、herokuを使いましたが、できればAWSかAzureも使ってみたいな。

挫折する可能性も高いですが、とりあえず頑張ろう。

囲碁プログラミング

囲碁ディープラーニングプログラミング

囲碁ディープラーニングプログラミング

少し前から、囲碁プログラミングの本を読んでいる。

読んでいるだけではわからないので、pythonの勉強も兼ねて実装もしているのだが、なかなか道のりは遠そうだ。

GitHub - wolfmasa/python-go

まずは、3章までのところは一通り終わり、ランダムに着手するbotを作り、多少の高速化(Zobristハッシュ)も適用し、botbot、人間対botが動くようになった。

とはいえ、ランダムに置きまくってくるので、途中まで対局してみたけど、疲れてあまりやる気はしなかった。

どうも、初版ということもあり、ちょいちょい誤字などがあるようで、詰まったら元々のソースコードを読み、確認しながら進めている。

特に、pythonの場合、関数の区切り(rubyのbegen〜end)が、空白やタブで表現されているので、本にした場合にインデントがずれるとそれだけで意味が大きく変わってしまう。

個人的に、関数などの区切りが明確でない表記は、あまり好きになれないなぁ。

GitHub - maxpumperla/deep_learning_and_the_game_of_go: Code and other material for the book "Deep Learning and the Game of Go"

あと逆に、サンプルソースコードがどう考えても本とあっていないところもあって、例えばzobristのハッシュを作るところ。各盤面にhashをあらかじめ割り当てることで、盤面が繰り返されている場合(囲碁で言うコウ)の判定を高速化するコードが、サンプルコードと本記載とでは結構違った。(白黒の状態だけでなくNoneにもハッシュを割り当てていたり、何もない盤面のハッシュ値など)

次はモンテカルロ法などの実装に進む予定(説明はすでに読んだ)

OSSへのコントリビュート

medium.com

このモチベーションは自分と同じで、すごくよくわかる。

でも、それを実際に行動に移して、目標を達成している、それが違う。

とはいうものの、心理的障壁が高くて、自分のような技術力でできる気がしなかったのと、ソースを読み進めようとしても、全然わからんということが多く、いつも断念していた。

ここ数年、自分はこの辺で立ち止まっている。

もちろん、この方と比べて自分はさらに何もできないので、比べるだけ失礼かもしれない。

それはそれとしても、最近エンジニアとして自信をなくすことが多かったので、こういう話で少し気が楽なったのは事実。

素直に、もうちょっと自分も頑張らなきゃと思えました。

oss-gate.github.io

ちなみに、OSSにコントリビュートすることにフォーカスするのであれば、このようなイベントがあるらしい。

すごく興味はあるので、ぜひ一度行きたいなと思っている。(でも勇気がない)

MacBook Proを買ってみた

MacBook Pro

ずっと使っていたMacは、late 2013のRetinaではない安いMacBook Pro

さすがにOSをアップデートし続けていると、最近は日本語変換だけでも2、3秒待たされたり、アプリがなかなか起動しなかったり、時間のロスが大きくなってきた。

思えば、当時はまだSSDが高価で、安いHDDにしてしまったし、メモリも増設していないしで、その辺が今になって響いてきているのではないかと思う。

www.apple.com

てな訳で、1年くらい前から検討を重ねていたのだけど、今回リニューアルされたMacbook Proの評判を見ていると、USB-C以外は(苦笑)良さそうなので、思い切って買い換えてみた。

f:id:wolfmasa:20170813154235j:plain

f:id:wolfmasa:20170813154300j:plain

色は、前回シルバーだったので、今回はスペースグレイ。

あと、話題のTouchBarモデルじゃなくて、物理キーボードモデルにした代わりに、SSDは512G、メモリは16Gに増設して、ある程度長く使えるようなマシンを目指してみました。

データ移行に関して

基本的にはiCloudに頼れば良いはずだけど、せっかくなので綺麗にしたいという気持ちもあり、まずは古いMacBookでデータを整理したのちに、Time Machineで外付けHDDにコピー。

その後、新しいMacBookを起動して、移行アシスタントで復元すると、設定とかおおよその設定はコピー完了。

最初の起動時には復元せずに、後からやったので、アカウントがバッティングしたりとかはあったけど、それ以外は特に問題なし。

良いところ

快適

当たり前だけど、まずは反応が早くて、ストレスが全くないところはGOOD!

キーボード

普段会社では、HHKを使っている私としては、今の賛否両論あるMacBookProのペタペタキーボードに慣れることとができるかどうかが不安だった。

多分、自分はキーボードの打ち心地にはこだわってしまう方で、打ちにくいキーボードを使っていると、本当に作業に集中できない反面、打っているのは気持ち良いキーボードだと、それだけで幸せになれる。

実際に使ってみると、音がそれなりにあるところと、思ったよりも反応がある気がして打ちやすい印象。これは打っていて楽しめる側なので、問題なし。正直ホッとしました。

Retina

会社ではRetinaなので、それほど驚きはないのだけど、家では初めてではあったので、時々その違いにびっくりする。

やっぱり、綺麗なことはいいことだ。

悪いところ

USB-C

正確には type C。

今まで使っていたUSBをつなぐためにアダプタが必要なことは、わかっていたことなので、それほど苦にならないのだけど、差し込み具合が結構引っかかるというか、固いのが不満。

Lightningのように、すんなり入ってくれるイメージを持っていたのだけど、結構固くて、入れにくく、抜けづらいには以外にストレス。

3D Touch

使い方が全くわからない。対応アプリも少ないし、存在をすぐに忘れてしまいそう・・・

余談

iCloudやTime Machine経由でデータを移行したおかげで、brewやgemのパッケージもそのまま移行された模様。

goのツリーも当然コピーされたので、長年蓄積されたいらないファイルを一層し損ねた感じはある。いや、移行してくれることは素敵なことなのだけど。