2011-02-01から1ヶ月間の記事一覧

読書すとらてじー

予想通り、文法関連のところはやる気が・・・スピードが鈍りまくってる。とばしちゃおうかなー、、、とも思うのですが、結構ちょこちょことためになる哲学もあるのですよね。 しかし良い本だと思います。SICPとかが基本的に「魔法」を扱っている(よおく考え…

PPPUC++#11.5

9.6 Operator overloading ここも書く事ないなー とりあえずほぼ全ての言語で定義された使い方なら演算子の挙動をUDT毎に設定できる っていうので、enumでもってのが目から鱗だった。確かに 例によってやり過ぎはいかんよ、という忠告

BlankSlateってなんですか?

Builder::XmlMarkup使っててふとBuilderのconstantsを見たら :BlankSlateとか言うのがあってなんだこれ???となる なんだこれ??? XmlMarkupはmethod_missingを使って irb(main):002:0> Builder::XmlMarkup.new.small {|xml| xml.medium {|xml| xml.big(…

undoとかredoとかtreeとか

vim

計算機史上最大の発明 undo/redo。ことコンピュータの中のことであれば、これさえあれば、いつでも人生をやり直せます。あんな自分にもこんな自分にも。 もちろん計算機資源にも限りがあるので、あらゆる時点に戻れるわけでは無く、いくつかのセーブポイント…

from optparse to argparse

なんであれ移行にはコストがかかります。 けれど、移行しないとみえてこないこともあります。このargparse、Python2.7の時にチラ見して、「めんどくさー」とかになってしまい移行する意義をつかみ切れずにいたんだけど、 スイッチ系オプションで'+'を使いた…

PPPUC++#11

9. Technicalities: Classes, etc "Remember, things take time." デンマークの格言にこのT.T.T.があるそうです。どんなに時間がかかってて自分が間違った道を歩んでるように思えても、どんなに自分が前に進んでいなくて愚鈍に思えても、歩むことをやめない…

PPPUC++#10.5

どこまでやったか思い出すのに時間が・・・ 8.5.8 Function call implementation 関数呼び出しの詳細、何をやっているのか、です 計算機の例の expression(), term(), primary()は相互呼び出しするので恰好の例 ただ、グローバルを使うと説明に困るので Toke…

ランレングス圧縮におけるWyle符号とか

・・・・イケマセン、また少しあいてしまいました。 復活しなきゃーと思うんですが、先週は遊びほうけすぎてまだまだリハビリ失敗なので、先週末になんかやってた話とかで誤魔化そうとか。。。 ある日のこと とある圧縮の本を見ていたら最初のほうにランレン…

twitterにて

そういえばtwitterにもいくつかあった.けっこうあるなあ window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src =…

PPPUC++#10

8 Technicalities: Functions, etc. ようやく言語の説明系 この章と次の章ではプログラミング言語 C++自身にスポット ここまでに出てきた概念の復習にもなっている 8.1 Technicalities これまで可能な限り、言語ではなく、プログラミング自身に焦点を当てて…

PPPUC++#9.5

7.7 Recovering from errors エラーで終了していたけれど、それだと不便。 リカバリしましょ。 1)例外を受ける 2)ゴミを片付けた後、反復 という戦略でいきます さてこれまで try catchは main()にあったのだけれど、これではダメ calculateの中、すなわ…

証明チュートリアル

coq

随分遅れてcoqを少しやってみました。 それ何? 定理証明プログラムという奴です。僕の苦手なOcamlベースです>< 簡単なものならCoq内部だけで、複雑なら外部コマンドとして実行できます。 基本技 全ての技は . (ピリオド)で終わります。英語と一緒ですね。…

PPPUC++#9

7 Completing a Program "It ain't over till the fat lady sings." オペラの格言 僕ら日本人的には小林幸子さんか!(そこまで太ってないけど。。。) プログラムを書く、ということは一発で鋳造する、というよりは少しずつ盛ったり削ったりして積み重ねて…

PPPUC++#8#drill

6章には正解の全体コードは載っていないのですが、代わりにこのドリルにてバグだらけコードを修正する、という遊びをすると完成品が手に入るようになってます。 http://www.stroustrup.com/Programming/calculator02buggy.cpp (みなさんも暇があれば遊んで…

PPPUC++ #8.666666....

6.6 Trying the first version さあ、準備はできたので main()をこさえて、get_token()をつけて、実行してみよう 調理済みの未完成品はこちらにあります。 http://www.stroustrup.com/Programming/calculator00.cpp 当然ですが、動作はおかしい。 まず数字単…

PPPUC++ #8.333333.....

6.3.2 Tokens と言うわけでようやくトークンに来ました 実はオレオレバージョンは最初boost::spirit でおもむろに書きだしてしまい, definition(const まで打ったところで、「はっ」となって直したとか言うのは内緒*1 ただ、スタックなしバージョンとしては…

PPPUC++ #8

6. Writing a Program "Programming is understanding." Kristen Nygaard の言葉。Simulaの生みの親の言葉はMr.S 的にも心に強くハマっている言葉なんだろうとか思いつつ、巨人に黙祷。 #理解・分解・再合成、、、、はハガレンでしたね・・・ この章(&次…

子供のおもしろトーク

すっかりわすれてたらたくさん溜ってた。 2009年(2歳)シリーズ (チャイルドシートのベルトを外そうとして)「ち、ちからが、、、出ない、、、、」 ままもねる? ねーねーねて。おねがいします 変種として、「おとーさん、きて。ねーねーいっしょにねて。ね…

tmuxの設定とか

id:yukichankoがtmux使い始めた! d:id:yukichanko:20110209:1297208862ので.tmux.confを晒そうかと。 基本 プレフィックスはC-q。mouse-select-paneは賛否両論だと思いますが、なんとなくつけてます。あと、どうも下にノボーっとステータスラインがあるとEm…

少し開いてしまった。。。

前のデータが(僕の短気のため><)吹っ飛んでしまってから少し進捗が落ちてしまった。僕の悪いところ。一輪車で綱渡りしているような感じで、ちょっとでもケチがつくとしばらくやる気スイッチが入らなくなってしまうのです… さて再起動の予定。

ダメな感じの計算機

c++

PPPUC++の6章本文メモが事故にてぶっ消えてしまった。かなしーです。 #地球のみんな、オラに元気をわけてくれ!と、後ろばかり見てても仕方が無いので、6章ででてくる計算機を、読む前に自分で書いてみたのをのせるよー https://github.com/tkuro11/calc-…

WebRequestのExpectにデフォルトで100-continueがつく件

ちょっとしたこと(漢字コードの変換楽々で行きたい!)でC#を使ってみて、ちょっとしたこと(WebRequestのデフォルトのヘッダに Expect: 100-continue が勝手につく)で困ったりしたので、その備忘録。 100-continueって何? HTTPではクライアントからサー…

例外処理の復習

c++

PPPUC++のErrorの章を読んでいて、例外とかちゃんと理解してないなーということに気がついたり(遅い)。そうか単にオブジェクト投げるだけだから、階層構造を作って親で受ければ面白いわけですね。 #include <iostream> #include <string> #include <vector> using namespace std; enu</vector></string></iostream>…

PPPUC++#7.5

尻切れになってしまったので改めてきりなおし 5.5.2 The callee deals with errors と言う訳でsanity checkは関数(呼び出され側=callee)の中でやろうず いちいちテストコードを分散させなくても良い。変更も一カ所で済む。 何よりも「そこに全ての必要な…

PPPUC++#7

5. Errors "I realized that from now on a large part of my life would be spent finding and correcting my own mistakes." フイタ。まさに喜劇。問題を作るのは一瞬だけど、解決には多量の時間がかかる、ってわけかな。人生ってそんなもんかもしれない。…

恥ずかしい暗号化コード

古いコードの中にこんなんがあった。どうやらバイナリ中に平文パスワードを入れたくなかったらしいんだけど。 std::string& encode(std::string& s, int seed) { std::string* ret = new std::string(); for (std::string::iterator i = s.begin(); i != s.e…

PPPUC++#6

"If it doesn't have to produce correct results, I can make it arbitrarily fast." そりゃそうだ。コンピュータにこう言った良い「ズル」をさせる設計と言うのがプログラマ3大要素の「短気」の結果なのかな。 この章でswitch とかloopとかの制御構文や関…

gourceでレポジトリに愛を見た

知らなかった。これおもしろい。 gitレポジトリのヒストリを読み取ってそれを可視化してくれるソフト。おもむろにレポジトリ上で % gource すれば小奇麗なムービーをリアルタイムに生成して見せてくれる。また、ppm stream形式で吐けるので、ffmpegとかで受…