Windows7 で Android SDK Manager でのパッケージインストールが失敗する件


表題のとおりですが、Windows7Android SDKの設定を行う際に不具合が発生しました。
といっても、多分、SDKのインストール先をC:\Program Files (x86)にしてしまったから。


各パッケージ(SDK ToolsとかPlatformとか)をインストールしようとすると
「tempの作成ができません」だの
「アクセスが拒否されました」だの
言われてしまって、インストールに失敗します。


ふと、そういえばWindows7ではProgram Filesに書き込みを行う際に権限が必要なんじゃなかったか?と思い
C:\Program files (x86)\Android(この中にSDKがある)で右クリック→「プロパティ」→「セキュリティ」タブ→「編集」→「Users」選択→アクセス許可の「フルコントロール」の「許可」にチェック→「OK」→「OK」
これで再度インストールを試みたところ、成功しました。


でも、フルコントロールっていう名前からして、ゴリ押し感がありますね…
SDK Managerを管理者権限で実行したり、そもそもSDKをProgram Files下に置かないようにしたり、といった対処法もありかもしれません。


とりあえず、自分の解決法としてのメモ。

第44回情報科学若手の会に参加してきました

情報処理学会という日本の情報科学系ではもっとも大きいと思われる学会の
プログラミングシンポジウム委員会による
第44回情報科学若手の会
に参加してきました。


全体の流れは、[twitter:@earth2001y]さんがハッシュタグ#wakate2011のツイートをまとめて下さっているのでそちらをご参照下さい。
1日目まで http://togetter.com/li/189108
2日目   http://togetter.com/li/189434
3日目   http://togetter.com/li/189838


じゃあお前は何書くんだよっていう話なんですけど
私だからこそ書けることを書きたいと思うわけで
それはつまり感想であり、自分のしたことであり、自分の感じたことであり、
…というわけで身勝手なレポートになりますがご了承下さい。レポートを書くまでが若手の会らs(ry


そもそも何故私がこの会に参加したかというと、幹事の一人である[twitter:@sowawa]さんがSkypeでお誘い下さったのです。
二つ返事で参加することにし、行きたがっていた[twitter:@y42sora]にも声をかけ、[twitter:@tomy_kaira]をなかば強引に誘いました。
そして名簿を見ると [twitter:@kumagi] さんもいらっしゃる。以前大学で発表して下さった[twitter:@takesako]さんもいらっしゃる。
タイムラインを見ると[twitter:@earth2001y]さんや[twitter:@techman33]さん、[twitter:@decobisu]さん、[twitter:@taki__taki__]さんなどのフォロワーさんもいらっしゃったりなんかして、会えるのがとても楽しみになりました。
やっぱり、知ってる人がいるっていうのはかなり安心感がありますね。私も[twitter:@sowawa]さんに誘っていただきましたし、他の女性の方(32人中5人も!)も、みなさん「○○さんに誘われて」といった理由でした。
もちろん、非連結の頂点を見つけることも大事なのですが、既に到達可能な頂点へのパスというのも大事ですね!


初日、[twitter:@tomy_kaira]と電車で合流して向かったのですが、熱海から電車を間違えてよくわからないところに行ってしまいました。
戻ろうとしたけど次の電車まで15分…更に待ち時間30分…遅刻やで。申し訳ねぇ。
で、駅からタクシーで宿に向かったんですけど、幹事の方々も渋滞に巻き込まれて到着が遅れていたので、何故か間に合ってしまいました。


空いてる席に着席したら隣が[twitter:@kumagi]さんで「おおおあああああ女帝ええええ」とビビられ、なんかもうこれ初っ端からいつものパターンや。
はじめに一人ずつスライドを使いつつ自己紹介をしたのですが、皆さん大変にアカデミックで真面目な内容が多くて
やばいな私ちょっとふざけすぎたかな、と思いながら、自重せずにありのままをさらけだしました。
その時のタイムラインがこちら

まぁ察して下さい。


この日はPFIの岡野原さんによる招待講演。
同社の[twitter:@repeatedly]さんから「マジやべぇからマジやべぇから」って言われていたので、心して聞きました。
岡野原さん自身について、それから研究について、それから企業について、そして生き方について。
自然言語処理NLP)の話が多かったですね。私は全く触れたことがないのですが、実装がどうとかっていう話よりは、その分野の現状や、これから考えられる応用例などの話がメインだったので、理解しながら聞くことができました。
しかし、ベイズ学習とかの話を聞きながら、先週の集中講義のデータマイニングで散々うちの学科に基礎科目が不足していることを外部の先生に言われたことが、大変身にしみましたね…


夕食を挟み、私はお風呂に入りつつ(温泉!!)一般セッションへ。
[twitter:@overlast]さんの「死なないソフトウェア開発術」です。
実際の現場で起こった困ったこと、そしてその非常に現実的な解決策。
決して完璧な解ではないかもしれない。けれど、死なない。
開発は命をかけてまですることか?ということを…私はわりと真剣に考えてしまいました。


その後皆さんが持ち寄ったお土産を食べながら、夜セッションという名の宴会。
セッション中はtwitter上でしかやりとりできなかったので、ここで皆さんと直接お話しました。


[twitter:@hoimei]さんに手相を見てもらったんですけど、
・生まれたときはそうでもなかったのに、自分の力で、ものすごいリーダーシップを発揮している、通称女帝線がある
・幸せの魚紋が出てる、でも少し曲がっていておかしいので、変な幸せを手に入れる
と、大変胸が熱くなる結果をいただくことができました。ありがとうございます!変な幸せ超楽しみ!!


それからは、「なんで女帝なんですか?」と何度も聞かれ、その度に「それが…わからなくて…」と弁明したり
ハッカソンデートってどうよって[twitter:@takuho_kay]さんに聞かれて「コードの書けない彼氏なんて!!」って言ったらものすごい衝撃を与えてしまったり、
何故か岡野原さんにBLの話をしたり、
…はい。この日は二日目に備えて早めに寝ました。


二日目、目を覚ました瞬間[twitter:@hoimei]さんに「猫だ!」と言われる。どうやら伸びをしていたところを見られていたのですが、まるで猫のように体を反らしていたとかなんとか…
午前中はショートセッションで、脳活動の可視化、視線のライフログ無線LANにおける省電力、といった実にさまざまな分野の話を聞きました。
お昼にカレーを食べて、何故か[twitter:@tomy_kaira]にポッキーゲームを申し込まれつつ、午後のセッションへ。
[twitter:@takesako]さんによる「学生時代に勉強しておけばよかったこと」という特別講演です。
やっぱり、数学と物理。といっても、研究者になるには、といったようなコンテキストでしたが。




それから[twitter:@hoimei]さんの電気刺激による手指の制御の話。
しかし最初に話された「リア充ツイート」が秀逸すぎて、以降タイムラインはそれでもちきりに。


夕食後には[twitter:@tomy_kaira]が「bot作ったわ」という仕事の早さぱない。([twitter:@riaju_hime])


それから何故か私のPV…じゃなくてfluxflexのPVが再生されてうわああああああってなった[twitter:@sowawa]さんによるシリコンバレーでのPaaS事情
[twitter:@earth2001y]さんによる「京コンピュータの性能が手元にあったら?」という投げかけによるディスカッション
[twitter:@norizm]さんによって「セキュリティと私:私はいかにしてApacheのログでご飯が三杯食べれるようになったのか」とタイトルが決められた[twitter:@takuho_kay]さんの発表
などなど大盛り上がりを見せながらセッション終了。
夕食を挟んで、また私はお風呂に入りつつ、飛び込みセッションのお時間です。
Gentooがみんなが思っているよりかわいい話
[twitter:@tomy_kaira]がリア充を実装した話(多分メインは音声による入力体験の向上の考察)
[twitter:@techman33]さんによる福祉工学の話
ビジュアル系高専生の話
などなど、飛び込みらしいバラエティに富んだセッションでした。


それから交流会としてクイズ大会をやりました。


はい、二日目の夜セッション。宴会です。
[twitter:@hoimei]さんによる人体制御ショーが始まり、みんな「あああ右手が…右手がああっ!」とリアル邪気眼状態に。



そんなイベントが勃発する中、私もぶっ放してしまいました。
技術も何も関係ない。タイトルは「なぜ私は女帝と呼ばれるようになったのか」というプレゼン。
スライドはGoogleDocで直前にでっち上げた 5 枚。
https://docs.google.com/present/view?id=d3grtzq_188wnfb5sd2



本当に、発表しながら、気を緩めたら泣きそうになっていました。





最初、参加者名簿の所属欄を見て、もう東大と京大のオンパレードじゃないですか、
ていうかそもそも私立大ってうちぐらい……
…いや、だからなんだっていうのでしょう。山下は参加するのです。最近研究がアレな感じでもう本当にどうしようもないアレだけど、でも山下は参加する!
そして事件は起こった。


「山下さん、ちょっと」と幹事の方々に呼ばれる。「来年幹事やらない?」
私は硬直する。なんか「来年は女帝の会か…」とか冗談で言われてたりもしたけれど、どうやらこれはマジだ。
今回の若手の会、楽しかった。来年も都合がつけば参加したい。そう思っている事実がある。
でも、私が幹事って…。…名簿を見たときに感じた少しの不安を思い出す。
咄嗟に「なぜ私なのでしょう」と尋ねていました。幹事様は、コミュニケーション能力と、リーダーシップと、集客力(?)がある、と言って下さいました。
いま思えばなんとおこがましいことでしょう。
でも、自分のどういった部分が、幹事の方々に、どのように見えたのか、これが明確になっていないと、不安なままになってしまう気がしたのです。


山下は参加するのです。





[twitter:@decobisu]さんによるミツバチプレゼンを聞き、[twitter:@yamashitam_]にみんなで欝になり、[twitter:@tomy_kaira]と誰も得しないポッキーゲームをしたり、BLの話をしたり、ともうこのあたりで3時をまわってしまっていたので、就寝致しました。


翌朝


まとめセッションで参加者の方々一人一人から感想などのコメントをいただき、若手の会は終了……しませんでした。

すみません自宅に着いたら6年ぶりの新しいデスクトップPCが届いてて部屋のGC&配備してたらこんな時間になってしまっていまして
…お疲れ様でした!終わった!第44回情報科学の若手の会、終わった!!
((総括の仕事が残っています))


今年参加された皆さま、来年もぜひ、ご都合つきましたら、お友達などお誘いの上、お越し下さいませ!
興味のある方、来年はぜひ、お待ちしております!
((初参加から中の人になるという衝撃の展開))

ICPC〜継続〜

ICPC〜出会い〜 - yamashitamの日記から一年の月日が流れた。
三年生になった私は、やはり必修の授業で配られた2009年度プログラミングコンテストのお知らせを見て、[twitter:@y42sora]を「出よう!」と即確保。
それとY君の三人で参加することにした。


この頃、たまたま[twitter:@flano_yuki]がなんか学科の研究室とか先生の部屋がある棟を見に行こうと言い出していたので、何人かについていった。
私たちに気付いて部屋の中に招き入れてくれる先生もいた。
現在の私の指導教員のT先生も、その一人だった。
先生はその時、サバティカルイヤーといって、大学の授業や業務をお休みして自分の研究に専念できる年であったので、話すのは久しぶりだった。
「どう?授業は」と聞かれて「いやぁ、やっぱりプログラミングの実習が少なくなって、さみしいですね」と私は答えた。
それからも色々お話してくれて、私はT先生のことが好きで、できれば先生の研究室に入りたいなぁと思っていたので、嬉しかったのを覚えている。


しかし喜ぶのはまだ早かった。翌朝、T先生からメールが来ていた。
内容は、「プログラミングの実習が少なくて寂しいと言っていたようだったので、よかったらうちの研究室の勉強会に参加してみませんか」というものだった。
あて先は私と[twitter:@flano_yuki]だった。びっくりした。だって名乗ってないし連絡先も教えてないのに、どうしてわかったんだろう。
勉強会は、アルゴリズム勉強会と、Java勉強会と、ICPC勉強会の三つ。時間的に、後者二つに参加してみることにした。


とはいっても、バイトがあったりでほとんどまともに参加できず、雰囲気を感じるだけで終わってしまったのだけれど
私はこの研究室の雰囲気が好きになって、ここにいたいなぁっていう気持ちが強くて、その後めでたく第一希望としていたこの研究室に配属されたのでした。


この年の大会本番は、2問解いて2位という結果だった。1位でアジア地区予選に出場したのは、研究室の先輩たちのチーム。
もちろん終了後にはガストで山盛りポテトの祭。よし、また来年出よう、とやはり[twitter:@y42sora]と約束するのでした。

ICPC〜出会い〜

ICPCとは、ACM(計算機科学分野の超有名学会)によって主催される、大学生を対象とした世界規模のプログラミングコンテストです。
同じ大学内の学生3名でチームを組み、できるだけ多くの問題をできるだけ短時間で解くことを競います。
日本で参加する場合は、まず国内予選(インターネット上で行われるので、各大学で教員等に監督をお願いして開催される)に参加します。
ここから成績上位30弱のチームがアジア地区大会に出場、さらにアジア地区大会での成績上位のチームは世界大会に出場できるのです。
詳しくは→ http://icpc2011.ait.kyushu-u.ac.jp/ja/home


…と、まず概要説明から入りましたが、このICPCへの参加は明治大学理工学部情報科学科でも行われております。
ICPCの国内予選が学科のプログラミングコンテストも兼ねていて、学科内での表彰もあるのです。


さて私は二年生の時(2008年度ですね)に必修授業で配られたこのコンテストの案内プリントを見て、
「出るしかねぇ!」
と即決。
だって何もペナルティないし、何より早い内から参加しておいた方がチャンスも多いではないですか。
そして、同じく参加意思のあったM君とチームを組んだのですが、この「3人」というのがなかなか微妙でして…誘おうとした子は「もう○○と××のチームに誘われちゃった」と。
どうしよう……いやでも学年に100人もいるんだ、興味ある人は絶対いるはず!と思い
「誰か出たがってる人いない?」
と聞き込み開始。


そこで知ったのが[twitter:@y42sora]でした。


「あぁ、[twitter:@y42sora]が出たがってたよ。でも一人だって」
「一人!マジか!連絡先教えてもらえるかな!?」
「いいよ、ちょっと本人に確認とってみる」
「ありがとう!」


こんな感じで話が進み、夜にはご本人とやりとりをし、めでたくチームを組むことに。
ちなみに言語をCかC++Javaから選ぶのですが、プログラミング未経験で大学へ入学→一年次の必修授業でC言語を学ぶ→二年次でJavaが始まったところ…だった私とM君は、Cしか選択肢はないと思っていたのですが
[twitter:@y42sora]は「Javaでいこう。入出力楽だから」と言い放ったのでした。
その後メールで三行ほどのコードが送られ、とにかくこれがあればJavaでは入出力ができるらしいとのこと。
そして私はなんと何の練習もせず、本番を迎えるのでした。


この時は確か6チームくらい参加していたと思います。玉木研の院生の方々と、二年生はうちともう1チーム、それから3〜4チームほど先輩の方々。
国内予選では、3時間で6問(今は7問)が出題されました。
結果、解けたのは三問。一問目は[twitter:@y42sora]にやってもらって、二問目は出力に10分以上かけながら私とM君が解いて、三問目は三人で…いやほぼ[twitter:@y42sora]だったかも。


この年は、玉木研の先輩方チームが四問解いてアジア地区大会へ出場しました。
そしてなんと当チームは学内順位が2番だったので、学科のプログラミングコンテストでは表彰(上位3チーム)していただくことになりました。


帰り、二年生同士で「ご飯食べようよ」とガストへ。
(ここで山盛りポテトを数皿頼んだのが、後のプロコン恒例ポテト祭である。)
「いやぁ面白かったね」
「2問目あれ時間かかりすぎでしょw」
「効率悪いwでもとりあえず組んでみるもんだね」
「最後の問題とか何なのあれw解ける人いるの!?」
「上位東大ばっかりだったねー!」
「いやでも練習すればもう一問くらいいけないかなぁー?」
なんて盛り上がりながら、私は「来年も出ようね!」と[twitter:@y42sora]との運命の出会いを掴んで離さなかったのでした。

Javaプログラマであるかを見分ける10の質問に挑戦してみた

http://d.hatena.ne.jp/shuji_w6e/20110305/1299288660
私は実務経験などないし、3年もJavaやってるわけでもないので
自信はないのですが、勉強のためにも1問1答してみたいと思います。
誤りなどぜひ指摘して下さると嬉しいです。


1. ==演算子とequalsメソッドの違いは何か?
==演算子がオブジェクトそのものの同一性を比較するのに対して、equalsメソッドはその定義により同値性を比較する。


2. 文字列の連結は原則として+演算子を使ってはならない理由を説明せよ。
だめなのか!
えーと、連結といってもString自体は文字列の変更を行うことは想定されていないので、オブジェクトが新しく生成されるため、リソースの無駄な消費や処理速度の低下がある…んでしょうか。


3. Listのようにジェネリクス型を使う主たる目的は何か?
そのListに対して要素を追加したり削除したりする際に、型安全性が保証される。


4. オブジェクトがガベージコレクションGC)される主たる条件は何か?
…そのオブジェクトが参照されなくなったとき…?


5. チェック例外と非チェック例外の違いを型と例外処理の観点で説明せよ。
チェック例外は実行前に想定される例外(入出力のエラーとか)で、非チェック例外は実行中に起こる例外(配列外参照とか)…だと思ってたけど、型って…RuntimeExceptionを継承してるかどうかの違いとか…?


6. フィールドのアクセス修飾子をprivateにしgetter/setterメソッドを提供する事でフィールドを参照する設計方針を取る主な理由を説明せよ
フィールドへのアクセスはそのメソッドを介してのみ行われることにより、カプセル化を実現する。
って、理由になってないかも…


7. NullPointerExceptionが発生するのは主にどういう状況か?
参照しようとしたオブジェクトがまだ生成されていない場合。例えば、あるクラスのメンバーであるオブジェクトがまだインスタンス化されていないのに、参照しようとしたときとか。


8. オーバーロードとオーバーライドの違いは何か?
オーバーロードは、シグネチャの異なる同名のメソッドが実装されること。オーバーライドは、スーパークラスと同じシグネチャのメソッドを、新たに実装すること。


9. コンストラクタとは何か?
new演算子によりそのオブジェクトがインスタンス化された際に呼び出されるもの。オブジェクトの初期値設定などを記述する。


10. インターフェイスを利用する目的を1つ説明せよ
ある仕様に対して異なる実装がある場合、インタフェースが共通していれば、複数のクラスが同じ振る舞いを行うことができ、ポリモーフィズムが実現される。


うわぁ、疑問符が多い。
一応何かしら書いたけれど、点数にするとどうなんでしょう…
80%程度回答できていれば中堅プログラマとして採用されるらしいです。

大学でのJavaによるオブジェクト指向学習講義に対する私の勝手な結論

前回書いた
プログラミング学習の支援について4年の春休み中もやもやとしていること - yamashitamの日記
に対して今後どうしていくか、の入り口として
大学でのJavaによるオブジェクト指向学習講義について、ちょっと考えてみた。


うちの大学でのJavaの授業の教科書は『独習Java』。まぁかなり売れてる定番書らしくて、評価も良い。
しかし同じ大学の友人や後輩から話を聞いていると
「言葉で説明されても、実際どう使うのかわからない」
「その場ではうんうんって納得しても、結局全体が見えない」
という感想が多いです。
私は本を読むのが苦手だったので、読みませんでした。
その代わり授業の板書はとっていましたが、それでも教科書の内容に沿いながらやるわけですから、まぁ似たような構成になります。
まずオブジェクト指向とは何か、それからクラスの説明、オブジェクトの説明、はい基礎終わったからいよいよJavaの本番だよ、継承とかインタフェースやりましょうか、んじゃ応用としてアプレットとかスレッド、GUI楽しいね!
若干(?)穿った見方ですけど、おおむねこんな感じ。
他の大学もこんな感じなんだろうか。


しかしやはりこれだと、実際プログラムを組もうとして
「何から書けばいいんだ?」
となることが多いんじゃないかな、という勝手な結論から、「まず書いてみよう」という観点で演習を行えないだろうか、という実験的な試みをここで行おうかなと。
なんか例題用意して、作っていく過程とか、必要になったときのポイントや用語解説を書くなどして。


実験的、なのでなんらかの形でフィードバックは得たいと思っています。
コメントとかはめんどくさいかもだから、「わかる」「わからない」程度のアンケートでも。

プログラミング学習の支援について4年の春休み中もやもやとしていること

私の通っている大学は、院生をTA(Teaching Assistant)としてアルバイトさせてくれるシステムがあります。
どこの大学にも似たようなものはあると思いますが、主に授業や実習の補助(質問に答えたり、レポートをまとめたり)ですね。


自分がプログラム実習を履修しているときも、余裕があれば周りの友達に教えたり、プログラムのバグ取りを一緒にしたりと、TAみたいなことはしていて、それが楽しかったのです。
だから学部三年のとき、一年生の実習の部屋に行き
「入ってもいいですか」
と担当の先生に聞いて
「いいよいいよ、むしろ手伝って」
と言われ、とても嬉しかったのです。
それ以来週3コマの実習に参加することになりました。


もちろん正規のTAの方々に比べて知識や技術も劣りますが、それでも、困っている学生を助けることもできて
「やった!」
とか
「わかった!」
とか
「ありがとうございます」
とか言われると、ものすごく嬉しくて、ものすごく達成感を感じて、
例えお金がもらえなくても、ぜひ続けていきたい、と思ったのです。


自分が、プログラミングしていて感じた「魔法みたい!」という気持ち。
なんでもできそうな気がして、わくわくする気持ち。
それを
「またエラーかよーもうやだ」
なんて言って諦めちゃったり、
「よくわかんないよな、頭のいい奴のやるもんなんだろ?」
なんて言って避けちゃったり、
そういうのが少しでもなくなればいいなと。
もちろん嫌なのに強制はしませんし、向き不向きもあるかもしれません。
でも、少しでも「やってみたいな」っていう気持ちがあるなら
それが消えてしまうのは、今の情報科学という分野の充実さからすると、とてももったいないと思うのです。


偉そうに色々書いていますが、私はただ大学で授業を受けただけで
実務経験があるわけでもないし、ましてや社会に出てすらいません。
だから、夢うつつなこと抜かしてるかもしれない。ごめんなさい。


とりあえず、プログラミングの指南本は山ほど出ていますし、別に最強メソッドなんてものを考える気はないのですが
せめて学内だけでも、うちの情報科学科に来た一年生や二年生にだけでも、何かできたらいいなぁ。
そうすると、授業のカリキュラムに即したサポートがいいのかもしれない。


課題の期間が終わり次第、解説とか解答例を公開するとか。
でもこれは学校側に咎められるかもなのです。サボるやつが出てくるだろ、みたいな。


じゃあ類題を作って解説する?
それも、全部やっている時間はないので、絞っていかないと。
例えばC言語ならポインタとか構造体の動的リストとか、概念自体でつまづきやすいのはこのへん?
概念以外ですと、if文の組み方とか変数の名前とか、教科書にあまり書いてないところらへん。


やるとしたらここ(はてなダイアリー)ですかね。


とりあえず、来年度から院生になる私は
めでたく正規のTAとして採用していただけることになりました。
希望通り、一年生の実習と、二年生の実習で、週3コマ。
今までと変わらないので、そんなに時間的圧迫は感じないはず。


もやもやの吐き出しおわり。