Conceptのお通夜会場はこちらです

まさかのご臨終…

本を積んでみた

http://d.hatena.ne.jp/RiSK/20090709/1247119159 その他みなさん 私も参加。写真機を持っていないので念写した。でもあんまり本ないなぁ…

それと忘れてたけど

私の日記にスターを付けたいという奇特な人達が2, 3名に達したので、今更ながらスター設置してみた。ついでにブクマボタンも設置してみた。

はてなスターに付いてるコメント部分の装飾をいじるためのスタイルシート

CSS

どこかにあってもいいと思うんだけど、無かった。なんで見つからんのや…というわけで作った。 /* はてなスターのコメント */ [style^="border: 1px solid rgb(187, 187, 187);"] { background-color : #dfe !important; color : #131 !important; border-sty…

わんくま勉強会 in 大阪にいってきた

わんくま勉強会大阪に行ってきた。 とりあえず昼食のとき名乗り遅れてすみません… > melponさん Cryoliteさん こういう場には参加したことがなかったのでどんな勝手なんだろうかと思ったら特に勝手もなにもなかった。何もないことはいいことだ。 内容とかは…

プリプロセッサでループしましょう!

みなさんいかがお過ごしでしょうか?前回は足し算しました。今回はループです。 足し算ではとにかくいっぱいPP_ADD_Iを並べましたが、もっとスタイリッシュに書きたいですね。書きましょう。 まずC/C++のループはこんな感じです: while (condition) { ... }…

プリプロセッサで足し算しましょう!

プリプロセッサは所詮文字列置換、計算なんてできやしない…そう思っている方は多いでしょう。しかしそれは違います。計算できます。 本日の目的はプリプロセッサで足し算です。ADD(3, 2)と書けば5と答えてくれる関数マクロを作ってみましょう。 おっと、#def…

そろそろれいがいさんへの思いを適当にまとめる

関数が何であるかを決めないとエラーが何であるかを決められない エラーは例外以外でも表現できる エラーのときは関数終了してエラーを通知する エラーを例外で通知する場合は、とりあえず今知ってることを適切な型の値として投げる(多分適切な型ってのがア…

REIGAI REIGAIせよ!

昨日のカオスの続き。 例外は「エラーを取り扱う手段の一つ」として考案されたもので、それ以外を扱うのはマナー違反。よって例外を投げることはエラーであることを上位レイヤーに報告するものであるが、エラー自体は必ずしも例外ではない(ほかにも手段はあ…

れいがい!

例外むずい。むずいから考える。考えても全然文章にならないので言葉の断片を並べる。以下ではレイヤーとスコープはだいたい同義だと思う。 例外はいつ使うべきなのか? エラーであることの表現として使うとすると、あるレイヤーで、そのレイヤーから分かる…

有向グラフのあるノードからあるノードへの全てのパスを表現する

いつまでたってもまとまらないので落書き程度で適当に書く。 有向グラフから圏Cを作る 作り方は http://d.hatena.ne.jp/m-hiyama/20090525/1243210967 ここで、 length([a, f1, f2..., fn, b]) = n + 2 とする。 Cの射の集合を射とする圏C'を作る a, b, cをC…

nullを許容しないスマポ

C++

template<typename T> struct smart_ptr { ... explicit smart_ptr(T * ptr) : ptr_(ptr) {} template<typename U> smart_ptr(smart_ptr<U> const & other) : ptr_(other.get()) {} smart_ptr & operator=(T * ptr) { ptr_ = ptr; ... return *this; } template<typename U> smart_ptr & operator=(s</typename></u></typename></typename>…

はからずも一人暮らしがはじまることになったので何かアドバイスください

ください。

16進表記の3の倍数にマッチする正規表現

そのまま書くと分かりにくすぎるのでperlで。 $zero="[0369CFcf]"; $one="[147ADad]"; $two="[258BEbe]"; /^(?:$zero|$one(?:$zero|(?:$one$zero*$two))*(?:$two|$one$zero*$one)|$two(?:$zero|(?:$two$zero*$one))*(?:$one|$two$zero*$two))+$/要は16進表記…

まじめな話、新人研修とかプログラムの授業で C を取り扱うのなら、その前にBrainf*ckで色々教えたほうがいいと思うんだ

普通プログラムで最初に身に付けることは、コンピュータにいかにして仕事させるかっていうことだと思うけど、Cとか初めてプログラムに接触する人にとっては謎の呪文が多いし、そういう謎な部分は本題ではないのにやたらと気になって大変よろしくない。構造化…

「1+2=3 足し算に潜む迷宮」 読み終わった

1+2=3をネタにいろんなパラダイムを見てみる的な内容で、面白そうと思ってたあたりを小さく一巡りできて面白かった。 冒頭では予備知識なしでも読めるって書いてあったけど、割といったような…あと変換過程とかすごい省略しまくってる感じがする。こういう本…

あれ、

一個前のを書きながら思ったんだけど、実はかなり面白くないか? OOPが難しいのは、数多の実物より先に抽象概念を定義する必要があって、そこで目的に合わない定義の仕方をしてしまうと、ドカーン!ってなる (ambiguous representation) ので、慎重に定義し…

そうだ、

派生クラスの合併集合のような基底クラスを作るための構文を用意すればいいんじゃないか?たとえばJavaで: ambiguous class Animal {} // AnimalにはNotImplementExceptionを投げるだけのrun, fly, swimが暗黙に実装される class Dog extends Animal { publ…

abstractもしくはambiguous→どっちでもいいや

抽象的な言葉は、いろんなところで使えるから便利だけど意味多すぎるなぁとか思ってたけど、よく考えたら抽象的というのは、表わしたいことの本質以外をそぎ落としたということなんだから、そういう言葉っていうのはむしろ混じりけがない言葉で、混じりけが…

いいえ、パンツです

私は「パンツじゃないから恥ずかしくないもん」というのを「「パンツではない」ならば「恥ずかしくない」」という命題だと捉えて色々考えてみたのだが、これだと結局なにが言えるのか分からなかった。 そこでふと思い出したのが、modus ponensのことである。…

プリプロセッサで指数爆発させる

C++

関数fと引数vのタプルと、整数nを渡すとvにfを2^n回適用する関数マクロを作った #define PP_TUPLE_ELEM_0(a, b) a #define PP_TUPLE_ELEM_1(a, b) b #define PP_TUPLE_ELEM(n, tup) PP_TUPLE_ELEM_I(n, tup) #define PP_TUPLE_ELEM_I(n, tup) PP_TUPLE_ELEM_…

餃子の王将の文句で…

重複一日7000箇所、コピペ一日5万回、変数3000個、ソース一日100万行、コードは万里を越える… https://twitter.com/DecimalBloat/status/1793272918 あまりにもヒットしすぎて自分の発言引用してしまった…

超簡単scope_guard

struct scope_guard { std::function<void()> f_; bool dismiss_ = false; template<typename F> scope_guard(F && f) : f_(std::forward<F>(f)) {} scope_guard() = delete; scope_guard(scope_guard const &) = delete; ~scope_guard() { if (!dismiss_) { f_(); } } void dismiss</f></typename></void()>…

C++テンプレートテクニックの感想とか

C++TT読み終わった。 現代的なC++で使われている技巧が一通り入ってて、なんというかこうtemplateの面白い部分ばっかり集めた収まりのいい本だなぁと思った。 個人的にはET解説ついでにラムダ式とかbindとか欲しかったとか思うけど、それやるとおそらく分量…

C++0xの文字列にだいたいマッチする正規表現を書くなどしてみた

がんばった。 \u, \U, \o, \xのあたりはあまり気にしない。あと文字コードも知らない。 $esc = '\\\\.'; $cChar = "(?:[^'\\\\\\n]|$esc)"; $cPrefix = '[uUL]'; $ch = "(?:$cPrefix?'$cChar+')"; $sChar = qq{(?:[^"\\\\\\n]|$esc)}; $strPre = '(?:[uUL]|u…

今までどのくらいプログラミング言語を触ってきたか(3秒で飽きたものも含む)

http://d.hatena.ne.jp/oorexx/20090507/1241703786 http://d.hatena.ne.jp/faith_and_brave/20090508/1241747936まぁプログラミング言語とか言語以外もふくんでるけどね! 日本語 数式 英語 BASIC C Z80 asm CASL SQL C++(runtime) HTML CSS JavaScript Act…

5/1は小牧愛佳の誕生日だったということで

気付いたのが当日だた。塗るのはおいおい。

世間でのC++のテンプレートに対するバッシングと言い訳

C++

テンプレートを使うとコードが読みにくい 多分vector<int>を読みにくいと言う人はいないと思う。むしろ、テンプレートの存在を知っているならば、「int用のvectorだ」と素直に理解できるぐらい簡単。読みにくいのは、例えば(次のコードは例なので、意味は分から</int>…

ビルドできない→できた(←今ここ)

メモ。 何ヶ月か前に新しいgcc(4.2か4.3ぐらい)で突然ビルドできなくなったんだか、起動できない物体ができたんだか というわけでgcc3.4でやってた またビルドに失敗するようになった 今度は4.3だとできた おしまい。

世界一遅い「C++テンプレートテクニックが発売」のお知らせ

C++

私の知人へのハブとして、発売しました >C++テンプレートテクニック で、買ったはいいがフォトンブラスターとかミサイルランチャー使い込んでたのであまり読み進んでない。今3章読み始めた。もうこのへん読み飛ばしてもいいかな。