Program

Unicode, UCS-2/4, UTF-8/16/32についての整理

※注意:これは私が調べた結果をまとめたものなので、間違いがあれば指摘していただけるとありがたいです。 用語 ここで整理したいことについて話せるようにするための説明なので、正確ではないです(符号化文字集合とか符号点とか)。 文字集合 文字の集合 …

有界の会の話

今回は節約して夜行バスで行きました(行く前に用事があったり飲んでたりしましたがその話は省略)。 裕福な私は東京行く手段といえばいつも新幹線で、夜行バスとかそんな安物の乗り物は初めてだったのでとりあえず8000円ぐらいの割とゆったりめのヤツにして…

darcs備忘録

本日のわんくま名古屋ではgitのセッションを聞きつつ、darcsを使い始めていたので、備忘録として使ってみたコマンドを適当に書いておく。分かったことがあるたびに追記する。 darcs init : カレントディレクトリをルートとしたリポジトリを作成する。 darcs…

最近プリプロセッサの話しかしてないような気がするから、今日はちょっとプリプロセッサの話でもする

巷では、やれ「プリプロセッサは名前空間を台無しにする」だの「foo(n++)とかしたらn++が二回評価されて結果が云々」だの、「定義のときにカッコがどうたら」とかボロクソ言われてますが、まぁ正しいです。ですがプリプロセッサを見るにつけて、帰りに一杯や…

並列プログラミングカンファレンス感想など

TOKIO CITYに行くたびに書いてる気がするけど、まずこれを言いたい。鉄道網のcomplexity爆発しろ!既にしてるわ! 並列プログラミングカンファレンス、略して並カン(「なみかん」と読みます。だからatndの募集ページがみかんなのです)に行ってきました。 …

型推論の調べ物

http://www.sato.kuis.kyoto-u.ac.jp/~igarashi/class/isle4-06w/text/miniml011.html http://itpro.nikkeibp.co.jp/article/COLUMN/20070717/277580/ http://ocaml.jp/?plugin=attach&refer=Users+Meeting&openfile=OCaml-meeting0908-revised.pdf http://w…

お前がそう思うんならそうなんだろう、お前ん中ではな

(プログラム的な意味での)ある関数fがあったとして、fは内部に何事もなく処理できた場合と、そうでない、例えば引数が間違っているとか、そういう場合の処理があったとして、エラーだからどうしよう、例外でもポイしておきましょう。 function f(x) { if (…

例外についての続き

前回 : http://d.hatena.ne.jp/DigitalGhost/20090809/1249846726 ふむ、前に書き散らかしたときよりは随分まとまっている気がする。ええこっちゃええこっちゃ。 で、多重継承ではなんとなーくうまくいかないような気分でいると、これまたなんとなーく文字…

最近は例外に関する主張・考察・その他何かを書くのが流行っているらしいので私も一つ

追記: ここで言う「エラー」「エラー処理」は、「例外」「例外ハンドリング」と置き換えて読んでください。 あと元ネタへのリンク http://d.hatena.ne.jp/bleis-tift/20090809/1249825777 と、この記事が踏まえている話 http://d.hatena.ne.jp/DigitalGhost…

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

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

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

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

REIGAI REIGAIせよ!

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

れいがい!

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

まじめな話、新人研修とかプログラムの授業で 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…

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

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

今までどのくらいプログラミング言語を触ってきたか(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…

そういえば自分にとってのプログラムにおける師と呼ぶような人物がいないことに気付いた

と、Twitterでもらそうと思ったけど、一つの記事ぐらいにはなるんじゃないかと思ったので、ぽすとしないでこっちに書いてみる。そりゃ確かに学校には先生がいたけど、学生時代に授業でプログラミングを教えてもらった誰の「自分にとってのプログラム(もしく…

4000のIfStatementをチェックする簡単なお仕事

http://hitachisoft.jp/products/sh-c/notice/n20090122_01.html の2.3 これにより今日の私の任務は現在開発中のコードに散りばめられた約4000のIfStatementをチェックすることとなった!ハッハッハ!誰だこんなにコード増やしたのは!ハッハッハ!7割方コピ…

一行ネタをまとめて

C++0xが完成したらBoostも2.0になるんだろうか 数学と日本語ならどっちが難しいだろうか Revision Control System って英語でのバージョン管理システムの一般的な言い方だと思ってた Constructibleで、Argsのそれぞれの型へと暗黙変換できるParams...という…

どうやっても

カッコいい3Dプログラミングライブラリが作れない。 OpenGLをうまくラップするんだったらやっぱりSystem.Drawing.Graphicsっぽくかなぁ。いやむしろどんな風なものがカッコいい3Dプログラミングライブラリなのかが分からない。 あと私がOpenGLやってるのは会…

OOPはよく知らないが

「実装とインターフェースは分離するべき」って言うなら、諸OOPLにあるclassキーワードによって定義できる型は全て、実装とインターフェースが同居してるから分離できていないことになるような気がする。Haskellのほうがよっぽどインタフェースと実装が分離…

書き散らかして放置されていた話

そういえばコピー で私は何か書き始めようとしていたみたいだが、一体何を書きたかったんだろうか。 無名関数あれこれ C# int n = 2; (int x) => {this.foo(); return x * n;}; () => n * 2;D int n = 2; void int foo() {}; delegate int (int x) {foo(); r…

カメラ行列

は一体ビュー行列とモデル行列のどっちに設定するのもなのだろうか。

OpenGLと3Dのおべんきょ

一体何度やり直すことやら。 ところで、OpenGLの機能をふんだんに使っては3Dの勉強にならないが、OpenGLの勉強をするならふんだんに機能を使わなければならない。両方まとめてやる方法はないものか。

templateで学ぶやる気のないclosure

template<typename T> struct Foo { template<typename> struct Bar { typedef T type; // Barの外側の環境にあるTを保持している }; };</typename></typename>

何個か

「長門可愛い」の見過ぎで長門が可愛く見えてきた。私はなにか…されたようだ 積みあげられた本10冊ぐらい かん☆なぎ 今年もそろそろサンタ絵を scalar型以外は全てtupleとlistで いや、variantもいる

コンパイルをデバッグ

ランタイムエラーが残した情報だけでは、そのエラーを修正するのは難しい(と少なくとも私は思う)。だからこそデバッガを使うのだが、template meta programmingは、言わばコンパイル時が実行時間なんだから、TMPにとっての実行時メッセージであるコンパイ…