mizdra's poem

雑なこと (日記/技術ポエム/メモ/…) を書くブログです.

2018-08-06

Golang

A Tour of Go の Concurrencyの章を読んだ. 「goroutineによるランタイムレベルの軽量スレッド」と「channelによるスレッド間通信」がGolangの平行処理サポートの特徴という印象を受けた. 雑に扱っても良い感じに動いて便利.

これで A Tour of Go を読み終わったので, 以前体系的に学んだ言語 (JavaScript/TypeScript/Java/Scala/Rust) と比較しつつ, A Tour of Go を読んで感じたGolangの特徴を纏めてみた.

  • GCがある
  • interfaceによる構造的部分型のサポート
  • 静的型付け
  • スタックやヒープを意識しなくて良い
  • (メモリ安全な) ポインタがある
  • null安全でない
  • ジェネリクスがない
  • 式指向でない
  • Errors are values
  • ランタイムレベルの軽量スレッド
  • channelによるスレッド間通信

最近の言語で一般に良しとされているもの (静的型付け/(Errors are valuesによる)例外の排除) がある一方で, 一般に良しとされてないもの (null安全でない/ジェネリクスがない) もある. この辺はGolangの思想が影響しているのかな.

2018-08-05

Golang

インターンシップの事前課題でGolangを学んでいる. とりあえず「A Tour of Go」をベースに, 必要に応じてググりながら勉強している.

言語を学ぶのは時間は掛かるけど, とても楽しくて, いつも新しい発見がある. 色んな言語を学んでいると, 「Aという機能はScalaよりGolangのほうが優れているなあ」とか「GolangのBというシンタックスはScalaやRustに似ている!」とか「GolangにあるCとDという機能を実装している言語は今まで学んだことなかったな〜」とか比較ができてとっても便利. 比較によって初めてその特徴を認識でき, 言語の思想の理解に繋がる場合もある. だから, 言語を学ぶ時は言語同士の比較を意識するようにしている.

Golangを学んで思ったことは「非知的なプログラマのためにデザインされている*1」という点. 実際, 高度な型システムが無いこと, ジェネリクスが無いこと, GCがあること, シンタックスがシンプルなこと, などから難しさを上手く排除しているように感じる.

食事

昔から痩せ気味で食べられる量が少なくて, 食事に結構苦労している. 自分でも何故こんなに食べられないのかよく分かってない.

最近分かったとして, 食べる前はお腹は空いていて食欲はあるが, 食べ始めるとすぐに食欲がなくなり, 食べ物を口に運んだり飲み込んだりする気力がなくなるということ. つまり, お腹は空いているのに食事が喉を通らない状態になる. 一応, こういう状態になっても食べれることには食べれるが, 食べ物を飲み込むのに凄く気力を使うし, 疲れてしまう. なので食べるペースを落として, 体力と相談しながら食べるようにしている.

外出先で食事する際にはメニュー選びに苦労する. 雑に頼むと量が多すぎて食べきれないことが往々にしてある. 最近の知見としては, そのお店のメインメニューの内, 1〜3番目くらいに安いものを頼むと大体丁度良い量になるということ. 皆さんも参考にしてみて下さい *2.

*1:http://www.yunabe.jp/docs/why_golang_is_good.htmlより

*2:少食の人でないと参考にならないと思いますが…

2018-08-01

8月

8月… 夏だ…

健康

ここ数日風邪を引いていたけど今日起きたら健康になっていた. 良かった.

Rust LT #2 〜いま使う!Rust〜

行った.

rust.connpass.com

Rustのコンパイラに内蔵されているインタプリタの話や, Rust 2018の話は聞いていて面白かった. コンパイル時定数の評価にMIRを使うのって一般的なのかな. コンパイラのこと全然分からず.

2018-07-31

オンラインTeX開発環境

大学のレポートをオンラインTeX開発環境を使って作成していた. 普段はOverleaf v1を使っていたのだけど, 今日になってOverleaf v2が実験運用されていることを思い出して, Overleaf v2を試しに使ってみることにした.

v1と比べてUIはリッチだし, 等幅フォントを指定できるし, PDFプレビューも使いやすくなっていて, 最高という感じ. v1で感じていた不満は大抵解消されており, 今の所不満は無い. もうちょっと使ってみて問題なさそうだったら, 本格的にv2に移行しようかな.

ポケモンGO

近所にタツベイが湧いたので捕まえてきた. 何だかんだでタツベイ捕まえるの初めてだったので嬉しい.

脱水症

昨日喉を痛めてから段々体調が悪くなり, 今日になって微熱が出てきたのでお昼に葛根湯を飲んだ. 葛根湯は風邪の引き始めによく効くのでよく服用しているのだけど, 発汗作用のある漢方できちんと水分を摂取しておかないと大変なことになる. 具体的にどうなるかというとこうなる.

起床してトイレに行ったらトイレの中で突然立つのが辛いほどふらつき始め, 意識がはっきりせず, 息を吸うのが苦しくなった. 自分は以前脱水症になったことがあり, この症状に覚えがあったので, めちゃめちゃにフラつきながら台所へ向かい, すぐに水分を摂取した. 数分したらふらつきも無くなり, 呼吸も問題なく行えるようになった. 自分が脱水症の症状をたまたま知っていたので何とかすぐに脱水症と判断できたけど, もし脱水症の症状を知らなかったら危なかったかもしれない. とりあえず無事で良かった.

2018-07-30

お知らせ

前々からずっと行きたいと思っていたインターンシップに行くことになりました. わいわい.

プリンタ

昨日届いた新しいプリンタをセットアップした. 以前と違ってWoLやGoogle Cound Print, AirPrintに対応しており, めちゃめちゃ便利になっている. 特に設定せずにプリンタに接続できるのは良い体験ですね. 家族にも好評で良かった.

2018-07-29

散髪

髪が長くなったので切った. 涼しくなって最高です.

プリンタ

家のプリンタが壊れたのでCANON の PIXUS TS8130 に買い替えた. 以前の古いプリンタと違ってWoLに対応しているので, プリンタがある部屋以外からプリントする時に, プリンタの電源を入れに行かなくて便利そう. セットアップは明日やる予定.

Rust

読んだ.

とりあえず非同期処理まで学習したので, 非同期処理を扱うプログラムをRustで書いてみようと思ってる. 雑に既存のツールをRustで再実装してみようかな.

CLANNAD

以前1期の14話まで観たところで放置していたので, 続きを観た. 悲しい話と良い話が高速で畳み掛けてくるので, 感情が大変なことになってしまった. もっと早く観ておけば良かった…