タグ

ブックマーク / www.eisbahn.jp (14)

  • ミクシィ社を退職しました

    3年と10ヶ月ちょい勤務したミクシィ社を退職しました。正確には今月末までですが、余ってた有給休暇を2週間ほど使うので、最終出社日としては先週の金曜日でした。 「退社」というか「退職」というかを調べていたのですが、「退職」という方が正確っぽいですね。退社だと「勤務を終えて家に帰ったこと」も意味として含まれるらしいです。確かに「退社願」は書かずに「退職願」を書きますよね。つまりはそういうことです。 入社からずっと一貫して「mixi Platform」の構築に従事してきました。 mixi Developer Centerに載っている内容が、僕がやってきた全てと思っていただければ大丈夫です。無事にソーシャルゲーム、ソーシャルアプリという市場を作り出すことはできたかな、と思います。今では他社の勢いがすごいですけど、そういった他社の方々とも手を取り合って大きな市場の形成に寄与できたと思ってます。200

  • Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか

    Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか Written on Feb 14, 2013. Posted in Chrome extension 開発者は常に新しい価値をユーザに提供したいと考えています。自分の技術的興味が、結果としてユーザを幸せにすることを切に願っています。新しい機能を提供するということは、時にユーザの持ち物をプログラムから更にアクセスできるようにならないと実現しません。勝手に持ち物に触ることは、現実世界ではやってはいけないことですし、もちろんChromeの中においても同じです。ユーザに許可を得て初めて、プログラムはユーザの持ち物に触れる権利を得られるのです。 全てのユーザが「うん、いいよ」と言ってくれれば話は楽です。しかし、世の中そんなに簡単ではありません。 Chrome拡張機能を作ったことのある方であれば、manifest.json

    Chrome拡張機能でパーミッションを追加して再リリースすると何が起きるのか
  • Tizen OSを動かしてみました

    ひょんなことから、Tizen OSを動かしてみることになり、せっかくなのでブログに残しておきます。 インストールしたのは、以下のものたち。ホントはUbuntuで最初やったんだけど、グラフィックのチップセットが貧弱なせいかEmulatorが起動せず、それなりのスペック&ドライバがちゃんと入ってるWindows機で試してみました。 Oracle Java 7 SDK Install Manager(for Windows 32bit) tizen-sdk-2.0-windows32.exe 順にインストールしていくと、スタートメニューに「Tizen IDE」があるのがわかりますが、それはガン無視。「Tizen SDK - Emulator Manager」を選択して、エミュレータを作ってみます。x86-standardの”< “をクリックして、ほぼデフォ設定でプロファイルを作成。Display

  • 僕が考えたRuby on RailsとDojo toolkitで作るWebアプリのデザインパターン

    今年の前半、ある限定した範囲で使うツールを以下の構成で作ってました。 Ruby 1.9.3 Rails 3.2 Dojo toolkit 1.7 Railsで何かを作るのが久々だったこと、 Erlangで最初作ったものをRubyベースでPortingすること、という背景があったのですが、実際に僕がRubyベースで書き直したときの書き方が結構満足いくものだったので、それをここで紹介してみたいと思います。もちろん、ドメインモデルへの考え方、RESTfulなWebアプリケーションの作り方、MVCモデルの適用、などなど「Railsならこうするだろ」というものがありますが、 「 広く一般に言われているセオリーは一切気にせず自分が作りやすい組み方をする」 という至極自己中心的な考えを持って確立されたのが以下に説明することになります。 すっごく違和感を持つ人も多いと思いますが、「こんな作り方もできるんだ

  • 僕が考えたChrome拡張機能を作るときのデザインパターン

    最近いくつかのChrome拡張機能を作っていて、すでに数千人のユーザを獲得できているものが出てきてたりします。 Image collector extension goo.gl URL Shortener extension mixi Check button extension Semantic inspector これだけ作ってると、何となく自分でのChrome拡張機能を作り出す際のデザインパターン・・・っていう大それたものじゃないけど、ようはテンプレが確立されてきます。全く褒められない書き方をしているかもしれませんが、ここでそのテンプレ達を晒しておこうかな、と思います。 manifest.json まずはChrome拡張機能の要であるマニフェストファイルです。これは誰が書いてもさほど変わらない記述内容となるでしょう。 { "manifest_version": 2, "name":

    僕が考えたChrome拡張機能を作るときのデザインパターン
  • Google Drive APIをRuby on Railsから叩く方法

    Google Drive APIRuby on Railsから叩く方法 Written on Oct 27, 2012. Posted in Ruby on RailsGoogle Drive API/SDK DropboxとSkyDriveの各APIを叩いてRuby on Railsアプリからファイルのアップロードする方法を紹介してきましたが、最後はGoogle Driveを紹介してみます。Image Collector extensionでサポートしているGoogle Driveへの画像のアップロードですが、実は連携数はNo.1です。Dropboxが人気なのかな、と勝手に思ってたんですが、やっぱりみんなGoogle大好き!ってことなのでしょうか。 今までGoogle Driveにファイルをアップロードするための方法といえば、Google Documents List APIを使うこと

    Google Drive APIをRuby on Railsから叩く方法
  • VMware Workstationでネットワークが遅い場合の改善策

    VMware Workstationでネットワークが遅い場合の改善策 Written on Apr 5, 2012. Posted in My PC environment 僕は会社のPCでは、Windows 7にVMware Workstationを入れて、ゲストOSとしてUbuntu 11.10を入れて「プログラミングはUbuntu、それ以外はWindows」って感じで仕事してます。開発をする時はどっぷりUbuntuの世界の中で、それ以外の業務はWindowsで、って感じで完全に独立して作業してることがほとんどでした。 しかし、あるツールを作っている時に、Ubuntuでサーバを上げて、Windows上のWebブラウザからそのサーバにアクセスしてテストする、ってことをやり始めた時に、ホストとゲスト間のネットワークが劇遅であることに気がつきました。SSHでUbuntu内から他のサーバにつな

  • Ruby on Railsでもfacebookアプリは作れます

    facebookが「ソーシャルOS」と呼ばれる所以は、facebook上にアプリケーションを自作して登録し、facebookユーザに使ってもらうことができる、ということにある。自作アプリケーションは、当然facebookが持つ様々な機能と連携することが可能である。例えば、アプリケーションで起きたことをMini-Feedに追加したり、プロフィール画面にアプリケーション固有の区画を追加したり、あるいはアプリケーションを自分の友達に勧めたり、といったことが、比較的簡単に実現できる。とても面白い。 では、facebookアプリケーションを実際に開発するためにはどうしたらいいか。これ、非常に敷居が高いと言わざるを得ない。いや、それは僕がPHPをメイン言語にしていないから、かもしれない。日語のドキュメントはゼロ。ググっても日語の情報は皆無。そしてPHP以外のサンプルは公開されていない。これだけでも

  • OpenSocial v2.0の策定が始まっています

    OpenSocial Foundationでは、既にOpenSocial v2.0の策定が開始されています。現時点で提案されている仕様は、以下のものがあげられます。 View Level Features Proposal [Social Data Model] Identifying ‘Guests’ Embedded Experiences Proposal CMIS Status [Social Data Model] Proposed Changes Simple Gadget Format gadget manifest proposal Space extension 簡単に言うと・・・ View Level Features Proposal : 今後スマートフォンなどViewの多様化が見込まれ、それに応じてGadget Specファイル内で各Viewに対して機能を柔軟に指定

  • OpenSocialでの共通課金API - OpenSocial Virtual Currency API

    OpenSocialの特徴は、開発したアプリケーションをさまざまなSNSに展開することができるという可搬性にあります。つまり、アプリケーションに対するビジネスを行う市場について、特定のSNSだけでなく、世界中の多くの市場を相手にすることができるということになります。 日のモバイル市場や、世界のいくつかのSNSでは、すでにデジタルコンテンツを売り買いすることが盛んに行われています。この売買を実現するために、モバイルやSNSといったプラットフォームは、課金を行うための仕組みを整えてコンテンツプロバイダに提供し、利用してもらいます。ただし、そのほとんどが、プラットフォームごとに独自に策定された仕様となっています。プラットフォームごとに、コンテンツプロバイダは課金のための仕様を1から理解する必要が出てきます。 例えば、OpenSocialアプリケーションでSNSが提供する課金の仕組みを使いたいと

  • Apache Shindig v2.0.0がリリースされました

    Apache Shidigチームは、最新のバージョン2.0.0をリリースしました。以下はチームからのアナウンスの翻訳です。 とはいえ、ビルド時にいくつかの警告が出ているため、すぐにv2.0.1がリリースされる模様です。 Apache Shindigチームは、Apache Shindig バージョン2.0.0のリリースをアナウンスすることに誇りを感じています。 Apache Shindigは、ソーシャルネットワークおよびエンタープライズソフトウェアの両方で広く使われているOpenSocial参照実装です。 バージョン2.0.0は最後の安定版リリース1.0.1を超えるメジャーアップグレードとしてマークされます。このリリースはOpenSocial 1.0仕様のほとんどをサポートします。これを達成するために、ほとんどのインタフェースは広くリファクタリングされ、全てのサブシステムはクリーンアップおよ

  • 僕たちはガラパゴスゾウガメですか?

    「Web屋のネタ帳」より: iPhoneからのmixiの新規登録ができるようになっているらしい件にからんでの雑談 ところで、mixiは2010/9/10にmixi meetup2010という記者発表イベントを東京プリンスのイベントホールほぼ全部貸しきってやってたんだが、その席上で社長さんが「世界初、PC、携帯、スマートフォンの3デバイス対応のプラットフォームができる」とか言ってた。おいおい、PCとスマートフォンはともかく、ケータイってそれ日国内だけのガラパゴスケータイだけの話でしょ?それで世界初って言われてもねえ、と現場で失笑していたエンジニアは俺だけではあるまい。 多くの人が上記のような感想だったとしたらとても残念ですが、まぁ「ガラパゴス市場だから日だけの話で、そもそも世界初とか何言ってるの?」と思うのは、仕方のないことかもしれませんね。ただし、世界でのスマートフォン市場はまだまだ各

  • 僕が考えるAOPの適用ポリシー

    Javaナイトセミナー(Vol.3)」で宿題(?)だった「AOPの適用」について,僕なりの意見を以下に述べようと思う。 AOPはトランザクションやロギング,ベースとなる機構で必要な前処理などを適用することが代表例なのは揺るぎのない事実だろう。そして,AOPのこれらの処理に対する適用は,プログラマからテクニカルで毎度毎度のお決まりコーディングを削減することができ,さらに継承やTemplateパターンなどを駆使することなく前処理を実行できるため,対象のクラスを汚す必要がない(何らかのクラスを継承しなくて済むなど)という利点をもたらしてくれる。 しかし,業務的に必要な前処理や共通的な処理の実行にAOPを使用すると,来業務処理をコーディングするプログラマはAOPに関する知識を必要としなくて済むはずなのに,業務処理の記述に比較的難解な技術となるAOPを覚えてもらうことになる。敷居が高くなるだけ

  • updated_atを自動でセットしないようにする方法

    データベースに格納される情報は,「作成日時」や「更新日時」を付与することが多い。ActiveRecordでは,作成日時や更新日時について,暗黙的にセットする機構が標準で備わっている。例えば, class CreateEmployees < ActiveRecord::Migration def self.up create_table :employees do |t| ・・・ t.column :created_at, :timestamp t.column :updated_at, :timestamp end end ・・・ end というように表を作成しておけば,created_atにinsertされたときの作成日時が,updated_atにはupdateがかかる度にその時の日時が更新日時としてセットされる。プログラマが改めて「emp.updated_at = Time.now」な

  • 1