サイトの死活監視には updown.io が最強&最高な件
Railsのテストを CIでかけた時に Capybara のエラーがでる原因
npm run watch と npm run watch-poll の違い
違い
npm run watch と npm run watch-poll の違いは、watchは ファイルの変更をみている。 (特定のシステムの場合はうまくいかない)
watch-poll は 変更を 1秒単位などで 定期的に確認をする。
watch will listen for file changes, however, on certain systems this won't always work.
watch-poll periodically checks (polls) for changes e.g. every 1000ms it will manually check to see if any files have changed.
参考
https://stackoverflow.com/questions/44127688/difference-between-npm-run-watch-and-npm-run-watch-poll
Ruby 初めのいーっぽ 【速習編】
Ruby 初めのいっーぽ
MENTAのメンティさん向けの速習メモ
全てがオブジェクト
Ruby はオブジェクト指向言語のため、全てがオブジェクト
- 文字列、配列、数値やnil、trueとかも含めてぜーんぶオブジェクト
オブジェクト.メソッド 引数
みたいな感じでメソッドを呼び出すことができる
例: 文字列 1.to_s
, nil nil.to_s
などなど
変数名は小文字のスネークケースで
例: special_price = 200
のような感じで _ で小文字を区切る
- 変数名には、小文字アルファベットと数字、アンダースコアなどが使える
- 数字から始まる変数名は使えない
- 漢字とかひらがなも使えるが一般的ではない
文字列はシングル or ダブルクオーテーションで囲む
- ダブルクオーテーションで囲むと式展開できるようになる
puts "hello #{name}"
のようにname
の内容を展開できる
数値
- アンダースコアを含めることができて無視されるので桁区切りに便利
1_000
は1000
と認識される
- 他の言語でいう、インクリメントなどの
++
,--
はない+=
,-=
はあるので使える- 例:
n += 1
など
- 丸め誤差に注意
0.1 * 0.3 == 0.3
は falseになる- rational クラスを使うといい
- 例:
0.1r * 0.3r == 0.3
は true
真偽値
if文
elseif
はelsif
となるので注意- elsif や elseは省略可能
- 後置if が便利
- 例: 1日ならポイント五倍
point *= 5 if day == 1
てな感じ
- 例: 1日ならポイント五倍
メソッドの定義
- 戻り値
- return は使わない方が主流
- 最後に評価された式がメソッドの戻り値となる
- return はメソッドを途中で抜けたいときに使われることが多い
- 引数がない場合は メソッド名の後に
()
をつけない方が主流
文字列
- %記法を使うとシングル ダブルクオーテーションをエスケープしなくても使える
%q!
はシングル%Q!
はダブルクオーテーションで囲んだのと同じくなる!
以外でも?
とか^
とか任意の記号を区切り文字に使える- かっこを区切り文字に使った時は対応する閉じ括弧になる
- 例:
puts %q! He said, "Hello."!
=>He said, "Hello."
- 例:
puts %Q< #{name} said, "Hello.">
=>Taro said, "Hello."
unless文
- if文と反対の意味をもつ文
- ただし、elsifに対応する elsunless は存在しない
- 条件文が偽になった時だけ処理を実行する
例: これらは同じ意味
status = 'error' if status != 'ok' '異常' end
status = 'error' unless status == 'ok' '異常'
case文
- 複数条件を指定する時は、elsifをなんども書くよりもcase文で書いた方がシンプル
- when節に複数の値を指定できる
例:
name = '太郎' case name when '太郎', 'Taro' 'とっとこハム' when '次郎', 'Jiro' 'ラーメン' else '謎だ' end
三項演算子
式 ? 真だった時の処理 : 偽だった時の処理
と書ける- 例:
n >= 18 ? '成人やん' : '未成年やん'
requireとload
- ライブラリなどを読み込む時に requireを使う
require ライブラリ名
などと使う- 再度 requireを しても読み込み済みのためfalseが返る
load
を使うとそのファイルを呼ぶごとに毎回指定したファイルを読み込むload ファイル名.rb
などと使う- load は
.rb
を省略できない
requireに関連して
海外のエンジニアとの交流の仕方
経緯
先日もブログ記事にしたけれども、ここ一年くらいは英語を使ってエンジニアリングをする試みを続けていて、TwitterとかでHackerNewsとかをシェアしているユーザをテキトーにフォローして話したりしていた。
その中で、めっちゃいい方法がわかったのでメモ
メモ
Twitterとかで見つけたエンジニアにDM送って、俺、日本のエンジニアなんやけど、Skypeとかで話そうぜって言ったら結構乗り気な人が多い。
アニメとかについてめっちゃ聞かれるから答えると、いっしょに笑えるのと、インドとかアメリカとか、世界各地のエンジニアリングの状況を知れるのはすっごく面白い。
代わりに日本の状況を教えてあげることにしている。
最近は、僕の周りではVue.jsとか流行ってるよーって言ったら、知ってたけどあんま使ってないな〜🤔って感じだった模様。
あと なでしこ(言語) を教えてあげたら爆笑していた。笑
話題が課題
んで、だいたい話をしていると話題がなくなってくるのが課題だったんだけれども、ちょうど今日、ポッドキャストを流しながら語ればええなと気付いて、
SEDaily を流しながらトピックごとにどう思った〜? って話すと、話が弾んだり、あちらの現場知識を聞けて、めっちゃ参考になって超有益でした。オススメです!
英語力
基本的に 基礎的な英単語とよくある言い回しだけ分かれば会話ができると思います。
エンジニアリング関連の単語はだいたい共通で通じるし、目の前のGoogleで検索して話せば理解できるし問題ない感じ。
向こうも僕たち日本人エンジニアが何やってるのかすっごく気になるって言っていたので、どんどん外のエンジニアとオンラインで話してみるといいと思います。それできっと英語力も向上するし、hiring につながるかもだし、一石二鳥だね。
Pythonのデコレーターとは
経緯
プログラミングに関して教えていたところPythonのデコレーターってなんやねんって聞かれたのでメモ
デコレーターとは
ある関数があったらそれを修飾して使えるようにするって概念がデコレーターで、これを使うことで、既存の関数の処理の前後に自分の好きな処理を付け加えることができるのがメリットだと思う。
そうすると、どっかのライブラリが提供している関数を呼んだときに自動的に実行される処理を追加できるとか、そういう便利なことができる概念って感じ。
使い道
なので使い道として例をあげると、
ある適当な文字列から、記号をのぞいて、大文字の英字列が欲しいなぁって気分だとしよう。
( men:ta%:abc
から MENTAABC
を取得したいってこと)
んで、どっかのライブラリが文字列から記号を消して文字だけを返してくれる機能を提供しているとして、それを使うと
men:ta%:abc
から mentaabc
が取得できる。
それに、文字列を大文字に変換する関数デコレーターを作って
mentaabc
から MENTAABC
が手に入ってやったねって感じ。
こんな感じに、自分でライブラリを拡張するみたいな感覚で使ったりする
追記
開始時間と終了時間をログに出す処理のデコレータを作成して、対象の処理複数個にあてるてのも使いどころとしてあると、おしえてもらった。
めっちゃ便利や.
参考
一人アドベントカレンダーを走り抜けたぞ
結果はっぴょー
終えてみての感想
途中体調が悪くなったりとなかなかしんどいタイミングはあったが、とにかく書いて進めるだけだって思っていたら自然と走り抜けられましたぁ。ちょっと疲れましたぁ。
元はといえば、こんな思い立って1分で書いたようなブログ記事から始まったのでしたね。忘れていましたw
この記事にあるように、翻訳とかOSSに貢献もしちゃおう
ってのはできていないですけれども、OS自作入門を読んだことで低レイヤーに関しての技術や知識は間違いなくつきましたし、良い経験となりました。
途中から23時以降はブログを書く時間と決めて死守するようにしたところ、どうにかその日中に書き終えることができました。
本来なら、書く内容なども準備しながら進めなければいけないのでしょうけれども行き当たりばったりでどうにか駆け抜けられたので、来年はもっと準備をして虎視眈々とアドベントカレンダーを書いていこうかなと思います。
実は私は、去年初めてのアドベントカレンダーに参加をしたのですが、そのきっかけになった 株式会社Silbird の皆さんにもう一度こんな面白いカルチャーを教えてくれてありがとうございます! と言いたいですね。
今思い返すと、とってもいい思い出になってます。見返すと情熱的で、なんだか恥ずかしい文章ですね 笑
初心忘れるべからず、情熱的なエンジニアとして今後もがんばって行きますぞー!!
上の記事から抜粋
あなたが成功したいなら、プライドを飲み込み、外に出て行って、自分がバカに見えるのを恐れないようにしなければならない。有名な俳優、ミュージシャン、プロスポーツプレイヤー、講演者でも、かつてはうまくやれていなかったのだ。それでも、ベストを尽くし続けることで、とてもうまくできるようになった。結果はいずれやってくる。何かをずっとやり続けていれば、うまくならないではいられないものである。そうなるまで、長く生き残らなければならないだけのことだ。 そして生き残るための方法は、気にしないことである。バカのように見えることを恐れてはならない。
バカにされるのを恐れるな! - mozyのかきおき
この通りだと思いました。とにかくやり続けていればきっといつか日の目をみるのでしょう。きっとね。
ベストを尽くし続けることで、とてもうまくできるようになった。結果はいずれやってくる。何かをずっとやり続けていれば、うまくならないではいられないものである
最後に
最後に、このアドベントカレンダー企画を眺めたりコメントをくれたりした、現実世界の友人の皆さん、仕事で関わっている皆さん。WBEWの皆さん。見てくれた一人ひとりのあなた、本当にありがとうございました。
やはり皆さんの反応がないと書き続けるモチベーションは保てなかったでしょうし、とにかく皆さんが反応してくれたことによってぼくは25日間駆け抜けることができました。ありがとうございました。
世界にとってはちっぽけな25日の出来事かもしれないですが、ぼくにとっては大きな25日間でした。
それではみなさま良い年末を! また来年もお会いしましょう!