すべての記事 12 ページ

2019

雑談

EMSで肝を冷やした話

EMS(国際スピード郵便)は、世界各国の郵便事業が連携したサービスで、追跡番号によりウェブ上で進捗を確認でき、最速の郵便サービスを謳っている。当然、料金もかなり高い。初めてEMSを利用したときはとても快適で、ウェブの進捗追跡もタイムリーで、2日で日本に届いた。今回、会社が僕に在留資格認定証明書を送ってくれた際もEMSだったのだが、今回も2〜3日で届くだろうと高を括っていた矢先、悲劇が起きた。

開発ノート

プロジェクトに環境変数を設定する - VIPER

数ヶ月前、Golangで環境変数を設定する方法についての記事を書いた。環境変数をいかにエレガントに設定するかは非常に重要なことなので、それを実現するための簡単な関数を書いた。当時の考えはシンプルで、対応するconfigファイルが提供されていれば、その中のkey/valueをos.Setenvで設定するというものだった。その後、アプリ全体で…

開発ノート

Goworker 入門 — Redis と組み合わせた worker の実装

最近、プロジェクトを Ruby on Rails から Go 言語へと徐々に移行している。少し不恰好な構文を書いてみてどんな感じか試してみたいというのもあるし、Go 言語の威力や、既存のフレームワークがない状況でどのようにコードを構成すべきかを体感してみたいという思いもある。今回は goworker を紹介する。これを選んだ理由は「go worker」で検索して…

フロントエンド

requestIdleCallback - アイドル時間を有効活用する

多くのWebページではさまざまなスクリプトを実行する必要があり、当然それらには優先度が存在する。例えばUIのレンダリング、インタラクションイベントの登録、APIを呼び出してデータを取得することなどは優先度の高いタスクだ。一方で、アナリティクスのスクリプト、遅延読み込み(lazy loading)、それほど重要でないイベントの初期化などは優先度の低いタスクとなる。何をもってIdle(アイドル)とするのか…

開発ノート

あるデバッグの記録 — connection refused

数か月前あたりから、僕の Google Chrome で原因不明の connection refused が頻繁に発生するようになった。特定のウェブページが開かないことがあるのに、他の端末から開くと正常に表示される。変だなとは思いつつも、サーバー側の設定の問題かもしれないし、そこまで大きな困り事でもなかったので、そのまま使い続けていた。カスタムドメインを設定…

2018

開発ノート

Golangプロジェクトで環境変数を設定する方法

プロジェクト開発では異なる環境を切り替えることがよくあり、そのため通常は環境変数を設定する。だが、コード内に直接ハードコードしてしまうと毎回修正するのが非常に面倒だ。動的に環境変数を渡すことができれば、不要な修正を大幅に減らせてコードも比較的クリーンになる。golangでは一般的にflagパッケージを利用して…

開発ノート

makeとnewの違い

Golangにはmakeとnewという2つの予約語があり、Goを学び始めた頃に混同しやすいところでもあるため、ここに簡単なメモを残しておく。newは型のメモリを割り当てて初期化し、ポインタ(メモリアドレス)を返す。そのため通常はポインタ変数でnewされた型を受け取る。特に注意すべき点として、newは自動的にゼロ値(zeroed value)で初期化するため…

雑談

再び誕生日のパラドックス(Birthday Paradox)について

誕生日のパラドックスは、統計学を学び始めた頃に先生がよく学生を驚かせるために使う定番ネタだ。たいてい先生は財布からゆっくりと100元を取り出し、教室の中に同じ誕生日の人が2人いるか学生に問いかける。直感的には、確率はかなり低いと思いがちだが、実際には23人を超えると、2人が同じ誕生日である確率は50%以上になる…