2011-01-01から1年間の記事一覧

関数を暗黙の型変換がよくわからない

c++

PPPUC++の復習というか練習でマニピュレータを書く練習をしていて inline istream& autobase(istream& is) { is.setf(ios::fmtflags(0), ios::basefield); return is;} main() { int a,b,c; cin >> autobase >> a >> b; cout << autobase << ">>" << a << " …

PPPUC++#12.5

10.6落穂ひろい 途中でめんどくさくなって飛ばしてしまったけど、一つだけ覚えといたほうがよさそうなのまで飛ばしてしまってたので追記 ios::exceptions() なにかというと、これに設定されているerror(bad, fail, eof, ... goodはってgoodbitはbitといいつ…

QuickDrawのコード公開

Computer History Musium にて MacPaintと QuickDrawのコードが公開されてます。 http://www.computerhistory.org/highlights/macpaint/LisaおよびオリジナルMacの描画の基礎であるQuickDraw&初の本格的なMacソフト MacPaintの開発者 Bill Atkinson(右)は…

PPPUC++#12.7

10.8 User-defined output operators 自前の 難しいのは、どう表現するのか?というところ 2011/03/05なのか 2011-03-05なのか Mar 5th 2011なのか・・・ 誰もが納得できる表示と言うのは難しいですね しかしそれでもとりあえず作っておくのは役に立ちます。…

PPPUC++#12

10 Input and Output Streams "Science is what we have learned about how to keep from fooling ourselves." 尊敬するファインマン博士のお言葉。我々の認識はしばしば自身を騙しますが、それを認識できるのが不思議です。We're a Strange Loopですね。 こ…

一覧表

そうかわざわざまとめページを書かなくても http://d.hatena.ne.jp/tkuro/archive?word=%5Breading%5DPPPUC%2B%2B をどっかにおいておけばいつでも全記事取得できるのですね。

PPPUC++#11.7

9.7.3 Default Constructors 未初期化オブジェクトはバグのスクツ 駄目だコイツ・・・早く何とかしないと・・・ というわけでコンストラクタが出てきたわけです。 Date()の例だと、3オペランド渡してやらないとオブジェクトがそもそも生成できないので未初期…

読書すとらてじー

予想通り、文法関連のところはやる気が・・・スピードが鈍りまくってる。とばしちゃおうかなー、、、とも思うのですが、結構ちょこちょことためになる哲学もあるのですよね。 しかし良い本だと思います。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>…