2011年5月17日火曜日

Ubuntu10.04LTSの初回起動時に「Gave up waiting for root device」エラーが出る

Ubuntu 10.04LTSを入れて、初回起動を行うと
Gave up waiting for root device.
/dev/disk/by-uuid/<UUID> does not exist.
というエラーが出て、shellに落ちてしまう。

2011年5月4日水曜日

iPhoneのWinterBoard用テーマで天気のロケーションを設定する方法まとめ(要JB)

iPhoneをJBした人は多かれ少なかれWinterBoardを入れて
いろいろなテーマで見た目をカスタマイズしたいと思う。
そのために
ithemesky.com
なんていうようなページでいろいろなテーマが配布されているのだが、
こんなのとかこんなのでは、以下のようにロック画面に天気が表示されるという素敵なことができる。


だが、どうやって表示される天気を自分の住んでいるところにすればいいのか手こずったのでまとめておく。

2011年4月17日日曜日

無駄にUbuntu Server 10.04LTSでデスクトップ環境を整備する

「最初からデスクトップ版入れろよ」という話だが、まぁなんかかっこいいし勉強にもなるのでやってみる。

2011年3月9日水曜日

C言語初心者がポインタで引っかかる理由

C言語に触れ始めた当時、案の定ポインタで引っかかっていた口だが、今さらながらなんで引っかかっていたのかを考えてみた。

ポインタを勉強していて多くの人が引っかかるのはダブルポインタあたりだと思う。
二次元配列的なイメージが構築されるまではかなり苦労させられた覚えがある。
ただ、今思い返してみると、
元はといえばダブルポインタが分かりづらくなる原因は
ポインタを学習した時点でスッキリしないシコリのようなものあったからではないかと思う。

そしてそのシコリの主たる原因はその表記法にある気がする。
アスタリスク(*)の使い方が紛らわしいのだ。
例えば、次のようなクソみたいなコードを考える。
int *a;
*a = 1000;
int b = *a + 2;
このとき「b = 1002」だと言われれば、
「なるほどaはアドレスを示していて、*aとするとそのアドレスに格納されている値になるんだな」
というのはそれほど違和感なく理解できていた気がする。
ところが、以下のようなコードになったとき、
int *a = 1000;
int b = *a + 2;
このとき「bは1002じゃないよ。代入している1000はaのアドレスだから」と言われる。
ここでスッキリしないモノを感じた。感じながらもそういうものだと思って次に進んでしまったことがその後の理解に支障を来してしまった。

要するに分かりづらい原因は宣言時の*と普段の*では意味合いが違うという点にある
んじゃないかなぁと。
  • 普段の* : あるアドレス変数に対してそこに格納された値
  • 宣言時の* : アドレス値を格納できる型
を表していることがわかりづらい。
int *aは正確には(int *)という型のaだと宣言しているだけということらしい。
だから宣言時の代入はあくまでa = 1000なのだ。

この場所による*の意味合いが違うことがポインタへの理解を阻害している気がする。
少なくとも俺はそうだったみたい。

2011年3月7日月曜日

はてなダイアリーからBloggerへの移行

Blogger使ってみたくなったのでブログをはてなダイアリーから移行することにした。

正直たいした記事はないので、移行するまでもないのだが、備忘録としてはまとめておいたほうがいいだろうということで移行作業を行ってみる。

作業に際しては以下の記事を参考にした。
はてなダイアリーからBloggerへの移行 - hhhの日記 個人的なメモみたいなもの

はてぶをMovabeTypeで出力
→Blogger形式に変換
→Bloggerにインポート

で終わり。
画像ファイルもはてなからGoogleに移行したいけど自動化はちょっと難しいかなぁ。
あと、レイアウト変更せな。

AVDマネージャでプラットフォームインストール時に出る警告「SDK Manager: failed to install」への対処

先の「Nothing is installed」エラーが解決し、インストールを行っている途中で今度は「SDK Manager: failed to install」というWarningが表示された。

どうもこれはアンチウイルスソフトのプロテションによる問題らしい。自分の環境ではKasperskyを使用しているが、ネットで見かけた報告でもKasperskyの人しかいなかったので他のソフトでは出ないのかも。
あまりよろしくない方法かもしれないが、一時的にプロテクション切ったらインストールできる。

AVDマネージャでプラットフォームインストール時に出るエラー「Nothing is installed」への対処

先日のAndroid開発環境の構築を行った際に、AVDマネージャでプラットフォームインストールで「Nothing is installed」というエラーが出てしまった。
f:id:esodov:20110110235840p:image:w400
なんでだろうとよく見てみるとどうもSDKロケーションにtempフォルダをつくろうとして失敗している。

で、結論としてはAndroid SDKをProgram Filesの下においたことが原因。
Android SDKのインストーラは、デフォルト設定だと「C:\Program Files」直下のAndroidフォルダにインストールしてしまう。プラットフォームのインストールはこのフォルダ内に行われるので、フォルダのアクセス権限の問題でtempフォルダが作成できないみたい。ということでAndroid SDK入れるときはProgram Files内にはインストールしないほうがいいデスネ。C:直下とかにすれば解決する。