タグ

ブックマーク / naoya-2.hatenadiary.org (83)

  • プロダクトマネージャーについて - naoyaのはてなダイアリー

    Twitter でプロダクトマネージャーについてぶつぶつ呟いていたら、まとめられていました。ありがとうございます。 プロダクトマネージャー制度を導入するにはどうすれば良いのか プロダクトマネージャーについてあれこれ考えていることを、ここらで一旦整理する良い機会かなとも思いましたので、ちょっと文章をこさえてみることにしました。一年ぶりにブログでも書いてみようと思います。 プロダクトマネージャーはユニコーンなのか。なぜそれが必要なのか。プロダクトマネージャーを見つける / 組織で制度化するとはどういうことなのか。それについて自分の考えを述べていこうと思います。 プロダクトマネージャーは新しいユニコーンか? 昨今よくプロダクトマネージャーが話題になっていますが、人によっては「プロダクトマネージャー」 が今自分たちができないことを象徴している/それが登場すれば全てが解決する銀の弾丸的なもの・・・い

    プロダクトマネージャーについて - naoyaのはてなダイアリー
  • GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー

    少し前までアプリケーションのデプロイと言えば capistrano などをコマンドラインから叩いてデプロイ、みたいなことをやっていたが、最近は少し様子が違うのでそのやり方、KAIZEN platform Inc. での事例を紹介する。 GitHub のイベントを契機に CI as a Service にデプロイを担当させる GitHub で Pull Request を送って開発するのが前提になっているのは以前にも紹介した。 最近は Travis CI や CircleCI などに代表される CI (Continuous Integration) as a Service があって、CI も自分たちで環境を構築しなくてもクラウドに任せることができる。KAIZEN では CircleCI を積極的に使っている。 これらの CI as a Service は基的に GitHub と連携するこ

    GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー
  • HBFav2 をリリースしました - naoyaのはてなダイアリー

    http://hbfav.bloghackers.net/ 1年以上前に HBFav という、はてなブックマークの「お気に入り」を読むための iOS アプリを作ってリリースしましたが、今回一から実装し直してバージョン 2.0 という形で先ほどリリースしました。App Store からダウンロード可能です。 HBFav って? HBFav は、はてなブックマークで「お気に入り」に追加している、すなわちフォローしているユーザーのブックマークやコメントをタイムラインのようにして閲覧するアプリです。個人的にはてなブックマークで最も重宝しているのがお気に入り機能で、そのユースケースを中心にしたアプリが欲しくて作ったというのが元々の動機でした。 なんで作り直したの? バージョン 1.0 はあまり時間の無い中コンセプト優先で作ったということもあってお世辞にも品質が良いとは言えない代物でした。重たいし、落

    HBFav2 をリリースしました - naoyaのはてなダイアリー
  • Kindle向けに『入門Chef Solo - Infrastructure as Code』を出版しました - naoyaのはてなダイアリー

    Chef のスタンドアロン版である Chef Solo の技術書Kindle 向け電子書籍として出版しました。 入門Chef Solo - Infrastructure as Codeposted with amazlet at 13.03.17伊藤直也 (2013-03-11) 売り上げランキング: 14 Amazon.co.jpで詳細を見る がんばりました。原稿\(^o^)/オワタ Chef Solo Chef はサーバー/インフラの状態管理フレームワークです。より単純化して言うならサーバー構築の自動化ツール。コードは Ruby で書きます。ウェブアプリケーションをホストするサーバーの管理にもちろん利用できますし、チームメンバーの開発環境を同じ状態に揃える、あるいは個人の開発環境の整備を自動化する、といったことにも利用できます。 書の内容のは、その Chef の入門書です。C

    Kindle向けに『入門Chef Solo - Infrastructure as Code』を出版しました - naoyaのはてなダイアリー
  • Webはインターネットになった - naoyaのはてなダイアリー

    先週金曜日にエンジニアサポートCROSS2013に行ってきた。目当ては @Jxck_ さんホストによる次世代Webセッション。セッション自体は前後半に分かれていて 前半はプロトコル編。SPDY (wikipedia) や HTTP/2.0 の動向やその課題点など 後半はアーキテクチャ編。プロトコルが変わった上で、その上で動くソフトウェアのアーキテクチャが云々 という内容でした。前半がより技術寄り、後半はテーマ的にもより広範の話題を扱うという感じでどちらも面白かった。 CROSS 2013レポート(2) - mad-pの日記 こちらに細かいログがあります。 話の前提になる SPDY や HTTP/2.0 周りの昨今については 【HTTP 2.0の最新動向】 第1回:HTTP/2.0の策定、ついに始まる - INTERNET Watch Watch 【HTTP 2.0の最新動向】 第2回:HT

    Webはインターネットになった - naoyaのはてなダイアリー
  • 編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー

    昨日 最長共通部分列問題 (LCS) について触れました。ついでなので編集距離のアルゴリズムについても整理してみます。 編集距離 (レーベンシュタイン距離, Levenshtein Distance) は二つの文字列の類似度 (異なり具合) を定量化するための数値です。文字の挿入/削除/置換で一方を他方に変形するための最小手順回数を数えたものが編集距離です。 例えば 伊藤直哉と伊藤直也 … 編集距離 1 伊藤直と伊藤直也 … 編集距離 1 佐藤直哉と伊藤直也 … 編集距離 2 佐藤B作と伊藤直也 … 編集距離 3 という具合です。 編集距離はスペルミスを修正するプログラムや、近似文字列照合 (検索対象の文書から入力文字にある程度近い部分文字列を探し出す全文検索) などで利用されます。 編集距離算出は動的計画法 (Dynamic Programming, DP) で計算することができることが

    編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
  • YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー

    2日目の発表も終えました。資料を公開します。 はてなブックマークのシステムについてView more presentations from Naoya Ito. 今日も少し駆け足気味でした。YACP::Asia 2009、今年も楽しかったです。Hackathon 出ずに京都に戻らなければならなかったのが悔やまれます。 発表の様子 撮影: id:hirose31

    YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー
  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
  • Perl のリスト操作を Ruby 風に - naoyaのはてなダイアリー

    Perl の言語組み込みのリスト操作は関数形式で、push(@array, 1, 2) のような記述になります。一つのリストに対して複数の操作をしたい場合などは、関数呼び出しを複数行にわたって書いていくことになり、少々面倒です。しかし Perl は、Perl のリスト実装である配列のリファレンスに bless してメソッドを定義したクラスを作ることができます。この独自に定義したクラスにプリミティブな操作を加えていって、Ruby のように連続したメソッドの呼び出しによるリスト操作を実現することが可能です。 ここでは List::RubyLike という配列クラスを作成します。まずは手始めに配列に bless して、size() メソッドが呼び出せるようにします。以下のようになります。 package List::RubyLike; use strict; use warnings; sub

    Perl のリスト操作を Ruby 風に - naoyaのはてなダイアリー
    penalty
    penalty 2008/11/05
  • サーバ/インフラ Tech Meeting の資料など - naoyaのはてなダイアリー

    金曜日は サーバー/インフラを支える技術出版記念イベント サーバ/インフラ Tech Meeting の日でした。自分は「Linuxカーネルの読み方」と題して、自分なりにまとめたカーネルのソースコードを読むコツについてお話させていただきました。 発表資料を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/08080924svr_techmeeting.ppt (ppt) http://www.slideshare.net/naoya1977/how-to-read-linux-kernel/ (Slide Share) 同じく著者のひろせさんからはなぜこのを書いたか、どういうなのかという概論 (One more thing もありました)。Klab の安井さんは DSAS について、特に「ダイナミック」をキーワードにした幾つかのインフラ構

    サーバ/インフラ Tech Meeting の資料など - naoyaのはてなダイアリー
  • Kansai.pm での発表資料 (Hadoop Streaming で MapReduce) - naoyaのはてなダイアリー

    Kansai.pm に参加しました。とても楽しかったです。自分も "Hadoop Streaming で MapReduce" という題目で発表しました。取り急ぎ、資料を以下に公開します。 http://bloghackers.net/~naoya/ppt/080530kansaipm.ppt MapReduce は Google のバックエンドで動いている分散並列バッチ処理システムです。GFS は Google の分散ファイルシステムです。Google ウェアのクローンとしてオープンソースで開発されているのが Hadoop。Hadoop は Yahoo! Inc や Facebook, Amazon.com などでも利用されているとのこと。Hadoop は Java ですが、Hadoop Streaming を使うと Java 以外でも MapReduce できます。 以下のエントリも合

    Kansai.pm での発表資料 (Hadoop Streaming で MapReduce) - naoyaのはてなダイアリー
  • GNU screen いろいろまとめ。 - naoyaのはてなダイアリー:

    先日人力検索で GNU screen の設定TIPSについて質問してみたところ、かなーり役立つ設定とかをたくさん教えてもらうことができました。みなさん感謝。 そんで、教えていただいた通りにカスタマイズした結果、こんな感じのスクリーンショットが撮れました。MacOSX のターミナルです。 おかげさまでかなり便利になって作業効率が上がったと思います。いろいろ教えてもらったお礼とまではいきませんが、やった設定とかをはまりどころとかも交えて紹介してみます。名付けてリバースNDOメソッド。ちなみに、知ってる人にはごく当然のことが当たり前のように書いてるので、あんまり役に立たないかもしれません。 hardstatus alwayslastline で最終行にウィンドウ一覧を表示 これは今回の質問とは直接関係ないのですが、やるとやらないとでかなり使い勝手が違うので。 hardstatus alwaysl

  • Emacs の vc-annotate - naoyaのはてなダイアリー

    もしかしたら常識なのかもしれませんが、Emacs の vc-annotate がとても良いです。vc-annotate は vc (version control, バージョン管理システムのフロントエンドEmacs から直接 svn {diff, commit, revert} することができる) に含まれる機能の一部です。vc-annotate を使うと、バージョン管理システム、例えば Subversion に保存された過去の履歴を気になったときにとても容易に調べることができます。 ソースを開いて M-x vc-annotate (C-x v g) すると (そのファイルがバージョン管理化に置かれて居れば) vc-annotate-mode になります。例えば Subversion で管理されている plagger の Plagger::Plugin::CustomFeed::Debu

    Emacs の vc-annotate - naoyaのはてなダイアリー
  • はてなブックマークの作り直しについて - naoyaのはてなダイアリー

    id:naoya:20080320:1206009912 でも少し触れましたが、京都に来てからはてなブックマークの作り直しをしています。どういう意図を持って作り直そうとしているかを述べておきます。 まず大前提として、今のはてなブックマークに追加したい機能、変更したい仕様、来追加するはずが途中で頓挫したものが結構な数で山積みになっています。それを実現するための基礎作りです。 追加したい機能、変更したい箇所 おそらく新システムの最初のリリース時には、それほど大きく変わった、という印象にはならないかと思います。長く続いているサービスですし、インタフェースや使い方もリリース当初からそれほど大きくは変わっていません。既存システムからの極端な変更は歓迎されないだろうと思っており、まずはオリジナルが持っていた機能をしっかり再現することが重要です。 ただし、既存システムでも問題と思っている箇所は改善して

    はてなブックマークの作り直しについて - naoyaのはてなダイアリー
  • Google を支える技術 - naoyaのはてなダイアリー

    Google を支える技術 を読みました。 Google のバックエンドで動いている各種分散処理システムに関しては Google 自身から論文がいくつも発表されています。それらの論文をはじめとする比較的最近の情報ソースをベースに、ある程度かみ砕いて要所要所を紹介するという内容でした。加えて著者の西田圭介さんは OpenCobol (COBOL を C 言語に変換しコンパイルする gcc のフロントエンド) を開発された、技術的なバックグラウンドがしっかりしている方であるようで、内容は信頼できると思います。 自分はこれまで Google のバックエンドの各種ソフトウェアについては方々で耳にしていましたが、漠然と何をするものか程度のことしか知りませんでした。 Web 検索の基的な仕組みと それにまつわる Google が直面した問題、特に大規模処理 それを支えるために開発された各種ソフトウェ

    Google を支える技術 - naoyaのはてなダイアリー
  • 取締役を退任しました - naoyaのはてなダイアリー

    3月7日を持って、はてなの取締役を退任し、執行役員となりました。正式な肩書きは「執行役員 最高技術責任者 (CTO)」となります。 京都に社を移転するにあたり、数ヶ月前から今後の自分の役割について検討してきました。自分としてはやはり現場で開発の仕事を続けていきたい、また京都まで来たからにはよりそれに集中したいという思いが強くありました。会社全体の指揮を取りながら現場でサービスを作っていくというのを両立するのは、自分の能力では難しいと思い、取締役を退任することとしました。 経営の仕事というのは、自らの働きかけにより会社の中にある個々の力を結集させて、より大きな力へと増幅させることです。自分は、それが取締役に課せられる役割のうち最も重要なものだと思いました。会社全体を見渡しながら個々の力のベクトルがうまく同じ方向を向くように働きかけたり、各チームではカバーされていない隙間があったらそこを支え

    取締役を退任しました - naoyaのはてなダイアリー
  • 夙川アトム - naoyaのはてなダイアリー

    この間のめちゃいけを見て夙川アトムに惚れた人も多いと思いますが、なんか今日急にルー語ばりに日語を夙川アトム風に変換するモジュールを書きたくなったので書いてみた。そして先ほど無謀にもCPANにリリースしてみた。 これは衝撃のモジュール。→ 夙川アトム 使ってみます。 #!/usr/bin/env/perl use strict; use warnings; use Acme::Shukugawa::Atom; use Term::Encoding qw/term_encoding/; use URI; use XML::Feed; use autobox; use autobox::Encode; use autobox::Core; my $url = shift or die "usage: $0 <url>"; my @feeds = XML::Feed->find_feeds($u

    夙川アトム - naoyaのはてなダイアリー
  • ソフトウェア技術者としての残り時間 - naoyaのはてなダイアリー

    年始の NHK でのイチロー特集番組を見ていて一番印象に残ったのは、他の人の道具を絶対に触らないというイチローのこだわりでした。曰く、人の道具を触るとその道具の感覚が体に残ってしまい、自分の道具を利用するときの感覚の妨げになるから、ということでした。全体を通して、イチローは他のプレイヤーとの相対的な競争の中に身を置いているのではなく、絶えず自分を改良し続けるという過程の中にいるのだというのがよくわかる内容でした。良い番組だったと思います。 気づけば自分も 30 歳になりました。まだ若いとは思っていますが、さすがに 20 代の頃に比べると、病気や怪我の治りが少し遅くなったと感じることもあり、少しずつ自分の人生、「死」ということを考えるようにもなりました。時間は有限ということが少しずつ実感できるようになってきました。あるいは実感できるようになってしまった、と言った方が良いかもしれません。 ここ

    ソフトウェア技術者としての残り時間 - naoyaのはてなダイアリー
  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

    また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
    penalty
    penalty 2007/10/14
    そもそも3分で全部読めない罠
  • Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー

    Linux カーネルのプロセススケジューラの核である kernel/sched.c の schedule() を読み進めていくと、タスク切り替え(実行コンテキスト切り替え)はその名も context_switch() という関数に集約されていることが分かります。2.6.20 の kernel/sched.c だと以下のコードです。 1839 static inline struct task_struct * 1840 context_switch(struct rq *rq, struct task_struct *prev, 1841 struct task_struct *next) 1842 { 1843 struct mm_struct *mm = next->mm; 1844 struct mm_struct *oldmm = prev->active_mm; 1845 184

    Linux カーネルのコンテキストスイッチ処理を読み解く - naoyaのはてなダイアリー
    penalty
    penalty 2007/09/29
    こういうのついて行ける日がくるんだろうか・・