トップ 追記

uDiary

海野秀之(うんのひでゆき)の外部記憶

Twitter (twilog) / RSS / アンテナ / ぶくま

2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|

2014-08-20 (Wed)

Google 公式 Android Training with Eclipse+ADT

Tiger Compiler 作成も終盤に差し掛かり、ターゲットマシン (Dalvik にしようとしてる)についての理解が浅いのがネックになってきた。それに、Runtime まわりを整備しないといけない。

Android プログラミングを勉強するために、なんか本でも読もうかなと思ったけど、どうも Google 公式ドキュメントより優れた入門文書はなく、どっちみち公式ドキュメントは避けて通れないらしいので、それでいくことに:

http://developer.android.com/training/index.html

ただ、昨日もこれみながらやってたんだが、なんかおかしい。new project をつくっても、書いてあるようなファイル構成ができあがってこないようだ。もしかしたら、Command line tools でやってるのが原因かもしれない。

というわけで、今日は Eclipse でやってみる。

Eclipse でやってみても、少しだけ書いてある通りにならないところがあった。

たとえば、Creating an Android Project には、次のように書いてあるんだが、

Now you can select an activity template from which to begin building your app.
For this project, select BlankActivity and click Next.

BlankActivity with Fragment を選ばないと、fragment_main.xml はできないようだ。

これについては、昨日も Building a Simple User Interface に書いてある通りにならなくて悩んだ。

Starting Another Activity

というわけで、今日は Starting Another Activity まで。

StartingActivity

昨日とちがい、今日は (Command Line Tools ではなく)Eclipse + ADT でやったので、BlankActivity を BlankActivity with Fragment に読み替える必要があった以外は、書いてある通りにでけた。


2014-08-13 (Wed)

[Tiger][ Haskell] Tigerbook 9 章

ぼちぼち。

Assem.hs を書き始めている感じ。8 章の理解・動作確認も並行してやんないと。

*Assem> let ai = addInstr [128] [5, 7]
*Assem> ai
OPER{oper_assem="add-int `d0, `s0, `s1", oper_dst=[128], oper_src=[5,7], oper_jump=Nothing}
*Assem> format Temp.makeString ai
"add-int t128, t5, t7"

ま、こんな感じだろう。

「夜更かし」は、日・月・火・水と最近決めたので、次の夜はすけるは日曜の晩だ。


2014-08-06 (Wed)

つぶやき

Evernote の新しいトップ画面にでっかく出てくる男性の顔が苦手で。
Web からログインするのが少し億劫になるれべる。


分岐方向が逆になるように書き換えればよいとかじゃなかった。
ぐうむ。回避できないのか?


SIMD の論理演算をゴリゴリ利用した Assembly コードを書くにはあの朝飯では足りないと
脳がのたまう(気がした)ので、ひさびさに「きのこの山」を買ってきた。


おれ、きのこ派だったっけ?


結構きれいなトースターだなぁ(konami
http://superuser.com/questions/792607/why-does-windows-think-that-my-wireless-keyboard-is-a-toaster


おやつくったし、書くか。


Ruby も Mersenne Twister も、「名前重要」的なエピソードをもっている。
やっぱり名前重要なんかな。


あられは Rice Cracker らしい。
(Hadaly って言いにくい)


Rice Cracker も、r がふたつもあって発音しやすくはないのかも。
(平気だけど)


鈴木土下座ェ門 という文字列をみた


SPARC V9 で unsigned long って 8-byte だったのか!(いまさら?)
普段 stdint.h 使うので、意識してなかった。


はやくかえって、Tigerbook のやつやる。


2014-08-05 (Tue)

つぶやき

ソフトがはいってない「妖怪ウォッチ2本家」が送られてきた件については、速やかに返金処理が行われた模様。
「最低」としていた出品者への評価は、削除することにした。


他の人による評価は、総じて高いんだよなぁ。
なにかの手違い…だったのかなぁ。(手違いで、つまり、悪意が介在せずに、ああいうことになるのか疑問なんだが)


なるほど。>(let it go の日本語版歌詞は)極めて緻密な計算に基づくプロの仕事
http://togetter.com/li/702505


日本語版はたしかにすごいと思うけど、戦略的であれどうあれ、半分捨て去ってるわけで、やっぱり元の英語版が好きだな。


今日も、とあるついったアカウントをフォローするのをやめた。
良い・正しいと思う内容を広めてくださればいいと思うのだけど、悪い・良くないことにいちいち反応されるので、TL が余計なもので埋まってしまってつらい。


自分も、悪いこと・嫌いなことに反応するのでなく、いいことに反応していくようにしたい。


ごくり。…皮算用では16倍速くなるんだけど、本当かしら?


あ、ないない。8倍かな。
それでも本当に到達できたら、結構すごい。


うーん。なぞのペナルティに遭遇。そんなんチューニングしようがないぞ。
っていうか、見間違えだったらいいな。バグ踏みましたみたいな展開は望まない。いちお調査依頼した。


みていたページ:
http://docs.oracle.com/cd/E36784_01/html/E36858/
http://docs.oracle.com/cd/E37932_01/html/E37305/elfedit-1.html


「うげー」と思ったあれ。そういうこと(どういうこと?)なら、
分岐の方向が逆になるようにブロックの順序変えてやればよさげ。


2014-08-04 (Mon)

つぶやき

これ読んでた: http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/math.html

僕としては、 「純粋数学は実におどろくほど役に立っていて、人に 非難されるすじあいはない。」 という証拠を作ろうと思って研究しました。


Fortran 入門中。これ読んでる:
http://www.cc.u-tokai.ac.jp/text/2005/FORTRAN-intro.pdf
http://www.fml.t.u-tokyo.ac.jp/~izumi/CMS/FORTRAN_lecture.pdf


最近テレビで見たのが本当だとすると、漫画雑誌の表示グラビアの仕事は無報酬らしいねぇ。
ぶくま> イラストレーター・中村佑介氏による『無報酬問題』に対する見解 http://togetter.com/li/701951


ぶくま> 更年期障害を8か月疑似体験して知ったこと
http://anond.hatelabo.jp/20140803214014


昨日、コトがあった直後にすでにつぶやいたけど、通販で買った「妖怪ウォッチ2本家」は、ソフトだけが抜き取られた状態(パッケージとおまけのみ)で送られてきた。
Amazon だけど、Amazon でない者が販売しているやつ(かといって、マーケットプレイスではない)だった。


すぐに返品手続きをする。出力されたバーコード付きの返信用宛先を印刷して、返品専用集荷サービスを呼ぶと、ほどなくして取りにきた。
あっというまに返品 done.


しかし、ああいうおかしなモノを送り付けてくるメリットがわかんないな。
こちらとしては面倒なだけで、きっと返金させてやるからな。(結局、だれも得しないはずだが)


返品するのと並行して、また Amazon で、今度は Amazon が直接販売、発送しますとなっているやつを注文。
最初から、そうすればよかったんだが。


下の子が、すでに 商品を選んでブックマークしてたやつを、「これ注文してー」「おう、わかった」とやってしまったのが失敗だった。
同じもので、販売者が信頼できるやつに変更して注文してやるべきだった。


よろこんでパッケージを開けたら空っぽというシュールな展開を前に、
自分がなくしてしまったのかとオロオロするこどもがかわいそうだった。
よしよし、そういうんじゃないから。楽しみにしてたのにねぇ(初めてお急ぎ便にしたのになぁ)。


とはいえ、Amazon に出店しているお店で、こんなひどいのにあたったのは初めてだったので、
なんとなく、ずべて信頼していたわけですが。これからは、かったことのないところは信頼しない。


C と FORTRAN 相互のインタフェースに関して。次のやつを見ておけば、なんとかなりそうだった。
http://docs.oracle.com/cd/E19957-01/806-4843/Cp11_cfort.html


2014-08-01 (Fri)

つぶやき

メルセンヌ・ツイスタだいすきっ子の私のもとに、
ああいう仕事が舞い込むとは。むふふ。

今日は、Obj でメガネを買った。

3回生のころだったから、かれこれ19年ほど(まじか!)前に、
北白川の Obj でメガネをかった。

店員のお姉さんに「似合いますね」とかいわれて、「そう?♪」みたいな。
それ以来気に入ってて、ずーっと6,7年間はかけていたんじゃないか。(使い捨てコンタクトと併用で)

その後、なんども買い換えているが、買ったメガネを別に気に入っているわけでもなく、
最近はレンズ込みで5000円とかいう、どうでもいいめがねをしてたんだが。

東京にも Obj があるというを、わりと最近しった。
教えてもらったときには、もう特にメガネに愛着ないのがあたりまえだったのですが

やっぱり欲しくなって、今日 obj に。

いま耳の後ろがかぶれてた対策で、しばらくコンタクトレンズしてるんだが、
もういま持ってるメガネしたくなくて、つぎにかけるのは、今日かった obj のやつ。

ところで、注文してあった、ドクタースランプ完全版1巻がとどいていたようだ。
こどもたちに大好評だったようだ。

こどもたちのために買ったのではなく、
自分がほしかったんだが。「最初のアンドロイド」の参考資料として。

うう。ねむい。

9章いちおう読んだ。コーディングは明日かなぁ。

腕立て伏せして寝よう。


2014-07-30 (Wed)

[Haskell][Tiger] 8章 Canon.hs

https://github.com/unnohideyuki/Tiger-in-Haskell/blob/master/chap8/src/Canon.hs

canon.sml から Canon.hs への写経完。

8章からは、ghc に -Wall つけて確認するようにしていて、今回書いた部分は警告でないようにしてある。

すでに書いたコードではでまくるので、今後減らしていく。

ところで、Tiger book では、transExp やら transDec の書き方は、tenv や venv を共通にとる関数群を上手にまとめて書いてあって、上手いなぁと思ってまねしていたんだけど、あれは「ML 的」だな。

Haskell で書くなら、tenv, venv 以外にも temp やら frags やらの状態を明に扱わなくちゃならなくて煩雑になっていくし、あそこはやはり、状態モナドの出番だ。

と、Typing Haskell in Haskell を読みながら思った。

つぶやき

師走の翁センセによる不本意な壁ドンへの対処法(虎王)
http://togetter.com/li/699389

すばらしい。絵が描けるっていいな。


おまわりさん、みんな半日でコンパイラ書ける発言はココです。
http://www.kmonos.net/wlog/135.html#_2115140728


Tigerbook 買ってから、かれこれ7年経っている私に謝っ(ry


"Tofu" が、noto フォントの由来にあるような意味で英語化してるんだとして、
京コンピュータの誇る Tofu は、大丈夫だったのだろうか?


http://www.amazon.com/gp/product/193398869X/
なんじゃこりゃ。>表紙


夏風邪をこじらせて、寝るときもずっとマスクしていたときにかぶれてしまった耳の後ろを守るために、メガネをやめて、コンタクトレンズにしている。
メガネなしの自分の顔を見るのが久しぶりすぎて、なんだか新鮮。


Frame と DalvikFrame の関係を整理しようと思ってたけど、
また今度にしよう。


Typing Haskell in Haskell もがんばって読み進めて、11.2 まで来た。
うれしい。


少しずつしか時間とれなくても、少しずつなら進む。
(当たり前っぽい話ではある)


「毎日コードを書く」のは無理でも。
自分の場合は、月水金土の夜と決めた。


コードを書かずに、妻と二人で深夜番組を眺めるだけの夜もあったほうが良いだろうと。
これは、会社の SNS 上で話していて気づいた。


というわけで、そろそろ腕立て伏せして寝る。
体を鍛えるのは、起きて頭を使える時間を増やすためなのです。


略すと、「腕立て伏せするのは、Haskell 書けるようになるため」となる。


2014-07-28 (Mon)

つぶやき URL

携帯電話で文字を打つのが面倒で、「ドロリッチなう」できないという瑣末な悩みがあったのですが、こういうURL を使えばいいようだ。

最近、ドロリッチ飲まないんですが。


2014-07-19 (Sat)

つぶやき

Tiger in Haskell のコンパイルに -Wall つけたら、おびただしい数の警告が。


はじめから -Wall つけておくべきだったか。
新しく書くコードでは警告でないように。すでに書いたコードからも、すこしずつ警告の数は減らしていこう。


8章は、もうひととおり読んだので、 canon.sml を Canon.hs へ翻訳写経する。
これから書くコードは -Wall でも警告でないように。


[Tiger][Haskell] chap7 中間コードへの変換

https://github.com/unnohideyuki/Tiger-in-Haskell/tree/master/chap7

きのう、おととい気づいた修正をやって、さらに、文字列比較を実装。

$ cat ../testcases/test6.tig
/* define valid mutually recursive procedures */
let

function do_nothing1(a: int, b: string)=
                do_nothing2(a+1)

function do_nothing2(d: int) =
                do_nothing1(d, "str")

in
        do_nothing1(0, "str2")
end

↑の処理結果は、こうなった↓(すこし手で整形してる)

$ ./driver.exe < ../testcases/test6.tig
(UNIT,[Proc {body = EXP (ESEQ (EXP (CONST 0)) (CALL (NAME "L0_do_nothing1") [TEMP 0,CONST 0,NAME "L3"])), 
             frame = Frame {name = "main", formals = [InFrame (-3)], locals = [], fp = 0}},
       Str "L3" "str2",
       Proc {body = EXP (CALL (NAME "L0_do_nothing1") [TEMP 5,TEMP 4,NAME "L2"]), 
             frame = Frame {name = "L1_do_nothing2", formals = [InFrame (-3),InReg 4], locals = [], fp = 5}},
       Str "L2" "str",
       Proc {body = EXP (CALL (NAME "L1_do_nothing2") [TEMP 3,BINOP PLUS (TEMP 2) (CONST 1)]), 
       frame = Frame {name = "L0_do_nothing1", formals = [InFrame (-3),InReg 2,InReg 1], locals = [], fp = 3}}])

以下の問題はいずれも直ってる:

  • 一次変数番号が重複していた
  • パラメータ変数の access をまちがっていた
  • L3 にあたる fragments が消えてしまっていた

また、

$ cat ../additonalcases/teststrcmp.tig
"ab" > "cd"

↑これは、↓こうなるようにしてみた。

$ ./driver.exe < ../additonalcases/teststrcmp.tig
(INT,[Proc {body = EXP (ESEQ (SEQ (CJUMP GT (CALL (NAME "_strcmp") [NAME "L0",NAME "L1"]) (CONST 0) "L2" "L2") (LABEL "L2")) (CONST 0)), 
            frame = Frame {name = "main", formals = [InFrame (-3)], locals = [], fp = 0}},
      Str "L1" "cd",
      Str "L0" "ab"])

results.log はボチボチ確認していくこととして、8章にすすもう。


2014-07-18 (Fri)

つぶやき

今日は、サンチャにいくのである


@c_nyan せんせいの写真が追加された!(どこに?)


こないだのドック、1週間ながびいた夏風邪の最中にうけたんだよなぁ。なおったかなと思ってたけど、そのあとぶり返した。
白血球がどうの。


よく風邪はひくので、やだなと思うけど、
なんじゃかんじゃで治るってところがすばらしい。


休ませておけば治るような機械を、自分の体以外には持っていない。


サンチャってどこだ?


溝口から田園都市線か。


夏風邪ながびいたときに、ずっとマスクしてて(寝る時も)、そのときに耳のところかぶれたのが治らない。
メガネのツルがあたるので、かぶれてる場所にストレスかかりっぱなし。


メガネのツルをアルコール消毒してみた。


もういっこの問題もわかった(Str "L3" はどこへ行った問題)


https://github.com/unnohideyuki/Tiger-in-Haskell/blob/c7c03b76c16d8dfda8d56645687e3413d055518c/chap7/src/Semant.hs#L214
frgs じゃなくて frgs' を返すべきだった(それをしてないので、SeqExp 評価ないでつくられた String Fragment が捨てられてる)


temp やら frgs やら level やらの状態を引数わたししているから、こんな風にバグる。
なんらかの Monad m => m ExpTy にして、「配管」を隠し、引き回しは bind に任せるべきだ。


Tiger Compiler はこのままいこう。
つぎにコンパイラつくるときには、状態をもつ木変換にはモナドつかう。

本日のツッコミ(全1件) [ツッコミを入れる]

# うんの [tempもだ]


2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|
Categories Haskell | Tiger | 3imp | Card | Cutter | Dalvik | Football | GAE/J | Haskell | Ruby | Scheme | TQD | Tiger | TigerBook読 | UikiTeXi | Verilog | Violin | Web | parconc | tDiary | お勉強 | エントロピー | ツン読 | | 将棋 | 政治について | | 模写してみよう | 確率論 | 設定など | 雑文 | 音声