at backyard

Color my life with the chaos of trouble.

Docker上でC言語を気軽に試せる環境を作って、C言語の勉強をしている話

ども、Linux上でC言語を勉強しようと思い、Ubuntuをインストールして環境構築をしていたら、それだけで満足してしまって勉強まで至らなかったことのある私です。

先日このようなポストを書きました。さっそくCコンパイラ作成本を読んでいますが、とても面白いです。

shinshin86.hateblo.jp

Linux上で実際に動かしてみながら、読み進めています。
さすがに今回は環境構築で満足はできないので、以前作成したDocker imageを使用して、docker上でC言語を気軽に試せる環境を構築してそちらでコードを書いています。

ちなみに最近Neovimもよく使っているので、そちらも一緒にインストールしています。ま、そんなわけで、非常に個人的な構成となっています。
(ちなみに気分によってneovimvimを使い分けています。本当に気分によって)

github.com

そのうちDocker Hubに置こうと思っていますが、いまは一旦Github上で管理していき、微妙に改良を加えつつ行こうかと考え中。

使い方

一応使い方はREADMEに書いてありますが、下記のような感じで使えます。

github.com

# リポジトリをclone
git clone https://github.com/shinshin86/dev-c-lang-with-neovim-at-docker.git

# ルートに移動
cd dev-c-lang-with-neovim-at-docker

# ビルド
docker build -t dev-c-lang-with-vim .

# 立ち上げたdocker内でbashを起動。--rmをつけているので、exitすると同時に docker コンテナを削除してくれる
# また、workディレクトリをマウントしている
docker run -it --rm -v $(pwd)/work:/tmp/share --name dev-c dev-c-lang-with-vim /bin/bash

接続したdocker コンテナ内にて

# クローンしたリポジトリのwork内にテストコードがおいてあるので、そちらをdocker内にコピー。
cp -p /tmp/share/test.c $HOME/work/

# clangかgccでテストコードをコンパイルしてみる
cd $HOME/work
clang test.c # Also can use gcc => gcc test.c

# 実行!
./a.out
# ---> hello world

コードを編集するとき

Neovimはnvで起動するようにしているので、ソースコードを編集するときは下記のコマンドを実行する

nv test.c

ZOZOサポート神対応の話、iPhone XS、Pale Waves良かった

ZOZOSUITが届かないなーとTwitterで呟いたら神対応していただいた話

どんなことがあったかについては実際のTwitterを貼っとく。

素晴らしいサポートをしていただき、ZOZOSUITで計測したデータに基づいて、ジャストサイズのTシャツを着て、今これを書いている。 買ったのは胸ポケットがついている灰色のTシャツ。
ちょうど胸ポケットのついた手頃なグレーのTシャツが欲しかったのである。

お値段は¥1500ぐらい、着心地は良い、生地はしっかりめな印象。
実際に着てみて計測した故の特別な感動があったかという正直そういうものはなかったが、気兼ねなく着れる感じで満足度はしっかりある。

ZOZOのサポートの方々、ご対応ありがとうございました。

iPhone XSに変えました

www.apple.com

最近iPhone XSに変えました。

以前使っていたのはiPhone7。

最初使ってみたときにまず感じたのは、アプリの立ち上げがかなり早くなったこと。やはり処理速度の向上は嬉しい。
あとポートレートモードがめちゃめちゃ凄い!実際にどういうものかは理解していたつもりだったが、実際に使ってみるとこれはなかなか感動。
友達と会ったときとかに皆の写真をこれで取ると、かなり感動してもらえる。自分も本当感動した。
カメラとかにあまり興味ない自分にとってはiPhoneのカメラで満足な今日このごろである。

最初フェイスIDはそれほど使いやすいとは思わなかったが、一週間も使っていると体がなれて、もう何も感じなくなった。結局指紋認証でも顔認証でもどっちでも使えるんだなーと思った次第。風呂上がりによく顔認証に失敗するときあるけど、どういうことだろう。普段小汚い顔をしているから、風呂上がりの顔は別人と認識されているということだと思う。

容量も256で買ったので、これからガンガン使っていこうと思っています。
(ちなみにiPhone 7のときの使用容量見たら30GBちょいしか使っていなかった。256の容量をフルに活かせるだろうか?)

Pale Waves良かった

偶然知りました。マンチェスターのバンドらしい。

youtu.be

週末はCコンパイラナイト🌜

TCFMでもおなじみのRuiさんが公開してくれました。

時間を見つけて低レイヤーな部分にもいろいろ触れてみたいと思っていた自分には非常にありがたいかぎりでございます。 早速少しずつ読み進めていますが、すごく面白い...!

ちなみにRuiさんはYoutubeでもライブコーディング動画を公開しており、こちらもめっちゃ良い内容。

www.youtube.com

上の言語処理系に関する動画以外にもcatコマンドやwcコマンドを実装している動画などもあったりして、まさに宝の山! ありがたや!

www.youtube.com

www.youtube.com

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory~というエラーができたときの対応法

とあるプロジェクトでyarn installしたとき、node-gyp rebuild周りでエラーが発生した。

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

もうこのエラーメッセージに書いてあるとおりで、

  • Xcodeをインストールする
  • sudo xcode-select -s /Applications/Xcode.app/Contents/Developerを実行してactiveなdeveloper directoryを変更する

という二点をやれば解決できる。 ちょうどxcodeが入っていないmacbook proでの作業だったので、直面した問題だった。

下記のページを参考にした。

github.com

Babel 7 へのupgrade toolを使ってみたメモ

あくまで個人用メモ、備忘録的なものになります。

babel7がリリースされましたが、Babel7へのupgradeツールもリリースされています。

github.com

試しに自身のリポジトリに適用してみました。 全然更新できていない、todoアプリ。
react/reduxの練習用に、触りたての頃に作っていたもの。めっちゃ途中のまま放り出してしまっていた。。

npx babel-upgrade

を実行した場合、どれがアップロードされるかを 確認することができる。

   "devDependencies": {
-    "babel-cli": "^6.26.0",
-    "babel-core": "^6.26.0",
+    "@babel/cli": "^7.0.0",
+    "@babel/core": "^7.0.0",
+    "@babel/plugin-proposal-class-properties": "^7.0.0",
+    "@babel/plugin-proposal-decorators": "^7.0.0",
+    "@babel/plugin-proposal-do-expressions": "^7.0.0",
+    "@babel/plugin-proposal-export-default-from": "^7.0.0",
+    "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
+    "@babel/plugin-proposal-function-bind": "^7.0.0",
+    "@babel/plugin-proposal-function-sent": "^7.0.0",
+    "@babel/plugin-proposal-json-strings": "^7.0.0",
+    "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0",
+    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
+    "@babel/plugin-proposal-numeric-separator": "^7.0.0",
+    "@babel/plugin-proposal-optional-chaining": "^7.0.0",
+    "@babel/plugin-proposal-pipeline-operator": "^7.0.0",
+    "@babel/plugin-proposal-throw-expressions": "^7.0.0",
+    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
+    "@babel/plugin-syntax-import-meta": "^7.0.0",
+    "@babel/preset-env": "^7.0.0",
+    "@babel/preset-react": "^7.0.0",
+    "babel-core": "^7.0.0-bridge.0",
     "babel-eslint": "^8.2.2",
     "babel-jest": "^22.4.1",
-    "babel-loader": "^7.1.2",
-    "babel-preset-env": "^1.6.1",
-    "babel-preset-react": "^6.24.1",
-    "babel-preset-stage-0": "^6.24.1",
+    "babel-loader": "^8.0.0",

下記のコマンドで実際にupgradeを行う。

npx babel-upgrade --write

試してみたリポジトリ上ではうまく行ったよう。

下記がそのときのコミット。

github.com

macを再起動させたら突然`SequelizeMeta doesn't exists`というエラーが起きるようになってしまった。

macを再起動させたら突然SequelizeMeta doesn't existsというエラーが起きるようになってしまった。

ちょっと挙動がハマる感じがしたので、一応起きた流れをメモっておく

状況

  • docker上に動かしているmysqlで開発
  • nodejsにてsequelize使っている
  • 普段はSequel Proからアクセスしている

起きたこと

  • Macを再起動させたら、SequelizeMetaというテーブルは存在していないよ、というエラーが出るようになってしまった(Sequel Pro上にて)
  • SequelizeMetaテーブルがないので、migrationができない、、、。割と積んた状況。
  • 試しに docker restart {mysql動かしているコンテナ}restartさせてみた
  • SequelizeMetaが参照できたので、無事に解決。

と、まあこんな事象が起きた。原因は未調査だが、docker側での問題なのだろうか?
時間ができたらちょっと調べてみようと思う。

ひとまずメモ。

keras触ってみている、秋の入口の夜に、白ワインの炭酸割りを飲む

最近ブログの更新が完全に滞っています。 未来の自分へのログという側面からもそろそろ書いとこうと、筆不精が筆をとってみました。

最近のリピート曲

最新の曲というわけではないけれど、夏の終わりの空気にすごく合う
良い曲は月日の経過を感じさせない。

youtu.be

エアコンつけっぱなし生活

これについては前回のブログにもちょいと書いた

shinshin86.hateblo.jp

最高。エアコン消す必要ないわ。
ただ、最近は空気が秋っぽくなってきたので、温度が下がって湿度が低い日は消すようにしている。
(消さないと肌寒くて、パーカー羽織って仕事するときもあったので、これは流石に消そうかと)
8月もほぼほぼつけっぱなしだったが、電気代は我が家の場合¥6000ちょいだった。

keras、触っている

以前、一度tensorflowを使って、特定の人物のみを特定するmodelを偉大なる先人の方々のブログをめちゃくちゃ参考似しながら作った。
先日、udemyで下記の講座を受けた。
なんとなくセールだったから、最近の機械学習周りをキャッチアップしようと受けただけだったが、この講座が想像以上に良かった。

www.udemy.com

で、この講座の中で使われていたのがkeras

Keras: the Python deep learning API

以前よりもだいぶ簡単に使えるようになっていて、時代においていかれている感を感じた今日このごろ、プライベートの空き時間を利用して、ちょいとkeras触っています。

ビターな炭酸水

前回も炭酸水に書いたような気がするけど、最近試してみたこの炭酸が、 お酒の代わりになりそうなビターな味わいがグッド。
自分は夏になるとよく白ワインに炭酸水を割ったものをよく飲むのだけど、これは白ワインにも相性が良い。
これで割るだけで、ライトで爽やかな感じのカクテルができるから、来客時にもお勧めできそう。

他にも諸々書こうかと思ったけど、 際限なく駄文をポストしてしまいそうだったので、今日はこのへんで。
一昨日ぐらいに公開されていたこの動画を今日、見た。
keras使っていた。さてさて、高まるモチベーション。

youtu.be