読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

2012-01-01から1年間の記事一覧

JavaScriptパフォーマンスベストプラクティスその2

Nokia Developerより コアJavaScriptの落とし穴 evalやFunctionコンストラクタの使用を避けること evalやFunctionコンストラクタの使用は、ソースコードを実行可能なコードに変換しなければいけないので、毎回スクリプトエンジンを呼び出すことになる高価な…

PhoneGapでカスタムURLスキーム

PhoneGapで作成したアプリにiOSのカスタムURLスキームを与える方法と注意事項です。 実装方法 1. 他のアプリ同様にInfo.plistにURLTypesというキーを追加して、その下に必要なキーを追加します。 (キーURL identifierとキーURL schemes) <key>CFBundleURLTypes</key> <array> <dict> <key></key></dict></array>…

ウェブアプリでローカリゼーション

Dashboardウィジェットをまねて以下のようにしました。1. localizedStringsを定義したja.jsなどを用意 var localizedStrings = {}; localizedStrings['Example'] = '例'; localizedStrings['Hello!'] = 'こんにちは!'; 2. html内でブラウザの言語に応じて上…

「ひとつずつ追う数式の答え」が拡張されました。使ってみましょう

WolframAlpha Blogから 「ひとつずつ追う答え」(Step-by-Step solution)はWolfram|Aphlaで数学関連の最も人気のある特長の一つですが、機能的に劇的に拡張されました!新しいインターフェースとともに、ひとつずつ追う答えのすべてを、一度に1段階だけ見る…

geolocationを使うのはdevicereadyのイベント後に

devicereadyを待たずにgeolocationを使うと、現在地使用許可のalertが2度出ます。

meta viewportがあると、document.body.scrollLeftにバグあり

(iPadではなく)iPhone Safariでmeta viewportを設定していると、document.body.scrollLeftに値を設定すると、アドレスバーが上部に消えて、クライアントスクリーンの右上がscrollLeft/scrollTopの原点になります。 対処考察中。

apple-mobile-web-app-capableにする際のiPhone5対応

ビューポートでwidthにdevice-widthもしくは相当の数字(320)を設定すると、「ホーム画面に追加」した際に、iPhone5だとフルスクリーンにならずに互換モード表示になります。 <meta name="viewport" content="width=device-width, ..." /> width指定は使わないようにしましょう。 widthはウェブページのレンダリング幅の</meta>…

iOS5マップ風ウェブアプリ大幅更新!

http://y-ich.github.com/maps/index.html 見た目を本物に近づけて、国際化(英語対応)も果たしました! 公開場所もGithubに移行。以下の機能が未実装です。 経路の複数表示と経路のリスト表示 (2012/10/16実装) 誤差にあわせた現在地マーカ範囲(2012/10/17実…

Google MapsのカスタムInfoWindow

CustomInfoWindowのインスタンスに対応するDOMはinfo-windowクラスを持つようになりますので、CSSで自由にデザインできます。描画位置はanchorの上です。drawを変更することで変えられます。onAddでclickイベントの伝搬を止めています。必要に応じて他のマウ…

iOS5マップ風ウェブアプリ、かなり頑張りました!

Googleのシュミット会長が「GoogleマップのアプリをAppleにまだ提出していない」と発言されてから10日経ちました。昨日はGoogleマップのモバイル版のストリートビュー対応が発表されて気になりましたが、触ってみて「もしかしたら負けてないかも」なんて思っ…

ツイートを読み上げるスクリプト

Twitterのフォロー数が多くなって、遡って読むことが多くなりました。それも一興ですが、本来、つぶやきのように流れていくのがTwitter。遡って読まなければいいじゃんと言われたらそれまでですが、それでいい情報を逃すのももったいないので、読み上げスク…

iOS5マップ風ウェブアプリを作ってみました。

iOS5マップ風ウェブアプリを作ってみました。http://dl.dropbox.com/u/8719413/y_ichikawa/map/map.html以下の機能を実装しました。若干機能が欠落しています。 地図の表示 場所の検索 現在地の追尾 ピンのドロップ ピンのそばのストリートビューの表示 起動…

herokuでRubyとphantomjsを使う

ウェブサイトのサムネイル画像を作るのに、phantomjsを使いました。サーバーサイドのJavaScriptに不慣れなため、他の処理はRubyで作りました。これをherokuにデプロイする時に少し苦労しましたので、以下、備忘録です。1. 最小限のGemfileを用意して、`bundl…

先頭行を取り出す

(たまたまRubyでコーディングしていたのでRubyタグを付けました。)複数行を含む文字列から先頭行を取り出す必要がありました。 最初浮かんだのは、行に分割して先頭を参照。 head = string.split(/\r?\n/)[0] これだと先頭以外も分割するという不要な演算を…

シンタックスハイライト

オープンソースになったことを機会にスクリーンキャストなどで憧れだったTextMate 2を使い始めました。TextMate2には最初テーマがインストールされていません。なのでシンタックスハイライトされません。 テーマをインストールするには、TextMate=>Preferenc…

Meteorで、Google StreetView上の「泥棒と巡査」

先日、慶応大学の増井教授(私が新入社員だった時の上司です^^;)がTwitterでこんなことをつぶやかれました。 GoogleStreetView上で鬼ごっこするシステムある?2012-09-09 12:28:22 via web 「Meteorなら簡単にできる、多分予備実験含めて工数2時間ぐらいだろう…

「速いウェブアプリの秘訣」

Google社のSteve Soundersさんのブログ記事"Keys to a Fast Web App"を訳してみました。 速いウェブアプリの秘訣はAjaxアーキテクチャ、JavaScript、そしてキャッシングだと最近ツイートしました。この提示は自分の経験に基づいて、それぞれの寄与や節約の可…

Wolfram|AlphaのTwitter bot作りました。

Twitterから問いかけると、Wolfram|Alphaが答えてくれるTwitter bot @wb_botを作りました。 @wb_botにメンションする形で探索式を入力すると、答えがリプライされます。Steve Jobsさんの誕生日は? @wb_bot Steve Jobs' birthday2012-09-07 12:25:35 via Ech…

日本語マニュアルを5.28.0に更新しました。

http://maxima.sourceforge.jp/maxima.html

青空文庫の作品を定期的に分割配信するTwitter bot @novels_botを作りました。

【人身御供募集】青空文庫の好きな作品を毎日少しずつ配信するtwitter bot @novels_botを作りました。まだまだ使いにくくまたデバッグの最中ですが試していただけたらうれしいです。@novels_botに話しかけると使い方が返信されます。よろしくお願いします。2…

Maxima on Web for iPadのソースコード公開

一年以上前のプロジェクトですが、要望があったのでMaxima on Web for iPadのソースを公開します。 https://github.com/y-ich/maxima-on-web 個別にサーバーを立ち上げていただく必要があります。

もしもヘミングウェイがJavaScriptを書いたら

Twitter社のAngus Crollさんのbyfat.xxxへの投稿記事"If Hemingway wrote JavaScript"を訳してみました。 もしもヘミングウェイがJavaScriptを書いたら コードを書き始めるずっと前、僕は文学が好きだった。今では僕はJavaScriptをたくさん書いていて、それ…

for in [] の内包に変数を含む場合の簡単な高速化

"Breaking the JavaScript Speed Limit with V8"というGoogle I/O 2012でのプレゼンテーションを知りました。以下、ポイントの要約です。 インスタンスプロパティはすべてコンストラクタ内で一定順に初期化する V8は実行時に新しいプロパティへの代入文が実…

3D建物

Google Earth 7では新しい3D建物表示がサポートされるので、iOS版の公開が待ち遠しい今日この頃ですが、現在の6.2でも、言語環境を英語にすると、デスクトップ版でサポートされている3Dの立体写真モデルが表示されることを知りました。 ただし、3D建物がいっ…

Adobe Brackets

6月25日にアドビがJavaScript, HTML, CSSで書かれたJavaScript, HTML, CSS用コードエディタBracketsを発表されてました。https://github.com/adobe/bracketsGithubでの公開は5月7日には始まっていたようです。 Siphon, SPELL NOTEの開発を通じて、動的言語の…

Google earthで「銀河鉄道の夜」

KML

Google Earthギャラリーに「銀河鉄道の夜」を投稿しました。 パソコン版Google Earthのレイヤペインの「Earthギャラリー」をクリックして、「銀河鉄道の夜」を検索して下さい。

js-console:一行で追加できるJavaScriptコンソール

最近のデスクトップブラウザのJavaScriptデバッガーが素晴らしいですね。それなしでの開発は考えられせん。 AndroidのChromeもリモートデバッグがすごいらしいですが、iOS 6でもいよいよMobile SafariやUIWebViewのリモートweb inspectorがサポートされるよ…

Google Earthコンテンツの作り方 (6) ーインタラクティブなバルーンー

KML

Goolge EarthのバルーンはHTMLで記述でき、そこからのアンカーのリンク先はGoolge Earth内のブラウザで開かれますので、HTML5に準じた表現力豊かなコンテンツを用意することができます。既にGoogleマップでストリートビューを見ましたね。YouTubeも見ること…

Google Earthコンテンツの作り方 (5) ーツアにキャプションを入れるー

KML

パソコン版Google Earthでは、SoundCueタグを使ってツア中に音声を再生することができます。これでナレーションを入れることができるのですが、残念ながらiOS版(Android版も?)ではSoundCueはサポートされておらず音が出せません。なので、キャプションが重要…

Google Earthコンテンツの作り方 (4) ーフォルダからツアを作るー

パソコン版では、(凝ったことを考えなければ)フォルダからツアを見ることは簡単です。スイスの有名な山々の目印を作りましたので、例にご利用ください。http://y-ich.github.io/kml/example_swiss.kmlインポートしたフォルダをアクティブにして、「場所」ペ…