Archive for 11月, 2011

初GeekBarでLT ‘Twicecast Radio’

水曜日, 11月 30th, 2011


今週月曜日、はじめての名古屋GeekBarでしたが、LTをさせていただきました! お酒を飲みながら(LT中は飲んでませんが・・)、ゆったりした雰囲気でLTするのって、とても楽しいですね。難点はお酒が回ると言うべきことを忘れたりしてしまうところですが。。またネタができたら、是非やってみたいです。
内容は、次の名古屋合同懇親会でご紹介する予定のものの関連アプリで、デモとかする時間がなさそうだったので、GeekBarでやってみた次第です。USTを確認したところ、ネットの調子が悪く一部分しか録画データがありませんでした(ある意味ほっとしてます)ので、ここで少し補足したいと思います。(前回投稿の続きもかねてます)

[Twicecast Radioとは]
インターネットラジオを聴くアプリ。
ユーザが自由に音楽配信できるプラットフォーム。
mp3,ogg ファイル・ストームを再生可能。
URLは、Twitterのタイムラインから取得。
Twitterのタイムラインが、音楽のプレイリストになる。

わざわざフォーマットを意識して、入力するのが手間の場合、またインターネットラジオ放送局を探して登録したい場合の、Webサービスもあります。

ToDo:
oggファイルストリーミングですが、Webにホスティングするとき、Apacheのバージョンにより、再生できないときがあることに気づきました。この問題が解決後またバージョンアップする予定です。

iPhone App ‘Twicecast Live!’

日曜日, 11月 20th, 2011

http://iphone.iiv.jp/sound/index/L0028

他のアプリやサービスとの連携もありながら、それらのわかりやすい説明が今までありませんでしたので、少しまとめてみたいと思います。
まずは、このアプリ単体で使うときの使い方からです。
このアプリは、リアルタイムでiPhoneで録音した音声をストリーミング配信します。サーバ等を中継することなく、このアプリがサーバにもなり、クライアントにもなります。

[サーバ側]

サーバを起動して、Live!ボタンを押すだけです。現在の位置や、メッセージ、WebサイトのURL、なども知らせることができます。サーバURLの通知の方法としては、メールとTwitterがあります。
Twitterは別アプリの’Twicecast Radio’経由で起動するときに使います。

[クライアント側]

サーバURLの入力して、Playボタンを押すだけで、音声を聴くことができます。
URLを入力するのは手間がかかりますが、メールで通知を受け取ったときは、リンクをクリックするだけで、URLが入力された状態でアプリが起動します。またTwicecat Radio経由でも起動できます。(これは次回説明させていただきます)

同時アクセス数は最大25としています。これは負荷よりも回線状況に大きく左右されます。

C言語末尾再帰

火曜日, 11月 15th, 2011

最近マイブームなので、ちょっと気になってテストしてみました。
以下末尾再帰関数の具体例のメモです。
実際にスタックを消費せずループしているかどうか。
動作環境はMac Snow Leopardのコンソール。

/*test.c*/
#include<stdio.h>
void loop(int x)
{
        if(x == 0){
                return;
        }
        printf("%d ", x);
        loop(x + 1);
}
main()
{
        loop(1);
}

cc -o test test.c でコンパイルした場合、261623で、Segmentation fault.
cc -o test -O2 test.c でコンパイルした場合、無限ループ
アセンブラコードを見てみると、前者は、

_loop:
Leh_func_begin1:
pushq %rbp
Ltmp0:
movq %rsp, %rbp
Ltmp1:
subq $16, %rsp
Ltmp2:
movl %edi, -4(%rbp)
movl -4(%rbp), %eax
cmpl $0, %eax
je LBB1_2
movl -4(%rbp), %eax
xorb %cl, %cl
leaq L_.str(%rip), %rdx
movq %rdx, %rdi
movl %eax, %esi
movb %cl, %al
callq _printf
movl -4(%rbp), %eax
addl $1, %eax
movl %eax, %edi
callq _loop

後者は、

_loop:
Leh_func_begin1:
pushq %rbp
Ltmp0:
movq %rsp, %rbp
Ltmp1:
pushq %r14
pushq %rbx
Ltmp2:
leaq L_.str(%rip), %rbx
movl %edi, %r14d
jmp LBB1_1
.align 4, 0x90
LBB1_3:
leal 1(%r14), %esi
xorb %al, %al
movq %rbx, %rdi
callq _printf
addl $2, %r14d
LBB1_1:
testl %r14d, %r14d
je LBB1_4
xorb %al, %al
movq %rbx, %rdi
movl %r14d, %esi
callq _printf
cmpl $-1, %r14d
jne LBB1_3
LBB1_4:
popq %rbx
popq %r14
popq %rbp
ret

確かに関数呼び出しがなくなっている。
最適化しないと末尾再帰にならないみたいである。

実例に学ぶスマートフォンアプリ開発【MeetUP】

日曜日, 11月 13th, 2011

http://atnd.org/events/20951

先週にひきつづきエイチームさんに、行ってきました。
実際に開発したアプリ、そして運用しているサービスについてのノウハウを聞くことができて、とても勉強になりました。今まで何回か勉強会でここに来させていただきましたが、今回は、エイチームさんが主催ということで、実践的な内容でした。

スマートフォンというと、個人ディベロッパーが多くいますが、これは個人が手軽にアプリケーションを開発、全世界にリリースできるという魅力があるからだと思っています。また企業が本腰を入れて開発してくるアプリもあり、これらが混在している状況であります。
以前、携帯電話公式メニューのサービスを手がけていたことがありますが、メニューにのるためには、法人でなくてはならなかったり、法人であっても過去の実績がなければ、メニューの上位に掲載されなかったりと、日本的なビジネス習慣を実感させられたことがあります。しかしiPhoneアプリをリリースしてみて、大手ゲーム会社のアプリと、自分のアプリが同じランキングの中にいるのをみたとき、壮快な思いをしたのを忘れられません。なんとフェアなのか、さすがアメリカ的、と思いました。

今回の勉強会(?)では、その企業の開発スタイルを垣間見ることができて、とても興味深かったです。3Dグラフィックツールを使った(コストのかかる?)開発手法などは、やはり企業らしい手法で開発されているのだなぁと思いました。これはPlayStationなどのゲームソフトを作るのと同じで、開発者もこの出身者のようでした。(一応私もですが^^;) ゲーム機開発をしていた人がやはりこのジャンルに流れてきているのでしょうね。逆に言えばこのような手法でやらないと、(個人ディベロッパーと同じことをやっていてはだめという意味で)ビジネスにならないのかもしれません。

あと開発会社としての興味以上に、毎週のようにいろんな勉強会に広い会場を無料で貸しているエイチームさんには、とても興味がありました。(途中社長さんのお話が急遽聞けたのもラッキーでした) 地域柄お固い会社が多いこの名古屋に、こんな開かれた魅力的な会社があるんだなぁと・・

今日は本当に有意義な日でした。

LL Nagoya

日曜日, 11月 6th, 2011

LL Nagoya参加してきました!
http://partake.in/events/09bb8de2-5c8e-4515-83d7-70e7406b47ff
一言でいって、内容がすごい振幅のある勉強会でした。ははは・・
もともとライトウェイト言語の勉強会ですが、’LL’という文字が入ってれば、なんでもいいといった内容で、次に何が出てくるは全く予想がつかない、ドキドキ感がたまりませんでした。
しかしたくさんの発表が聞けたことは、とても有意義でした。まったく知らないことを知ることができるというのは、こういう機会がないとありませんね。
発表を聞いてみて、HaskellとSmalltalkはまた勉強したくなりました。.NETのDLR,Alloy Analyzeの話は、もっと時間をかけて聞きたかったです。Schemeの話は、全くついていけませんでした。
しかしよくこれだけの発表者をそろえたなぁと、驚きました。名古屋すごい! まあところどころ無茶ブリだと愚痴っている発表者もおられましたが、でもこのイベントが行われたことに意義を感じます。
また次回期待したいと思います!