タグ

programmingに関するLeighのブックマーク (192)

  • 「バックエンドの経験はなかった」Instagram創業者は、どうやってシステムをスケールさせてきたか

    昨日のPinterestの記事「Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用」に続いて、やはり写真を中心としたサービスで急成長してきたInstagramのスケーラビリティについて、まとめてみました。 InstagramもPinterestと同様に、基Amazonクラウド上でPythonとフレームワークのDjangoを使ったシステムを構築しています。興味深いのは、創業者の二人ともバックエンドの経験がないなかで試行錯誤をしてシステムをスケールさせてきた点です。 Instagramは先月、Facebookに買収されると発表されています。この先、Instagramのシステムはどう変わっていくのでしょうか。 Instagramのシステム構成 約半年前、昨年12月にInstagramのブログに投稿された記事「What Powers In

    「バックエンドの経験はなかった」Instagram創業者は、どうやってシステムをスケールさせてきたか
  • Node.js チュートリアル | Node ビギナーズブック

    書について 書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、書のいわゆる最終版となります。 つまり書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。 書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者 書は、RubyPythonPHPJavaのような、少なくともひとつのオブジェクト指向言語を理解しており、 JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ

  • 「Pull Request」 はオープンソースに限らず使える優れた開発フローだ - 肉とビールとパンケーキ by @sotarok

    チーム開発において、「チケット/Issue」「TDD」「コードレビュー」など、ソースコードの変更に対する効果的な開発フローについてよく考えるのだけど、なんにしてもこのあたりは非常に課題が多く、各社各コミュニティで色々なやり方が模索されているポイントだと思う。 で、まぁご多分に漏れず僕もよく考えるわけだけど、現状その過程で Pull Request こそが非常に効果的なのではないか、と思うので、ちょっとまとめてみようかと思う。 もちろん、言うまでもないようなことだよ、という人もいるかもしれないけど、そういう人がたくさんいると、非常に喜ばしいことだね。 Pull Request とは GitHub でこう呼ばれているので、こう呼ぶことにするが、ここでは、複数のリポジトリ/ブランチ間でのオープンな patch のやりとりのことだと考える。 あと、自分が使っているのが Git なので、ここでは G

    「Pull Request」 はオープンソースに限らず使える優れた開発フローだ - 肉とビールとパンケーキ by @sotarok
  • Ruby on Railsが簡単というのは嘘 - toyoshiの日記

    WinユーザがRailsアプリをこれから公開しようと思った場合 Windowsで学習を開始するのは不可能なのでLinuxをいれる でもWindowsで進めようとしてmsysGitをいれたりするが結局半日無駄にする なぜかgemが最新じゃないと怒られる gemを単純に使っても後から困るのでrvmかrbenvが必要。使い方覚えないといけない やっとRails3.2導入。javascriptエンジンが入ってないので起動しない やっと起動 HTML書いてるのは情弱だけ => hamlを覚える js書いてるのは情弱だけ => coffee scriptを覚える css書いてるのは情弱だけ => scssを覚える テスト書いてないコードはレガシーコードっていわれる しかたないのでRspecいれる => Rspec覚える ユニットテストだけではしかたないといわれcapybaraもいれる => capyb

    Ruby on Railsが簡単というのは嘘 - toyoshiの日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Ruby on Railsを学ぶ方法 - toyoshiの日記

    [追記]エントリは2012年のものです 2019年1月現在おすすめの学ぶ方法は Ruby on Rails チュートリアル:実例を使って Rails を学ぼう をやることです。こちらは有志によって作成・翻訳されている素晴らしい教材で、RailsだけでなくGitやテストといったことも学べます。盛りだくさんですのでおすすめは最初はGitやテストについては無視して1周やってみて、わかったらそれらも含めて2周目をやるという方法です 以下オリジナル記事 前回のエントリは僕が新しく請求書管理サービスmisocaを手伝ってくれる人にRailsを教えたときに思ったことだ。(追記:その人はプログラミングは十分わかってる人だ) 一応アンサーエントリとして、次に教えるならこうするというのをメモしておく 準備 Windowsで開発しない(Windowsの人はVMWareなどでUbuntuとかのLinux環境をい

    Ruby on Railsを学ぶ方法 - toyoshiの日記
  • 全裸で学ぶMVC事始め - ゆーすけべー日記

    一般的なWeb Application Framework(WAF)ではMVCという設計及び実装における概念が取り入れられています。 MVCに従ってつくるのが全てではありませんが、 WAFを使うと共に、一度はMVCを用いたWebアプリの開発経験はしておいた方がよいと思います。 MVCはモデル(Model)、ビュー(View)、コントローラ(Controller)の3つの単語を組み合わせた言葉で、 この3つで概念が成り立っています。 クライアントがWebに対してリクエストをした時に、これら3つがそれぞれ連動して結果を返します。 一般的には以下のような処理経路をたどります。 クライアントがWebサイトにリクエスト コントローラがリクエストの処理を行い、モデルとビューを動かす 必要に応じてモデルを呼び出す 結果のデータをビューに渡す ビューがHTML化などをしたものをクライアントに表示する MV

    全裸で学ぶMVC事始め - ゆーすけべー日記
  • 「このプログラムは◯◯言語で書きました」の本当の意味 | quipped

    例:「このプログラムはC言語で書きました」=「このプログラムはGDBでひたすらデバッグしてvalgrindでメモリリークをチェックしました」 以下絵が続きます。チャートそのものはd3.jsで描かれていて、このgistを拝借して手を加えています。

    Leigh
    Leigh 2012/02/28
    D言語の存在感。
  • JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード - sifue's blog

    そろそろ4月も近いということもあって、新たにWeb業界やSIer業界に入るぞという方がプログラミングの勉強をし始めているころでしょうか。最近は、エンタープライズでもWebクライアントが主流になりつつあるのでJavaScriptの習得は避けては通れない道だと思います。また、Node.js等サーバーサイドのJavaScriptも出てきたこともあって、非常に有用な言語になりつつあります。 そんなJavaScriptを学び始めている人の中でも、ある程度プログラミングをやったことがある人がJavaScriptの綺麗な書き方を学ぶのに絶対理解しておいた方が良い300行程度のソースコードがあります。 それは、JavaScript: The Good Partsに載っているJSONパーサのコードです。 JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 作者:

    JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード - sifue's blog
  • 「ハッカーはVimを使う」 騙される若者たち

    Eclipseがemacsやvimより優れている点を挙げてみよう。 ・リファクタリング機能が強力 ・CVSリポジトリの構成を直接覗ける ・デバッガがグラフィカル ・設定できる警告メッセージの種類が豊富。 ・復元機能が非常に充実している。 CVSのように以前の状態に復元すること、以前の状態の ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能は存在する。 ・プラグインの数が豊富、膨大。 ・プラグイン開発環境もEclipse自体に用意されている。 ・ライセンス形態がCPLであり商用利用もしやすい。 ・上位版にWSADが存在する。 ・IBMのバックアップがついている。 ・Smalltalkで有名なVisualworksの影響を受けているため、 JUnitプラグイン(Eclipse標準装備)によるテストファースト、リファクタリングの他、eXtr

    「ハッカーはVimを使う」 騙される若者たち
    Leigh
    Leigh 2012/02/18
    えーと。EclipseにVimプラグイン入れるか、Vimにeclim入れればいいんじゃないかな。
  • 独学でコーディング! - a-newcomer.com

    ここ数年、会社を辞めて自分のペースで仕事を請け負うフリーランスという形態で仕事をする人が増えています。フリーランスには様々な職業があり、代表的なものでは翻訳業やイラストレーター、YouTuberもフリーランスに分類されます。そして代表的なフリーランスの職業がもう一つあります。それはプログラマー/エンジニアです。そのプログラミングの大部分を占める工程がコーディングであり、知識と技術を身につければ、憧れのフリーランスに鞍替えすることも夢ではありません。 それではコーディングの知識と技術を取得するにはどのようなルートがあるのでしょうか?現実として学校に通うか、プログラミングを請け負う会社に入社するか、あるいは独学で取得するかのいずれかを選択することになります。そこで今回は最も費用の少ない独学でコーディングを学ぶ方法を紹介したいと思います。 独学でコーディングの知識と技術を身につけるには まずはプ

    独学でコーディング! - a-newcomer.com
  • 初めてのOS source code reading(UNIX 6th source code readingのススメ) - やる気のないブログ(A boring diary)

    このエントリはhttp://d.hatena.ne.jp/takahirox/20120131/1328006885を和訳したものです。 はじめに 最近UNIX 6thのソースコードの読書メモを書き終えました。 みさなんにもUNIX 6thのソースコードを読むことをオススメします。 その理由をこのエントリで書いていきます。 まとめ UNIX 6thは初めてOSのソースコードを読む人にうってつけ! 今すぐ読み始めましょう! UNIX 6thのソースコードはこちらなどで読むことができます。 http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6 UNIX 6thのソースコードを読むことをオススメする理由 たったの10,000行 最近のLinuxカーネルのソースコードは100万行を超えています。全てを理解するのは至難の業です。 一方、UNIX 6thのカー

    初めてのOS source code reading(UNIX 6th source code readingのススメ) - やる気のないブログ(A boring diary)
  • F-35の開発で生まれたソフト技術

    先日、政府は自衛隊の次期主力戦闘機(FX)に、米国など9カ国が共同開発中の米Lockheed Martin社製「F-35 Lightning II」を選定しました。 航空機産業は技術面で多大な波及効果があることから、FXの選定においても国内の防衛産業の基盤維持が一つの論点となっていました。ただし、今回選定が決まったF-35の場合、Eurofighter社の「Typhoon」といった他のFX候補機と比べると、国内で認められるライセンス生産の割合は低いようで、F-35調達における一つの懸念点となっているようです。 これはこれで日の製造業にとって非常に重要な問題なのですが、それとは別に筆者がF-35で思い浮かべたのが、「JSF++」です。 JSFというのは、F-35のプロジェクト発足当初の名称で「Joint Strike Fighter」の略称です。さまざまな国の多様な目的を持った戦闘機を共通

    F-35の開発で生まれたソフト技術
    Leigh
    Leigh 2012/02/10
    やっぱり軍事利用だとAdaが多かったんだな。C++を使うといってもうかつにライブラリ使えないよな。内容吟味しないと。
  • Effective Scala

    Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) Table of Contents Introduction Formatting: Whitespace, Naming, Imports, Braces, Pattern matching, Comments Types and Generics: Return type annotations, Variance, Type aliases, Implicits Collections: Hierarchy, Use, Style, Performance, Java Collections Concurrency: Futures, Collections Control structures: Recursion, Returns,

  • node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話 - mizchi log

    派手で見栄えがする大規模なプロダクトを作ろう!っていうことで、一人でフルスタックなネトゲを作っている。大きなプログラムを書いても破綻しないようにテスト書きまくってテストファーストを心がけたり、Travis-CIによる継続的インテグレーションで頑張ったり。 というわけで作っているのはMMORPGなんだけど、ここで実装するのはまあ平均的なMMORPGを想像してもらいたい。自分がやろうとしているのは、モダンなOSSとさくらの安いVPSで、独学の学生一人でもフルスタックなネトゲみたいなのが組める、ということの実証。 なんでそんなことをしているかって言うと、一応就活中で、見栄えがするアプリ提出できるとおいしいなーっていう下心。 *追記* ここでは https://github.com/mizchi/wanderer のことを言ってるんだけど大規模リファクタリング中なのでここで言ってることは半分ぐらい

    node/webosocketによるオンラインゲームの実装を考える / オンメモリ、KVS、RDBMS、圧縮プロトコル、そのゲームデザイン + 就活の話 - mizchi log
  • ソフトウェアテストの30年前と30年後(前編)~テストの根幹は30年前に書かれた JaSST'12 Tokyo

    私は1977年入社。約30年前となる当時と今では、ソフトウェアテストはものすごく大きく変わった。この30年を振り返り、これから30年後にどう変わるか、という予想を紹介したい。 これがソフトウェア開発技術歴史をざっくりと示した技術マップ。 一番左は1964年。仮想記憶を使った初めてのメインフレーム用OS「OS/360」の開発。これは人類史上最初で最後の超巨大プロジェクト。当時で5000人年、だいたい1200人が4年間働いた。 これはコンピュータが大発展する礎になるのだが、プロジェクトとしては大失敗だった。このときのプロジェクトマネージャがフレデリック・P・ブルックス Jr.氏。 1968年には「ソフトウェア工学」という言葉が誕生した。まだ言葉だけだが。このころ主流はアセンブラ言語。FortranとCOBOLが登場し、サブルーチンという概念が出てきて、これを使うとソフトウェアが格好よくできる

    ソフトウェアテストの30年前と30年後(前編)~テストの根幹は30年前に書かれた JaSST'12 Tokyo
  • 職業プログラマになって考えた「良いコード」とは? - seri::diary

    仕事としてコードを書くようになって3週間が経ったので ここらで所感をまとめてみたいと思う。 ベンチャーと大手企業の違いみたいなことを書いてもいいんだけど、 正直今のところ「あまり変わらない」印象。 それもそのはず、現職もエンプラ向けの仕事。 SIと仕事のやり方はかなり似ている。 ので、純粋にプログラマとして思ったことを。 スパゲッティコードとの出会い この3週間で触ったのはウチの会社で改修・保守をやっているシステムの バッチや管理画面の細かい修正など。 コードは全てPHPだった。 この辺は一番経験のある言語だったので助かった・・・と思った。 が、意気揚々とソースを見て愕然とした。 処理ベタ書きのずらずら続く手続き型の処理は序の口。 関数を定義する代わりにベタ書きスクリプトを外出しにしてrequire 意味不明な変数名 同じ処理をしているはずなのに名前だけ違う関数達 無計画なテーブル定義 業

    職業プログラマになって考えた「良いコード」とは? - seri::diary
  • 他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー

    今日質問されて、以前Twitterで書いたのを思い出して、そして検索性が悪くて見つけ出すのに苦労した。こちらに転載しておく。詳細は気が向いたときに埋める。 オプション引数の評価タイミング Rubyではオプション引数は関数が呼ばれるたびに評価される。 def foo() print "foo!" end def bar(x=foo()) end bar #=> foo! と出力される bar #=> foo! bar #=> foo! Pythonでは関数の定義時に1回だけ評価される。 def foo(): print "foo!" def bar(x=foo()): pass #=> foo!と出力される bar() #=> 何も出力されない bar() 「引数が省略されたら今の日時」みたいな毎回評価したい場合はデフォルト値をNoneにしておいて「Noneだったら=省略されていたら」のif

    他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー
  • 小野和俊のブログ:メンテナビリティの高いソースコードを目指して

    ソフトウェアを中長期にわたってメンテナンスしていく場合、メンテナンスしやすいコードと、メンテナンスしにくいコードとの間には、同じ機能を実現していたとしても、その価値には雲泥の差があります。 メンテナンスの容易さを示す言葉として、メンテナビリティ(Maintainability)という言葉がありますが、私自身、アプレッソでDataSpiderを11年間開発・メンテナンスしていく中で、「この人の書いたコードは当にわかりやすいし無駄がない」とメンテナビリティの高いソースコードに感心させられることもあれば、「急いでいたとはいえ、このソースコードはリファクタリングしないと・・・」と、メンテナビリティの低いコードがソフトウェアに混入してしまったことを嘆くこともありました。 このエントリでは、一のソフトウェアを11年間開発・メンテナンスしてきた経験から、ソフトウェアのメンテナビリティについて考察して

    小野和俊のブログ:メンテナビリティの高いソースコードを目指して
  • Vimでソースコードを素早く追いかける - Guyon Diary

    Vim Advent Calender 2011 45日目の記事です。今回のテーマはソースコードを素早く追いかけるです。 Vimをお使いの皆さんは設定ファイルや文書作成以外にもソースコードを作成・メンテ・閲覧などに利用されている事と思います。 そこで、ソースコードを追いかける時に便利なプラグインをご紹介したいと思います。なお、この記事は過去に私が書いたエントリーを再構成した内容となっています。 追いかけるソースコードを用意する まずは、追いかけたいソースコードを用意しましょう。例としてあげるソースコードはVimで世界的に有名なc9sさんが作った、巷で話題のRubyBundler(やVimのVundle)ライクなPHP版Onionです。 $ git clone https://github.com/c9s/Onion.git cd ./Onion プラグインを設定する Source Exp

    Vimでソースコードを素早く追いかける - Guyon Diary