Hatena::ブログ(Diary)

gabuchanの日記 Twitter

2012-02-08

高専カンファ in 岐阜 #kosenconf でニーソしてきました!

22:38 | 高専カンファ in 岐阜 #kosenconf でニーソしてきました!を含むブックマーク 高専カンファ in 岐阜 #kosenconf でニーソしてきました!のブックマークコメント

先週末に行われた高専カンファ in 岐阜の基調講演を頼まれたので『プログラミングと共に歩んできた10年を振り返りながら、常に上を向いて技術を磨く大切さ』というタイトルで発表&参加してきました!

  • 勉強会Lifeをふりかえりながら勉強会いいよ!という話
  • Androidライブコーディング
  • iOS/Titanium(ライブコーディングは時間が足りなかったので)軽く見せる
  • プログラマという職業について
  • 高専カンファで同志見つかるといいね!まるっ!

という流れで話しました。

「常に上を向いて技術を磨く大切さ」というタイトルは勢いで付けたのですが、その後、推敲するうちに「コミュニティに参加するといいよ!」という話の方がいいかなぁと思い直し、だいぶそっちよりの内容になりました。

スライド

Ust

講演時間が50分あるのですが、まったり話してるので暇な時にまったり見て(聞いて)みてください><

講演ふりかえり

ソフトウェア関係のイベントや勉強会にしか行ったことがなかったので高専カンファもいつものノリで準備して行ったら情報系じゃない人の方が多いんですね!

違う学科の人とかつまんなかったらごめんなさい><

もう少し社会人とは的な話が良かったのかなーでも50分お話聞くだけじゃ面白くないよねーとか勝手に思ったりして。

あと、実行委員のみんなとのミーティングで「他の高専カンファってどんな感じなの?」って聞いて教えてもらった、じゅーんさんのUstアーカイブ http://www.ustream.tv/recorded/2508394 を事前に見たので、てっきりみんなライブコーディングするもんだと思ったよ!釣られたよ!

でも、初めての岐阜での開催に地元(厳密には愛知県名古屋市の僕ですが)の同志として少しでも華を添えられればと思い。また、岐阜高専のみんなに少しでも刺激になればと思いやってみました!

ニーソ

前日
当日の朝

んで、これ

f:id:gabuchan:20120207020512p:image

んで、すごい勢いで白ニーソをディスられたので大人げなく

参加ふりかえり

  • 高専カンファ&高専生アツい!
  • 「高専生はチート」を身をもって体感。
  • 高専生的にはロボコンが最もアツいっぽい。
  • ロボコン関係がプログラミングよりアツいっぽいので情報系も何かやろうぜ!

実行委員の皆様へ、初めての高専カンファ開催ということでノウハウ0からのスタート本当に大変だったと思います><お疲れ様でした!

実行委員長へ、すげー輝いてたよ!やってやるんだという気持ちが伝わってきた!本当頼もしかった!なにより笑顔が素敵だった!お疲れ様でした!

写真

集合写真

f:id:gabuchan:20120208223819j:image

委員長胴上げ

f:id:gabuchan:20120204221456j:image

当社比250%ぐらい映りが良かったので記念に

f:id:gabuchan:20120204142337j:image

2011-12-21

画像圧縮ツール ImageOptim がすごい!iPhoneアプリのサイズ問題など

22:33 | 画像圧縮ツール ImageOptim がすごい!iPhoneアプリのサイズ問題などを含むブックマーク 画像圧縮ツール ImageOptim がすごい!iPhoneアプリのサイズ問題などのブックマークコメント

iPhoneアプリはサイズを20MB以下に収めないとユーザがインストールしようとした時にWiFiが必要になるので、開発者側としては何としても20MBに収めるためにうんうん悩むわけです。(いままさに)

ImageOptimでボタン一発

ImageOptim ? all image compression tools in one Mac app でボタン一発でJPEG/PNGファイルのサイズを圧縮してくれます。

あんまりよくわかんない圧縮をするとiPhoneアプリでちゃんと表示されるか心配だったのですが、今のところ不具合はありませんし、Retinaディスプレイで見ても、人間の目では劣化が感じられない(気がする)ので問題なさそうです。(見る人が見ると分かるのかなぁ?)

f:id:gabuchan:20111220175947p:image

こんな感じでアルファが多い画像は特に圧縮率が高いみたいです。ちなみに、Againでもう一回圧縮してもほとんど圧縮されませんでした。

結果

開発中のiPhoneアプリで使っている大小さまざまな250個のPNGファイルを圧縮したところ、合計で

6.9MB(7255213バイト) が 5.8MB(6096125バイト) になりました!約16%ダウン!

むちゃむちゃ圧縮できるわけではないですが、最後の仕上げにダイエットしておくと何かと良いかと思います。

追記

デフォルトでは有効になっていないPNGOUTを落としてきて設定で有効にしてから、再度、圧縮前のファイルに圧縮をかけてみたら、さらに圧縮できました!

6.9MB(7255213バイト) が 5.6MB(5858027バイト) になりました!約19%ダウン!

さいごに

ImageOptimは有名な画像圧縮ツール/コマンドがビルトインされているので(環境を整える必要がなくて)非常に便利なんですが、他にもオススメな画像圧縮ツールがあれば教えて下さいm(_ _)m

あと、画像圧縮以外にiPhoneアプリを軽量化するTipsなどあればばばばm(_ _)m

クレクレ君ですみません :P

2011-12-17

MIT版App Inventorをローカルで動かしてみた。動いたよ!

| 23:56 | MIT版App Inventorをローカルで動かしてみた。動いたよ!を含むブックマーク MIT版App Inventorをローカルで動かしてみた。動いたよ!のブックマークコメント

このエントリーは 日本App Inventorユーザー会 Advent Calendar 2011 のエントリーです。

いよいよ、12月末で現在のGoogle版App Inventorはサービス停止します。既にアプリを作成している皆様は、App Inventorのプロジェクト一覧のページで「Download All Projects」をクリックして、大事なプロジェクトを全てダウンロードしておきましょう。

f:id:gabuchan:20111217225819p:image

そして、MIT版App Inventorは2012年第1四半期にサービスを開始するとのことです。1月1日から利用できないのは残念ですが、少し待つと再び使えるようになりますので、ご安心ください。また、正式に発表されたらご連絡したいと思います。

ついにApp Inventor自体をダウンロードできるようになったよ!

MITに移管され、オープンソース化する予定のApp Inventorですが、実は、まだソースコードはダウンロードできませんが、バイナリはダウンロードできます。これで誰でもApp Inventor自体をダウンロードして動かすことができます。

今回は、ローカルで動かすところまでできたので手順を共有したいと思います。

App Inventorを動かすには

MITがApp Inventorを動かす方法を公開しています。

Running App Inventor services with the MIT JAR files (英語)

MITのドキュメントは英語なので、日本App Inventorユーザー会の方々が和訳してくださいました。

http://www.app-inventor.jp/shiryoushuu/transrate (日本語)

基本的に手順どおりでOKです。

手順メモ

ここから開発者向けなので丁寧さが下がりますがご了承ください。おそらく開発者の方ではないと難しいと思いますので。

Google App Engine SDK for Java

App InventorはApp Engineで動作するのでGoogle App Engine SDK for Javaが必要です。

http://code.google.com/intl/ja/appengine/downloads.html#Google_App_Engine_SDK_for_Java からダウンロード、解凍して、適当なフォルダに置いて、bin/にパスを通します。

App Inventorのバイナリをダウンロード

http://appinventoredu.mit.edu/download-jar-files から最新のファイルをダウンロードします。これは随時アップデートされるので、ページにも書いてありますが http://groups.google.com/group/mit-appinventor-jars にJoinしてアップデート情報をウォッチしておきましょう。

解凍すると以下の2つのファイルができます。

  • appinventor-Nov-24.tgz : App Engine用
  • for-BuildServer.tgz : ビルドサーバ用
ビルドサーバ用

for-BuildServer.tgzを解凍すると、

  • BuildServer.tar
  • launch-buildserver

が、できます。BuildServer.tarも解凍します。すると、lib/フォルダができます。

これで、

  • launch-buildserver
  • lib/

の状態になればOKです。

あとは、launch-buildserverを実行するだけです。

./launch-buildserver

ログがbuildserver-log.outというファイルに出力されるので見てみます。

tail -f buildserver-log.out

情報: Root resource classes found:
  class com.google.appinventor.buildserver.BuildServer
2011/12/17 22:23:12 com.sun.jersey.api.core.ScanningResourceConfig init
情報: No provider classes found.
2011/12/17 22:23:12 com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
情報: Initiating Jersey application, version 'Jersey: 1.3 06/17/2010 05:04 PM'
2011/12/17 22:23:13 com.sun.grizzly.Controller logVersion
情報: Starting Grizzly Framework 1.9.18-i - Sat Dec 17 22:23:13 JST 2011
Visit: http://192.168.11.3:9990/buildserver
Server running

9990ポートで起動しているようです。(現状、ポートを変える方法は探したけどないみたいです。)

とりあえず、上のようにログがでていればOKです。

ちなみに、停止したいときは、それっぽいコマンドがないのでkillします。

App Engine側

appinventor-Nov-24.tgzを解凍すると、appinventor/war/というフォルダができます。このwar/フォルダがApp Engine用Webアプリのエントリポイントです。

以下のコマンドで実行します。

dev_appserver.sh appinventor/war/

Webブラウザから http://localhost:8080/ にアクセスすると、

f:id:gabuchan:20111217234126p:image

そのままLog InでOKです。(ホワイトリストを設定している場合は、そのメールアドレスでログインしてください。)

f:id:gabuchan:20111217234125p:image

利用規約(?)にacceptすると・・・

f:id:gabuchan:20111217233739p:image

動いたー!ローカルでApp Inventorが動いてるー!

f:id:gabuchan:20111217234124p:image

Google版App Inventorのプロジェクトファイルがアップロードできるか確認します。

f:id:gabuchan:20111217234627p:image

ダウンロードしておいたzipファイルを選択して、OK!

f:id:gabuchan:20111217234625p:image

うおー!ちゃんと引き継げてるー!おかえり!アリバイツイート!

さてさて、Blocks Editorを・・・

f:id:gabuchan:20111217234623p:image

許可すると・・・

f:id:gabuchan:20111217234622p:image

うおー!Blocks Editorも動いてるー!

f:id:gabuchan:20111217234621p:image

では、さっそく実機で動くか確認を・・・

f:id:gabuchan:20111217135214j:image

動いたー!Google版と同等に使えるようです!さすがMITさん!

ちなみに、App Inventorをローカルではなくサーバで運用するためには、上の手順書を参照してください。ホワイトリストぐらいはやっておいた方が良いかと思います。

てか、ソースコードまだー(ばんばん

ということで

App InventorのMIT移管は順調のようです。ほっと一安心。ただ、スタートが2012年第1四半期としか言われていないので1月1日からはしばらく使えなくなります。生まれ変わったApp Inventorが使えるようになるまでぐっと待ちましょう。

ちなみに、日本App Inventorユーザ会でMITがサービスを開始するまでの空白期間を自分たちのサーバで運用しようという活動をしています。

興味がある方は、以下をチェックしてみてください。

申し込みページ: https://sites.google.com/site/appinventorjp/noahs_arc_project

MLのディスカッション: https://groups.google.com/group/app-inventor-jp/browse_thread/thread/ff7491bee4be8380?hl=ja

それでは!

30分でつくれるAndroidアプリ Google App Inventorではじめよう!

30分でつくれるAndroidアプリ Google App Inventorではじめよう!

kumikumi 2012/01/27 20:36 先日、ご著書(30分でつくれるAndoroidアプリ)を購入して「今日からやってみよう」と思ったら、App Inventorをダウンロードできない状態なんですね・・・。ショックですがしょうがないですね。ちなみに、javaを勉強したことがないのですが、javaがわかっておいた方がいいでしょうか?

gabuchangabuchan 2012/01/27 22:22 発刊後に決定してしまったのですが申し訳ありません。
こちら http://www.socym.co.jp/book/4883377660.html に詳細が書いてありますが、MITによる運営が開始されるまでは、日本App Inventorユーザー会が運営しているApp Inventorを利用することができます。

2011-12-13

きっと不便を便利にするためにコードを書き始めた僕たちへ

07:22 | きっと不便を便利にするためにコードを書き始めた僕たちへを含むブックマーク きっと不便を便利にするためにコードを書き始めた僕たちへのブックマークコメント

このエントリはAndroid Advent Calendar 2011の裏エントリです。

Android Advent Calendar 2011は表25名、裏25名で書いているのですが、同日の表エントリではAndroid界のイケメンこと @ さんが表らしい素晴らしいエントリ きみはGalaxy Nexusを手に入れることができるか - そばとちゃんこの競演 を書いてます。

さて、本題。

不便を便利にする

Advent Calendarで何書こうかなぁと数日前から考えていた所、Tumblrで見かけて感銘を受けた言葉がこちら。(今見返してみたら2007年のエントリなんですね。強い言葉というのは時間が経っても魂を宿し続けるんだなぁと思った。)

世の中いろいろと不便なことが多くて、プログラマはそれを改善しようとしている。

世の中こんなにバグだらけなのに、バグほったらかしでゲーム作ってる場合じゃねえだろ、と思う。

電車の中で暇なのは不便なのでゲーム作ってくれてありがとうと思ったりもする。

でも基本的にはゲーム作ってる場合じゃねえだろ、って思う。

最速インターフェース研究会 :: つまらなくて役に立つ物を作るということ

今回はAndroid縛りなのでAndroidアプリについて置き換えて考えてみます。

不便を便利にするAndroidアプリといえば

ですよね。

Simeji

Simejiに関しては、こちらのインタビュー記事 “変なソフト”として進化する人気Android日本語入力「Simeji」 - Androidアプリケーション開発ストーリー:ITpro が詳しいのでぜひ読んで頂きたいです。

IMoNi

IMoNiに関しては、こちら 『IMoNi』iモードメールアプリ?Androidでもiモードメールを使おう | andronavi スマホ向けアプリが見つかる! が分かりやすいです。簡単に言うとSPモードメールが登場するまで@docomoのメールはブラウザでいちいち見に行かないとメールを受信して見られないという、とんでもない不便を便利にしたアプリです。SPモードメールが登場した後も「IMoNiの方が良い」という意見を見かけることも多かった上に、先日、Galaxy Nexusを買いに行った時にドコモショップのお姉さんに

とまで言われるようなアプリです。

Androidの黎明期を支え、今なお必須アプリとして多くの人の不便を便利にしているアプリだと思います。他にも多くの便利なアプリがあると思いますが、代表的なものということでご容赦ください。

黎明期を過ぎ、今やAndroidは4.0にまで進化しました。Android端末も普及しました。いまいちど振り返ってみてください。僕らのまわりは便利になったでしょうか?残念ながら多くの不便が残っていると思います。

ユーザに一番近い所で

僕らは様々な技術を持ち、様々なレイヤーで、様々なプログラムを書くことができます。その中でも何かの因果でAndroidに関わる僕らはユーザに一番近い所に立っているわけです。そして、きっと僕らプログラマは少しでも世の中をよりよくしたいと思っているはずです。ちょっと話はそれますが今年は「起業」や「スタートアップ」という言葉を目にすることが多かった気がします。彼らは「世界を変える」と言います。これもまた(スタートアップの事業内容によりますが)不便を便利にする延長線上にあるだけで、本質は同じだと思います。(繰り返しになりますが不便を便利にする以外のものも多いです。)

f:id:gabuchan:20111213034123p:image

Android端末はユーザが毎日持ち歩き、常に触れるものです。ここに不便があることは悲しいことです。

しかし、企業からSimejiやIMoNiのようなAndroidアプリは登場しません。理由は分かりますよね。

そこで、僕らAndroidアプリ開発者の出番というわけです。上の図の「自分が不便に思うこと」が出発点で、それに共感する人の数が増えていくだけで、いきなり「世界を変える」必要なんてないと思います。少なくともAndroidアプリだけで世界は変わらないけどね!本気でそっちの道を行くならサービスレベルで考えないと(というのはまた別のお話)ということで。

何が言いたかったかたいうと「俺得アプリでおk」ということです。はい。

Androidのこれから

  • 進化のスピードが速い
  • 普及しているバージョンがバラバラ
  • 機種依存やメーカのバグにゲンナリ
  • 儲からない

本業でAndroidに携わっている人の中には、正直、疲弊している人も多いんじゃないでしょうか。

↓こんなんだしね。

f:id:gabuchan:20111213035844p:image

”「全てのAndroid端末メーカを、生まれる前に消し去りたい。全ての宇宙、過去と未来の全てのAndroid端末メーカをこの手で。今日まで機種依存と戦ってきたみんなを、希望を信じたAndroiderを私は泣かせたくない。最後まで笑顔でいてほしい。さあ!叶えてよ、Google!!」” -

でも、ごめんなさい。探したけれど、銀の弾丸はないんだ。本業で携わっている人は、このままバッドノウハウを蓄積して、品質の高いアプリケーションを書いてこそプロフェッショナルじゃないか(え

まー手間のかかる子ほど可愛いって言うじゃない?

ということで、来年も頑張ろうね☆(ゝω・)vキャピ

さいごに

きっと不便を便利にするためにコードを書き始めた僕たちへ

僕たちがやるべきことは、きっと目の前に転がっていて、別にそれはAndroidだけに限った話じゃないかもしれないよ?

追記

Simejiが数億円で買収!

Andorid向け日本語入力のSimejiをバイドゥが買収

2011-11-07

Googleの中の人が作ったAndroidアプリioschedを参考にしよう!(とりあえずビルドまで)

| 22:08 | Googleの中の人が作ったAndroidアプリioschedを参考にしよう!(とりあえずビルドまで)を含むブックマーク Googleの中の人が作ったAndroidアプリioschedを参考にしよう!(とりあえずビルドまで)のブックマークコメント

Googleの中の人が作ったGoogle I/O用のAndroidアプリ iosched がオープンソースで公開されているのですが、Androidアプリを開発する時に非常に参考になるので(Table対応したバージョンから難解になったのがネックですが)紹介したいのですが、ビルドするまで少し作業が必要なのでダウンロードしてビルドするところまで手順をメモっておきます。

Mercurialをインストールする

ソースコードのチェックアウトページに行くと

hg clone https://code.google.com/p/iosched/

と書いてあって、svnやgitではなくhgなのでMercurialが必要みたいです。

ということで、brewでさくっと入れようかなーと思ったけど何か嫌な予感(今思えば今回に限ってなんで嫌な予感を感じたか不思議でしょうがないけど)がしてググったらbrewでMercurialを入れるのはメンドそうなので素直にパッケージをインストールしちゃいましょう。

ダウンロードはこちらからMacのバージョンに合ったファイルをダウンロードしてください。

ダウンロードしたzipファイルを解凍して、mpkgファイルをダブルクリックしてインストールしてください。

インストールできたら、ターミナルからhgと入力して以下のように出ればOKです。

$ hg
Mercurial - 分散構成管理ツール

基本コマンド:

 add        指定ファイルの追加登録予約
 annotate   ファイル行毎のリビジョン情報表示
 clone      既存リポジトリの複製
 commit     指定ファイルないし全ての変更内容のリポジトリへの記録
 diff       作業領域全体(ないし指定ファイル)の差分抽出
 export     1つ以上のリビジョンに対するヘッダおよび変更内容の出力
 forget     次回コミットにおける指定ファイルの登録除外
 init       指定されたディレクトリでの新規リポジトリの作成
 log        リポジトリ全体ないしファイルの変更履歴の表示
 merge      作業領域の内容と他のリビジョンのマージ
 pull       指定リポジトリからの変更履歴の取り込み
 push       指定リポジトリへの変更履歴の反映
 remove     次回コミットにおける指定ファイルの登録除外
 serve      独立したウェブサーバの実行開始
 status     作業領域のファイル操作状況の表示
 summary    作業領域状態の概要表示
 update     作業領域の内容更新(ないしリビジョンの切り替え)

全コマンドの一覧は "hg help" で、 コマンド詳細は "hg -v" で表示されます

今回はcloneするだけなので他のコマンドはとりあえず置いておきましょう。

ソースコードをチェックアウトする

適当なディレクトリで

hg clone https://code.google.com/p/iosched/

Eclipseでインポートする

ちょっとその前に確認

もし、最近ADTやAndroid SDKをアップデートしていない人は最新バージョンに上げておきましょう。4.0も出ましたし。

Updating the ADT Plugin でADTをアップデートしたら、

f:id:gabuchan:20111107034250p:image

もし、4.0とか3.2とかインストールしていなければ、とりあえず全部入れておきましょう。

f:id:gabuchan:20111107034536p:image

インポート

Androidプロジェクトを新規作成

f:id:gabuchan:20111107034933p:image

Create project from existing sourceを選択、Project Nameが勝手に変わるのでioschedと入力、Nextボタンをクリック。

f:id:gabuchan:20111107034806p:image

Android 3.2を選択して、Finishボタンをクリック。

f:id:gabuchan:20111107035637p:image

android-support-v4.jarを追加する

最近のAndroidアプリは同一のソースコード(アプリ)でタブレットでもスマートフォンでも動くようにFragmentという仕組みを使って開発する必要がでてきたり、タブレットに対応する必要がないアプリでも来たるICS(Android 4.0)に備えて(もうSDKは出てますが)Fragmentに慣れておくべきとGoogleの中の人が仰られていたりで、別途、勉強する必要があるのですが、ここで説明しだすと量的に無理があるので今回はとりあえず飛ばして、ビルドするところまでいきましょう。

プロジェクトのlibsディレクトリにandroid-support-v4.jarというライブラリを置いてビルドパスを通す必要があります。

android-support-v4.jarはAndroid SDKのディレクトリのextras/android/compatibility/v4/にありますので、Eclipseのioschedプロジェクトのlibsディレクトリにコピーして、右クリック > Build Path > Add to Build Pathでビルドパスに追加します。

これでコンパイルエラーがだいぶ減るんですが、まだエラーが残ってます。

libGoogleAnalytics.jarを追加する

ioschedはGoogle Analytics SDK for Androidのサンプルコードも含んでいるらしく、そのライブラリが必要です。

http://code.google.com/intl/ja/mobile/analytics/download.html からGoogle Analytics SDK for Androidの GoogleAnalyticsAndroid_1.3.1.zip をダウンロードして、解凍するとlibGoogleAnalytics.jarがあります。

android-support-v4.jarと同様に、libGoogleAnalytics.jarをEclipseのioschedプロジェクトのlibsディレクトリにコピーして、右クリック > Build Path > Add to Build Pathでビルドパスに追加します。

これでコンパイルエラーがなくなりました。

実行する

あとはお手持ちのお好きな端末やエミュレータで実行してみてください。

スマートフォンだと

f:id:gabuchan:20111107043231p:image

タブレットだと

f:id:gabuchan:20111107043228p:image

こんな感じで、他のScheduleやSessionsなどもUIがスマートフォンとタブレットで変わります。

あとは

ソースコードを読んでみましょう。Googleの中の人が作ったAndroidアプリのソースコードなんて、そうそう読むチャンスなんてないと思うので非常に貴重な経験と多くの発見ができると思います。冒頭でも書きましたがタブレット対応のために難解になったのがアレなんですが・・・

易しい所だと、res/配下のファイルの命名規則なんかは真似すると整理できていいと思います。layoutファイルはactivity_やfragment_やlist_item_などのプレフィックスを付けるとか。drawableの定義の仕方とか。小さな所から真似ていけばいいかなと思います。

ソースコードの方だと、パッケージ設計やクラス設計、継承の使い方とか。ダッシュボードUIの作り方とか。ActionBarの実装とか。

ICS(Android 4.0)でまた色々変わっちゃうとは思うのですがね(ぜぇぜぇ

おまけ

タブレット対応前のシンプルなioschedはどこにいった?

ググったらunderhilllabsさんが古いioschedをがっつりコピーしてgithubに突っ込んでいてくれてたおかげで発見できました。けれど、.svnがそのままコミットされていたりいろいろ残念な感じだったのでforkしてゴミを削除したりapi versionを修正したりしときました。

https://github.com/gabu/iosched2010 からcloneしてください。Android初めてという方は、こっちの方がタブレット対応する前のAndroid 2.1向けのシンプルなioschedとなっておりますのでソースコードも読みやすいかと思います。

ICS(Android 4.0)でどっちみちFragmentは避けて通れないという噂もあるけど(げふんげふん

ではでは!

水月水月 2011/11/08 11:34 はじめまして
ねこ速@VIPというブログをやっている水月と言います
よろしければ相互リンクしていただけないでしょうか?
内容はツール、マンガ、アニメ、その他ニュース等です
検討のほう、よろしくお願いします
サイト名:ねこ速@VIP
URL:http://nic.chu.jp/
RSS:http://nic.chu.jp/feed/