サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
umezo.hatenablog.jp
android.content.ContentResolver.queryメソッドの各引数は、それぞれSQLのSELECT句や、FROM句に対応している。 第3引数はWHERE句にあたるが、中に?を埋め込んでおくと第4引数で展開することが出来る。 queryの参考文献などはこちらがいいんじゃないでしょうか。 ContentResolverで画像を読み込む | Android Techfirm Lab 公式 API Document サンプル サンプルとしてAndroid備え付けのContentStoreからMP3のファイル名で情報を引いてくる例をあげる。 まずは単純に埋め込む例。 Cursor cursor = resolver.query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI , new String[]{ MediaStore.Aud
Windowsな環境の中で孤軍、Macで戦っているとよく以下のような、パスをFinderで開きたくなります。 \\server\path\to\folder\file.txt Finderではこのパスをそのまま解釈出来ないので、Automatorを噛ませてFinderで開けるようにしました。 http://github.com/umezo/umezone/tree/master/mac/ のOpenSmb.appをクローンしてください 使い方 1. アイコンをダブルクリック 2. ダイアログにパスを入力 3. エンター まとめ Automatorくそたのしい
音を再生するためのクラスMediaPlayerというのがあるのだが、こいつにたいして送るメッセージはMediaPlayerの状態に応じて変更する必要がある。 状態遷移図がAPIドキュメントに読むのでコーディングするときはにらめっこしながらやりましょう。 MediaPlayer | Android Developers 音を再生するためには 図を初期状態(Idle)の方から見ていくと再生するため(状態Startedに遷移するため)には、MediaPlayer(以下MP)の状態がPreparedになっている必要があることがわかる。 MPのインスタンスを生成する方法は大きく2種類あって、MediaPlayer.createを使うかnewするかが選べる。 さて、MediaPlayer.createの説明をみると以下のようなことが書いてある。 http://developer.android.com
Intentが飛んでくるので受信しましょう。 AudioManager.ACTION_AUDIO_BECOMING_NOISY AudioManager.ACTION_AUDIO_BECOMING_NOISY サンプル private static IntentFilter filter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY); private static BroadcastReceiver onBecomingNoisy = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //ヘッドホンが抜かれた時の処理 } }; @Override protected void onC
コード上である音楽ファイルのタイトルやアーティストなどを取得したい時がある。 え?ない? いやまぁあったんですよ。 はじめに AndroidではMediaScannerというのが定期的にSDカード内のメディア情報(画像や、音楽、動画)を収集しています。 この収集されたデータにはAPIからコンテンツプロバイダとしてアクセスすることができます。 コンテンツプロバイダに関しては正直まだよくわかってない部分もあるので、他のサイトも参考にしてください。 ContentResolverで画像を読み込む | Android Techfirm Lab anddev.org • View topic - How to extract ID3 tag from an mp3 file with android 音楽情報のコンテンツプロバイダへのアクセス方法 まずアクセするために以下の情報が必要です。 コンテン
WindowsユーザがMacユーザになって割と困りそうなこと。 Terminalでコーディング ↓ ブラウザで検索するために日本語入力をオン ↓ Terminalにもどってviで入力しようとして「ふんcちおn」 ↓ クソがっ・・・・ あるあるあるあるあるあるある え?ない? Windowsだとアプリごとに入力モード覚えてるから割とこういう事にはならないヨネー? (*´・ω・)(・ω・`*)ネー それ設定変更で出来るよ。 環境設定で、 Language&Text > Input Sources > Input source optionsをAllow different one for each documentに変更。 各アプリ初回はカレントの入力モードで切り替えられるけど、そこでモードを変更すると保持される。 QuickSilver QuickSilverをショートカットで呼び出すと、コ
以前こんなエントリー 処理時間が一定以上かかったらGrowlで通知するzshrc - 心魅 〜 cocoromi 〜を書きましたが、現在の職業柄、コマンドの実行はVMで行っています。 なので、以前の仕組みではうまくいきません。 そこで、今度はGrowlのGrowlTalk over UDPプロトコルを使って遠隔からgrowlに通知を送ります。 目次 受信側(Mac)の設定 前フリ 送信側の準備 確認 1. 受信側(Mac)の設定 Growlに外部からの通知を許可する設定をします。 System PreferenceからGrowl>Networkタブへ遷移し、以下の項目を設定します Listen for incoming notifications Allow remote application registration Optionalな気がしますが、検証してません。 コレで設定を行った
多分、この問題にぶち当たってる人には、エントリータイトルで何が起きてるかわかると思う。 これは分からんかったなー。 というより、layoutとかlistSelectorの問題に見えてしまう。 解決方法 色々見当違いな方法(listSelectorとか)を試した挙句以下のスレッドを発見。 ListViewやExpandedListViewの背景色について - 日本Androidの会 | Google グループ mListView.setScrollingCacheEnabled(false); をお試しください。 これでマジで治っちゃうんだもんなー。 2時間返せ!
転職は落雷に似ている。 ほらあれって、雲からの電気と、地面からの電気がくっつくとドカーンって落ちるでしょ? 落ちたい!っていう電気だけじゃおちれないんですよ。 でも、ふとしたきっかけで、お迎え放電がきて落ちるわけですよ。 ドカーンってね。 遠くの方で落ちた雷だから俺には関係ないねとか思ってたらだんだん近づいてきたりするのも似てるよね。 そんなわけで、最後のお勤めを終えて帰ってまいりました。 泣く泣かないとか言ってて、直前でメッセしたりとか、なんもやることなくて社内ツイッター見てる時は、今にも泣きそうだったんですが、 いざ、みんなに集まってもらったら、なんか楽しくて、卒業式も華やかにすすめることが出来ました。 それもコレも、集まってもらったみんなとの、いい思い出がバックグラウンドにあるからこそだと思います。 最終日を終えて今の胸中とにかく色々な人への感謝でいっぱいです。 こんな場ですが、この
※tableタグのデザインが死んでるのでなんとかしてます。 あー自分でオリジナルのステッカーはりてぇなー って先週の日曜に思いついたんですよ。 手段 オリジナルステッカーを作る手段は大きく分けて3つです。 業者に頼む 自分で印刷+自分でカッティング カッティングマシンで印刷 それぞれをざくっと比較 手段 質 手間 コスト 生産力 備考 業者に頼む 良 楽 高い 高 業者によっては信用ならないかもしれないのでよく調査すること 自分でカッティング カッタースキルに依存 辛い シール用紙 (A4 5枚入りで903円 thx @mirakui ) 低 直線的なアウトラインなら現実的か カッティングマシン 良 楽 シール用紙(初回はカッティングマシン代) 高 カッティングマシンは場所をとるし、安くて2〜3万だし、刃のメンテナンスや、インク代もかかってくる たぶん1枚つくるだけなら、シール用紙を自分で
絶対有料ソフトなんて買わないんだから! Abelton Liveほしー DAW REAPER Windowsでも使ってたし、何の問題もない。 音源 Macで使える音源はVSTi , AUi , Componentファイル、どれもWindowsのバイナリとは互換がないのでMac用を探さねばならない ↓の辺はwindowsでも重宝していたので、良かった。 Cryatal Magical8bit Plugin あと探すには次のサイトが便利。 Virtual Instruments for Mac - freeware downloads まとめ Macでも一応無料DTMにはげめることははげめる。
実は2月の中旬にNexus Oneを購入していた。 購入方法 1ShopMobile.com $ 665.50 11日に購入し、確認のメールを受け取った後、18日の追跡番号の通知まで一切のメールがなくクソ不安だった。 あと11日よりまえのどっかの真夜中に一回別のサイトから注文したけど、次の日に冷静になってキャンセルした。 でも、2〜3日して上記サイトで購入。 SIMカード SIMはもともとフリー B-MobileのSIMをさしています。 電話なし、インターネットのみで15000¥/6ヶ月 セカンド端末としては優秀なコストパフォーマンス やったこと Root化 カスタムロムのインストール 上の二つをやるとさらに以下のことができるようになったので、やった BT/USBテザリング Desireロムのインストール App2SD(アンドロイドアプリをSDカードに保存) まぁこんなとこかな あとフォン
なんかよくわからないけど、ネットからコマンドコピペしてきたら微妙に時間かかるっぽい! ↓ ちょっとニコ動でもみてよっかな ↓ 2時間後 ↓ ッハ! あるあるあるあるあるあるあるある そんな時に処理が終わったらGrowlで教えてくれたら良くね? ってわけでそんなことを実現する設定。 require Growlのインストールとgrowlnotifyコマンドのインストール growlnotifyはGrowlのdmgをマウントしてExtras/growlnotifyの下にあるinstall.shを実行すれば入る。 precmdとpreexec 普通にコマンドラインオプションがあったのでその辺修正しました。 preexecでコマンドラインの文字列とタイムスタンプを保持して、precmdで差分をとって処理する 下の例だと30秒以上かかると終わった時にGrowlが発動する。 local COMMAND=
グリモンuserscriptをChromeに移植するときに使う、GM APIのラッパっぽいものとプロジェクトテンプレートを書いた - 心魅 〜 cocoromi 〜 上記のエントリーでアップしたChrome用のGreaseMonkeyラッパーのソースをgithubにupしました。 http://github.com/umezo/umezone/tree/master/chrome/gmWrapper/ 経緯 そもそも今までzipで公開していたのには以下の理由がありました。 Chrome拡張の開発をWindowsでしか出来ないと思っていた 誰も使わないと思っていた ところが、この2点が両方ともつい先日、やぶられたのです。 そこで、自分の拡張開発環境をlinuxに移すと同時に公開することにしました。 既知のバグ XHRでXMLドキュメントを取得すると、落ちます なんか他にあったら教えてください
注:python 2.6で動作確認しました。 pythonの事は良くわからない。だからどんなことでもメモしていく。 参考文献:6.2 os.path -- 共通のパス名操作 アプリケーションを作っていると、とあるファイルからの相対パスで指定したくなることと言うのが良くある。 だから、良くアプリの設定にアプリケーションルートを設定したりするところがある。 でも、俺はそういうめんどくさいことはしたくない!!!! 良いじゃないか、設定ファイルがあるところそこがルートなんだよ!がたがた文句言うんじゃねぇ! っというわけで、自動的にあるファイルの絶対パスを取得したりしたいんですよ? pathモジュール pythonにはos.pathという糞便利なモジュールがあってこいつと__file__という特殊な変数を使うとそのファイルが置いてあるディレクトリの絶対パスが取得できます。 きっと設定ファイルはcon
2010/10/17 公開先をGithubにしています。 http://d.hatena.ne.jp/umezo/20100411/1270988391 Chrome速くて良いのですが、いかんせん、グリモンとか便利な物が無い。 そこでグリモンのスクリプトをextensionとしてChromeに持って行きたいのですが、GM_*なAPIが無い…… さらに、extensionの制限上の理由から、完全に移植することは出来ません。 ただし、何点かの妥協と既存のuser scriptのちょっとした修正で移植可能です。 移植用に可能な限りGM_*をラップ出来るようなものを作りました。 http://umezo.tsuyabu.in/chrome/gmWrapper.zip 使い方 zipファイルを展開すると以下のようなファイルが格納されています。 manifest.jsonを移植するグリモンに合わせて編
なおこのプロトタイプは完成しません。 AutoPagerize for Chromeのソースを参考にcontentスクリプトからクロスサイトなxhrをしてみた。 AutoPagerize for Chrome http://d.hatena.ne.jp/swdyh/20090525/1243232130 あと個人的な都合でGM_xmlHttpRequestのラッパーを作ることを目指します。 先に言い訳 設計?なにそれ ラッパーと言いつつonerrorに対応してません リスクの検証を全くしていませんのでどんな危険があるかわかりません。 まずいことがあったらツッコミして欲しいです コードの利用は自己責任でお願いします ContentScriptとextension本体との通信を行うAPI chrome.extension.connectというAPIがありコレでちょいと面倒なことをすると本体をプ
エクステンションではlocalStorageを使ってデータを保存することができます。 簡単なサンプルは以下のページに載っています。 Options http://code.google.com/chrome/extensions/options.html コンテントスクリプト以外のエクステンション要素からはJavascriptのlocalStorageオブジェクトにアクセスするだけで読み書きが行えます。 ※background_page や options_page他 コンテントスクリプトからはメッセージングAPIを使ってアクセスするためのプロキシを実装する必要があります。 options_pageでユーザIDとパスワードを保存するサンプル 上述したページのサンプルとほとんど変わらないので、マニフェストの設定は省きます。 オプションページが開かれると、まずユーザIDとパスワードをlocal
extensionには様々なパーツがありますが。 それぞれのパーツ間でメッセージングを行うAPIが用意されています。 Message Passing http://code.google.com/chrome/extensions/messaging.html Communication between extensions and their content scripts works by using message passing. Either side can listen for messages sent from the other end, and respond on the same channel. A message can contain any valid JSON object (null, boolean, number, string, array, o
JavascriptでAjaxでかつ画面遷移しまくるアプリを作るときに、イベントハンドラの付け替えが割と面倒だったりします。 そんなときには中身を入れ替えない部分の要素にだけイベントハンドラを設定して、あとはクラスをパースして処理を分けるという手段があります。 今回のサンプル:http://umezo.tsuyabu.in/samples/js/cmdPattern/ 前提 ただし、そもそもイベントハンドラを付け替えなきゃ行けない時なんかあるのか?というと、以下の様なケースが該当します。 Ajaxによる内容の入れ替えをinnerHTMLの書き換えで行っている と言うのも、innerHTMLで中身を書き換えてしまうと、JS上のオブジェクトに対応する、HTML要素がいなくなってしまうため、イベントが飛んでこなくなるのです。 仮に書き換える前と全く同じHTMLを読み込んだとしてもイベントハンドラ
風呂入ろうと思ってたけどついかっとなって書く。 vimのキーバインドに納得いかないときもあるよね インサートモードで、行末を編集したくなったら大人しく <ESC>Aキーの押しやすさが気にくわない人は <C-[>Aとかも試してみたら良いんじゃないだろうか それでも、どーーーーーーしても、別のキーでやりたい場合は、.vimrcをカスタマイズしましょう。 mapという便利なカスタマイズ用のオプション(?)があります。 超簡単にさらっとmap たとえばインサートモードにおいてCtrl+eで行末へ移動したければ imap <C-e> <END>こう書けばいい 間違っても imap <C-e> <ESC>$i<RIGHT>とか謎の設定をしてはいけない。 同じく行頭へ移動したければ imap <C-a> <HOME>と書きましょう。 まとめ map美味しいよ map ついでなのでおすすめimap? #イ
特にトピックはありません。 なーんもアイデアがない。 mixiアプリの開発効率を上げるためにやった方が良さそうなこと 「キャッシュを削除」をブックマーク gadget.xmlはガンガンキャッシュされるので、特に学習中とかは頻繁にキャッシュの削除することになりそう。 と言うわけで、キャッシュの削除はブックマークしておこうね、と。 gadget.xmlをプログラマラブルに 上記の話にも通じるが、外部Javascriptなんかもキャッシュされたり、されなかったりする。 そこで、gadget.xmlのキャッシュ削除と同時に外部JSも新しくなるように、PHP化して登録した。 以下のような感じにしておくと、gadget.xmlのキャッシュを削除するときに、JSのキャッシュも無効になる。 <?php $dummy = time(); echo<<<HTML <?xml version="1.0" enc
tohaeがzshデモれとか言うので、「あ、そういえば会社の勉強会でscreenにマルチユーザモードがあるとか教わったし、ちょうど良いから使ってみるか」ってな具合で、やってみた。 参考文献 http://sourceforge.jp/magazine/06/09/11/088249 ざっとした手順は以下。 screenをsetuid rootに設定する 適当なセッション名をつけてscreenを起動する マルチユーザモードを有効にする 参加出来るユーザを追加する 参加してもらう人にscreenを起動してもらう screenをsetuid rootに設定する 正直意味わからんままこの設定はやった。 sudo chmod u+s /usr/bin/screen #コレやったらscreenが起動できなくなったので sudo chmod 755 /var/run/screen 主催者側の手順 $ s
追記 vimのバージョン 7.0.237 たとえば 1.この状態から 2.ココまで編集して 3.「あれ、これちがくね?」って、undoして さっきのところまで戻る 4.んで、 また、書き直し初めたんだけど。 5.「やっぱさっきのであってんじゃね!?」 で、undoしても・・・ 2に戻りたいのに戻れない!? っていうこと、時々ないですか? vimならg+,g-コマンドで戻れますよと。 undotree vimはundotreeという概念があり、編集履歴をツリー状に管理しています。 通常のundo、redoでは各ノードの最新の枝だけしか行き来出来ませんが、 任意のノードに移動する手段が用意されています。 そのコマンドがg-とg+です。 たとえばさっきの、ここからg-を押すと 見事この状態にもどれます。 解説 どういうことが起きてるのかと言うと下の図のようなことが起きてます。 数字は冒頭の図の番
FlashのIDEで作業をすればテキストを塗りに変換し線をつけることで、縁取りは簡単に作ることができる。 ところが、それではダイナミックなテキストに対応するのは難しいし、ましてや動的にフォントが変わるような場合は絶望的である。 そこで、サイズや、テキスト、フォントが動的に変化するものに対して縁をつけるサンプルを作ってみた。 バグがあるがとりあえず、貼る。 http://umezo.tsuyabu.in/samples/flex/aroundtextfilter/ #一部フォームの変更が即時反映されないBugがあります。 #回避策調査中 しくみ 基本的な仕組みは以下の図の用に対象の文字列をフィルター用レイヤで加工してそれをマスクに縁取りに使うBitmapをマスクします。 ただ、単純にマスクするだけだと、それっぽくないのでGlowFilterやColorMatrixFilterで調整します。
ColorMatrixFilter http://livedocs.adobe.com/flex/3/langref/flash/filters/ColorMatrixFilter.html このフィルターを使うと、フィルター対象の各ピクセルのRGBA値に対して一様な変換を加えることが出来ます。 何はともあれ、さんぷる ボタンをぽちぽちすると、フィルターをオンオフします。 http://umezo.tsuyabu.in/samples/flex/colormatrixfilter/ColorMatrixFilter.swf <?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init();" > <mx:Script> <![CDATA[ import fla
タスクトレイに表示するアイコンはBitmapDataというクラスのインスタンスを使っている。 このとき、アイコンはあらかじめ用意した画像ファイルを使いたいという需要がある気がするのだがいかがだろう? ImageSnapshot.captureBitmapData ImageSnapshotクラスはコンポーネントからBitmapDataを作れるクラスです。 (このほかにも適当な画像形式にエンコード出来たりするらしいが、そっちは知りません。) mxmlに以下のような箇所があるとする <mx:Image id="icon" source="icons/16x16.png" /> このとき、このImageオブジェクトのBitmapDataはこのようにして生成出来る。 var bitmapData:BitmapData = ImageSnapshot.captureBitmapData( icon
今AIRでP3のクローンを作っている。 【P3】P3:PeraPeraPrv - とかいろいろ http://d.hatena.ne.jp/lynmock/20071107/p2 コンポーネントのべた書き 以下のコードでは最終的にP3のクローンを作ることを想定したコードになっていますが、例として使っているだけで、本質的には関係ありません。 クラス化と同じで、mxmlもある程度のまとまった部品群をまとめてコンポーネント化したほうが良い。 たとえばP3の上部にある、アイコン、ユーザ名、コメントなどが表示される部分はmxmlだとこんな感じになる。 <mx:HBox> <mx:VBox height="100%" width="70"> <mx:Image height="50%" width="100%" /> <mx:Button height="25%" width="100%" label
sakura mercurialでググるとそこそこヒットする。 でも一カ所のやり方だけをまねてもうまくいかなかったから、まとめる。 目標: 1.sshしてhgコマンドが使えるようにする 2.ssh経由のhgリポジトリとして動作するようにする 1.sshしてhgコマンドが使えるようにする これはすぐできる。 http://www.dodgson.org/omo/t/?date=20070519 ここの、「入手 展開 インストール」をそのまま実行。 そのまま、local/binにPATHを通しても良いのだが、目標2でちょっとやっかいなことが起きるので $HOMEに$HOME/local/binへのリンクを貼る cd ln -s local/bin bin もしすでに$HOME/binが存在するならhgコマンドのリンクだけ貼っても良い。 cd ln -s local/bin/hg bin/hg
次のページ
このページを最初にブックマークしてみませんか?
『心魅 - cocoromi -』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く