2011-09-30 (金)
10/1から微妙に仕事の内容が変わる予定なので,形式上は今の仕事する最後の日.……実際はまだ手放せないのだけど.
この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. なので実際のものとは何も関係がありません. それから,写真のように見える画像はCGもしくは念写によるものです.
10/1から微妙に仕事の内容が変わる予定なので,形式上は今の仕事する最後の日.……実際はまだ手放せないのだけど.
午前中.秋葉原.今日は本を買う.朝だというのに人が多い.秋葉原は知り合いとの遭遇率高い.
昼.昼寝をする.
夜.kmuroiが東京に来ているのでkstm.orgの面子で集まる.新宿でロシア料理.
なんだかよく分からないけど,↑これが美味しかった.
そのあと,Gazyuの家に.ベランダにコンソール付のラックとかが放置されててるし,32GBのRAMドライブがいくつか落ちてたり酷い場所だ.eldeshを転職させるためにいろいろやったりした.
会社にルンバ持っていて,走らせて遊ぶ.会社でも電子工作したいので,半田ごてとか,オシロスコープとかも持っていく.オシロも家用と会社用が欲しいな.
bluettoothモジュール使ってみる.思ったより簡単.
夜出かける.
デイリーヤマザキの入り口にLED照明使ってるって書いてあったので,今日は買い物中に注意深く観察してたのだけど,普通の蛍光管ばかりでLEDは見つからなかった.何なんだろうな.
秋葉原.bluetoothモジュールとか細かいパーツ買ったり.うなぎ食った.
やっとルンバが使えるようになった.ATMEGA644を繋いでORI経由でアクセス.
とりあえず,適当なプログラム書いて部屋の中を走らせてみたり.あとはセンサー色々追加しよう.
今更だけどプログラム書いて遊ぶなら,530じゃなくてもう少し上のやつ買っておけば,デバッグ中にルンバに数字表示させたり出来るので良かったなぁ.530にも7セグLED載せるパターンはあるので,自分で実装すればいいのかな?
というか,AndroidのOpen Accessory APIから操作できるようにしたいので,Android3.0が載ったタブレットと,適当な
久しぶりにAVR使ったけど,最近はMEGA2560まであるんですね.フルスピードのUSBが使えるatmega8uとかもどこかで使いたいな.
やっとルンバが使えるようになった.ATMEGA644を繋いでORI経由でアクセス.
とりあえず,適当なプログラム書いて部屋の中を走らせてみたり.あとはセンサー色々追加しよう.
今更だけどプログラム書いて遊ぶなら,530じゃなくてもう少し上のやつ買っておけば,デバッグ中にルンバに数字表示させたり出来るので良かったなぁ.530にも7セグLED載せるパターンはあるので,自分で実装すればいいのかな?
というか,AndroidのOpen Accessory APIから操作できるようにしたいので,Android3.0が載ったタブレットと,Arduino買うかな.ただ,一から作りたい気もして微妙に気が乗らない.
久しぶりにAVR使ったけど,最近はMEGA2560まであるんですね.フルスピードのUSBが使えるatmega8uとかもどこかで使いたいな.
AVRいじろうかと思ったら,いつも使っていたAVRライタが見つからないのでAVRライタを作るところから.
HIDaspです.前よりも少しだけ小さめに作ってみました.microUSBコネクタは薄いので良いですね.
ファームウェアは,千秋ゼミのHIDaspxのページから.
上野.
寝る.
来週は休むことにした.
下林に壊れたマインドストームNXTを借りた.動いているようだけど,液晶になにも表示されない.ばらして様子見てみるが,怪しいのは液晶とボタンが載った基板と液晶をつなぐ配線だなぁ.ただ,液晶側が樹脂で固めてあるのでどうにもならなそう.
会社の後輩でもある,鳥居みゆっきの昨今の学校のセキュリティ事情 を読んだら書きたくなった.
10年前,私が高校生だったときの話です.正確には11年前ですね.
私がコンピュータ絡みでやったことといえば,
あたりですね.
化学部の部長だったので,本業はコンピュータよりも実験でした.
普段コンピュータ室は鍵がかかっていますが,先生に言えば開けてくれます.あと,コンピュータ室の奥が化学準備室とつながっていたので,私はそちらから入っていました.
学内LANは存在せず,コンピューター室の中だけでLANが組まれていました.そして,インターネット回線はISDNでした.40クライアント近くある教室に,128KbpsのISDNが一本…….そういう時代でした.
学校のPCについては,誰もが一回はいたずらをしたくなりますよね.
もちろん,10年前でも対策が施されていました.
アプリケーション名は忘れましたが,生徒のPCを監視するソフトウェアが導入されていました.起動時にシステムのファイルを全てチェックするようで,PC起動するときに数分間待たされます.
まぁ,自分が使っているPCに怪しいプロセスがあったら全て殺すべきですね.監視されるのが嫌とかではなく,説明されてないしスパイウェアやウイルスである可能性もあります.自分の身は自分で守りましょう.そのプロセスの起動の設定がレジストリにあるのに気づいたら,自分が良く使うマシンでは動かないようにしましょう.(後で誰か困るといけないので,卒業する前に設定は元に戻すべきです)
あれです.コンピュータ室のPCに悪戯して遊んでいると,先生に目をつけられて「学校のWebサイト作れ」とか言われてしまう時代です.
仕方ないので作りました.当時覚えたばかりのJavaScriptとかcssとか使いました.学校の校章とかも,その辺の印刷物から取り込んだやつをMSペイントで加工したりしてアンチエイリアスもかけずに白黒2値で使った覚えがあります.このとき作った画像,まだたまに見かけますね……
で,そのサイトに掲示板があったのです(掲示板欲しいといわれたので私が付けました).CGIは自分で書いたわけではなくて,ISPのホームページスペースに最初から付いていたものです.(ISPはそれなりに大手のあそこです)
しかし,用意されているCGIが色々おかしいのです.当時の私はセキュリティとか良く分かってませんでしたが,なにかおかしいことは分かりました.
掲示板はHTMLもJavaScriptも書ける超高機能掲示板でした.とりあえず,管理者がログインしようとすると,こっそりパスワードが外部に送られるようにしたりしましたね.最初からパスワード知ってるので無意味ですけど.
掲示板以外にも,サイトの公開設定する管理画面があるのですが,好きなディレクトリに,.htaccessとかいうファイルを置けるツールでした.自分のホームディレクトリ以外にも置けます.しかもどうやらroot権限で.
他にも,最終的に任意のファイルにroot権限でデータを追記できるところまで辿りついてしまったので,
「この素敵機能すごいですね」ってメールを学校の名前でISPのサポートに送ったのを覚えてます.
何通かメールやり取りして少し改善されたのですが……途中で諦めました.
当時は,SQLインジェクションとか,XSSとかカッコいい脆弱性を知らなかったので,「root取ったら勝ち」という自分ルールでインターネットライフを送ってました(…嘘です).
職員室や事務室のPCも触る機会がたまにありましたが,悪いことは特にしませんでした.
一応,試験問題とか成績などの重要なデータは,とあるサーバの専用の場所に入れられていて,普通の学生はアクセスできないようになっていたので安心です.
ただ,試験期間や成績を評価する期間にコンピュータ室のPCを順番に漁ったりすると,ゴミ箱の中に怪しいファイルがあるものです.コンピュータ室は静かだし冷房も効いてるし,そもそも職員室のPCは台数少ないので,ここで作業する先生も結構いるんですよね…….
ゴミ箱はちゃんと空にしましょう!
もちろん,僕は品行方正で真面目な生徒だったので,見なかったことにします.
試験問題や自分の成績を確認するようなことはしません.あとでこっそり消し忘れてたことを先生に教えるくらいです.
あれです,色々わけの分からない活動をしていると,目をつけられて「学内にLANを施設して欲しい」と言われる時代でした.
ちょうどADSLとかいうサービスが始まるらしいので,コンピュータ室以外でもネットを使いたいというような話だった気がします.
その頃,同好会作って,「情報化社会においてインターネットの情報を掌握したいと思っている人」を募集してたりしました.しかし,残念ながら数年後にGoogleという会社に野望を奪われることに.あのとき作った同好会まだちゃんと存続してるんですね...
2年生が始まる春休み中でした.毎日学校に通ってケーブルと工具を片手に,白緑緑白橙青…というような呪文をブツブツつぶやきながら一日を過ごしたり,コンクリートドリルと巨大なステープラーみたいな工具を借りてきて,天井裏に潜って壁に穴を開けたり,ケーブルを固定したりしていました.今も思うのですが,学校の壁に生徒が穴あけたりしていいんでしょうか?
100mのケーブルを解くとき,間違って絡まらせてしまったときの絶望は今でも忘れません.
当時,コンピュータ室以外にコンピュータのある場所は,職員室,事務室,進路指導室,生徒会室,いくつかの研究室,図書館くらいだったのですが,階や棟が違ったりして,結構苦労しました.結局,図書館は建物が離れすぎていて断念.(関係ないけど公立の普通高校に研究室ってあまり無いみたいですね……)
当時の学校にもコンピュータ用の予算がついていたのですが,あまり上手く使えてなかったのかもしれません.事前に話は通っているので,必要なものはすんなり買えます,事務室のおじさんとも少し仲良くなりました.
1年後くらいに,ちゃんとした業者(確かF通の人だったような)が施設し直してくれたのですが,細かい管理はあまりやってくれないので,結局私のところに話が来て,面倒な目にあったりしていました.
CenterCOMのスイッチの設定をマニュアルだけを頼りにやったのとか,良い思い出です.ネットワークの知識は大体この時期に身に着けたものが多いです.
しかし,学生にやらせれば実費だけで数十万で済む仕事も,ちゃんとしたところに頼むと高いですよね….
自由でした.
何かやらかしてしまっても,特に処分されるようなことは無さそうでした.
しかし,みゆっきの学校の対応は酷いですね.
自宅謹慎の時点であれですが,
「うちの学校はプライバシーマークも取得しているのでこういうことされては困るのです」
って…….
私はみゆっきほど良く出来た高校生ではなかったので,同じ状況だったら色々危なかったかもしれません.
ただ,自分自身のセキュリティを考えた場合,前もって学校内の権力のありそうな先生を何人か見方につけておいたり,弱みを握っておくべきですね.大事な会議があるときに,校内でロケットを爆発させてしまって,会議を中断させた先生が集まってきて囲まれてしまっても,笑って誤魔化せるくらいの対策はやっておくべきです.
これはただの自慢話ですが,首席合格して新入生代表とかやったり,他にもあれこれやって,一部の先生には気に入られてたので,多少の無茶は庇ってもらえる感がありました.ただ,逆に一部の派閥の先生にはとても嫌われていて,それはもう酷い言われようでした.
この日記はフィクションです.実際のものとは何も関係がありません.
いつのまにか寝ているといういつものパターンで,朝9時前に目が覚めた.昼まで寝ようか悩んだ結果,少しだけDevQuizやっておくことに.
TODO:最後に提出したスライドパズルのコード貼る.
今年も,Google Developer Day 2011 Japanに参加しようと思ったので,DevQuizやりました.
Top Favorites 枠で当選してしまったので,参加権を得るという意味は無いのですが,GDDの参加目的の半分くらいはDevQuizにあるので,やるしかないです.
ただ,真面目コード書いたりできたのは始めた1日と,最後の1時間だけでした.
結局136.6点.ちょっと残念….
神経衰弱.
こんな感じ.ゴルフしていたわけではなくて,普通に書いたらこうなりました.
(function(){var f=[],c=eval($("script")[2].innerHTML.match(/\[.*\]/)[0]); for(var i=0;i<c.length;i++){if(!f[i]){f[i]=1;for(var j=i;j<c.length;j++) { if(!f[j]&&c[i]==c[j]){f[j]=1;conc.flip(i);conc.flip(j)}}}}})()
Chromeエクステンション作る問題のようだけど,デバッグ面倒くさそうだし,ワンライナーで.
以前はアドレスバーでjsのデバッグしてたのだけど,Chromeがアドレスバーにjavascript:から始まるURLを貼り付けられなくなってしまったのでコンソール使う.ウインドウを開くことを我慢できるならこっちのほうが断然便利ですね.
問題の画面を開いたら,JavaScriptのコンソール画面に上のコードを64回ペーストするだけ.64回ペーストする作業が結構苦痛だったけど心を無にしてやった.
pngをデコードして色を数えるだけ.特に何も考えずに素直に.
import ( "fmt" "io" "strings" "image/png" ) func CountColor(pngdata io.Reader) int { img,_ := png.Decode(pngdata) rect := img.Bounds() colormap := map[uint32] bool {} numcolors := 0 for y:=rect.Min.Y; y<rect.Max.Y;y++ { for x:=rect.Min.X; x<rect.Max.X; x++ { r,g,b,a := img.At(x,y).RGBA() if !colormap[r+(g<<8)+(b<<16)+(a<<24)] { numcolors++ colormap[r+(g<<8)+(b<<16)+(a<<24)] = true } } } return numcolors }
とくに深く考えずに,手っ取り早く解が出そうな方法で実装してみる.
どうせ何度も中断・再開するし,複数のアルゴリズム使いたくなる気がしたので,結果をマージしたりチェックしたりするコードも書いておく.最後に役に立った.
前日のうちにプログラム書いて実行しておくはずが寝てしまったので,30分ぐらいで場当たり的な改良をして,残りの30分くらい2台のノートPCで実行して,途中までの結果を古い結果とマージして提出するという酷い最後.
実際にはもう少し解けてたけど,移動回数をオーバーしてて使えなかったりで結局3662個.
幅優先だとメモリつらそうだなと思ったので,基本は深さ優先で.反復深化深さ優先探索?して,それでだめそうなら,途中結果で良さそうだったところから,再度同じアルゴリズムで繰り返す.
最新版が手元に無いので,一旦ちょっと古いやつを.すごくいい加減な感じが漂ってるし,よく覚えてないけど,きっと3600個くらい解ける?
たぶん後で最新版を少し読みやすいように整形してから貼ります.
洗濯したり,出かけたり.色々疲れた.
久しぶりにルンバで遊ぶ.
そもそも,ルンバどこにあるんだっけ?と思ったら,ベッドの下で動けなくなったままじっとしていた.会社行く前に走らせてそのまま見えないところで待っていたらしい.可愛そうなことをした.
とりあえずマイコンつないで動かそうと思ったら,AVRの開発環境整えるので時間使ってしまう.愛用のAVRライタとかも見当たらないので,仕方なく昔つかってたやつを使うためにドライバとか入れる.
先週,肉じゃが食べたかったのに,ジャガイモが無くて作れなかったのを夜中に思い出して,なんとなくジャガイモ買ってきて肉じゃが作った.肉のハナマサに行ってみる.24時間営業便利ですね.
b-mobile Fairを1.5ヶ月くらい使ってみた.前使ってたU300と比べるとかなり快適.ただ,家はWiFiだしあまり外出しないので,300MB/月くらいしか使っていなかった.2500円/月くらいか.
もう少したくさん使ってれば,最近できた3000円/GBのプランにしようと思ったのだけど,今のままなら必要ないな.
あとは複数のsimで通信量を共有できるプランあればいいのになぁ.電話たくさん持ってる人とかは便利だと思ったけど,あんまり需要無いか.
寝る日.
天気悪い.
秋葉原
電子パーツ漁る日.ミニDIN-7ピンのコネクタ探していた.広瀬,マルツに普通に売っていた.
千石にmicroUSBのコネクタ売っていた.以前は入手が面倒そうだったので,何か作るときはminiUSB使ってたけど,これからはmicroUSBでやろう.
あと,PSDの距離センサを買っておく.
新宿
高校の科学部の友人と会った.
調子悪いので早めに帰って寝る.