タグ

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

  • 最も重要なプロダクション・コードにLuaを使う : PythonからLuaへの移行 | POSTD

    Distelli Agentは今、実行ファイルを1つダウンロードするだけで簡単にインストールできます。この実行ファイルを使うと、適切な管理プロセスを持つエージェントをインストールしたり、新規にリリースしたものをアップロードしたりできるようになります。また、このエージェントはプラットフォームを問わず利用可能で、わずかな容量のCPUやメモリフットプリント(1パーセント未満のCPU使用率、10メガバイト以下のメモリ)で動作します。 私たちは、上記のパフォーマンスをある程度信用した上で、PythonからLuaに移行することにしました。 Pythonで挑む 私がDistelliに入社したのは、2014年の12月のことです。当時、Distelli Agentやコマンドラインツールは、システムで標準となっているバージョンのPython(サポートバージョンは2.4から2.7)を使う数個のターボールとして実

    最も重要なプロダクション・コードにLuaを使う : PythonからLuaへの移行 | POSTD
  • いかにしてGoogleは他の企業では成し得ないような驚くべきデータセンターネットワークを作り上げたか | POSTD

    Googleは最近、正当に築き上げてきた誇りを抱きつつ、次のような 発表をしました 。 Googleは、先日開催された2015 Open Network Summitで、5世代の社内ネットワーク テクノロジーの詳細を初めて公開しました。初の社内データセンターネットワークである10年前のFirehoseから最新世代のJupiterネットワークに至るまで、Googleは1つのデータセンターネットワークの能力を100倍以上に増強してきました。実際、現在のJupiterファブリックは二分割帯域幅で1ペタビット/秒を超えています。これだけの能力があれば、10万台のサーバがそれぞれ10Gb/秒で情報を交換でき、アメリカ国会図書館所蔵図書のスキャンしたコンテンツ全体を1/10秒未満の時間で読み込むことができるでしょう。 Googleのデータセンターネットワークは、目に見えるGoogleのほとんどの仕事

    いかにしてGoogleは他の企業では成し得ないような驚くべきデータセンターネットワークを作り上げたか | POSTD
  • Goで毎分100万リクエストを処理する | POSTD

    Malwarebytes は、驚くべき成長を見せています。1年以上前にこのシリコンバレーの会社に入社して以来、私の主な仕事は急成長するセキュリティ企業の力となるシステムの設計と開発です。日々数百万人が利用する製品をサポートするために必要な、全ての基盤をつくります。私は12年以上、アンチウイルスとアンチマルウェアに関わるいくつかの会社で働いてきました。毎日処理する膨大なデータのせいで、これらのシステムがどれだけ複雑なものになるかを理解しています。 面白いことに、ここ9年ほどで私が携わったWebのバックエンド開発のほとんどは、Ruby on Railsが使われていました。誤解されないように言っておきますが、私はRuby on Railsが大好きですし、すばらしい環境だと思っています。しかし、Rubyでシステムを設計し始めると忘れてしまうのは、マルチスレッド化や並列化、高速化、メモリオーバーヘッ

    Goで毎分100万リクエストを処理する | POSTD
  • Goで使える10のテクニック | POSTD

    ここでは、私がたどりついた最善のやり方を紹介しましょう。個人的に過去数年にわたって大量のGoコードと付き合ってきた経験から集めたものです。これらは全て非常にスケーラビリティがあると思っています。私が、スケールする、と言うときは次のような意味があります。 アプリケーションが求める環境は、アジャイル環境の中で変化していきます。開発の3、4か月後に、全てをリファクタリングする必要が出てくるなど、考えたくもないはずです。新しい機能は簡単に追加できなくては意味がありません。 あなたのアプリケーションは多くの人々によって開発されます。可読性が高く、維持しやすいものでなくてはなりません。 あなたのアプリケーションは大勢の人々に使われます。バグは容易に特定でき、修正できなくてはなりません。 長期的にみるとこれらのことが重要になる、ということを私は今までに学んできました。小さなことであっても、多数に影響しま

    Goで使える10のテクニック | POSTD
  • モノリシックなRubyからGoによるマイクロサービスへ | POSTD

    過去9年わたりWebアプリケーションを開発してきたNiket氏( @nexneo )は、2013年からGoを使って作業をするようになりました。この講演では、彼がどのようにRubyのモノリシックアプリケーションを分解しつつ、Goで記述されたマイクロサービスへと至ったかについて説明しています。講演のスライドは、 speakerdeck.com/nexneo/joy-of-single-purpose-services-in-go で閲覧可能です。 Single purpose servicesというのは、単一の問題を解決するサービスのことです。 一般的に マイクロサービス としても知られています。 Niket氏は、学校側が親御さんたちと連絡したり成績表や出席を管理したりするための人気オンラインプラットフォーム、 Beehively の開発者です。BeehivelyはRubyベースのアプリケーシ

    モノリシックなRubyからGoによるマイクロサービスへ | POSTD
  • 若手開発者の後悔 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) これはある仕事熱心な若手開発者のほぼ実話です。2004年の後半、この若手開発者は小さな会社で働き始めました。条件は全て彼の望みどおりでした。給料はいいし、扱うのは彼の得意とするプログラミング言語、アプローチの複雑性、モデリングのアーキテキチャでした。 彼にとって今回の会社が初めての職場ではありませんでした。しかし、ここでの最初のプロジェクトは結果的に 問題だらけ に終わりました。当時、この若手開発者は、機能は絶対に変わらないものだと思っていました。しかし、それは間違いでした。機能が変更されるたびに完全なリファクタリングを行わなければなりませんし、バグを引き起こして膨大な時間を無駄にしてしまいます。彼は、テストを書くといった実直な方法も試してみましたが、書いたテストはメンテナンスが必要な上、書くのに時間

    若手開発者の後悔 | POSTD
    cubicdaiya
    cubicdaiya 2015/03/24
    オチがw
  • フロントエンドとバックエンド | POSTD

    バックエンドエンジニアフロントエンドエンジニアの違いは、前者は1つの環境で仕事をするのに対し、後者は予期せぬことが起こる可能性のある数多くの環境で仕事をするということにあります。 「複雑なJavaScriptで動くWebサイトやWebアプリが動作する環境は、単一的で一枚岩のものである」――この無意識な思い込みこそが、バックエンド中心に開発されたWebベースプロジェクトにおいてフロントエンドエンジニアが目にする問題の根的な要因であると私は考えています。 さらに悪いことに、バックエンドエンジニアは、フロントエンドエンジニアよりも複雑なアプリケーションを構築するのに長けていると考えています。実際そうなのかもしれないのですが、好ましくないのは、彼らの中にはフロントエンドについて学ぼうという意識に欠けている人がいることです。 アプリケーションの構築において、数多くの困難な環境に対応するフロントエ

    フロントエンドとバックエンド | POSTD
    cubicdaiya
    cubicdaiya 2015/03/03
    え? -> “バックエンドエンジニアとフロントエンドエンジニアの違いは、前者は1つの環境で仕事をするのに対し、後者は予期せぬことが起こる可能性のある数多くの環境で仕事をするということにあります。”
  • GoogleがWebでのSHA-1の利用停止を急ぐ理由 | POSTD

  • 多種多様な基準から見るプログラマの市場価値 | POSTD

    私は毎日、 Teamed.io で働くことに興味のあるプログラマから何通かメールをもらいます。彼らへの最初の質問は「あなたのレートは?」( 当社は時給ベースで給与を計算します )ということです。何より驚かされるのは、2つの方向性で、誤った試算をしているプログラマが多く見られるということです。 時給5ドルから500ドル(600円から60,000円)まで答えはさまざまです。決して否定はしませんが、私自身で代案を出してみます。このブログ記事では、どういった要素を計算に入れるか、または入れないかを述べたいと思います。私の個人的なキャリアもありますが、これが業界のスタンダードとは思わないでください。あくまで客観的で論理的だと思っていますが。それでは説明しましょう。 オープンソースへのコントリビューション ソフトウェア開発者にとってまずポイントとなり、かつ重要となる特性です。あなたはオープンソースプロ

    多種多様な基準から見るプログラマの市場価値 | POSTD
  • なぜsystemdなのか? | POSTD

    このブログ記事は2014年5月21日に行った私の講演の内容に基づいています。 ここ数年、GNU/LinuxのディストリビューションはSysV initを避ける傾向にあり、代わりに多種多様な新しいinitシステムへと移行が進んでいます。SysV initに満足しているユーザにとっては、これは予想外の流れでしょう。問題なく使えるのに、なぜ多くのディストリビューションはSysV initに背を向けているのでしょうか。 この記事ではSysV initの問題点と、それに対してsystemdがどんな解決法を提供しているのか説明してみようと思います。 私は特にsystemdの大ファンだというわけではなく、ただ広く使われているツールだという認識以上の思い入れは無いことだけお断りしておきます。 initシステムの役割とは何か? コンピュータが起動する時には、ビルトインされたファームウェア(コンピュータの場合

    なぜsystemdなのか? | POSTD
  • Go言語がダメな理由 | POSTD

    私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの

    Go言語がダメな理由 | POSTD
  • 1