タグ

ブックマーク / postd.cc (18)

  • モダンWebにおけるキャッシングのための新HTTP標準 | POSTD

    一般ユーザー向けの大規模なWebサイトや、モダンWeb上で動作するWebアプリケーションを運営する場合、CDNなどのキャッシングサービスによって静的コンテンツをキャッシュすることが極めて重要です。 しかしこうしたサービスは、非常に複雑で分かりにくいものです。 幸い、IETF(Internet Engineering Task Force)のHTTPワーキンググループがこの状況を改善すべく、HTTPの新標準策定に取り組んでいます。 最近、同ワーキンググループでは、キャッシングのデバッグとキャッシュ設定の管理を容易にすることを目的とした、HTTPヘッダに関する2つの新標準案の発表に向けて活発な動きがありました。 このことが何を意味し、どのように機能するのか、そしてWeb制作に携わる開発者全てがなぜ注目すべきなのかについて見ていきます。 新標準 この記事で取り上げる標準案は以下の2つです。 Ca

    モダンWebにおけるキャッシングのための新HTTP標準 | POSTD
    okbm
    okbm 2022/09/16
  • Makefileを自己文書化する | POSTD

    私たちのプロジェクトではいつも、非常に長い Makefile を使用して、インストールやビルド、テスト、デプロイメントの処理を自動化しています。ターゲット名はほとんど標準化されていますが( make install 、 make deploy )、中には説明が必要なものもあります( make run-dev 、 make restart-api )。そして、詳細なmakeターゲットを追加するほど、それらの処理内容をテキスト形式で大量に記載しなければなりません。私たちのプロジェクトでは通常、このような文書を README ファイルに書いています。 しかしCLI(コマンドラインインタフェース)を用いる場合は、主に自己文書化ツールを使っています。 make と打つだけで、利用可能なコマンドとその説明が一覧表示されたら便利だと思いませんか? それを実現するのは、実はとても簡単です。まずは各ターゲッ

    Makefileを自己文書化する | POSTD
    okbm
    okbm 2018/10/12
  • 15年目のVim | POSTD

    (注:2017/04/19、いただいたフィードバックを元に翻訳を修正いたしました。修正内容については、 こちら を参照ください。) Vim使用について述べた先の投稿( 1 、 2 )は好評だったこともあり、そろそろ更新が必要になりました。Vim 8には非常に要望の多かった機能がたくさん追加され、 VimAwesome のような新しいコミュニティサイトができたことでプラグイン探しと評価が容易になりました。最近では私もVim仕事をする機会がとみに増え、 ピーク効率 に向け自分のワークフローの設定に時間を費やしたりもしています。ですから、この記事は私の現在の状況を写し取ったものです。 大まかには次の内容です。 ファイル特定にはfzfとfzf.vim *ファイル検索にはack.vimと ag Vim + tmuxが勝利への鍵 ALEは新Syntastic。理由はその非同期性 …などなど多数。ぜひ

    15年目のVim | POSTD
    okbm
    okbm 2018/04/13
    ちょいちょい埋め込まれてる動画見てるとすごいけど、ここまで頑張っていくのつらい
  • マイクロサービスはもう十分 | プロダクト・サービス | POSTD

    モノリスとして管理するには複雑すぎるというシステムでない限り、マイクロサービスは検討さえしなくていい。ソフトウェアシステムの大多数は、単一のモノリシックアプリケーションとして構築されるべきである。そのモノリス内のモジュール性が良好になるよう注意を払う必要はあるが、別個のサービスに分けようとしてはいけない。要旨 モノリスとして管理するには複雑すぎるというシステムでない限り、マイクロサービスは検討さえしなくていい。ソフトウェアシステムの大多数は、単一のモノリシックアプリケーションとして構築されるべきである。そのモノリス内のモジュール性が良好になるよう注意を払う必要はあるが、別個のサービスに分けようとしてはいけない。 – Martin Fowler 明確に構造化されたモノリスを構築できない時、なぜマイクロサービスがその答えだと思うのか。 Simon Brown 始めに マイクロサービスの利点と欠

    マイクロサービスはもう十分 | プロダクト・サービス | POSTD
    okbm
    okbm 2017/07/05
  • ディープラーニングのための線形代数入門:一般的演算の初学者向けガイド | POSTD

    Jeremy Howardによる ディープラーニングの素晴らしいコース を受講している間、自分の前提知識がさびついてきているせいで、誤差逆伝播法のような概念が理解しにくくなっていることを認識しました。そこで、理解度を上げるべく、そうした概念に関するいくつかのWikiページをまとめてみることにしました。記事では、ディープラーニングでよく使われる線形代数演算のいくつかについて、ごく基的な事項をざっとご紹介します。 線形代数とは? ディープラーニングの文脈での線形代数とは、数の集合を同時に操作するための便利な手法を提供してくれる、数学的ツールボックスです。これらの数値を保持するためのベクトルや行列(スプレッドシート)のような構造体と、それらを加算、減算、乗算、および除算するための新しい規則を提供します。 線形代数が便利な理由 線形代数は、複雑な問題を単純で直感的に理解できる、計算効率の良い問

    ディープラーニングのための線形代数入門:一般的演算の初学者向けガイド | POSTD
  • 私たちはいかにして環状線で”悪さをする列車”を捕まえたか | プログラミング | POSTD

    文:Daniel Sim 分析:Lee Shangqian、Daniel Sim、Clarence Ng ここ数ヶ月、シンガポールのMRT環状線では列車が何度も止まるものの、その原因が分からないため、通勤客の大きな混乱や心配の種となっていました。 私も多くの同僚と同じように環状線を使ってワンノースのオフィスに通っています。そのため、11月5日に列車が止まる原因を調査する依頼がチームに来た時は、ためらうことなく業務に携わることを志願しました。 鉄道運営会社SMRTと陸上交通庁(LTA)による事前調査から、いくつかの電車の信号を消失させる信号の干渉があり、それがインシデントを引き起こすことが既に分かっていました。信号が消失すると列車の安全機能である緊急ブレーキが作動するため、不規則に電車が止まる原因となります。 しかし8月に初めて発生した今回のインシデントは、不規則に起こっているように見えるた

    私たちはいかにして環状線で”悪さをする列車”を捕まえたか | プログラミング | POSTD
  • 構造化テキストデータを操作するためのコマンドラインツールリスト | POSTD

    テキストベースのファイル形式と、それぞれを(主にLinux上で)操作するためのコマンドラインツールのリストを掲載しています。 目次 DSV XML,HTML JSON YAML,TOML INI 設定ファイル おまけ:単一ファイルデータベース用コマンドラインインタフェース(CLI) ライセンス 情報開示 DSV CSV や TSV などを含む DSV(Delimiter-separated values、区切り文字で区切られた値) です。 Awk AwkはPOSIXで標準化されているコマンドラインツールで、DSVデータ処理用プログラミング言語です。Awkに関するリンクは以下のとおりです。 Awk.info — Awkに関する情報が豊富です。 AWK Vs NAWK Vs GAWK —プラットフォーム別実装の比較です。 すでにプログラミング言語を使用してプログラミングをしている場合は、naw

    構造化テキストデータを操作するためのコマンドラインツールリスト | POSTD
    okbm
    okbm 2016/06/02
    素敵
  • 自分たちの勤務時間を可視化して学んだ、3つの生産性ハック | POSTD

    ここ数年、私はRescueTimeを使ってきました。このアプリは、ユーザが何のアプリを使っているのかをモニタリングして、コンピュータの使用時間をどれぐらい「生産的」に使えているのかを評価してくれるものです。 RescueTimeが提供してくれるグラフやレポートは素晴らしいものなのですが、それらを定期的にチェックする習慣はどうにも身につきませんでした。しかし、最近になって、ZapierがRescueTimeと連携できることに気づきました。これはつまり、RescueTimeのデータをReflectのデータ可視化プラットフォームを使って可視化することが簡単にできる、ということです。 私たちの生産性のデータをReflectに接続することで、同僚のBradと私は、自分たちでも今まで気づいていなかった全てのパターンを可視化することができました。以下に示すのは、ReflectとZapierとRescue

    自分たちの勤務時間を可視化して学んだ、3つの生産性ハック | POSTD
    okbm
    okbm 2016/05/18
  • Airbnbのメインデータベースをどうやって2週間で分割したか | POSTD

    スケーリング=時速160㎞で走行しながら自動車の全ての部品を取り替えること -Mike Krieger  Instagramの共同設立者@ Airbnb OpenAir 2015 Airbnbのピーク時のアクセス数は、毎年夏のピーク時で見ると年率3.5倍で増加しています。 2015年夏の旅行シーズンを前に、Airbnbの基盤チームは、夏季のアクセスで予想されるデータ通信量に対処するため、データベースのスケーリングで忙殺されていました。中でも特に全体への影響が大きかったプロジェクトが、特定のテーブルを、アプリケーションの機能に従ってそれぞれのデータベースに分割することを目的としたプロジェクトでした。これは通常、アプリケーション層のフォームの変更やデータ移行、データの整合性を保証する堅牢性テストなど、最小限のダウンタイムで多大な技術投資を必要とするものです。何週間もかかるエンジニアリング時間

    Airbnbのメインデータベースをどうやって2週間で分割したか | POSTD
    okbm
    okbm 2015/11/08
  • Vimの生産性を高める12の方法 | POSTD

    1. LeaderをSpaceキーにする Leader は素晴らしい概念です。キーの 組み合わせ ではなく 並び によって、操作を行えるようにするものです。私はこれを使っているので、操作のために” Ctrl -何らかのキー”の組み合わせを押す必要はめったにありません。 私は長い間、 , を Leader キーとして使っていました。ですがある時、キーボードの中で一番目立つキーにマップすることを思い付いたのです。Space(スペース)キーです。 これで私のVim生活は激変しました。今や、私は Leader をどちらの親指でも押すことができ、他の指は常にホームポジションにあります。 Leader がとても使いやすくなったので、私が様々なキーバインドで用いるようになったことは周知の話です。 2. 自分が特によく行う操作をLeaderにマップする 私は、自分がVimで作業を行っている中で、その時間の

    Vimの生産性を高める12の方法 | POSTD
    okbm
    okbm 2015/10/18
  • ゲームボーイアドバンスのゲームを書こう | POSTD

    子どもの頃は、ゲームボーイのゲーム(たいがい、かなりひどいもの)で遊ぶのにたっぷり時間を費やしました。 これまでは「標準の」一般的な目的に使われるコンピュータ以外のためにコードを書いたことはなかったのですが、最近考えるようになりました。 「ゲームボーイ(アドバンス)のゲームは簡単に書けるだろうか?」 ゲーム機には詳しくない方のために説明すると、ゲームボーイアドバンス(GBA)は、任天堂が発売した人気携帯型ゲーム機でした(写真下)。 240 x 160 (3:2) 15ビット カラーLCDディスプレイ、6種類のボタンと十字キーが付いています。 ゲームボーイアドバンス 内部を見ると、GBAのCPUは32-bit ARM7TDMI RISCコア(16.78MHz)です。 標準の32-bit ARMのインストラクションのほかに、 このチップは16ビットThumb のインストラクションも実行できます

    ゲームボーイアドバンスのゲームを書こう | POSTD
    okbm
    okbm 2015/09/24
    すげぇ…
  • プレイブック -プロダクション- | POSTD

    thoughtbotはWebとモバイルアプリを開発するWebコンサルティング会社。Railsの有名プラグインであるPaperclipやFactory Girlなどのオープンソースプロジェクトや、自社プロダクト(hound、Upcase)も開発している。ボストンをベースに、サンフランシスコ、デンバー、ニューヨーク、フィラデルフィア、ローリー、ストックホルムにオフィスを持っている。 私たちが生きている現代は、すでに多くの問題が解決されている魔法のような時代です。私たちはできる限りクライアントのプロダクトに注目し、できる限りの業務を外部サービスへ委託しています。 それは、時間とお金節約につながります。そしてこれらのサービスはすぐに使い始めることが可能です。私たちのクライアントは、開発者に数千〜数万ドルを支払う代わりに、月額数十〜数百ドルで済むサービスを利用しています。 私たちはよく、Googl

  • Railsアプリを66%スピードアップ ― Railsキャッシュの完全ガイド | POSTD

    (訳注:2016/3/2、頂いた翻訳フィードバックをもとに記事を修正いたしました。) Railsアプリでのキャッシングは、「たまに夕を一緒にするけれど、当はもっと頻繁に一緒にいるべき友達」に少し似ています。パフォーマンスをまじめに考えるRailsアプリのほぼ全てで、もっとキャッシングを使えるはずですが、ほとんどのRailsアプリでは、完全にキャッシングを避けています。それでも普通は、Railsで高速なサーバ応答を達成するための唯一の道は、キャッシングの知的な利用なのです。約250msの応答時間を、簡単に50~100msに高速化できます。 定義についての注意 ― この記事は、アプリケーション層のキャッシングのみを対象としています。HTTPキャッシング(これは全く別の難物で、あなたのアプリケーションに実装する必要はありません)は、別の機会で扱いましょう。 するべきキャッシングをしない理由

    Railsアプリを66%スピードアップ ― Railsキャッシュの完全ガイド | POSTD
    okbm
    okbm 2015/08/28
    長い
  • サーバの負荷テストのための、何百万ものHTTPリクエストを発生させる方法 | POSTD

    (注記:6/9、いただいた翻訳フィードバックを元に記事を修正いたしました。) 今回の記事は毎秒300万ものリクエストを処理できるほど強力で高性能なWebクラスタの構築についてのパート1になります。まず初めに、あまり多くはありませんが、私がこれまで使用したことのあるロードジェネレータツールをいくつか紹介します。私のようにてこずって時間をかけてしまわないよう、今回の記事が理解の手助けになれば幸いです。 ロードジェネレータはテストを目的とした数種類のトラフィックを発生させるプログラムです。それによって高負荷においてサーバがどのように動いているか、そのサーバの弱点はどこなのか、などが見えてきます。負荷テストを通じてサーバの限界を知ることは、サーバのレジリエンシーを測定する最適な方法であり、あらゆる問題に対する準備の手助けにもなります。 ロードジェネレータツール 負荷テストをする際に頭に入れておくべ

    サーバの負荷テストのための、何百万ものHTTPリクエストを発生させる方法 | POSTD
  • RESTのベストプラクティス | POSTD

    現在ではREST APIはとても一般的な話題です。ほとんどすべてのWebアプリケーションの一部分となっています。シンプルで一貫性があり実際的なインターフェースは必須です。これは皆さんのAPIを他の人が使うことをとても容易にします。皆さんにとってはRESTの実践が日常的に感じられるかもしれませんが、RESTをあまり尊重しない人々もよく見かけます。これがRESTについて投稿するきっかけでした。 この記事にはRESTfulなAPIを設計する時に考慮すべきベストプラクティスがあります。 注意 : ここでのベストプラクティスは、私が過去の経験に基づいて良いと考える事例です。もし違う考えをお持ちであれば、お気軽にメールをくだされば意見交換できると思います。 APIのバージョンを示す APIのバージョンは必須であるべきです。これがあると時間が経ってAPIが変わっても影響を受けません。その方法の1つはUR

    RESTのベストプラクティス | POSTD
    okbm
    okbm 2015/01/16
  • define CTO ― CTOとは何かを定義する | POSTD

    私は2010年にエンジニアとしてStripeに加わりました。まずバックエンドのインフラに取り組むことから始めました。サーバーアーキテクチャの設計、クレジットカードの金庫室の作成、人々の仕事を容易にするための内部の抽象化を作り出すことです。私はコードを書くことが好きでしたが、他のことにもかなりの時間を費やしました。求人プログラムの理解、企業文化の形成、あるいは最初の Tシャツ を作ることです( 最初のデザイナー を雇ったのでこれはできなくなりましたが)。コーディングを好んだので、私はこれらのことを特にやっていた訳ではありませんでした。代わりに、この環境への非常に強いビジョンがありました。環境の一部になって、存続させるために尽力するつもりでいました。 時間が経つにつれて、厳密にはコードを書くこと以外で責任がますます増えました。 Nelson Elhage が望んだように、私の仕事はフルタイムの

    define CTO ― CTOとは何かを定義する | POSTD
    okbm
    okbm 2014/12/10
  • ソフトウェアエンジニアがたどる成長過程と失敗の行きつく先 | POSTD

    これからご紹介する私の試みはなかなか難しい側面があり、物議をかもすかもしれません。また、お見せするのは初めてなので完璧とは言えないかもしれません。私はソフトウェアエンジニアのスキルとその影響力を評価するシステムを開発しようとしています。少なくとも、プログラマが成長していく理想的な成長過程を大まかに描いてみようと思います。評価スコアは0.0から3.0まであり、それぞれの数字は専門能力を開発していく際の出発点を表しています。 このシステムは主にビジネスの観点から見た、ソフトウェア業界が求めるものに基づく 実務的な スケールです。数学的な才能や高速アルゴリズムを書く能力、Linuxカーネルの内部構造に関するプログラマの理解の深さなどを評価するスケールではありません。もちろんこうした能力は重要ですし、通常、エンジニアのスキルとともに伸びていく能力ですが、私のシステムが焦点を当てたいのはそこではあり

    ソフトウェアエンジニアがたどる成長過程と失敗の行きつく先 | POSTD
    okbm
    okbm 2014/11/22
    オチはともかく過程はおもしろい
  • デジタルノマドの旅で僕が学んだこと | POSTD

    変化、インフラ、旅行、道具、宿泊施設などなど この記事では、iPhoneのVSCO Camで撮った写真を交えながら、僕がこの1年を通して学んだ実用的なノマドのテクニックをいくつか紹介します。最近デジタルノマドに関する議論が盛んになっていますが、デジタルノマドという肩書きは今から数年後にはありふれたものになっているでしょう。それまでの間、僕たちのコミュニティの経験から多くのことを皆さんとシェアしていきたいと思います。今回は僕の話を聞いてください。 注:この記事は旅行全般を論じたものではありません。旅行保険、お金の処理、マイレージサービス、現地でまかり通っている習慣への対応、時差ボケ、外国語の学習、珍しい屋台フードなどについては、すでに他のところで存分に語られています。 今年はじめての旅-フランス、パリ(写真: Manual Schmalstieg ) 一度に1つずつ変える。 ノマドライフは日

    デジタルノマドの旅で僕が学んだこと | POSTD
    okbm
    okbm 2014/10/22
    デジタルノマドとかあるのか。エンジニアが旅しながら世界中のコワーキングスペースとか回ってる感じ。楽しそう
  • 1