サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
re-shikajiro.hatenadiary.org
お知り合いから相談がありました。 以下のどっちが正しいの? http://www.example.com/abc.html#test?shika=prin http://www.example.com/abc.html?shika=prin#test 気になったので調べてみました。 URIの仕様の和訳 http://www.studyinghttp.net/rfc_ja/rfc3986 の、Sec3 http://www.studyinghttp.net/rfc_ja/rfc3986#Sec3 URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] または、Sec4.2 http://www.studyinghttp.net/rfc_ja/rfc3986#Sec4.2 relative-part [ "?" query ] [ "
しかだよ?FourSquareのチェックインってめんどくさいですね。 アプリ起動 GPSとネットで周辺検索(これが遅い) 今居る場所を探す チェックイン チェックインしたいだけなのに、こんなに手間がかかります。めんどくさいとどんどんご無沙汰になって、いつしかチェックインしなくなる・・・。 そんなのってないよ 可能な限り短くしてみました。 カードをかざしてチェックイン おしまい。 ワンステップになった。やったね。 これどうやってるの? これはNFCという近距離通信技術を使って、皆が持ってるsuicaなどのカードでチェックインをできるようにしたものです。NFCは一部のAndroid端末で利用できます。このアプリはまだ公開していません。そのうち。 流れ NFC搭載のAndroidがカードのIDを識別 FourSquareのアカウントとカードのIDが関係しているかサーバーに問い合わせる。 登録済み
しかだよ。 ADKのバージョンが変わったりしてて正規のサンプルが動かなかったりしますよね。 というわけで、2012/9/30 現時点で動くサンプルをご紹介します。 Android 動作環境 Android 4.0.3 Galaxy Nexus ソースコード Y.A.M の 雑記帳: Android Hello ADK つくった!のソースコードをほんの一部だけ修正しています。 MainActivity.java package com.example.adksample; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import an
しかだよ。 Expressのroutes配下の書き方がわからないので調べてみました。 expressのルーティング - hokaccha.hamalog v2 2012-07-14 - ZeBeVogue別館 なんかしっくりこない・・・。 なんとかなるんじゃないかなと思って、色々試してみた。それっぽいまとめ方ができたので報告。 routes配下の作り方 最初のテンプレートはこんなかんじ。 web.js routes = require("./routes"); routes/index.js exports.index = function(req, res) { return res.render("index", { title: "Shikajiro dayo" }); }; 機能を増やす index以外にaddとか追加するにはこんな感じでできた。 routes/index.js e
しかだよ。 webサービスはスピードが正義です。(まさよしじゃないよ。) 1日でも早くサービスをリリースし、1時間でも早くサーバーを構築し、1分でも早くコードを書き、1秒でも速くカチャカチャターンしなくてはいけません。 遅れの原因 そんな中、割りと時間がかかるのが『インターフェース連携』になる部分です。インターフェースの遅れは多岐にわたります。 お客さんからの返事待ち 依存関係のあるソースコードの完成待ち 結合テスト などなど クライアントとサーバーの疎通もその一つ。 サーバーのapiを待ってたりすると、クライアントの実装が待機状態になり、開発者はニコ動を見始めまてしまいます。 クライアント開発者にはとりあえずJSON返すwebサーバーが必要です。でも、サーバー実装力はないので、可能な限り簡単に、そして素早くテストサーバーが欲しいのです。 シートをテーブルに見立てた というわけで作りました
ゆっくりだと思った?残念!しかだよ。 ゆっくり実況見ながら寝てるので、ゆっくりボイスを聞かないと眠れない体になってきた30歳♂独身です。ゆっくりかわいいよゆっくり。 SayKanaというライブラリを使うとターミナルからゆっくりボイスを喋らせることができる、と隣の席の「はかせ」から教えてもらったのでやってみた。 SayKana - Mac用音声合成プログラム SayKanaは、Mac OS X上で動作する日本語音声合成ソフトウェアです。OS Xに付属の say コマンド(英語の音声合成)と同様の機能を実装しています。 AquesTalk音声合成エンジンをMac OS X 上に移植したもので、基本的に『かな』からの音声合成であり、漢字かな交じり文は読み上げられません。 商用でなければ無償でご利用いただけます。 とりあえずヘルプ見る。 $ SayKana -h NAME saykana - 日本
しかだよ。 変更があったローカルのソースコードをサーバーのソースコードと同期しながらwebアプリを開発できるスクリプトを作りました。 shikajiro/eventsync.py 2012/07/10 追記 下で説明するソースコードは古いので、shikajiro/eventsync.pyの方を見てくださいね。 webアプリ開発の問題点 マウントしたりsshでサーバーに接続してwebアプリを開発してると、回線が遅くて画面が固まることがあり、ストレスフルなコーディングを強いられている。 ローカルのソースをgitでpushしてサーバーに反映するのは複数人の場合はいいけど、一人用の場合は毎回add commit push がめんどい。 プログラマーが楽しくプログラミングできないのは罪です。直ちに懺悔するか解決しましょう。 開発中のwebアプリを動かす場所を比較検討 実行場所 公開範囲 反応スピード
しかだよ。 Titaniumで作ったアプリの実機ログを有線で確認するのはめんどいので、ブラウザで見れるような仕組みを作ってみました。 アプリのログをリアルタイムに送信するライブラリ(client)と、ブラウザでログをリアルタイムに受信して確認するライブラリ(server)の2つセットです。 https://github.com/shikajiro/ti.console install方法 README.mdを見てね。 使い方 これもREADME.md を見てね。一応以下で簡単に説明します。 クライアント側 requireでconsoleライブラリを利用可能にします。 app.js var console = require('lib/console'); console.info('hogehoge'); サーバー側 コンソールからmongodbとnodejsを起動します。 mongod
ZigBeeに対応した製品であるXBeeでPCとArduinoを繋いでみました。色々とめんどかったのでまとめますね。 以下のサイトと書籍を参考に設定しました。 MacでArduino Uno + XBEEを使ってみた - むだな ものを つくる 建築発明工作ゼミ2008: Arduino+Xbee Shield/Processing+XBee Explorer USB Amazon.co.jp: XBeeで作るワイヤレスセンサーネットワーク (Make: PROJECTS): Robert Faludi, 小林 茂(監訳), 水原 文: 本 環境・使ったもの MacOS X Lion Arduino UNO スイッチサイエンス/商品詳細 XBee ZB / チップアンテナ型 x 2 スイッチサイエンス/商品詳細 Arduino ワイヤレスプロトシールド スイッチサイエンス/商品詳細 XBe
Arduinoを使って気温を定期的にツイートするハードウェアを構築してみました。 使ったもの Arduino UNO Arduino Ethernet Shield 温度センサー(LM35DZ) ブレッドボード 配線 こんな感じ。抵抗とかも無いから簡単。 ソースコード Twitterのライブラリを利用しています。Tweet Library for ArduinoよりDLしてArduinoパッケージに組み込んでください。僕の環境では以下の場所でした。 /Applications/Arduino1.0.app/Contents/Resources/Java/libraries ソースコードはサンプルを流用しています。 #include <SPI.h> // needed in Arduino 0019 or later #include <Ethernet.h> #include <Twitt
Facebookの使い方を間違えて落ち込んでいるしかだよ。(´・ω・`) AndroidのFacebook SDKを使いたくてとりあえずAndroid Tutorial - Facebook Developersを動かそうとしたら、ずっとローディングのまま・・・。それを動かすまでの話です。 Jan 18, 2012のcommit: c58af0b64d85a853f1c79f2ee207c6d9992d31baの状態のsdkを利用しました。 facebook sdkの準備 Android Tutorial - Facebook Developers とか takutlessのメモ: Facebook Android SDK を使ってみる を参考にしましょう。 ソースコード fb.authorize(this, new Facebook.DialogListener() {...}); の部
3rd partyのbrowserとして上位のDL数を誇り、最近spy wareとして叩かれてたDolphinのCEO達とのmeetupが非公開で開催されたので会って来ました。 Dolphin Browser | Smart Phone, Clever Browsing dolphin browserのあらまし まずは動画の紹介 Androidが出た当初、プリインストールのブラウザの使いにくさ、3rd partyのbrowserの少なさから、使いやすいsmartphone browserに可能性を感じて起業。 日本はアメリカに次いで2番目にユーザー数が多い。 18ヶ国語(ボランティアベース) 1300万DL(内iPhone300万) 9億PV 特徴 addon 機能の拡張 ジェスチャー タップ入力いらずのショートカット tab pcブラウザーのようなタブを再現 ユーザーが自分で使いやすいよ
しかだよ。 福岡開催は初となるstartup weekend fukuoka に参加してきました。とても実りある3日間でした。 Event | Startup Weekend いいこともわるいことも、色々と思ったことまとめます。 学んだこと たくさん失敗できた たくさん失敗した。 時間が足りなくなった。プレゼン準備が不十分だった。チーム内のビジョンが揺らいだりもした。マネジメントもプレゼンもスケジュール管理も失敗だらけ。 スケジュール管理をミスったのでプレゼン準備の時間が足りなくなり、プレゼンも大変ぐだぐだになってしまった。チームで作った素晴らしいアイデア・デモもうまく表現できなかった。イベント中最大の失敗でした(´・ω・`) でも、失敗したからこそ僕達のチームはとても多くの事を学んだ。僕たちは失敗できた。そして僕たちは成長できた。 チーム 一人では不可能 それぞれの専門性を活かしたチーム
しかだよ。 AppCircleという、Androidのアプリを楽しむ探すアプリを作ってます。 そのなかの仕組みで、端末にダウンロードしてインストールしたアプリの一覧を取得したくなりました。 @t_eggさんの助言をもらい、以下な実装になりました。 ...略... //パッケージマネージャを利用して、アプリケーションの一覧を取得する。 //IntentにCATEGORY_LAUNCHERを指定しているので、厳密にはランチャーに表示されるアプリの一覧です。 PackageManager pm = getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); List<ApplicationInfo> apps = pm.getI
しかだよ。Effective Javaの読書会を始めたのでブログにまとめてみるよ。 Effective Java この本は中級以上のJava技術者になるための必須本ですね。 Effective Java 第2版 (The Java Series) クリックして買ってね! 輪講 福岡の30歳前後プログラマー @daichan4649 @seisuke @kensei_kick @kenz_firespeed @shikajiro で始めました。早速 @daichan4649 が仕事で来れなかったので、次回、抹茶オレをおごってもらうことにします。 :) というわけで議事録みたいなまとめ。 第1章 はじめに 前説なので飛ばします。 第2章 オブジェクトの生成と消滅 new Hoge(); について考える章ですね。newとかstaticファクトリーメソッドとかfinalizeとかについて書いてます
昨日、パプテマス Scirocco 触ってたら中はRobotiumというのを使っていたので調べてみたら、そこそこメジャーなシナリオテストツールだったので、触ってみました。 Robotium とは Androidのシナリオテストを簡単に書けるライブラリです。UIスレッドを意識せずに書けるので、テスト仕様書に近いコードを書くことができます。ブラウザテストツールのSeleniumを意識してるみたいですね。 公式サイト robotium - It's like Selenium, but for Android™ - Google Project Hosting サンプルプロジェクトを動かす。 とりあえずサンプルプロジェクトを動かします。やることは二つ。 SDKのサンプルアプリ notePad をインポート ExampleTestProjectをインポート テスト対象となるプロジェクトはSDKに含
テスト大好きしかだよ。Scirocco っていうUIテスト自動化ツールがリリースされたので触ってみました。 Scirocco Zガンダムのパプテマス・シロッコと関係があるかわからないですが、UIテストの後スクリーンショットを撮って保存したり、レポートを出力することが出来るみたいです。さらに、TMSってのを使うと、プロジェクトメンバーと共有もできるらしい。業務支援ですな。 中ではrobotiumを動かしてるので、記述は簡略されてます。 公式サイトのQuick Start をやってみます。 http://code.google.com/p/scirocco/wiki/QuickStartScirocco Eclipse Plug-in インストール Eclipse Plug-in があるとは!早速インストールしてみます。URLからインストールできます。 http://184.73.200.19
Androidのテストコード書くのが日課のしかじろうだよ。 AsyncTaskのテストコードの書き方が分からなくて悩んでたけど、解決策が見つかったのでログに残します。意見・指摘とかあればコメントお願いしますね。 AsyncTaskとは AsyncTaskはAndroidで使う非同期処理のクラスです。重たい処理(例えばHTTPでのDLや画像の変換処理など)をバックグラウンドで実行させるのに向いてます。処理の進行状況をプログレスバーに表示させることもできます。 似た処理にServiceがありますが、Serviceはバックグラウンドで処理を繰り返させる(GPSを監視し続けて特定の条件で通知を出すなど)などが目的なので、Activityから独立しています。 Activityと密接な非同期処理がAsyncTask。独立した非同期処理がServiceって感じで使い分けてます。 Serviceは専用のT
環境構築 debian6 python2.6 django1.3 なんでdebianにしたのか 簡単だったからです。最初centos5でやってたんだけど、デフォルトのpythonが2.4でちょっと古い。djangoのサイトには Django は バージョン 2.3 以上の Python で動作しますが、 2.5 以降がお勧めです。という のも、 Python 2.5 からは、 SQLite という軽量なデータベースが付属するからで す。 とあるので、バージョンを上げたい。でもyumのパッケージ管理では2.4.3がMAXなので、python2.7のソースコードを落としてmake installした。pythonのシンボリックリンクをpython2.7に変更していざ始めようとしたら、yumが動かなくなった。どうやらyumはpythonで書かれているらしい。始めて知った。yumだけpython2
しかだよ。 twicca shutter plug-in作ったので技術公開します。主にメディアアップロードプラグインの作り方になります。 サンプルソースコード twicca shutter plug-inのソースコードはgithubで公開中なう。 https://github.com/shikajiro/twicca-shutter-plug-in 公式ドキュメント http://twicca.r246.jp/plugins/documents/ androidやってる方は読めば分かるかも知れないけど、しかは未熟なのでわからないことが多かった。 おおまかな作り方 twiccaからのメディアの受け取り方 getIntent()でもらえます。 InputStream openInputStream = null; try{ Intent receivedIntent = getIntent()
しかだよ。 Androidアプリ 「twicca shutter plug-in」とは? Android専用Twitterクライアント「twicca」に写真・動画アップロードサービス「shutter」の機能を拡張するプラグインです。 shutterって? http://shtt.jp/ は国産のTwitter連携した写真・動画アップロードサービスです。写真や動画をアップロードすると短縮URLに変換され、そのままツイートすることができます。まだリリースされたばかりでこれから流行りそうな感じなので、可愛がってあげてください。yfrogとかtwitpicと同じだと思ってもらっていいです。 twiccaって? http://twicca.r246.jp/ はこれまた国産のAndroid用Twitterクライアントです。海外からも評価が高く、シンプルかつ高性能な作りになっています。 シンプルなのに高
しかだよ。 google apps scriptで書いたsheet2jsonを某所で使って頂いてるのですが、「重すぎて話にならないわ」と改善要望を頂いたのでとりあえず調査してみることにしました。 sheet2jsonを処理の流れ まずsheetの文字が書いてあるところを範囲選択。 範囲選択した箇所を1行ずつJSONに変換。 行の中に参照(#hoge or #[]hoge)があればそのシートに移動して1の処理を繰り返す(再帰)。 処理時間を見てどこが重いのか判断する とりあえず Logger.log(new Date().toLocaleString()); を要所に記述して処理時間を見てみました。 sheet2json:2011/03/06 15:34:10 JST generateSheet2Json start:2011/03/06 15:34:10 JST getKeyValueRa
概要 これはGoogle Docs spreadsheetに書かれたデータをjsonに変換するツールです。入れ子構造も再現できます。 どんな時つかうの? 開発時のテスト用に webアプリ開発でajax側とか作ってるけど、まだサーバー側ができてなくて、でもとりあえずテスト用のjsonが欲しい時とかあると思います。きっと。 直接jsonファイル作ってもいいけど、ある程度大きなjsonファイルになると管理も大変だし、入れ子構造になるとわけわかんなくなるし、json変更したら動作が変わったとかなったらめんどいですよね。 お客さんに直接入力してもらえる google docsなので、お客さんから直接データを入力してもらえます。ITにうといお客さんもExcelなら使える人も多いです。そんな案件の時にご使用ください。 組込み方法 ツール -> スクリプト -> 挿入 でsheet2jsonを検索してくだ
malabar-modeってのを使うと、java開発が素敵になるらしい。のでインストールしてみた。 環境 MacOS X SnowLeopard cocoaEmacs23.2.1 malabar-modeのインストール gitから落としてきます。 git clone git://github.com/espenhw/malabar-mode.git pom.xmlが含まれたディレクトリなので、mavenするみたいね。id:smotokezuruさんの記事 -Maven2連携可能な malabar-mode があれば java-mode も jde-mode も不要かも を参考にやってみる。 pom.xmlの修正 いくらmvn packageしても依存関係のダウンロードすら始まらない。pom.xmlの中見たり リポジトリのURL http://repository.sonatype.org/
しかだよ。 久々にajaxなお仕事に携わってjavascript(むしろjQuery)書きました。んでテストコード書きたいので調べたらJSUnitとQUnitを見つけました。QUnitはjQueryから派生したツールらしいので迷わずQUnitにしました。jQueryのテストが簡単に書けるのでいいですね。 functionのテスト テストはこんな感じ。たぶん動くよ。 //テスト対象のサンプルコード /* * px文字列を数値にする。 * sample "100px" -> 100 */ var changePxInt = function(px_str){ if('number' == typeof(px_str)){ return px_str; } var index = px_str.search("px"); if(index < 0){ return 0; } return Num
データベースのデータが追加、変更、削除されたときに特定の処理を呼びたいってありますよね。うん、あるある。 AndroidだとregisterContentObserverとnotifyChangeを使うとできます。例えばこんな感じ。 メインの処理側 ... ContentObserver contentObserver = new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { super.onChange(selfChange); //データベースに変更があったときに呼び出したい処理を書く } }; //ObserverをContentResolverに登録 getContentResolver().registerContentObserver(URI, true
英名 Pragmatic Thinking and Learning: Refactor Your "Wetware" 著者 Andy Hunt 他の著作に 達人プログラマー -"The Pragmatic Programmer"- がある。 この本を紹介してくれたのはだれだったか覚えてないけど、1年くらい前に買った本。すごく面白かったので再読し、メモにまとめてブログに書くことにした。 ほとんど自分用の備忘録なので、気になったらamazonへGO! ウェットウェアとは"人間の思考方法" 著者は指摘する。 バグの数はここ40年あまり変わっていません。プログラミング言語や、プログラミング技術、プロジェクト管理手法などの進歩にも関わらず、バグの発生率はほぼ横ばいのままなのです。これは恐らく我々プログラマーがお門違いのところに注力してきたということなのでしょう。 問題はやり方ではなく、人間にあった
鹿だよ。 ついに九州地方にもGoogle Technologies User Groupができました! Kyushu GTUG Google Group 九州GoogleTechnologyUserGroupを立ち上げました 現時点で、東京、京都、中国、四国があるみたいです。 GTUGとは Googleが公開・力を入れている技術について情報交換、勉強するユーザーグループです。例としては、GAE HTML5 Android Chrome GO言語 Gmap等のAPIの利用 などの開発向けや、Chrome Gmail GCalendar などの活用方法といったユーザー向けが想定されます。 主催者はAndroid勉強会によく参加されている @kenz_firespeed さん。 GAEをちょこちょこ触ってるので、早く開催されないかなぁ。
しかだよ。漫画を電子出版するにはどうしたらいいのか色々と調べてみたよ。 iPadで電子漫画を読む iPad買ったので、色んな電子書籍リーダーで漫画を読んでみた。 アプリ 評価 zip対応 web対応 独自store 説明 i文庫HD ☆☆☆☆★ ○ ○ × 読みやすい。ページめくりがしっくりくる。FTPやHTTPにも対応してる ComicGlass ☆☆☆★★ ○ ○ × i文庫とほぼ同じくらい。 CloudReaders ☆☆★★★ ○ × × シンプル。 Bookman ☆☆★★★ ○ × × ページめくりの方向が逆で読みづらい。 dBooks ☆★★★★ × × ○ 独自storeから同人誌がDLできる。まだコンテンツが少ないけど将来に期待 iBooks ★★★★★ × × ○ 漫画読めない。 漫画が以下の条件を満たすと、iPadでweb対応のリーダーを使ってhttp指定で直接漫画を
次のページ
このページを最初にブックマークしてみませんか?
『しかじろうがプログラム作るよ!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く