タグ

ブックマーク / codezine.jp (47)

  • 20代後半からJavaScriptを学び、Node.jsのコラボレーターに。古川陽介氏に聞く、エンジニアとして急成長する方法

    サーバサイドJavaScript環境 Node.jsにおいて、日で二人いるコラボレーターのうちの一人である古川陽介さん。新卒で入社した企業では、主にJavaとデータベースといったフロントエンドとは遠い技術を扱っていた。仕事にも慣れた20代後半のころ、これまでやってきたこと以外に新たに「プラスα」を学びたいという気持ちから、JavaScriptの勉強を始め、34歳となった現在は、Node.js 日ユーザーグループの代表を務めるほどに技術を極めている。そこまで技術を研鑽できるモチベーションはどこから生まれているのか。古川さんのキャリアと、コミュニティ活動やOSSへの貢献について話を聞いた。 リクルートテクノロジーITソリューション統括部 インフラソリューション2部 APソリューショングループ 古川陽介氏 Node.jsコミュニティの会長、JavaScriptは20代後半から学んだ ――

    20代後半からJavaScriptを学び、Node.jsのコラボレーターに。古川陽介氏に聞く、エンジニアとして急成長する方法
    kamipo
    kamipo 2017/02/10
    "直面している問題に対して、直す気があるかどうか" 会長はすごい人
  • Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」

    まつもとさん自身によるStreemについての解説は、今後日経Linuxで順次掲載されるようです。まつもとさんがStreemについて解説する内容は、おそらく、プログラミング言語設計に関する高レベルなものとなるのではないでしょうか。 記事はそれとは無関係に、2015年1月に公開されているStreemについての低レベルな解説、つまり現時点のStreemのソースファイル(の一部)の読み解き方を示します。具体的には、GitHubのStreemリポジトリにある「lex.l」と「parse.y」という2つのソースファイルについて解説します。 Streemのソースファイルは、https://github.com/matz/streemからダウンロードできます。画面右下にある[Download ZIP]ボタンをクリックしてください。 lex.lとparse.y ダウンロードしたStreemソースファイルの

    Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」
    kamipo
    kamipo 2015/01/28
  • 【デブサミ2014】13-B-7 レポート 「何故クックパッドのサービス開発は日々進化しているのか」

    冒頭、庄司氏は「クックパッドの印象としては、レシピのサービスが一番強いと思いますが、これ以外のサービス、新規事業にも力を入れています」とした上で「cookpad.comに関する話をします」と切り出してセッションを始めました。 まず、Ruby 2.0/Rails 3.2による環境構成を説明し、「このボリューム、正直狂っているんじゃないかな。数か月間でこれだけ増えてるんです。……あの、ここ笑うところですよ?」と独特の語り口でセッションを進めていきます。 サービスの成長と安定性を両立させる3チーム制 しかし、上図のような成長ペースにもかかわらず、デプロイは1日10回ペースを維持している。一体どうやって、これほどの安定リリースを実現しているのでしょうか? 庄司氏はこの点について、エンジニアで構成されている『サービス開発部』『インフラ部』『技術部』の存在を挙げました。 サービス開発部隊がサービス開発

    kamipo
    kamipo 2014/03/26
  • HTTPリクエスト数削減テクニック2: CSS Sprite編

    はじめに こんにちは、クラスメソッド株式会社の野中です。 HTTPリクエスト削減テクニックの紹介に入り、前回の『リクエスト数削減テクニック1:インラインイメージ編』では、インラインイメージについて紹介しました。記事では「CSS Sprite」の基的な知識と使い方、使いどころについて解説します。すでに定番のテクニックとなっていますが、何となく使っていることが多いと思います。初学者の方にも理解していただけるよう詳しく解説します。 対象者 対象者は主にコーダー、フロントエンドエンジニアです。 デザインとコーディングを合わせて担当するWebデザイナーも対象です。 コーダー・フロントエンドエンジニア Webデザイナー Webディレクター Web担当者 CSS Spriteとは Webサイトではアイコンやナビゲーションなどに多くの画像が使われ、サイトによっては20個30個とたくさんのアイコンが使わ

    kamipo
    kamipo 2013/12/02
  • HTTPリクエスト数削減テクニック1: インラインイメージ編

    はじめに こんにちは、クラスメソッド株式会社の野中です。 前回の『Webサイト高速化に必要な画像形式の基礎知識』では、基的な画像の書き出し方法について紹介しました。 この回からは数回に分けて、HTTPリクエストの削減テクニックについて触れていきます。 インラインイメージ CSS Spriteとイメージマップ SVGとWebフォントアイコン 画像からCSS3 記事では「インラインイメージ」の基的な知識と使い方、使いどころについて解説します。 対象者 今回の対象者は主にコーダー、フロントエンドエンジニアです。デザインとコーディングを合わせて担当するWebデザイナーも対象です。 コーダー・フロントエンドエンジニア Webデザイナー Webディレクター Web担当者 インラインイメージとは インラインイメージとは.gifや.pngなどをHTMLからリンクして読み込むのではなく、画像を文字列に

    kamipo
    kamipo 2013/12/02
  • 良いプロダクトを発見・具現化するために、チームはどう動くべきか?

    受講のきっかけ 筆者の仕事は、案件の成功にむけてプロジェクトをリーディングすることです。開発するシステムの要件をまとめたり、顧客と社内のメンバーとのつなぎ役となったりするのも大事な仕事の一つです。2011年はそういった日常の仕事をしつつスクラムに注目し、7月に開催された「Scrum Boot Camp 東京」やその他の勉強会に参加したりしていました。 そんな中、スクラムギャザリング東京2011の開催に併せて、認定スクラムマスター・スクラムプロダクトオーナー研修が開催されることを知りました。システム開発プロジェクトを進めるなかで、顧客との合意形成をするための助けとなるかもしれないという思いから、認定スクラムプロダクトオーナー研修を受講することにしました。 ジェフ・パットン氏について ここで、講師のジェフ・パットン氏について、少しご紹介しておきます。 ジェフはアジャイルUXの第一人者として米国

    良いプロダクトを発見・具現化するために、チームはどう動くべきか?
    kamipo
    kamipo 2012/04/03
  • コマンドの出力をtop風に表示させるtopless

    はじめに この記事ではUNIXサーバ管理という側面からのシェルスクリプトプログラミングを取り上げます。またシェルスクリプトを自作するときのポイントも解説します。 UNIXサーバを管理するときは、道具としてのシェルスクリプトが重宝します。常時ログを監視するにしても、入力するコマンドをまとめるにしても、UNIXに用意されているコマンドを有効活用するにはシェルスクリプトが効果的です。 シェルスクリプトは、コマンドを入力する作業の延長線でプログラミングができるという容易な側面を持っていますが、正しく理解しようとすると多くのルールやコマンドを覚えなければならないというやっかいな側面も持っています。 シェルスクリプトを習得する方法はいくつかあります。じっくり時間がとれるならどの学習方法でもよいのですが、入社後にUNIXサーバを管理することになり、緊急に使えるようにならなければならないという逼迫した状況

    コマンドの出力をtop風に表示させるtopless
    kamipo
    kamipo 2012/03/13
  • 大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~

    11月25日、「mobidec 2011」においてコナミデジタルエンタテインメントのスタジオITセンター長である正延光弘氏によるセッション「大ヒットSNSゲーム『ドラゴンコレクション』を支えるコナミのクラウド技術の活用」が行われました。 ドラゴンコレクションは、GREEで提供されている携帯電話向けのカードゲームタイプのRPG。プレイヤーは、エリアごとにある複数のクエストをクリアしていき、モンスターカードや「秘宝」を手に入れ、さらに「ドラゴンカード」を集めていきます。また、ほかのプレイヤーとバトルすることでも秘宝を入手できるというSNS要素も取り入れられていました。2010年9月のサービス開始後、順調にプレイヤー数を伸ばし、現在では登録人数が500万人を超えています。 サービス開始当初は社内でサーバを構築し、フロントエンドに6台のサーバ、バックエンドに3台のデータベースサーバ、そしてロードバ

    大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~
    kamipo
    kamipo 2011/12/21
    すばらしい
  • サロゲートペア入門

    はじめに Windows VistaのJIS2004対応により、WindowsのUnicode環境で使用できる日語漢字の数が増えました。従来、12238字(Windows XP)だったのが13145字(Windows Vista)になり、907字追加されることになりました。これによって、JIS第3水準、JIS第4水準の漢字がすべてサポートされることになったのです(Windows XPまでは一部サポート)。 またWindows XPでも、パッチさえ当てれば、Windows Vistaと同じように追加907字を加えた13145字の漢字が使用できるようになりました。 ところが、この追加された907字の中には「サロゲートペア」という特殊な文字が304字あり、これらは今までのUnicodeの文字とは扱いが少し違います。この点について解説していきたいと思います。 対象読者 Unicodeでデータ処理

    サロゲートペア入門
  • pthreadについて(シグナル・バリア等)

    はじめに この連載ではUNIX系OSなどで使われるスレッド「pthread」についてサンプルを交えて説明していきます。pthreadはPOSIXが仕様化したスレッドモデルです。サンプルはCと一部C++、調査環境はFedora 8(2.6.23.1-49.fc8)、32bit、glibc-4.1-2、gcc-4.1.2-33およびFedora Core 6(2.6.18-1.2798.fc6)、32bit、glibc-2.5-3、gcc-4.1.1-30を使用しています。 これまでの記事 第1回:pthreadについて(概要・生成) 第2回:pthreadについて(同期) 第3回:pthreadについて(条件変数・モデル) 第4回:pthreadについて(スレッド固有データ) 第5回:pthreadについて(スタックサイズ) 第6回:pthreadについて(スケジューリング) 第7回:pth

    pthreadについて(シグナル・バリア等)
  • モバイル開発者必見! DeNAがデブサミで講演する技術セッション群の見どころをチラ見せします

    Webサービス開発の隆盛が目覚しいソフトウェア業界 今年で9回目を迎えるDevelopers Summitだが、今回ほどIT業界の変革を感じるプログラムもなかったのではないだろうか。これまでも年ごとにクラウドやアジャイル、オープンソースなどで注目を集めたトピックはあるにせよ、中軸はエンタープライズなシステム開発であることに変わりはなかったように思う。 しかし今回は、Webサービス開発に関するセッションが目白押しで、格的にもうひとつの軸になりつつあることを感じさせる。それがモバイル、とくにソーシャルアプリとスマートフォンの隆盛に押されてのものであることは論を待たない。下はデバイス(ハードウェア)から上はアプリケーションまで広いレンジで連鎖的に変革が起きているため、多くの技術者が注目せざるを得ないのが現状だ。 そんな変革を最も強く感じさせてくれるプログラムが、1日目のルームAで終日にわたって

    kamipo
    kamipo 2011/02/10
  • Gettextによるウェブアプリケーションの国際化と地域化

    はじめに アプリケーションをさまざまなロケール(言語や地域)で利用できるようにすることを「国際化」と言います。国際化されたアプリケーションを、実際に特定の言語や地域で利用できるようにすることを「地域化」と言います。 国際化・地域化の対象は、大きく分けて次の2つです。 日時や通貨・数値 メッセージ文字列 日時や通貨・数値については、『I18Nv2による日時と通貨・数値の表記国際化』で解説しました。 稿ではメッセージ文字列を扱います。ここで紹介する手法を取り入れたウェブアプリケーションは、クライアントのロケールにあった形式でメッセージ文字列を表示することができます。たとえば、ブラウザの言語を英語にしてアクセスすると「Hello Taro YABUKI!」、日語にしてアクセスすると「こんにちは、Taro YABUKI。」と表示するようなウェブアプリケーションを作ります。 必要な環境 XAMP

    Gettextによるウェブアプリケーションの国際化と地域化
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。 rank(p, c)――T[0...p]中のcの出現回数を返す select(i, c)――(i+1)番目のcの位置を返す WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。 対象読者 C++

    高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」
  • グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏

    9月1日、ゲーム開発者向けカンファレンス「CEDEC 2010」において、SNSGREE」を運営するグリー株式会社(以下 グリー)が『大規模ソーシャルゲームのつくりかた ~60分でわかるサーバサイド技術~』と題するセッションを講演した。 一日あたり億単位のトラフィックを捌くインフラはどうなっているのか。技術者2名が解説したインフラ構築のノウハウや、ソーシャルゲームと一般のオンラインゲームとの違いについて紹介する。 オンラインゲームとソーシャルゲームとの違い 最近テレビCMでも目にする機会が多くなってきたSNS(ソーシャルネットワーキングサービス)の「GREE(グリー)」。2010年6月時点の数字で、会員数2059万人、月間353億ページビューという言わずとしれた大人気サイトだ。中でも携帯電話向けソーシャルゲームが特徴的で、専用機向けのゲームと比べるとコアゲーマー以外のプレイヤーも多く、利

    グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏
    kamipo
    kamipo 2010/09/15
    「大規模サーバー群を一人で管理できる夢のフレームワーク構築」
  • signalについて(前篇)

    はじめに シグナルはUNIXなどのOSにおける非同期イベントを通知する仕組みですが、「最古のプロセス間通信」「SysV系とBSD系で動きが違う」「昔のシグナルを使うと汎用性が無くなってしまう」「スレッドと相性悪し」といった理由からか、私の経験上、業務系アプリケーションではあまり使われていません。たまに使っているものを見ると、誤った使い方をしているものが多かったりします。 ところがこのシグナル、いろいろ調べていくと意外と奥が深く、有用に使えるのに、以外と情報が少ないことがわかりました。 今さらな感もありますが、ここでは私が知っている事や、調べた結果、今までの経験から得た知識などをまとめてみたいと思います。 ただし、環境によって動作が違うことが想定され、また一部のプログラムは環境に対し重大な影響を与えてしまうものもあります。プログラム等の使用に際しては十分に注意して頂き、ご自身の責任の範囲で行

    signalについて(前篇)
  • 初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは?

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは?
  • Fessで作るApache Solrベースの全文検索サーバー ~ 導入編

    はじめに ドキュメントは日々増えて続けています。ドキュメントの数が多くなるほど、目的の情報は見つけにくくなるため、それらのドキュメントを効率よく管理する方法が必要です。その解決策の一つとして、複数のドキュメント(ファイル)をまたいで検索することができる「全文検索サーバー」の導入が挙げられます。 Fessは簡単に導入できる、Javaベースのオープンソース全文検索サーバーです。Fessの検索エンジン部分にはApache Solrを利用しています。Solrは、2億ドキュメントもインデックス可能と言われる非常に高機能な検索エンジンです。一方で、Apache Solrで検索システムを構築しようとする場合、クローラ部分などを自分で実装する必要性があります。Fessではクローラ部分にSeasar Projectから提供されるS2Robotを利用して、ウェブやファイルシステム上の様々な種類のドキュメントを

    Fessで作るApache Solrベースの全文検索サーバー ~ 導入編
  • ファイルディスクリプタについて(2) ~イベント用ファイルディスクリプタ「eventfd」の特徴

    ファイルディスクリプタは、プログラムの外部との入出力を行う抽象的なインタフェースです。Unix/Linuxのファイルディスクリプタは、一般的なファイルだけでなくデバイスやソケットやパイプも対象としています。当連載は、ファイルディスクリプタの機能や管理方法などを提示します。第2回は、イベント用ファイルディスクリプタ「eventfd」を紹介します。 はじめに 前回は、ファイルディスクリプタの概要について解説しました。今回は、新たに追加された3個のファイルディスクリプタの中から、イベント用ファイルディスクリプタ「eventfd」を取り上げ、使用法や特徴、既存のファイルディスクリプタとの違いについて、説明していきたいと思います。 連載概要 この連載は、次のような内容について述べていく予定です。 連載目次 第1回:ファイルディスクリプタの概要 第2回:イベント用ディスクリプタ「eventfd」の特徴

    ファイルディスクリプタについて(2) ~イベント用ファイルディスクリプタ「eventfd」の特徴
  • 高速な算術圧縮を実現する「Range Coder」

    はじめに 記事では、全体のサイズが最小となる算術圧縮を高速に実現するRange Coder(以下RC)を紹介します。 算術圧縮は、各文字の出現確率が分かっている場合にそのデータを最小長で表現可能な符号法です。各文字に固定の符号を割り当てるHuffman法とは違い、符号化を状態更新とみなし、すべての文字を符号し終わった後の状態を保存することで符号化を実現します。これにより1文字単位の符号長を1bitより細かく調整することが可能となります。 算術符号は圧縮率が高い反面、ビット単位の演算処理が大量に発生するため、符号化、復号化ともにHuffman符号に比べ遅いという問題点があります。今回紹介するRCは、算術符号の処理をバイト単位で行うことで高速な処理を可能にします。 また、算術圧縮については概要から説明します。 対象読者 C++の利用者を対象としています。データ圧縮の基礎を知っていることが望ま

    高速な算術圧縮を実現する「Range Coder」
  • 「CoffeeScript 0.2」リリース JavaScriptにコンパイルされる小さなプログラミング言語

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「CoffeeScript 0.2」リリース JavaScriptにコンパイルされる小さなプログラミング言語