タグ

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

  • POSTDをGatsby.jsベースに変更しました | POSTD

    POSTDの運用がリクルートからニジボックスに移管される際に、デザインのリニューアルと同時にコードベースをGatsby.jsに変更しました。 記事では、運用移管に至るまでの過程を踏まえつつ、現在のPOSTDの構成を紹介します。 移管前のPOSTD 前述の通り、POSTDは株式会社リクルートのインキュベーション部門Media Technology Lab.(現新規事業開発部)で運用されていました。 最後に公開した記事は、2019年3月28日の「PHPはもうダメだ、PHP万歳!」となっています。 もともとはWordPressによる運用が行われていましたが、運用体制の関係で静的HTMLをFirebaseで公開する形式になっていました。 ニジボックスへの引き継ぎに伴い、記事の翻訳を始めとしたサイト運用を再開することになり、改めてCMSの形式に変換する必要が出てきます。 Gatsby.jsを選ぶ

    POSTDをGatsby.jsベースに変更しました | POSTD
  • マイクロサービスはもう十分 | プロダクト・サービス | POSTD

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

    マイクロサービスはもう十分 | プロダクト・サービス | POSTD
    Surgo
    Surgo 2017/07/04
    See: 12factor.net
  • Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD

    9つのおとぎ話 CSSは迷走しています。JavaScriptでドキュメントをスタイリングしているプロジェクトでは、多くの場合誤った理由からその方式を選択しています。稿では、よくある誤解(神話)を列挙し、そうした問題に対するCSSソリューションを紹介します。 稿は、特定のプロジェクトや人物への攻撃を意図するものではありません。ここでは、“CSS in JavaScript”(CSS in JS)を styled-components を使用することと定義します。これは、Reactのコンポーネントをスタイリングする最近のトレンドとなっています。 styled-components の作者である Max Stoiber と Glen Maddern 、また彼らに協力した人々は皆、卓越したアイデアと善意にあふれる優秀な人々です。 完全な透明性のために断っておくと、私は react-css-mo

    Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD
  • 畳み込みニューラルネットワークの仕組み | POSTD

    (編注:2016/11/17、記事を修正いたしました。) ディープラーニングの分野でテクノロジの進化が続いているということが話題になる場合、十中八九畳み込みニューラルネットワークが関係しています。畳み込みニューラルネットワークはCNN(Convolutional Neural Network)またはConvNetとも呼ばれ、ディープニューラルネットワークの分野の主力となっています。CNNは画像を複数のカテゴリに分類するよう学習しており、その分類能力は人間を上回ることもあります。大言壮語のうたい文句を実現している方法が当にあるとすれば、それはCNNでしょう。 CNNの非常に大きな長所として、理解しやすいことが挙げられます。少なくとも幾つかの基的な部分にブレークダウンして学べば、それを実感できるでしょう。というわけで、これから一通り説明します。また、画像処理についてこの記事よりも詳細に説明

    畳み込みニューラルネットワークの仕組み | POSTD
    Surgo
    Surgo 2016/11/17
  • Bluebirdの高速化を可能にする、3つのJavaScriptパフォーマンスの基礎 | POSTD

    最近Reaktorが掲載した『 Promises made by a Reaktor developer had an impact on the industry article 』で約束した、Bluebird promiseライブラリの製作者であるプログラマのPetka Antonovからの知見です。 Bluebirdは広く使用されているJavaScript用のpromiseライブラリで、同じような機能が実装されているにも関わらず、他のpromiseよりも100倍速いという理由から最初に知られるようになったのは2013年でした。Bluebirdが高速な理由はライブラリ全体にJavaScriptの最適化の基礎を一貫して適応しているからです。この記事ではBluebirdの最適化に使用する3つの重要な基礎について詳細に説明します。 1. 関数オブジェクトの割り当てを最小限に抑える オブジェク

    Bluebirdの高速化を可能にする、3つのJavaScriptパフォーマンスの基礎 | POSTD
  • Dropboxが構築したMagic Pocketの中身:エクサバイトのストレージシステムの仕組み | POSTD

    自社で構築した数エクサバイトのストレージシステム、 Magic Pocketを発表 して以来、多くの好意的なフィードバックをいただいています。この発表に続きまして、舞台裏からシステムの興味深い側面を見ていただくことができる技術ブログシリーズを投稿していこうと思います。保護の仕組み、運用ツール、ハードウェアとソフトウェアの境界線上の革新などです。しかし、まず、背景を説明する必要があるでしょう。稿では、Magic Pocketのアーキテクチャ概略と設計で使われた基準についてお話しします。 紹介の投稿 で説明しましたように、Dropboxには、ファイルの内容と、ファイルやユーザについてのメタデータという2種類のデータが保存されます。Magic Pocketは、ファイルの内容を保存するのに使われるシステムです。保存するファイルは、ブロックに分割されて耐久性のためにレプリケーションされ、複数の地域

    Dropboxが構築したMagic Pocketの中身:エクサバイトのストレージシステムの仕組み | POSTD
  • Linuxシステムコール徹底ガイド | POSTD

    要約 この記事では、LinuxカーネルにてLinuxプログラムがどのように関数を呼び出すのかについて紹介していきます。 システムコールを行う様々な方法、システムコールを行うための独自のアセンブリの作成方法(例あり)、システムコールへのカーネルエントリポイント、システムコールからのカーネルイグジットポイント、glibcのラッパ関数、バグなど多くの点について説明します。 要約 システムコールとは? 必要条件に関する情報 ハードウェアとソフトウェア ユーザプログラム、カーネル、CPUの特権レベル 割り込み モデル固有レジスタ(MSR) アセンブリコードでシステムコールを呼び出すことの問題点 レガシーシステムコール 独自のアセンブリを用いたレガシーシステムコールの使用 カーネル側での int $0x80 エントリポイント iret を使用したレガシーシステムコールからの復帰 高速システムコール 3

    Linuxシステムコール徹底ガイド | POSTD
  • シンプルなコンテンツベースのレコメンデーション・エンジンをPythonで実装する | POSTD

    ECサイト向けのレコメンデーション・エンジンを構築すると仮定しましょう。 構築する方法としては、コンテンツベースか協調フィルタリングを使用する2つの進め方があります。それぞれのメリットとデメリットを見てみましょう。そして、コンテンツベースエンジンを 簡単に実装する方法 について探りましょう(Herokuにデプロイ可能です)。 コンテンツベースを使用するとどのようになるのか先に知りたい方は、ほぼ同じレコメンデーション・エンジンが Groveの商品(紹介)ページで使用 されていますので、見てみてください。 コンテンツベースのレコメンデーション・システムはどのように機能するのか 商品説明や商品名、価格などの実際のアイテムプロパティなどが使用されるため、コンテンツベースシステムで構築されていると周りには思われているのではないでしょうか。これまで一度もレコメンデーション・システムの使用を検討したこと

    シンプルなコンテンツベースのレコメンデーション・エンジンをPythonで実装する | POSTD
  • ソフトウェアエンジニアは一般的な人々と比べてどのくらい稼ぐのか : Pythonでのデータ収集・処理・可視化 | POSTD

    (訳注:2016/7/15、記事を修正いたしました。) 記事では、世界50カ国におけるソフトウェアエンジニア年収の中央値と国内の年収の平均値(1人当たりのGDP)を比較します。その方法は、まず lxml を使ってWebページからデータを収集し、 Pandas のデータフレームに変換した後、クリーニングを行います。そのデータに対し matplotlib を使い、全体としての傾向を可視化する散布図と棒グラフを作成するというものです。一般的な人々と比較するとソフトウェアエンジニアはどのくらい稼いでいるのか、その収入が高い国と低い国を比較してみましょう。 データは PayScale と 国際通貨基金(IMF) から得たもので、2014年5月に Bloomberg に掲載されたものです。そこに、PayScaleが最も入手しやすい50カ国の統計データが含まれていました。ソフトウェアエンジニアに関す

    ソフトウェアエンジニアは一般的な人々と比べてどのくらい稼ぐのか : Pythonでのデータ収集・処理・可視化 | POSTD
    Surgo
    Surgo 2016/06/20
    おかねください
  • CSSコーディングテクニック : 詳細度、単位、flexbox、mixin | POSTD

    (2016/7/15、記事を修正いたしました。) 最近、ビギナーからベテランのデベロッパに至るまで、CSSに手を焼く人を多く見かけます。そうした人たちの中には、CSSの機能を好まず、別の言語を使った方がいいのではないかと考えている人もいます。もともと、CSSのプロセッサもこうした考え方から生まれました。書くべきコードを少なくできることを期待して( 以前の記事で ご紹介しているとおり、普通はそうではありません)CSSのフレームワークを使う人もいれば、CSSを完全に見限り、スタイルの指定にJavaScriptを使うという人もいます。 しかし、あなたが取り組んでいるパイプラインにCSSプロセッサをいつも取り入れる必要があるとは限りません。どんなプロジェクトであれ、開始の時点から、膨れ上がったフレームワークをデフォルトに取り込む必要はありません。また、CSSを使うところで、代わりにJavaScri

    CSSコーディングテクニック : 詳細度、単位、flexbox、mixin | POSTD
    Surgo
    Surgo 2016/06/13
  • Node.jsでのJavaScriptメモリリークを発見するための簡単ガイド | POSTD

    目次 初めに 極小理論 ステップ1. 問題の再現と確認 ステップ2. 最低3回のヒートダンプ採取 ステップ3. 問題の発見 ステップ4. 問題解決の確認 他のリソースへのリンク まとめ Something you might want to bookmark: Simple Guide to Finding a JavaScript Memory Leak in Node.js by @akras14 https://t.co/oRyQboa8Uw — Node.js (@nodejs) January 6, 2016 注釈:お気に入りに登録してください。 Simple Guide to Finding a JavaScript Memory Leak in Node.js (Node.jsでのJavaScriptメモリリーク発見簡単ガイド) @akras14 http://www.ale

    Node.jsでのJavaScriptメモリリークを発見するための簡単ガイド | POSTD
  • TypeScriptを使った方がいいケースとは? | POSTD

    去年の夏、私たちは大量のコードベース(18,000行以上の コード行数 )をJavaScriptからTypeScriptへと変更しました。この移行作業を通じて、両者の相違点や類似点について大いに学び、TypeScriptの優れたユースケースや、TypeScriptを使うべきではないケースなどについて考えてみました。 型システムとは補助輪のようなものです。転倒防止してくれる代わりに、遅くなり、操作性が制限されます。 TypeScriptのユースケース コードサイズ :ソースコードが膨大である場合、また複数の人がプロジェクトに従事している場合、型システムは明らかなエラーを防ぐのに役立ちます。 特に SPA の場合は当てはまります。誰かが変更したコードが他の人のコードを破損させてしまう可能性があるなら、何らかの安全機構を持つ方がいいでしょう。TypeScriptトランスパイラ は明白な誤りを

    TypeScriptを使った方がいいケースとは? | POSTD
  • 全てのJSライブラリはTypeScriptで書かれるべきである | POSTD

    私はJavaScriptプログラマで、ライブラリをいくつか作っています。しかし最近では RxJS version 5 のために TypeScript を書いています(RxJS version 5は Angular 2 の内部で使われていますが、Angular 2もTypeScriptで書かれています)。現在私は Cycle.js をTypeScriptで書きなおしているところです。 静的型付けと動的型付けの優劣の話はやや議論を呼ぶ話題なので、その議論をすべて再発させるつもりはありません。しかし、私は、 沢山の開発者に使われることを意図した 全てのJavaScriptライブラリはTypeScriptで書かれるべきだと信じています。これはアプリケーションやウェブサイトをTypeScriptで書くということの話ではなく、ライブラリに関する話です、ライブラリはTypeScriptで書かれるべきで、

    全てのJSライブラリはTypeScriptで書かれるべきである | POSTD
  • APIデザインにおける七つの大厄介 | POSTD

    (編注:2016/7/29、頂いたフィードバックを元に記事を修正いたしました。) APIをデザインするということは、科学であり技術でもあります。多くの頭の良い人たちが失敗を重ねてきました。成功している人たちは、APIの主な目的を念頭においてデザインしているのです。その目的とは、「開発者たちをウンザリさせる」ということです。 親愛なる仲間たち、その崇高っぽい追求を称えるべく、「APIデザインにおける七つの大厄介」を共に数え上げようではありませんか(私がしたことを見てください)。 リスティクル(箇条書き形式の記事) を書くつもりはないのですが、少なくともタイトルは 教養ある宗教的文献が参照元 です。 まず、ルールを決めましょう。ここでは、成功し、きちんと機能しているAPIを取り上げます。ですから、「動かない」とか、「大量のセキュリティホールがある」といったことは厄介ごとに数えません。「致命的」

    APIデザインにおける七つの大厄介 | POSTD
  • Amazon AWSでユーザ数1100万以上にスケーリングするためのビギナーズ・ガイド | POSTD

    あるシステムを、1人のユーザから1100万人以上にスケーリングするにはどのようにすれば良いのでしょうか。Amazonのウェブサービスソリューションアーキテクトである Joel Williams が AWS re: Invent 2015 Scaling Up to Your First 10 Million Users でスケーリング方法について素晴らしいプレゼンをしています。 AWS上級者のユーザには適さないプレゼンですが、AWS初心者やクラウド初心者、Amazonが次々と送り出す新機能の流れについていけていない人が始めるには素晴らしい内容だと思います。 おおよその見当は付いていると思いますが、このプレゼンはAmazonによって提供されているため、どの問題についても解決策として提案されているものは全てAmazonのサービスになります。amazonのプラットフォームの役割は、印象深く、分か

    Amazon AWSでユーザ数1100万以上にスケーリングするためのビギナーズ・ガイド | POSTD
  • ES6 チートシート | POSTD

    日々の仕事の中で役に立つES2015(ES6)のティップス、コツ、ベストプラクティス、プログラムの見をご紹介します。コントリビューション歓迎です! 目次 var vs. let / const IIFEからブロックベースへ アロー関数 文字列 デストラクチャリング モジュール パラメータ クラス シンボル マップ WeakMaps Promises ジェネレータ Async/Await var vs. let / const var の他に、値を格納する let と const という識別子が新たに追加されました。 var とは異なって、 let と const はクロージャのスコープ内で最初に記述されることはありません。 var の使用例です。 var snack = 'Meow Mix'; function getFood(food) { if (food) { var snack

    ES6 チートシート | POSTD
    Surgo
    Surgo 2016/02/12
  • Classy CSS: Sassスタイルシートへのプログラマティックアプローチ | POSTD

    この記事を書き始めたのは、現在使われているCSS命名規則やスタイルの融合についての見解を Atomic OOBEMITSCSS という題名で風刺的な記事にまとめ、SitePointに投稿した数週間後です。それが8月頃のことだったのですが、この投稿はその後の私の生活に影響を及ぼしました。冗談のつもりで「 Atomic OOBEMITSCSS 」という題名をつけたがために、世間の人々はその題名を取り上げ、話題にしたのです。(正直言って、その内容について直接人々に質問することは、私にとって非常に愉快なことでした)。そして今年のSassConfで @extend の利用について議論したことがきっかけで、この見解を再検討する必要性に気づきました。 Classy CSSについて 上記で紹介した記事(「Atomic OOBEMITSCSS」)では、コンポーネントをマークアップする方法について(Pint

    Classy CSS: Sassスタイルシートへのプログラマティックアプローチ | POSTD
    Surgo
    Surgo 2016/01/05
  • Gitのコミットメッセージの書き方 | POSTD

    (訳注:2015/10/31、いただいた翻訳フィードバックを元に記事を修正いたしました。) (訳注:2015/11/1、いただいた翻訳フィードバックを元に記事を再修正いたしました。) 訳: プロジェクトが長引くほど、私のGitのコミットメッセージは情報が薄くなっていく。 イントロダクション | 7つのルール | ヒント イントロダクション:なぜ良いコミットメッセージを書くことが重要か Gitのリボジトリのログをランダムに閲覧すると、ひどいコミットメッセージを目にすることがあります。例として、私が昔書いたSpringにコミットした これらのgem を見てみましょう。 $ git log --oneline -5 --author cbeams --before "Fri Mar 26 2009" e5f4b49 Re-adding ConfigurationPostProcessorTest

    Gitのコミットメッセージの書き方 | POSTD
    Surgo
    Surgo 2015/10/23
  • Pythonや機械学習、そして言語の競争について – 極めて主観的な見地から | POSTD

    (訳注:2016/1/5、いただいた翻訳フィードバックを元に記事を修正いたしました。) よくある主観的で痛烈な意見を題名に付けたクリックベイト(クリック誘導)記事だろうと思われた方、そのとおりです。以前指導してくれた教授から教わったある洞察/処世術は、些細でありながら私の人生を変えるマントラとなったのですが、私がこの記事を書いたのはそれによるものです。「同じタスクを3回以上繰り返す必要があるなら、スクリプトを書いて自動化せよ」 そろそろ、このブログはなんだろうと思い始めているのではないでしょうか。半年振りに記事を書いたのですから。ツイッターで書いた Musings on social network platforms(ソーシャル・ネットワークプラットフォームについてじっくり考える) はさておき、この半年の間書き物をしていないというのはうそです。正確には、400ページの を書きました。

    Pythonや機械学習、そして言語の競争について – 極めて主観的な見地から | POSTD
    Surgo
    Surgo 2015/09/30
  • 優秀なJavaScriptの開発者になるための5か条 | POSTD

    (注記:7/15、いただいた翻訳フィードバックを元に記事を修正いたしました。) 子供の頃、私の興味は互いに関係性のない様々な分野に及んでいました。数学歴史も大好きでした。 ルネッサンスマン 、つまり 博学者 と言う、複数の分野に秀でた人になりたいと思っていました。これはとても難しい課題で、私は突如として、器用貧乏な人になってしまう危機に直面したのです。 私は特定の分野に特化しなくては、と考え始めました。そうすればたとえルネッサンスマンにはなれなくても、少なくとも、器用貧乏にならなくても済むと思ったのです。どうしたらソフトウェア開発をするのに必要な広い知識を保ちながら、1つの分野で専門性を高めることができるのでしょうか。 この記事では、過去5年間、私が良いJavaScript開発者になるために使ったテクニックとリソースの概要をお伝えしようと思います。 最近の多くのWeb開発者は、ある共通の

    優秀なJavaScriptの開発者になるための5か条 | POSTD
    Surgo
    Surgo 2015/07/15
    優秀なJavaScriptの開発者になるための5か条 | プログラミング | POSTD