今日の記事

自分のブログにまとめました 愚直なコードを書けって話 - hirony3’s blog

最近やっと多少勉強に前向きになったので、こういう記事も心安く読めるよ。それまではむしろ嫌悪傾向でした...。

StackOverflow Developer Survey 2017 から。

  1. オンラインコース
  2. 本を買ってエクササイズをやる
  3. 半日コース
  4. オープンソースに貢献
  5. コーディングブートキャンプ
  6. オンライン協議会
  7. カンファレンス/ミートアップ
  8. ハッカソン
  9. blogを書く

どれが向いてるかは人によるかなと。 音楽機器ながらが良いならそれで良いし。

ざっと見てみたけど、一番見たかった "Examples of common goals both teams can agree on." をズバッと説明してるスライド的なものはみつけられなかった。

アメリカ人も元々はマニュアルが好きだったのか。

あと、 stick shift = manual transmission って意味なんだね。

良さげなリストだったので。

log aggregation は metrics aggregation とはちょっと性格がちがうぜ

あんま time-series data は得意じゃない

event data 収集にはよい

Rule for logging:

  • DO include a timestamp
  • DO format in JSON
  • DON’T log insignificant events
  • DO log all application errors
  • MAYBE log warnings
  • DO turn on logging
  • DO write messages in a human-readable form
  • DON’T log informational data in production
  • DON’T log anything a human can’t read or react to

3つのツール

  • ELK

Elasticsearch, Logstash, and Kibana
LをFluentdに替えるのも定番(下記)
Kibanaはすげー良いけど、アラート機能がないのが欠点

  • Graylog

Go言語界隈で人気
Elasticsearch, MongoDB, and the Graylog Server
アラート機能あり
streamingがイケてる
geolocationもイケてる

  • Fluentd

CとRuby AWSとGoogleCloudで推奨
Logstashの代替にするのが定番(上記)
プラグインが500以上もあるので、どれかはあなたの使い方にマッチするだろ
もしなければOSSに貢献!

愚直なコードを書けって話

"Dumb"ってのは、このコンテキストなら、真面目に訳すなら「愚直」かなぁと思うけど、言葉として面白くないよね。 「バカっぽい」ぐらいにしたいところけど、長くてこれもヤだ。 ま、それは良いとして。

シニアエンジニアはなぜ「愚直」なコードを書くのか。そして1マイルも遠くからでもジュニアの書いたコードは一発で分かるよ。って話。

つまるところ、コードってのは、当然コンピュータ向けでもあるんだけど、実はそれよりも「人間に理解してもらう」ことのほうがずっと大事だよ、ってことです。

最後の標語は

「コードを書くときは常に、後でこのコードをメンテする人やテストする人のことを、あたかもあなたの住所を知ってるサイコパスであると想定しな」

つまり

「最大限注意して、あとで殺されないように、人にやさしいコードを書きな」

ってことですかね。

web上にある自然環境音

なんかの記事で見かけた、アメリカの国立公園の音。なんかのイベントとして作られてるみたい。

さらにここからいろいろ探ってみたら、この人のSoundCloudを見つけた。いろんな環境音があって、とてもよい。落ち着く。

他にネットラジオ系でも探してみたけど、音楽じゃなくて、純粋な環境音ってのは、見つけられなかった。なんか良いのあったら欲しい。

タイヤの太さとグリップの関係

単純なようで、実はまだ定着してない議論のようで。 自分用にちょっとメモです。

摩擦に面積は関係ない

そうです。荷重と摩擦係数だけがパラメータです。 というのがわかりやすく説明されてるサイト。

でもタイヤ(等)の場合は、面積が意味を持つ

ただ、タイヤの場合は、荷重と摩擦力の関係はリニアじゃないんです! 1つの、ある程度納得感のある説明。

実は、摩擦係数が特定できるのは特殊なケースだけ

そう、現実世界では、1つの摩擦係数が特定できるのは特殊なケースだけですよ、の簡単な説明。

というわけで私なりの理解のまとめ

タイヤの場合、単純に「面積増えればグリップ増える」は大いなる勘違い。ただ、面積がまったく無関係なパラメータかというとそういうことでもない。 面積増やすと、耐久性、発熱の少なさの点で有利。面圧の面で不利。 でも多分もっと大事なのは、限界荷重の性能や特性という点で、タイヤを太くする必要がある場合がけっこうある、という点。

たとえば、もし、自動車のタイヤが、ゴムじゃなくて、鉄道の車輪みたいな硬いものだと仮定すると、 「広くしてもグリップ増えない」が当てはまる条件はすごく広がると思う。 ただしその場合でも、細さに限界があるのは容易に想像がつく=面積は無関係ではない、と言えちゃうかなー。

今日の記事: CIとCDの違い

今の所の疑問:
- testing environment と prod が同じって前提がないとダメかな...
- あと、こうなると、 Integration Test の環境と testing environment の違いって何になるんだろ。

今日の記事

Mediumより

  • The Coming Software Apocalypse – The Atlantic – Medium
    今後ますますソフトウェアが社会の重要な機能を担うようになってくると世界崩壊の危機くるぜ的な話かなと。 トヨタのカムリの「意図しない加速」の例とか面白かったけど、長すぎて全部読むのは断念。

  • The 2018 Web Developer Roadmap – codeburst
    2018年時点での、webエンジニアの学ぶべき技術や言語の話。ほとんどが図なので分かりやすいし、最初にフロント/バックエンドと分けてくれてるのでこれまた分かりやすい。

  • The Most Important Skill Nobody Taught You – Personal Growth – Medium
    マインドフルネス的な話。って言っちゃうと身も蓋もないかなw
    パスカルの言葉 "All of humanity’s problems stem from man’s inability to sit quietly in a room alone."
    あと、
    "Rather, what we are really addicted to is a state of not-being-bored."
    "We can’t imagine just being rather than doing."
    "The only way to avoid being ruined by this fear — like any fear — is to face it."
    このあたりの文章が響きました。
    うん。これから孤独を見つめることも心がけてみます。今より自由になれそう。

O'Reilly ニュースレターより

個人的メモ