タグ

ブックマーク / satoshi.blogs.com (16)

  • neu.Node リリースのお知らせ

    去年の暮れから準備を進めて来た neu.Node だが、ようやく今日、オープンソース・プロジェクトとして github に公開することができたので報告する。 https://github.com/snakajima/neunode 詳しくは README.md ファイルに書いたが、neu.Node は iOS 上で Node.js の API を使って作った マイクロ・サーバーを走らせる仕組みである。iTunes ストアで配布する iOS アプリに組み込んでも良いし、自分や仲間だけで楽しむ「手作りアプリ」に組み込んでいただいても良い。ライセンスは MIT で、ライセンス料フリーで、非営利・商用、無料・有料の区別なく使える。 neu.Node が目指すのは、新しい形の分散コンピューティングである。「モバイル・デバイスはクライアント、サーバーはウェブ・サービス」という垣根をとっぱらい、全てのモ

    nbqx69
    nbqx69 2013/01/17
    iOS 上で Node.js の API を使って作った マイクロ・サーバーを走らせる仕組み
  • node.js で「サラリーマンの朝」をプログラムしてみる

    先日の「node.js と thread hog の話」には、たくさんのコメントをいただいたが、やはり「イベント駆動型」のプログラミングには抵抗がある人も多いようだ。そこで、JavaScript の無名関数を使ったイベント駆動型のプログラミングの可読性が悪くないことを示すために、「朝7時に目覚まし時計をかけて眠りにつき、朝ご飯をべ終わったら会社に行く」という典型的な「サラリーマンの朝」をイベント駆動型のJavaScriptで記述してみた。 注目して欲しいのは、素早く出来る「着替える」「顔を洗う」などの動作は割り込み不可な動作なので、通常のプログラミングと同じようにシーケンシャルに実行するが、時間のかかる「朝ご飯をべる」「駅まで歩く」などの動作は割り込み可能な状態で実行し、"complete" のイベントを受けてから次の動作に移る点だ。 ちなみに、目覚まし時計は 「スヌーズボタン」付きな

    nbqx69
    nbqx69 2012/10/18
    おもしろい
  • 言語対決:JavaScript 対 Objective-C

    ここのところ、サーバー側(Google App Engine)のコードはPythonで書き、クライアント側のコードはiPhone/iPad 向けはObjective-Cで、ブラウザー向けはJavaScriptで書く、という毎日が続いている私である。 それぞれの言語は難しくないのだが、さすがにこの3つを頻繁に行き来していると、pythonのコードに間違ってセミコロンを付けてしまったり、PythonJavaScriptのどっちがTrueでどっちがtrueだか混乱したりする。 ちょうど昨日は、以前JavaScriptで書いたコード(写真をアップロードするコード)をObjective-Cに移植する機会があったのだが、とても分かりやすい結果が出たので、ここで比較してみる。 まずは元の JavaScript のコード。 SNBinder.get("/blob/create_upload", {},

  • iPadアプリ開発日誌:neu.Draw 1.0 リリース

    少しアナウンスが遅れてしまったが、少し前からここでも紹介していた neu.Draw をようやくリリースすることができた(iTunesストアへのリンク)。 当初は有料アプリとしてリリースする予定だったのだが、neu.Pen LLC のビジネスモデルに関しては少し冒険をしてみようと、これもneu.Notesに引き続いて無料アプリとしてリリース(将来は有料オプションを追加する予定なので、その時はよろしく)。 neu.Drawの目指すところは、「誰でも使えるベクター・ドロー・アプリ」。カテゴリーとしては、Adobe Illustratorと同じジャンルだが、機能を絞って、基的な操作が誰でも簡単に直感的にできるように、との思いでUIデザインをしてみた。 一番の特徴は、ベジェ曲線の編集方法が従来のものと大きく違う点。Illustratorが採用して以来、「アンカー・ポイントとコントロール・ポイントを

    nbqx69
    nbqx69 2010/10/24
  • iPadアプリ作成日記: アプリ間の連携について一考察

    CloudReadersというPDF/マンガリーダーを個人で、neu.Notesという手書きノートアプリをneu.Pen LLCを通して開発・リリースしている私だが、当然のようにその二つを組み合わせて「PDFの赤入れアプリ」を作って欲しいというユーザーからのリクエストは聞こえて来るし、私自身も欲しい。 これまで二つのプロトタイプを作っては見たのだが、どうも気に入らないのでリリースは見合わせている。 最初に作ったのは、CloudReadersに "Annotation Mode" (赤入れモード)を追加したバージョン。とりあえず赤入れが出来るところまでは三日ぐらいであっさりと動いたのだが、「シンプルでサクサク読める」ことを最優先に設計されているCloudReadersの場合、追加した書込みを常に表示するのかしないのかでかなりパフォーマンスに影響が出るし、「赤入れモード」という明示的なモードを

    iPadアプリ作成日記: アプリ間の連携について一考察
  • iPadアプリ開発日誌:neu.Notes 1.2 は会議室でも使える!?

    最近、CloudReadersと並行して力を入れて開発しているのが、手書きノート作成用の neu.Notes。1.1が致命的なバグを抱えていたために、すぐにアップデートをしていただいたユーザーにご迷惑をかけてしまい、大変申し訳ないことをしてしまった。被害を最小にするために、ストアから一度引っ込めておいたのだが、ようやくそのバグも取れ、1.2として仕切り直しのリリースである。今度は、1.0からも1.1からもきれいにデータを引き継げるように作ってあるので、ご安心いただきたい。 ちなみに、今回のアップデートには大小のさまざまな機能が含まれている。 1. 外部ディスプレー・サポート これは私自身が欲しかった機能だが、VGAアダプターでプロジェクターに繋ぐことにより、現在描画中のページをプロジェクターに表示するようにした。この機能を使えば、会議室におけるホワイトボード代わりに使うことができる。ホワイ

    nbqx69
    nbqx69 2010/07/16
  • iPad活用術:iPadでパワポのプレゼンをする方法

    iPadのような「新しいおもちゃ」を手に入れたら、出来るだけ色々な場面で使って満足感を増したい、さりげなく使うところを他の人に見せて優越感に浸りたい、と思うのは、このタイミングでiPadを入手するような典型的なアーリーアダプターとして当然の要求。 そんな人におすすめなのが、iPadを使ったプレゼンだ。ミーティングの場に、ノートパソコンの代わりにiPadだけを持って行き、おもむろにiPadをプロジェクターに繋げ、プレゼンをする。注目を浴びること、間違いなしだ。 用意すべきは小道具はiPadをプロジェクターに繋ぐためのiPad Doc Connecter (2980円、Apple Storeへのリンク)。そしてアプリはCloudReadersを使う(こちらは無料)。Version 1.10からは外部モニターをサポートしているので、その機能を使ってプロジェクターにスライドを映すのだ。 プレゼンの

    iPad活用術:iPadでパワポのプレゼンをする方法
  • iPad上でHTML5 Widgetを走らせて遊ぼう

    昨日の「HTML5: W3C Widget とその応用を考える会」は参加者も多く、私自身とても良い勉強になったが、そこでも予告した通り、iPad発売を記念してWidgetのサンプルをいくつか用意したので、ぜひともお試しいただきたい。 手順は以下の通り。 ステップ1. iPadにCloudReadersをインストールする(iTunes ストアへのリンク) ステップ2. 以下のWidgetをダウンロードする Download 3dClock.wgt (2.5K) ー CSS3を使った3D時計 Download TimeTrial25.wgt (7.8K) ー タイムトライアルゲーム Download JSCalc.wgt (3.4K) ー 電卓 Download QuadraBench.wgt (2.5K) ー Canvas のベンチマークプログラム ステップ3. iPadPC/Macに繋げ

  • iPadに最適化したPDFファイルの作り方

    iPad向けにPDF/マンガリーダーCloudReadersを発表してから、いままで直に付き合いがなかった出版業界の人たちからちょくちょくコンタクトをいただくようになった。その中で良くある質問の一つが、「iPad向けに最適化したPDFファイルの作り方」。そこで今日は、そのあたりのノウハウをまとめて書いてみる。 まもなく日でも発売されようとしているiPadは色々な意味で画期的なデバイスだが、あくまで位置づけはモバイル・コンピューターであり、パソコンではない。画面も大きく、CPUも高速になったとは言え、搭載するメモリ(RAM)の量はiPhone 3GSと同じだ。 そのため、メモリがふんだんにあるパソコン用に作ったPDFファイルを読もうとすると、メモリ不足でアプリが落ちたり、極端に遅くなったりしてしまう。アプリを作る側もいろいろと対応はしてはいるが(参照)、やはり快適にiPad上でPDFファル

  • Python Hack : 噛めば噛むほどおいしくなるクロージャの話

    最近 JavaScript を書く機会が増えているが、それに従って自分のコーディングスタイルが少しづつだが変化してきているのが分かる。もともと「コードの読みやすさ」や「実行効率」にとことんこだわるタイプだが、(JavaC++になくて)JavaScriptRubyにあるクロージャや無名関数が私のコーディングスタイルにとてもマッチしているからだと思う。 簡単な例を紹介しよう。Pythonで書かれた config.py というモジュール。config.yamlという設定ファイルを読み込んで Dictionary として返す config.get() という関数。普通に実装すると、以下のような感じになる。 import yaml _config = None def get(): global _config if not _config: data = open('config.yaml')

  • Ruby on Railsの「えせMVC」の弊害

    先日のエントリーでも少し触れたが、Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある。MVC(Model View Controller)がなぜ必要かを根底の部分でちゃんとと意識せずにRailsアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「RailsでMVCを学ぶ」などもっての他だし、「JavaにもRailsと同じようなフレームワークを作って業務用アプリの開発を効率化しよう」などという発想もとても危険である。 ということで、今日はまずはMVCの解説から。 MVCの発想の根底には、「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避

    nbqx69
    nbqx69 2009/10/12
  • Google Docs in Plain English

    シアトルにCommon Craftというクラフト紙を使ったビデオプレゼンを作ってくれる会社があるのだが、今日紹介するのは、その人たちが作ったGoogle Docsの説明。何とも言えない味がある。

  • Life is beautiful: 教えながら学ぶRuby: 言語を拡張したくなる衝動に関して

    少しMBAの勉強の方が一段落したので、今日はRubyの勉強。「Ruby」にサンプルとして掲載されているチャットのプログラムを色々な技巧を使って「どこまで美しくできるか」を試みるのが今日の課題。そこで悩んでしまったのが、「やたらと言語を拡張したくなる衝動」を押さえるべきかどうか。Rubyの場合、すべてのものがオブジェクトで、かつ、すでに存在するクラスにメソッドを自由に追加できるので、FixNumだとかNilClassなど基的なクラスの再定義をすることにより、あたかも言語を拡張しているような効果を生むことが可能なのだ。 今日書いていて気に入らなかったのは下のコードの太字の部分。 while([email protected]) r,w,e = select(@socks) next if r.nil? r.each { |sock| case sock ... } } これは、select

    nbqx69
    nbqx69 2007/10/13
  • デジタルデバイドとユーザーエクスペリエンス

    CNetのブログに「ユーザー・エクスペリエンスとパーベイシブ・アプリケーションの世界」というエントリーを書きつつ考えたことがあるので、今日はそれに関するエントリー。テーマはデジタルデバイドである。 デジタルデバイドとは、さまざまなデジタルデバイスやネットワークの恩恵を受けられる人と受けられない人の間に大きなギャップが生まれることを指す(参照)。ギャップが生まれる原因には、所得、地域、年齢、教育の違いなどさまざまなものがある。「所得・地域格差」に関しては、私のようなエンジニアに何が出来るわけでもないので口を挟むつもりはないが、「年齢・教育」に関しては言いたいことが山ほどある。 この手の議論の際に「デジタルデバイドを解消するために人々の情報リタラシーを高めよう」などという発言を聞くことがあるが、私はこの「○○リタラシー」という言葉が大嫌いだ。もともと「リタラシーがない」とは「文盲である」という

  • Life is beautiful - スティーブ・ジョブスに学ぶプレゼンのスキル

    先月の「プレゼン専用、平置き液晶モニター」というエントリーに対しては沢山の人からフィードバックをいただいたのだが、そのほとんどがこの液晶モニターに対してではなく、私がなぜそんなデバイスが欲しいかの理由として挙げた、以下の文に対するものであった。 多くの人が勘違いをしているのだが、プレゼンの主役はパワポのスライドではなく、プレゼンをしている人である。社内の企画会議であれ、顧客に対するセールスであれ、一番強く印象付けるべきは、提案する企画や商品ではなく、プレゼンをする自分自身なのだ。もちろんプレゼンの中身も重要なのだが、当に重要な情報はどのみち文書で別途提出することになるので、プレゼンの段階で重要となるのは、とにかく自分を印象付け、「こいつの提案する企画に社運を賭けてみよう」、「こいつを見込んでこのテクノロジーを導入してみよう」などと思わせることである。やたらと文字ばかり並べたスライドを読

    nbqx69
    nbqx69 2006/02/15
    なるほど。
  • 色や大きさを後から変更できる AQUA風ボタンの作り方

    二日ほど前のブックマークの人気エントリーに入っていた、「AQUA風ボタンの作り方リンク集」を見てつくづく思ったのだが、Photoshopは奥が深く、同じような効果を作り出すのに何通りも方法があるのが興味深い。そこで、今日は、Photoshopにも関わらずあえて全てをベクターデータで書くという特殊な技法(知り合いのデザイナーから教わった技法)でAQUA風ボタンを描いてみた。 まず最初に、"Rounded Rectangle Tool"で適当な大きさの角の丸い四角を書く。角の丸みは、Radiusの値で変更できるが、この場合は16pxとした。 この時自動的に作られたレイヤーをダブルクリックして、レイヤースタイルのInner Glow属性をオンにする。Blend ModeはMultiplyで、Opacityは40%程度が適切、色は黒にする(黒にしておくと、後でメインの色を変更したときにここを変更し

    nbqx69
    nbqx69 2006/02/15
    フォトショでのテカるボタンの作り方。
  • 1