読み書きプログラミング

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

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

任意の値のプロパティとプロトタイププロパティを取り出す

ウェブアプリでエディタを作っていて、自動補完を実装するために、プロパティを抽出するコードを書きました。 propertyList = (value) -> switch typeof value when 'string' then Object.getOwnPropertyNames value.__proto__ when 'undefined' then [] els…

Siphon2ベータ公開しました。

iPadなどタブレットに合わせたプログラミング用エディタSiphon2をベータ公開しました。 http://y-ich.github.io/Siphon2/ (注: 2013年10月9日、サイトをdl-web.dropbox.comからy-ich.github.ioに移しました。)一年ほど前に、ウェブ上で色々なことができるの…

日本語マニュアル更新

Maximaの新バージョン(5.29.1)が出ていたので、日本語マニュアルを更新しました。 http://maxima.sourceforge.jp/maxima.html

ソフトウェアキーボードを出現させずにテキスト欄にフォーカスする方法

<body> <input id="target" type="text" /> </body> $('#target').on 'touchstart', (event) -> $this = $(this) event.preventDefault() setTimeout (->$this.trigger 'focus'), 200 簡潔のため、jQuery使ってCoffeeScriptで記述しました。 setTimeoutは200ms程度必要です。150ms程度だとキーボードが出現…

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

version 1.2.16 入力欄の消去ボタンを押すと入力欄からフォーカスが外れる不具合を直しました。 ピンの情報ページで操作を行った時に地図に戻らない不具合を直しました。 最近また地図アプリを少しずつ触るようになり、情が戻ってきました(笑)。 初期よりだ…

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

version 1.2.15 ストリートビューにミニマップを追加しました。これに伴い、ストリートビューの閉ボタンを廃止しました。ミニマップをタッチすると地図に戻ります。 最近、iPhone 5を購入しました。 実機で試してみると、アプリの更新が続けて複数回、発生す…

StreetViewの閉ボタンを大きくするハッキング

Google MapsのStreet Viewの閉ボタン、スマートフォンやタブレットでは小さくて押しにくいです。 .large-icon { -webkit-transform-origin: right top; -webkit-transform: scale(2) } options = ... map = new google.maps.Map options google.maps.event.a…

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

version 1.2.13 起動画面にブランドロゴを表示するようにしました。(起動時に中途半端な画面が見えるので隠しました。) version 1.2.14 ストリートビューの閉ボタンが小さくて押しにくく、また、初回のクリックが効かなかったので、直しました。

DropboxのPublicフォルダのcharset

新規ユーザーには提供されなくなったDropboxのPublicフォルダに関するマイナーな情報です。Dropboxのウェブサーバーは、Publicフォルダのテキストファイルのエンコードを自動判別して、HTTPレスポンスヘッダに付けます。至れり尽くせりですね。 で、国際化し…

google.maps.places.Autocompleteの不具合対応

Mobile Safari上でGoogle MapsのplacesライブラリのAutocompleteを使う場合、日本語変換の後にEnterを押すと変換前に戻ってしまいます。デスクトップでは起こりません。 デスクトップとMobile Safariの差を調べると、IME変換に対応するtextInputイベントの後…

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

version 1.2.12 iOS上で入力欄にアルファベットを入力した時の候補が消去できない不具合を直しました。 iOS上で検索欄にアルファベットを入力した時、検索後、入力が消える不具合を直しました。

Tweets in the World

世界中のツイートを地図上で表示するサイト"Tweets in the World"を作りました。 http://tweets-in-the-world.herokuapp.com 具体的には、位置情報を含むツイートをマーカーでプロットし、2秒に一度、適当にツイートの中身を表示しています。Photo Filterを…

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

version 1.2.11 iOS上で検索入力のオートコンプリートに不具合がありましたので、直しました。(長い間、不具合に気がつかず申し訳ございませんでした。)

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

version 1.2.8 移動モードで自転車に対応しました。 version 1.2.7 斜め45度航空写真に対応しました。 経路検索にて移動モードに応じて地図の表示を変更するようにしました。

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

version 1.2.6 タッチデバイスでのクリックの遅延をなくしました。 アニメーション効果を速くしました。 version 1.2.5 住所と緯度経度だけでなく、施設名でも検索できるようになりました。 現在地追尾のインディケータに、最初の位置確認までの状態を追加し…

iOS5マップ風ウェブアプリ、バージョンが確認できるようになりました

起動画面の右下にあるiボタン(地図のオプションを選択するボタン)をタッチすると、一番下にアプリのバージョンを表示するようにしました。 それだけです… 追記: 午後4時18分時点で、最新バージョンは1.2.2となりました。(アプリケーションキャッシュのデバッ…

iOS5マップ風ウェブアプリのGPS関連インジケータ

現在地追尾のボタンで位置情報取得の状態がわかるように修正しました。 位置情報取得の使用が許可されていない場合、淡いボタン 現在位置追尾中に、位置が取得できなかった場合、1秒毎の点滅 現在位置追尾中に、位置が取得が時間切れだった場合、2秒毎の点滅

less.tmbundleでCSSの保存

TextMate2にhttps://github.com/appden/less.tmbundleを導入すると、Save to CSSが機能しません。機能させるには、 Preference...->VariablesのPATHに、rubyとnodeとlesscが通るパスを設定し、チェックを入れる。 Save to CSSを以下に直す。 #!/usr/bin/env …

iOS5マップ風ウェブアプリに関するお知らせ

iOS6のためのiOS5マップ風ウェブアプリに関してです。 iOS6でこのアプリをウェブアプリ(全画面表示)の形で使うと、現在位置のトレース機能が動いていないことが判明しました。十分な評価が足らず申し訳ございません。 対策としては、Safari上で使っていただ…

iOS5マップ風ウェブアプリ、起動時間短縮しました。

ウェブアプリ(「ホーム画面に追加」)の状態で、起動時間に、iPhone 3GS/3G回線で20秒以上、WiFiで16秒掛かっていましたが、10秒強で起動するようになりました。(アプリケーションキャッシュを導入しました。)上位機種ならもっと速いです。 ストリートビュー…

iOS5マップ風ウェブアプリ、Panoramioが見られるようになりました。

iボタンから「Panoramioを表示」をクリックしてもらうと、上のようにPanoramioの写真が見られるようになりました。 Enjoy! http://y-ich.github.com/maps/maps.html追記: 19日の夜からiOSでストリートビューボタンがタッチできない状態でした。21日午前0時に…

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

Nokia Developerより オブジェクト指向JavaScript 代わりの継承機構を検討すること JavaScriptではオブジェクト指向スタイルの継承をまねるたくさんの方法が存在する。しかし、継承をまねるすべての機構が似たように動くわけではない。 特にコードがオーバー…

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

Nokia Developerより クライアント-サーバー通信 XMLHttpRequestにタイムアウトを設定すること ブラウザはXHR requestをある時間後タイムアウトするが、スクリプトの制御下で接続を中断することが有益なことがある。これはsetTimeout()を使って XHRコールに…

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

Nokia Developerより アニメーション アニメーションは控えめにすること ハードウェアサポートのないアニメーションは遅い。本当の有用性の価値をもたらさない余分なアニメーションを避けるようにすること。少なくともユーザーにアニメーションを無効にする…

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

Nokia Developerより イベント イベント委譲を使うこと もしイベントハンドラをバインドする必要がある新しい要素を動的にたくさん生成するなら、イベントハンドラを個々のオブジェクトに割り当てることは、すぐにことが大きくなって、高価になる。 複数のイ…

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

Nokia Developerより スタイル CSSを最適化すること 部品ライブラリを作ること 一貫した意味論的スタイルを使うこと 内部で透明性を持つようにモジュールを設計すること 柔軟に グリッドが好きになるように学ぶこと セレクタを最小化すること 構造とスキンを…

JavaScriptパフォーマンスベストプラクティスその10を飛ばしてその11

Nokia Developerより jQuery固有 注意せよ!これらの最適化パターンはjQuery 1.2.6を対象にしている。最近のバージョンやSizzleセレクタエンジンはこれらのボトルネックのいくつかを軽減している。 NB! These optimization patterns are aimed at jQuery 1.2.…

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

Nokia Developerより Document Object Model (DOM) の難解さ ソース: Efficient JavaScript - DOMDOMパフォーマンスの遅さは以下の3つの主な原因に遡ることができる: 大規模なDOM操作 DOM APIの大量の使用は遅さのよく知られた原因である。 スクリプトが多す…

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

Nokia Developerより よりよいロードパフォーマンスの秘訣 より速いスタートアップとスプラッシュスクリーンの表示のためにはブロッキングなしにスクリプトをロードすること <script>タグがHTMLドキュメントの中に見つかると、参照されたスクリプトリソースをダウン…

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

Nokia Developerよりこの記事はより速いウェブアプリケーションを構築するための価値あるガイドラインを与える。記事は様々なソースからのガイドラインの集合である。 This article gives valuable guidance for building faster web applications. The arti…