D言語のparallelism

D

D言語の強力なparallel機構 D言語でOpenMPと似たようなことをやろうと思ったところ、parallelismというライブラリをTwitterで勧められたのでやってみた。こんな感じhttp://dlang.org/phobos/std_parallelism.htmlちゃんと読んでないので詳しいところは分から…

Perl6のgrammarが凄い件について 〜残パン会で発表してきた〜

残パン会とは 残念な言語で残念なものを、残念パンをもそもそしながら新聞紙引いた残念な場所で適当に書く。 Perl6とは 「Perlのようなもの」 とか言われてる、Perl5とは別物。らしい←本人Perl5知らない。 Perl6の特徴とか PerlなのにClojureとかclassとかあ…

msgpack-rpcが地味に凄い件について 〜簡易DBを作ろう!〜

やること Python上のmsgpack-rpcで簡単なデータ同期用DBを作る。 msgpackの超簡単な説明 JSONみたいなテキストをマシン間転送で使うのは遅いからバイナリでやろうぜ!っていう規格。BSONに良く似てる感じ。http://msgpack.org/msgpack-rpcはmsgpackを使って…

UserStreamのdeleteイベント爆撃

結論 どうやらTwitterは垢を消したユーザの全発言のdeleteイベントをフォロワー(未確認)のUserStreamに投げているらしい。 事の経緯 自作クライアントはUserStreamで動いていて、届いた全てのstatusに番号を振っているのだが、表示されているstatusの番号…

Ubuntu12.04のSSLがおかしいらしい 〜Ubuntu12.04 + PythonでSSL通信〜

Ubuntu12.04LTSキタコレ! 意気揚々としてUbuntu12.04にアプデしたので、とりあえずUnity、GNOME-shell、XFCE4と一通り試してみることに。UnityはLTSになっただけあって安定してきたと思う。特にデュアルモニター周りはGNOMEにかなり追い付いてきてる様子。…

剰余のうんちく

はじめに 方向を以下のように定義しておく 上(0度):0 右(90度):1 下(180度):2 左(270度):3 すると、90*n度回転させる処理はそのまま足し算で実行できる。 だが、1回転した場合0-3に正規化する必要がある。 この処理のお話。 剰余の限界 この正規…

如何様にして平和を愛する私はガジェット獣となったのか 〜スマフォ一杯買った〜

おさらい 今日という日を迎えるまで、私の所有ガジェットと回線はこんなもんだった。 IS06(SIRIUS)とau回線 GALAXY Tab(SIMはあるが使わず) iPad(WiFi版) IDEOS(音楽プレイヤー) au回線のみでやりくりしていた。 不満点 最大の不満点は2年縛りである…

APNロックがとてもクソい件について

キャリアの陰謀 日本のキャリアは、寡占市場故にとても強大な権力を持っている。投資額・電波の占有による高い参入障壁が理由であろうか。 また困ったことに、強大な力を持つキャリアは囲い込みが大好きである。その為に奴らは端末と電波をセットにして売る…

Haskellでfibonacci数を早く!

fibonacci数とは 素直にHaskellに実装する fibonacci :: Int -> Integer fibonacci 0 = 0 fibonacci 1 = 1 fibonacci n = (fibonacci $ n-1) + (fibonacci $ n-2) これはとてもスマートだがとても遅い。どのくらい遅いかというと、50とか指定した暁には現代…

要らないモノ 〜引き取り手募集中〜

はじめに 引っ越しの為荷物整理してたら要らないけど誰か使いそうだよなーという物が出てきたので、引き取り手募集中。条件は 「送って欲しいなら送料負担、受け取るなら千葉の私の家か東京で」 「リアルで会ったことあるかマイミクかTwitterで相互フォロー…

新時代のモバブー 〜18650電池を試す〜

はじめに スマホ、特にAndroidのスマートフォンは、その巨大な利便性の代償として巨大な消費電力を甘受している。最近ではメーカも分かってきてそこそこ大きなバッテリーを積むようにはなってきてるが、それでもLTEやWiMAX、大型化するモニターの前に消費電…

Ubuntu使いがSabayonを試す

Sabayonとは Gentooのコンパイル済みパッケージ。…と思ったんだが結構違う。 パッケージ管理システムが違う ー portageではなくentropyを使う。コマンド自体はかなりapt系に近い。 見た目に対する拘りが半端ではない ー 私がインストールしてみたのはServer…

Kyoto CabinetをPythonで試す

はじめに SQLが嫌いなので、TerminatterでMongoDB使ってるぽんこつさんだけど、気になったのでKey Value Store型で最も早い(らしい)Kyoto Cabinetを試そうかと思ったけど最初のexampleで躓いたお話。 Kyoto Cabinetのバインディングがダサい Kyoto Cabinet…

PCの寿命

はじめに PCの寿命は何で決まるのか、というのをちょっと考えてみる。そもそもPCの買い替え寿命を感じる所というのは何かと考えると、それは「動作の重さ」というのが一番大きいと思われる。PCの機械的寿命は巷の交換頻度と比べると割と長く、また割と容易に…

とっても遅延評価なPython3

はじめに Python2.x系は関数型言語としては、遅延評価が弱かったのだが、Python3から幾らかのBuilt-in Functionが強力な遅延評価機能を導入したのでちょっと見てみる。 filter Python2までは 文字列・タプル→そのまま それ以外→リスト を返していた(つまり…

補足:unique_ptrのパフォーマンスについて

C++

unique_ptrを使ったコードと使わないコードのアセンブリをgccに吐かせてみると、-O0の場合はunique_ptrを使うコードの方は関数呼び出しが1回余計に挟まることで、クリティカルなオーバヘッドになっている。一方gccで-O2を指定してアセンブリを吐かせると、un…

C++で大規模な配列追記のパフォーマンス

C++

はじめに @__boronium による 「じゃあC++はどうなの?」 という疑問にお答えするコーナー。元のPython版はhttp://d.hatena.ne.jp/ponkotuy/20111216/1324021461 でどうぞ。ちなみにg++4.6.1 -O2 -std=c++0xでコンパイル。 はじめる前に補足 微妙に間違った…

Pythonで大規模な配列のパフォーマンス(append編)

はじめに Pythonで大規模な追記を扱う時に、どの型を使うと早いのか、パフォーマンスを調べてみる。ちなみにPythonは3.2を使用。 list まずは定番のlist型 l = [1,2,3] for i in range(10**7): l.append(i) 5.7秒、1.6GB set 早いと評判のset型 s = set([1,2…

D言語で素数列を求めるコードを書いてみた

D

ことの由来 Haskellの練習がしたくて、Sphere Online Judgeで競技プログラミング始めてみたのである。関数型言語はどっちかというと競技プログラミングの方が強そうな気がしたので。初っ端から素数の問題にぶちあたり、Haskellで素数どうやって書いたもんか…

Mercurial Advent Calendar 2011 〜自鯖で公開レポジトリ〜

はじめに 私自身は、Mercurialを使い始めてだいたい1年ぐらいになる。元々は特に理由もなくSubversionを使っていたのだが、レポジトリを自鯖で公開したいと思うと色々不満が多く、乗り換えを決意した。Gitと比較検討した結果、まぁMercurialが一番手っ取り早…

D言語を始めてみた 〜ラベルすごい〜

D

D言語にはラベルという機能がある。 空文を含めて任意の文がラベル付け可能で、 goto文の飛び先とできます。 continue 文や break 文の飛び先ともなり得ます。 …えっ continue 文や break 文の飛び先ともなり得ます。 なんだってー!?!?という訳でbreak文…

「ぐへへお姉ちゃんパンツ何色」から始めるPythonクラス解説

はじめに とりあえずこれを読みましょう。http://b0r0nji.blogspot.com/2011/12/blog-post.html Python編 さて、ほむほむのパンツをPythonで実装するとこうなります。(ぽんこつさんはお姉ちゃんキャラ嫌いなのです) class Pants(object): def __init__(sel…

桜花あどべんとかれんだぁ(3日目) 〜桜花たんのここがこわい〜

はじめに 桜花たんはツイドルである。桜花たんはかわいい。真理である。しかしぽんこつさんは別のパラダイムを提供したい。可憐な薔薇には棘がある。桜花たんはこんなにもこわいのだと。 桜花たんのここがこわい その1 〜負けず嫌い〜 Event: jubeatを一緒に…

メモリの進化の話

私が愛読してる後藤さんが、次世代メモリの動向を纏めていた。http://pc.watch.impress.co.jp/docs/column/kaigai/20111107_488696.htmlナカナカ面白いと思ったので、幾らか思ったことを纏めておく。 メモリの進化 常々不思議だった訳だが、「どうしてメモリ…

Python importテクニック(発展版)

はじめに 前回のPython importテクニック見てて、 「ひょっとしたらこんなアホなimportできるんじゃね」 とか思ったので試してみる。 やったこと 前回importについて 「他の文と同じで、特別扱いしない」 という主旨の発言をした。ということは、実行時にimp…

Ubuntu11.10雑感

Ubuntu11.10(最終的にはXubuntu11.10になったが)入れてみたので、とりあえず纏めてみた。 Unityは糞(極めて主観的な表現が含まれております。ご了承下さい) 11.04では、UnityどころかGNOMEにもバグがあったので、アップデート回避して10.10を使い続けて…

Python3のsetter補足

おさらい 前に書いた記事で、python3で@hoge.setterを使って、 class Class: def __init__(self, a): self._a = a @property def a(self): return self._a @a.setter def a(self, v): if v < 20: self._a = v else: print("ERROR") if __name__ == "__main__…

Python importテクニック

Pythonのimportのここが凄い Pythonのimportは結構特殊というかフレキシブルな構造をしている。他の言語の類似機能だと必ず最初に宣言する必要があるが、Pythonの場合はそのような配慮は全く不要で、何処でも書けてしまう。また、書いた所でimport処理が実行…

SKKで麻雀用語辞書を作る

SKK

フリーで公開されている麻雀辞書が既にあるので、これをベースにSKK用に書き換えれば宜しい。http://idaemons.org/projects/mahjongdic/私はCannaの形式からSKK形式に変換するツールhttp://www.unixuser.org/~haruyama/software/canna2skk/を使って変換した…

propertyが使えない原因

propertyが使えない理由は、propertyが新スタイルのクラスを要求するからだと分かった。http://www.python.jp/doc/release/reference/datamodel.html#newstyle要約すると、Pythonは2.1から新クラスを導入したが、互換性維持の為、新クラスを利用する場合は、…