けん悟庵 KenGo:Lab
List

つれづれメモ

2011.02.08

彩えんぴつを売り出して8か月になりますが、
ここ最近になって画面がブラックアウトすると日本の方からご指摘を受けたり、
海外の方から"This app has generated a black screen 3 times"(確かに多い)と
メッセージを戴いたりしまして…頻繁に発生するようになってしまいました。

とはいえ、開発コードの流れの上で、問題がないはずです。それなら8か月の間にかなり出てくるはず。
iPhoneOS3.1.3や3.2の上でよくデバッグしましたし、さほど大きな不安はありません。

ブラックアウト自体はiPhoneOS3.1.3の頃に確認しており、
早い段階でメモリ確保と節約の処理を含めることで対処できていました。…そのはずでした。
しかしiOS4からマルチタスクが可能になり、メモリ管理が複雑化したため、より要求がタイトになり、
ブラックアウトが発生しやすくなってしまったのだろうと思われます。

という流れから、ブラックアウトの遠因はメモリ不足であることは推測できていたのですが、
なぜアプリが落ちずにブラックアウトするかは分かっていませんでした。
しかしその原因がようやくつかめました。ポイントはUIViewControllerの仕様です。

UIViewControllerのサブクラスは、メモリ不足になるとviewを自動的に解放する仕組みを持っています。
そして解放されたviewが再度呼び出されたときに再生成するのですが、ここでうまく生成できないと、
viewが存在しない=ブラックアウトという結果になる…これが原因でした。

メモリ不足の警告が出たとき、UIViewControllerのdidReceiveMemoryWarningが呼ばれます。
その時OS側が必要と判断するとUIViewControllerのviewDidUnloadをコールし、viewを解放しメモリを確保します。
解放されたviewが再度呼び出されたとき、UIViewControllerは再度viewDidLoadをコールし、viewを再生成します。

彩えんぴつはviewの構築コードがviewDidLoadに含まれたコードだけでは足りなかったため、viewが復活しませんでした。

iOS4になって他のアプリがメモリを食っている場合、自分のアプリにも影響してきます。
自分のアプリは省力に努めても、他アプリがメモリを食いつくしていた場合はNGとなります。
よって、iOSアプリを作成する際は、
 ・viewはメモリ警告で自動解放されるモノ(viewDidUnloadできれいにお片づけする)
 ・viewDidLoadで再生成するモノ
と考えるのがよさそうです。
ここを守れば、iOSが適切にバックグラウンドのアプリを解放してくれるので、
メモリに関してあまりうるさくならなくても済むようになります。

しかしこれを知ったのが最近って言うのはやっぱり僕が邪道だからですかね…
文章読むのが苦手なので、ガイドの読み下しが少ないのがいけないのだと思いました……すごく反省です。

次々回更新予定の彩えんぴつver1.5.2からブラックスクリーンの回数はかなり減ると思います。
お買い上げくださった方々にはご迷惑おかけしておりますが、今後ともどうぞ宜しくお願いいたします。

2011.02.04

個人事業主になってから、事業に関わる買い物や相談に乗ってもらったとき、
付き合ってくれた人との喫茶代などを「打合会議費」に付けておりました。
(実際、事業展開の議論を併せているので、会議費でも問題ないんだけど)

でも実際は「接待交際費」なんじゃないの?とか思いつつ、会社員時代のクセで避けてました。
そういえば、なぜ「接待交際費」を避けるようにしてるんだっけ?と気になったので調べてみますと…

ざっくり言うと、法人の場合、接待交際費に制限があるから避ける傾向にあるようです。
個人事業主はその限りではない様子。具体的には以下の通りです。

個人事業主全額、損金として算入可
資本金1億以下の法人交際費の90%(最大400万x90%=360万円)
400万を超えた額は損金不算入(経費にできない)
資本金1億超の法人全額損金不算入(経費にできない)

個人事業主と法人で大きく分かれるようです。
なるほど、法人が「接待交際費」を避けるわけですね。

個人事業主は全額認められるようですが、もちろん不明確な接待交際費はNG。
自分の場合も簿記の相談や、開発の打合せなど必ず理由の付くものだけに絞っています。
自分の場合、「会議費」の扱いと違って、会議議事録までは取ってませんが、
打合せ題目と誰と打合せをしたかは、摘要に書きこむ形でメモするようにしてます。

やましいことはないですよ、という証明ですね。
少なくとも自分はそういうのあるとモヤモヤして事業のほうに集中できなくなっちゃうんで(^^;

2011.02.01

Androidデバイス入手しました。
HTC Ariaです。ハッキリ言うと店員さんのノリに負けました。
SIM抜いて動作するのか?とか、そういう質問に対して、
他のスタッフ私物のAriaをパクって、無理やりSIM抜いて動くところ見せてくれたり、
完全に根負けです。
もとい、これはでございましょう。

端末観ていた客では一番ボケーっとしていたはずなのに、
展示スペースに行って5秒で僕の状況見抜いたおねーさんに乾杯。

収入の少ない立場で非常な決断ではありましたが、
個人事業主として投資しどころではないかと思い、本日契約してまいりました。
手持ちのiPhone4もプライベートよりもビジネス用途ばかりだし、Ariaに至っては100%ビジネス用途だし。
欲しいわけじゃないのに買う、というのが、ここのところのパターンになっております(iPadしかり)

実際、色々周辺事情も込めてAndroid2.2が(結構そのまんま)乗っかってるHTC Ariaは
とても魅力的な選択肢でした。こっからが研究しどころですね。
iPhoneと違ってボコスコアプリを入れられるので、端末の良さを使って、
画像処理アホアプリを大量生産するなどの芸当が可能になりますし。

あぁ、そういえばOpenCV2.2はandroidに対応してたんだっけね…えへへ。

とはいいつつ、まずは論文という大きなお仕事が残っている僕。
Ariaと戯れるのはもう少し後のことになりそうです。

2011.01.29

お久しぶり日記になってしまいました。
とはいえサイトでは色々更新しておりましたので、そちらにかまけて日記を書いていなかっただけなのですが(笑)

この一カ月の活動は、個人事業主としての活動をするにあたって指標になることがいくつかあったので、
そのあたりについて触れてみたいと思います。

まず個人事業主として、自分の中核となるのはアプリケーション開発によって得られる収入です。主に受託開発、次にiPhoneアプリケーションです。 ただ、この受託開発は人のつながりが最大のポイント。しかし人脈乏しい自分の場合、これから拡げていきたいところで現段階では多くは望めません。 そこを下支えしてくれているのがiOSアプリケーション。本当に助かっています。しかしこれだけでは生活できません。

そこで自然と"事業外のアルバイト"が必要になりますね。
おそらく新規の自営業者の方は、似たようなワークスタイルではないかと思います。
僕の場合は、大学の出身研究室で講師としてアルバイトさせてもらっています。専門技術職とは言え恵まれた待遇です。 僕は大学在籍時にアホみたいに勉学に熱中していたので、信頼してもらえたのが最大のかとおもいます。 大学時代は遊んでおけ!というのが通説ですが、頑張っておくモンですね。
加えて、自分は人に教えるのが比較的好きなので、最適な環境です。

このアルバイトとアプリケーションの売上を合わせると
なんとかギリギリ生きていけるので、糊口をしのいでおります。

実はこのアルバイトが"事業のキモ"ではないかと思っておりまして。 自分の場合、出身研究室の研究指導であるため技術的な話題が多く、想像以上に勉強になります。 ビジネスに無関係でも、技術的視野が広がる・新たな実用性を模索できるという点でメリットが大きい。 また、自分も同時に研究を進める思考時間が生まれるので、研究実績という点でも利点はあります。

仮にこのアルバイトがコンビニバイトだったりしますと、個人事業とのつながりはなかなか見いだせない。 コンビニでたまたま知り合った人がビジネス展開を模索しているとか、偶然の縁に賭けるしかありません。 "事業に良い影響を与える”アルバイトを得るのが、事業の初めには大事なのかもしれません。 いくらアルバイトとはいえ、その時間も事業のために有益な時間にしたいものです。

指しあたって、自分は良い場所にいられて幸せだと思いますが、
おかげさまで、この1カ月は事業は完全停止状態で「指導・研究」に軸足が移ってました(汗
なかなか事業展開が進まないのはジレンマですね~…。事業主さんは皆こんな感じなのかしら?

指導・研究の経験が、後の事業展開・人生の展開に良い影響があることを願って、
事業ともども指導・研究にも真剣に取り組みたいと思います。

2011.01.17

After Effects向けプラグインを作るために、AdobeさんからAfter Effects SDKが提供されています。 C言語での開発経験がある方でしたら、それほど抵抗なく触れることができるんではないでしょうか。WindowsならVisual Studio、MacOSならXCodeから利用できます。

さて、このSDKの最大の山は実は準備と設定にあります。説明がどこにあるかわからないツールや機能がてんこ盛りであり、 Adobeの開発者が「サンプル読んで盗んでね!HAHA!」と言ったとか言わなかったとか。 とにかくプログラミング虎の穴とでもいいましょうか、たいへん胸が熱くなる戦場となっております。

で、今日、久々に穴にハマりました。
After Effects CS4 SDKがWindows 7 64bitで使えないという問題です。

原因はコンパイル時に呼ばれるPiPLToolというAdobeのツールが64bitに対応していないためでした。 解決方法は、最新版のAfter Effects CS5 SDKのPiPLToolをコピーするというもの。 CS5からは64bit専用なので、64bitに対応しているのは当然と言えば当然なのですが、CS4 SDKが32専用で、CS5 SDKで64bit専用というのもまた急な話です。 2011年現在では、開発環境が64bitでソフトが32bitというのはザラにあるので、ちょっと混乱しますよね。

このPiPLTool、プラグイン開発を始めたいというビギナーに「msvcr71.dllが無くて動かない、しかもエラーの原因がパッと見わからない」という強烈な罠をいきなり仕掛けてくれるカワイイヤツです。 msvcr71.dllやmsvcr80.dllをPiPLTool.exeというファイルと同じフォルダに入れると動くようになりますが、最初にぶつかる壁がコレとは、まさに虎の穴にふさわしい。 あ、ちなみにこの問題はMacでは起きません。MacはPiPL使わずにコンパイルできるためです。

…余談ですが、SDKが虎の穴ならば、最近流行りの「伊達直人」はbryful氏でしょうか。 このPiPLToolのあたりも含め、AEプラグイン開発の解説をしてくださっている数少ない開発者様です。僕もお世話になっておりますm(_ _)m。

2011.01.13

本日、おかげさまで無事30歳になりました。

病気がちで過ごした25~29までの5年間、気弱な性格に拍車がかかってしまいましたが、 30歳になったこの年、個人事業主になったり、色々なことを始めてみたり…変化がありました。 この代が変わる機会が、自分にとって良い転機になれば良いなあ、と思います。

ひ弱な管理人ですが、今後ともよろしくお願いします。

2011.01.10

今回はつい先日、事業主の申請を行った際の具体的な手順をお話します。
今後事業主になることを検討している人の参考になればと思います。

1. 開業の状況

まず、開業に当たって僕の状況をお伝えしておきます。
・在宅業務(事業所なし)
・事業所得のみ対象(不動産や山林所得はない)
・青色申告は行う
・事業規模は売上1000万以下

大方の個人事業の方は上記の条件かと思います。 これ以外の条件の場合、以下で説明する書類記述が変わりますので注意してください。 詳しくは税務署の方に直接相談されるのが良いかと思います。

2. 納税地の税務署を探す

事業を行う場所(納税する場所)の税務署を探しましょう。別の税務署に行っても受け付けてもらえませんので(笑)

3. 書類を書く

■個人事業の開廃業等届出手続(実際の書類)
個人事業主を始める・やめるときに出す書類です。必要な記述内容は以下の通り。

納税地税を納める場所です。僕は在宅なので自分の住所携帯電話番号。該当するものは「住所地」に○。
上記以外の住所地・事業所など事業所が別にある場合は書きます。僕は空欄でした。
氏名自分の名前です。
生年月日自分の生年月日です。
職業お仕事がある方はその職業を。自分は研究員で出しました(笑)
屋号お店の名前で、これで名乗れるようになります。長く使う名前なので良いお名前を是非…
届出の区分開業に○と、事務所・事業所の新設に○でOKでした。新設に○は不要かも?
開廃業日開業した日です。
個人事業主は1/1~12/31が収支期間と決まっています。個人的な意見ですが1月1日で届け出するとスッキリすると思います。ちなみに1月1~15日開業の人は3月15日まで届け出できます。その他の日が開業日ならば開業から2か月以内に。
「青色申告承認申請書」または「青色申告の取りやめ届出書」青色申告をするのでに○。
消費税に関する「課税事業者選択届出書」または「事業廃止届出書」免税事業者として申請するのでに○。
事業の概要お仕事の内容です。自分は「ITアプリケーションコンテンツの開発およびIT支援業務」としました。

後は届け先の税務署・提出日を記入し捺印すればOKです。
ちなみに控えを1部持っていたほうが良いので、あらかじめ記入したものをコピーしていくと手間が省けます。

■所得税の青色申告承認申請手続(→実際の書類)
青色申告を行う場合に必要な書類です。

納税地上記書類と同じ
上記以外の住所地・事業所など上記書類と同じ
氏名上記書類と同じ
生年月日上記書類と同じ
職業上記書類と同じ
屋号上記書類と同じ
平成_年分以後…いつから青色にするのか年を書いてください。僕の場合23年。
1. 事業所または所得の基因となる…空欄
2. 所得の種類事業所得に○
3. いままでに青色申告承認の取り消し…(2)のに○
4. 本年1月16日以後に…事業開始日を書きます。1月15日以前でも念のため書いておきました。
5. 相続による事業承継の有無(2)のに○。あったら欲しいわ!
6-(1)簿記方式複式簿記に○しました。これで青色申告は複式簿記での提出が必須になります。
6-(2)備付帳簿名いわゆる各種帳簿がズラーッと並んでいて困ったのですが、ひとまず何も無しで良いようです。ただ必要な帳簿(現金出納帳や経費帳)はしっかりつけて保管しておくように!と税務署の人にアドバイス受けました。

こちらも上記同様、届け先の税務署・提出日を記入し捺印し、控えにコピーを取っておきましょう。

4. 税務署の人に相談する

これらの書類を携えて恐る恐る税務署に行きました。
色々言われるかと思いきや、税務署の人は丁寧に対応してくださいました。 最初の申請書の書き方くらいは「個人事業主の開業をしたくて相談に乗っていただきたいのですが」と告げて、 自分の事業の状況や、青色申告のこと、記帳の予定などを伝えれば、丁寧に教えてくれます。
実際の記帳の細かい相談などは「税理士」や「青色申告会」で聞いてね、と(当然)言われますが、 帳簿の初回指導を無料でやってくれるサービスなども予約受付しているので、これを受けるのはかなり有益かと思います。

5. 晴れて個人事業主に!

上記の書類を出せば、ポンポンとハンコ押してくれて申請完了です。さくさく終わりました。
この手の書類提出は初回ですとかなり怯えますが、申請書に関しては簡単に出せます。 自分の事業方針をしっかり固めておけば、あとは税務署で直接相談するのがオススメです。

…とはいえ、これはスタートライン。本番はこれからですね。 これからの「個人事業主メモ」は帳簿の付け方やら色々な試行錯誤をメモっていきます。

2011.01.07

数日前から個人事業主のメモを書きはじめ、迷いもたくさんありましたが、今日一歩踏み込み個人事業主の申請を行ってきました! これで堂々無職というネタは使えなくなってしまいますので、少し残念ですが(^^;
同時に「タイトルの?」が取れました(笑)

個人事業主申請自体は大して手間もかからないもので、ホントに5分程度で終わりました(書類2枚に必要事項を書けばいいだけ)。 税務署の職員さんも親切に説明してくれましたし、相談にも乗ってもらえました。ただ、そのとき対応してくれた職員さんに聞いたのですが、 税務署などもかなり人員削減されているらしく、手一杯で手厚く相談に乗れないのだそう。公務員も大変。

本格的に相談するならば、記帳なら青色申告会、全般的な相談ならば税理士にお願いするほうがよいようです。 もちろん有料になってしまうので、内容を把握しているならば自力という選択肢もあり得るかと思います。 (不安事があるならば、当然相談に乗ってもらうべきかとは思いますが)

ちなみに、申告の時期が近づくと、無料相談を1回は受け付けてくれるようです。 税務署に行って予約することができるので、自分の納税地の税務署に相談に行くと良いかと思います。

申告が具体的にどのようなものだったかも含め、今後は個人事業主として行ったことがでてきたら、 メモに展開していきたいと思います。よろしくお願いします。

2011.01.02

iPhoneアプリ開発の都合上、数台のデバイスを相手に実機デバッグを行っているのですが、 その中の1台がXCodeで「ビルド実行」を行ったのにも関わらず、画面左下のステータス部分にDebug runsを止めてしまったメッセージが現れ、転送ができませんでした。 このとき、コンソールを見ると
 Error launching remote program: security policy error.
というエラーを出力しています。

これは期限切れのProvisioning Fileがデバイスにインストールされていると起きる現象です。 ここで罠がありまして、対象となるProvisioning Fileは開発中のアプリのものに限らずインストールされているファイルすべてです。 つまり現在の開発に関係ないProvisioning Fileのいずれかが期限切れになると、途端にデバッグを受け付けなくなるようです(ちょっと不便ですよね^^;) Provisioningファイルは期限が数カ月で結構頻繁に期限切れを起こすので、 実機転送デバッグに失敗した際は、Provisioningファイルをきれいに削除してから、再度転送してみてください。

僕の場合はこれでうまくいきました。

2011.01.02

今日、iPod Touch 2Gにインストールした彩えんぴつのファイルビューでサムネイルが飛んで表示されるという、妙な現象が起きました。 ひと目見たときは「あ…ファイル生成に失敗したかな」と思い、対応が面倒な不具合だなあとしか思っていなかったのですが、 実際に調査してみるとファイルの生成失敗ではなく、見覚えのない・出力するはずのないファイルが生成されていて、 これが邪魔をしていました。

ファイル生成の成否判定はもとより行っていたので、今回の不具合は不思議に思っていたのですが、 不可解なファイルが勝手に存在しているということで、想定外の不具合でした。

ですので、バグ取り…というより、型に合わないファイルなどを発見したら削除して、 サムネイル情報を再構築する…という「監視処理」を入れることにしました。やったことは大体以下の通りです。

 ・形式的なファイル名のため、規則に従った名前かをチェックし、異常を除外
 ・データファイルとサムネイルファイルの名前の一致を見て、不一致なら除外
 ・データだけになってしまったサムネイルの復帰

これで変なファイル名のファイルが出力された際にはなんとか対応することが可能になりますが、 完全ではないと自覚しつつの今回の対応となりました。また、今回の監視処理が入ることで、起動とファイルビューが若干時間がかかるようになってしまったのネックです。 それでもデータが破壊されるよりかはマシかと思い、アップデートに踏み切りました。 かなり大がかりな改装になってしまい、別のバグを誘発していないかが心配です…… いちおうファイルビュー周りのたいがいの処理はチェック済みなので、後は自分を信じるだけですね。

不具合報告が来ないことを祈るばかりです。