スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

新しく会社を立ち上げた人の事務所にお邪魔した

以前、システム開発の仕事でご一緒した人が新しく会社を立ち上げて、もうすぐ新装開店ということで、事務所兼スタジオにお邪魔してきました。業種は、写真屋兼ホームページ制作といった感じのようです。

その事務所というかスタジオですが、もともとデザイナさん向けの住居という感じの建物らしく、ビルの外見も部屋の中もとてもしゃれた造りになっていました。その上、家具なども今まで見たことのないようなものばかりで、なにか異世界に来たような気分でした。

機材はiMac、MacBook Pro、iPhone、iPadなどのApple製品や高価なカメラもあり、「ああ、これからプロとしてやっていく人の環境だなぁ」と思わせられました。その他、デザイン関係や写真関係の本、雑誌がいろいろありました。

そういった中で午後1時すぎから7時ごろまでいろいろと話をしました。これからどんな仕事をしていくつもりか、人脈をどうやって作っているか、仕事をする上でどんなことに気をつけているか、などなど。ご一緒したプロジェクトの行く末がどうなったかとか、私の現在の状況(個人事業主として開業したけど開店休業状態)についてもいろいろと。

今日一日が終わっての感想は、一言で言うと「カルチャーショック」でしょうか。こんな世界もあるんだなぁ、と。

一緒に仕事をさせていただいたときから、「ものすごい問題解決能力が高くて、いざというときにめちゃくちゃ頼りになる人」(普段なかなか仕事をしてくれないけど)という印象でしたが、今回また全然違う側面を見た気がしました。ご本人は「落ち着きがない性格」とかおっしゃっていますが、本当に多才かつ行動力があり、大局観もあるのに細かいところもちゃんと見ているという人です。

改めて、すごい人だなぁと思うと同時に、自分のダメさ加減が思い知らされて、打ちひしがれる感じです。世の中こんなすごい人ばかりではないとは分かっていますが。
2月にお会いしたときに頂いたアドバイスから、一時期PHPなどを勉強しましたが、それだけでは全然これからの仕事を一緒にできるレベルになれないなぁと思いました。

ただ、どうあがいたところでその人と同じような能力、性格になるのは無理なので、自分のできることを地道に積み重ねていくしかないと思います。そして、そういう人とご縁があり、いまだにこうやって声をかけていただけることを感謝しつつやっていくつもりです。

(追記)
今、私がケータイ用のアプリ、特にAndroid用のアプリを手がけようとしていることも話したのですが、その人はiPhone/iPad用のアプリならアイディアがあるんだけどとおっしゃっていました。やっぱり一般受けを考えるとiPhone/iPadですよね、という話もしました。もし私がアプリを作るのに必要なら、Macとかの機材も貸すよ、とも言っていただきました。

たしかに需要を考えるとiPhone/iPadは無視できないのは分かっているんですが…。

実は私は一時期Mac miniとiPod touchを持っていたことがあって、アプリ作成を試みたんですが、Hello world程度をやっただけでそれ以上進めず挫折したんですよね…。Objective-CやInterface Builderなどの独特の環境に慣れなくて。Mac自体にも慣れられなかったですし。

その後、Mac miniとiPod touchは経済的事情により売っ払ってしまったんですが、なんとかして持っておいたほうが良かったのかな…。でも、持っていたとしてもiPhone/iPadアプリの開発ができるようになっていたかは微妙です。開発用アカウント関連のAppleの対応にうんざりしていたというのもありますし。

(追記2)
あと、「WordPressが使えるようになってくれれば、ホームページ作成関連の仕事が何かあるかも」とも言われたのですが、私は「WordPressってなんでしたっけ?」レベルだったので、道のりは険しいです。2月にPHPをちょっとかじったときも、Web関連プログラムの難しさに挫折しかけたんですよね…。

それと、PHPなりWordPressなりでどんなことができるようになっていればいいのか、がよく分からないです。雲をつかむような感じで…。この辺は技術だけの問題ではなくて、デザインとかアイディアとかビジネスとかいろんなものが絡んでくる気がするので、とても難しいです。
スポンサーサイト

auオープンアプリで曲のループをなんとかする

auオープンアプリの環境でMIDIファイルをループ再生すると、ループの継ぎ目のところで間が空いてしまいます。

これはかなりかっこ悪いのですが、プログラム側でどうにかする方法が思いつかないので、逆に曲の最後を短く切ってタイミングを合わせてみることにしました。

何度か試行錯誤してみたところ、テンポ120の曲で、4分音符+8分音符+16分音符分だけ曲を短くすると、ちょうどいい感じにループできることが分かりました。(機種はW52CA)

たまたまだと思いますが、エミュレータでもほぼ同じタイミングだったので、実機を手放してエミュレータ環境だけになってもなんとかなりそうです。

あとは、最後が4分音符+8分音符+16分音符分だけ休符になっても不自然でないような曲を用意するということになりますが、どうなんでしょ。ループが不自然になっても普通に曲を作ったほうがいいのかなぁ。

(追記)
あるいは、MIDIファイル自体に何ループ分か曲データを入れておく手もあるな。それでも長さが足りないときは、いったんフェードアウトしてから先頭に戻ればごまかせるかもしれない。プログラムでフェードアウトするのは面倒なので、当然曲データ自体をフェードアウトさせておく。

tag : ケータイ

Vanargandプロジェクトでの悩みどころ

昨日Twitterでも書きましたが、Vanargandプロジェクトでちょっと悩みを抱えています。

まず、プログラムの中心部が巨大なステート遷移の塊になりそうなこと。単純にswitch-caseでごり押しすると、頭がついていけなくなって破綻しそうです。

これについては、switch-caseをいくつかの階層に分割することでなんとかなりそうな感じになってきました。

また、この辺の作り方について本やWebでもなかなか情報が見つからないとTwitterで書きましたが、手持ちの「ゲームプログラマになる前に覚えておきたい技術」(秀和システム)に該当する記述がありました。手法の詳細は違いますが、基本的な認識(決して簡単な問題ではないということ)と戦略は合っているようだったので安心しました。

#ゲームプログラマになりたいというのとはちょっと違うんですが、ゲームプログラミング関係の本はけっこう持ってます


次に問題になるのは、スクリプト関連です。スクリプトの解釈・実行というと字句解析・構文解析などがまず思い浮かぶのですが、この辺は参考になる情報もたくさんあるし、凝った文法にする気もないのでなんとかなるのではと思っています。

インタープリタ型とコンパイラ型のどちらにするかというのも考えましたが、ケータイJavaで動かすプログラムなので実行時にテキストの解釈をするのも非効率かと思い、予め中間コード形式にコンパイルしておいてそれを解釈・実行するようにしようかと思っています。

この辺りまではなんとか考えられたのですが、いま最も問題になっているのは、「メインループとスクリプトの解釈・実行をどうやって連携するか」です。

なんとなく、メインループとスクリプトエンジンは別々の処理の流れになりそうなのですが、単純に別スレッドにすればいいというわけでもない気がします。あまりよく理解してませんが、コルーチンというのを使えばうまくいくのでは? という気がしています。でも、ケータイJavaにコルーチンの機能なんてないはずだし、自前で実装できるとも思えないので、どうしたものかと悩んでいるわけです。

スクリプトエンジン関連の本は何冊か出ているので、参考のために買ってみるか? とも思いますが、スクリプトエンジンをいかにして利用するかというところまで解説されてるかなぁ…。

まぁ、もうしばらく悩んでみます。

(追記)
手持ちの「シューティングゲームプログラミング」(SoftBank Creative)に、スクリプトの解釈・実行に関する記述が少しありました。VanargandはシューティングではなくRPGなのですが、いくらか参考にできるかもしれません。

(追記2)
これも手持ちの「ロールプレイングゲームプログラミング」(SoftBank Publishing)にも、参考になる部分がありました。

が、一番知りたいことがなかなか解説されてません。それは結局のところ、「メインループからスクリプトエンジンを呼ぶ」要求と「スクリプトエンジンからメインループを呼ぶ」要求の両方をうまく両立する方法です。
両方から呼び合うような形になるのでコルーチンかな、と思っているのですが、はずしているかもしれません。

また、仮にコルーチンでうまくいくとしても、結局ケータイJavaの環境ではコルーチンを使わずに実装しなければならないので、別な手を考えています。(なかなか出てこないけど…)

(追記3)
まだおぼろげながら、メインループとスクリプトエンジンを連携させる方法が見えてきたかもしれません。
あとは、ある程度コードを書いてみて、うまくいくか試すしかないかなぁ。

tag : Java ケータイ Vanargand

auオープンアプリの実機とエミュレータの違い

今日Twitterでつぶやいたことですが、改めてブログで。

auのオープンアプリですが、実機とエミュレータとで文字の表示される位置が少し違うことを思い出しました。

ちょっと調べてみたところ、font.getHeight()やfont.getBaselinePosition()の返す値が、実機とエミュレータでは違っていました。この辺が原因?

エミュレータのカスタマイズガイドを読んでみたところ、ビットマップフォントを自前で用意すれば解決できそうですが、そこまで手間をかけていられないなぁ…。ASCIIだけならともかく、日本語フォントもあるので。

このままのエミュレータで開発を続ける場合、単に文字の表示位置にオフセットが加わるだけでもやりにくいですが、font.getHeight()の値を元に行間を設定したりすると、表示行数も実機と違ってきてしまうと思います。その辺の値を見ないようにプログラムするしかなさそうです。

こうなってくると、実機での確認が重要になるのですが、実機は今月末ごろに手放す予定…。さてどうしたものか。

Twitterを減らしてブログに戻るかも

ここ数ヶ月、Twitterばかりやっていてブログの更新が減っていましたが、少し方針を変えるかもしれません。

最近はプログラム開発に関する発言が多くなっているのですが、Twitterだと後から見直すのがやりにくいような気がします。意味のないつぶやきなら流れていっても特に問題はありませんが、開発中に得た情報などがどんどん流れて消えていく(消えはしないけど)のはもったいないかなと。

なので、特に開発系の話題については、ちょっとしたことでもできるだけブログに書こうかと思います。Twitterのほうが気軽に書けるので、実行できるかあまり自信はないですが。

あと、ブログペットのこうさぎは外しました。あれはあれで面白かったんですが、開発に関する情報と混じると読みにくいと思ったので。
検索フォーム
RSSリンクの表示
リンク
QRコード
QRコード
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。