これがシリコンバレー流グロースハック!Dropboxが一晩に7万人を集めた方法

この記事は、Quora(米国のQ&Aサイト)に投稿されたものを、私たちTokyo Otaku Modeが日本語に翻訳したものです。執筆者はMarkus KirjonenさんというUIデザイナーの方で、スタートアップについて多く書かれています。私たちはMarkusさんから許可をいただき、この投稿を日本語に翻訳して日本で発信する機会を得ることができました。今回から合計6回にわたり、有名スタートアップ企業がどんな方法で新規ユーザーを手に入れたのかについて、実例をもとに紹介していきます。ユーザー確保に悩んでいる方! これからユーザーを獲得していきたい方! 成功するスタートアップへのヒントを得たい方! 必読です!! 紹介する実例はどれも大成功したものばかりですので、必ずどこかに参考となる情報が潜んでいることでしょう。

Read More


リモートワークの是非 - 特別編:トップエンジニアたちの夜 『シドニアの騎士』観賞会&座談会 ~Part3~

こんにちは、ライターの岡田大です。
お待たせしました。特別編「トップエンジニアたちの夜」のPart3をお届けします。
※Part1~2未読の方&内容を忘れてしまった方は、Part1Part2を一読してからお楽しみください!

チームワークの重要性ならびに、仕事を円滑に進めるための“道具”について語り合った参加メンバーたち。話題は自ずと、スタートアップ企業のエンジニアたちの間に広く浸透しつつあるリモートワークへ……。

Read More


Node.jsエンジニアなら2014年内に知っておきたいPromise入門

Promiseは非同期処理をベースにした並列処理の実装方法の一種です。Promiseでは並列処理の各タスクが必ず1回実行されることが保証され、タスクとタスクからの結果を取得する処理を分離することできます。また、タスクの並列処理/直列処理をユーザーが自由に制御することができます。

ECMAScript Language Specification 6th EditionにPromiseが追加されたことから、しばらくの間JavaScriptの非同期処理に関する話題の中心はPromiseになると思われます。

Node.jsでも既にPromise対応したモジュールも多く、Promiseでのみ非同期処理を提供しているモジュールも存在します。Promiseを使用する機会は今後必然的に増えていくでしょう。

今回のエントリーでは、Node.jsでPromiseを使用する方法を説明します。コード例を中心に理論的な細部にはあまり立ち入らないよう構成していますので、はじめてPromiseに触れる方も簡単に理解できる内容になっています。加えて、ニーズの高いと思われるasync.jsとPromiseの変換方法も紹介しています。

ぜひこの機会にPromiseをプログラミングスキルに追加してください。

Read More


特別編:トップエンジニアたちの夜 『シドニアの騎士』観賞会&座談会 ~Part2~

こんにちは、ライターの岡田大です。
お待たせしました。先日公開した特別編「トップエンジニアたちの夜」の続編をお届けします。
※パート1未読の方&内容を忘れてしまった方は、コチラを一読してからお楽しみください!

『シドニアの騎士』第1期の総括で盛り上がったメンバーたちの話題は、徐々にシドニアを絡めた仕事論にシフトしていった。登場人物をエンジニアやマネージャーにたとえ、能力や適性について語り合う。とくに、優秀すぎるがゆえに扱いづらい、シドニアの長道タイプのキャラクターに話が及ぶと、場はおおいに盛り上がった。そして、TOMエンジニアの重岡氏が、複数の企業でCTOや顧問を務めてきた経験を持つ伊藤氏に対して……。

Read More


売上目標達成時にオフィスにファンファーレを盛大に轟かす方法を書くよ

image

IT系な企業だとオフィスがシーンと静まり返っていることもありますが、
あまりに静かだとメンバーの士気が上がっていきません。
Tokyo Otaku Modeのオフィスでは、Raspberry PiにNode.jsを入れてスピーカーを繋いだものがオフィスの片隅に置かれていて、デイリーの売上目標を達成時にファンファーレを流すようにシステム化しており、メンバーの士気を上げるのに一役かっています。
(誰もいない休みの日にも売上目標を達成するとファンファーレが鳴り響きます(๑´ڡ`๑))

さて今回は、そのシステムがどのように構築されているかを解説します。

Read More


Mongooseを使って複数のMongoDBを1つのDBのように扱う方法

Tokyo Otaku ModeではNode.jsからMongoDBにアクセスするのにODMとしてMongooseを採用しています。

Mongoose(ODM)を利用するメリットとしては、

  1. collectionのSchema設計がコードに残る
  2. virtualなどデータ周りの機能がModelに集約できる
  3. populationが利用できる

などが上げられます。

どれもサービスを効率的に作る上で助かる機能ばかりですが、とくにpopulationは別ドキュメントのreference(_id)を持っているだけで、自動的にドキュメントに展開してくれる強力な機能です。

一方で、DBロック回避の目的やある程度の規模になってDBを分割するようになると、別DBのcollectionをpopulateできないという問題がでてきます。
Mongooseの仕様上、特定DBへのconnectionとModel(collection)が密に結びついているため、参照元のModelと同じconnectionを持っていないと、参照先に辿りつけないからです。

これを回避するため、Tokyo Otaku ModeではMongooseのconnectionに少し手を入れてDB間のpopulationを実現しています。

Read More


Tokyo Otaku ModeがStylusを使う理由

Здравствуйте! Tokyo Otaku Modeでフロント周りを担当している今吉です。
社内でロシア人という設定を付けられていますが、ロシア語は挨拶くらいしかできません。

Webサイトを作るのに避けて通れないのがCSSだと思います。エンジニアも多かれ少なかれCSSを書く事があるかと思います。
しかし、CSSを書くのはとても面倒くさいです。出来る限り楽をしたいと常々思っています。そこで、CSSプリプロセッサを導入してCSSを作成している方も多いでしょう。preprocessorCSSプリプロセッサとは、乱暴に言ってしまえばCSSをクールにラクに書く事ができる言語です。(設計が素晴らしく、COOLなCSSというものも、もちろんあるとは思いますが、これは一旦置いておきます。) 恐らく最も知られているものは、LESSとSass/Scssでしょう。

しかし、Tokyo Otaku Modeでは、StylusというCSSプリプロセッサを使用しています。Stylusは今はまだ有名でないかもしれません。
LESSもSass/ScssもStylusプロパティをネストして記述できたり、値に変数が使えたり、何度も同じ記述をしなくて済むようなMixinが使えたりと、CSSプリプロセッサは基本的にどれも機能としては似たり寄ったりです。
まず、LESS、Sass/Scssとの違いを説明した上で、Tokyo Otaku Modeで、第三のCSSプリプロセッサとも言えるStylusを使っている理由を書いていきたいと思います。

Read More


スタートアップで働くディレクターが最も重視する記号

TOM Tech BLOG

こんにちは。Tokyo Otaku Mode ディレクターの青芝です。

Tokyo Otaku Mode のようなスタートアップは、急成長していくことを求められます。そのため、状況に合わせてチーム編成や自分の役割が変化することも多く、特にディレクターという立場ではそれが顕著になります。

一言にディレクターと言っても仕事内容は様々で、それこそ企業の数だけ働き方が存在すると言っても過言ではありません。私は、Webデザイナーを3年間経験した後、Webディレクターに転身し、今年で6年目を向かえようとしています。今回は、ディレクターという職業を経験していく中で、今までに身につけて来た知識の中から、最も役に立った考え方を紹介しましょう。

Read More


特別編:トップエンジニアたちの夜『シドニアの騎士』観賞会&座談会 ~Part1~

8月某日夜。Tokyo Otaku Mode(以下TOM)のオフィスにて、人気アニメ『シドニアの騎士』の観賞会&座談会が開催された。参加メンバーは下記の11名(※敬称略、五十音順)。エンジニアチームを中心としたTOMメンバーに、交流のあるお客様数名を加えた、なかなか濃ゆ~い面々である。

参加メンバー
伊藤 直也(KAIZEN platform Inc.技術顧問)
今吉 勇揮(TOMデザイナー)
亀井 智英(TOM CEO)
柄沢 聡太郎(クロコスCTO)
川崎 裕一(元はてな副社長/mixi取締役)
重岡 正(TOMエンジニア)
関根 雅史(TOM CTO)
田中 弦(Fringe81代表取締役社長)
堀木 洋志(TOMエンジニア)
丸山 有彗(TOMエンジニア・インターン)
三河 正宜(TOMエンジニア)

このたび、「TOMで面白い集まりがあるので覗いてみては」という誘いを受けた、わたくしライター岡田大が潜入取材を敢行し、メンバーたちによる、アツ~いシドニア論、マネジメント論、エンジニアリング論、コミュニケーション論などを横でじっくりと聞かせてもらった。今回から数回にわたり、テックブログの特別編として、その模様の一部始終をお伝えしていく。

Read More


カンタン! Express.js を拡張する超詳細手順

こんにちは。Tokyo Otaku Mode エンジニアの重岡です。

本ブログを読んだことがある方々は既にご存知かもしれませんが、Tokyo Otaku Modeでは otakumode.com に Node.js と MongoDB を採用しています。フレームワークには Node.js 製の Express.js (3系) を使っています。Express.js は Ruby の Sinatra や Python の Flask と同じような MicroFramework なので、必要な機能は npm で module をインストールする、もしくは自分で Express.js の機能を拡張します。

今回は Express.js に機能拡張した一例として res.render を otakumode.com 向けに使いやすく改良した手順をご紹介します。

Read More