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

C#入門者向けのページ作った

C#

はじめに 極めて個人的にC#教えているのだけど、やはりノート代わりに教えたことを纏めておく必要性を感じたので、ページを作ってみた。http://ponkotuy.com/csharp.htmlデキが良いかは分からないけど、役に立つ人が出るといいなぁって。意見等はここに書い…

Scalaで世界最速のふぁぼ爆撃

はじめに Scalaなら超簡単に並列化できる(Erlangっぽいらしい) ScalaならJavaのライブラリが使える JavaにはTwitter4jという優秀なライブラリがある 結論:ふぁぼ爆撃するしかない コード package com.ponkotuy.twitter import scala.collection.JavaConve…

boost::intervalを羨むScala使い(Scalaで簡易版を実装してみた)

boost::intervalとはなんぞや https://sites.google.com/site/boostjp/tips/interval_arithmeticにあったりするが、要するに数値の範囲を扱うライブラリで、区間演算とかできたりするが、とりあえず範囲の重複だけでも取得したい!と思ってScalaでその部分だ…

joda-timeを仕方なく使う(時間で四則演算したい)

はじめに Scalaで使える日時を扱うライブラリの1つにorg.scala_tools.timeがあるが、これjoda-timeの薄いラッパーで、ドキュメントもマトモにないので、結局joda-time調べた方が早いという話があったりする。で、時刻の差を取得したいときに少しハマったので…

ScalaのAtomic性

はじめに Scalaにある+=演算子、これってAtomicじゃないの?という疑問があって調べてみたの巻。やりたいこととしては、parでスレッド分けてmutableな変数に+=でアクセスしたらどーなるのよ、という話。 サンプルコード object Main extends App { var count…

Ubuntuが気に入らない→Ubuntu Server使おう!

http://d.hatena.ne.jp/ponkotuy/20121021/1350843787で書いたが、Ubuntuってインストール簡単だけど基本カスタマイズできないよね、という話がある。ただ流石にUbuntu Serverだとどうなの、と思ってUbuntu Server 12.10試してみたら、すんなりSoftware RAID…

UbuntuでUEFI起動とかbtrfsとか

はじめに VAIO ZにXubuntu入れようと奮闘した過程で得た、手動でインストール構成した際に、UEFI起動と/をbtrfsでインストールする方法のメモ。考えて欲しいのは、Ubuntuってのはdisk1台全体使ってインスコする分にはとっても簡単だけど、それ以外の方法だと…

Scalaで文字列を1つずつずらす

やりたいこと 文字列のアルファベットをaddだけずらす(a->b->cのように)ことをしたい。abcdzをadd=1でずらすとbcdeaになる、みたいな感じ。 Scalaで書いてみた らこうなった。 new String ( str.toLowerCase(Locale.ENGLISH).map{ it => (it - 'a' + add) …

UEFI環境でUbuntuをインストール

状況 最近のマザーボードは、2TB超のHDDに対応する為にBIOSではなくUEFIを搭載したものが多い。一方でLinuxにとって必ずしもUEFI対応が完璧かというとそうでもなく、今回ハマったのでちょいとメモ。 結論 結論から言うとUbuntuSecureRemixを使えば適当にイン…

第2回闇鍋プログラミング勉強会で発表してきた

闇鍋勉強会とは 冷静に考えてみると説明できないからここを見よう。http://atnd.org/events/29973まぁ技術的にすごい人がアホなこととか真面目な事とか発表する場です。 LT枠で発表してきた! 私も簡単ながらLT枠で発表してきました。元々用意してたのはJenk…

yes!yes!yes! 〜yesベンチマーク〜

yesベンチマーク UNIX系OS(?)にはyesコマンドがある。これをベンチマークに使えないかとふと思い立ったので試してみた。yesコマンドには回数指定するものが無いので、head -nで回数を指定した。今回は1000000回で行った。 $ time yes | head -n 1000000 R…

Scalaで特定の長さを越えているか見る

LinearSeqの長さを制限する LinearSeqの長さが一定を越えているか見たいとする。ScalaのLinearSeqはListのような、次の要素へのポインタを持つだけの再帰的かつ単純な実装を前提にしている。この為、LinearSeqの順番のアクセスは早いが、lengthを取得するの…

とあるプログラマーの平均的な1日

8:45 起床 10:00〜21:00 お仕事 21:00〜22:00 喫茶店で勉強orゲーセン 22:30〜24:00 帰宅。fadisからチャットが飛んできて講義が始まるかプログラミング 24:00〜26:00 ゲーム 26:00頃 就寝

自分なりにPythonのwith構文を解釈してみた

ことのはじめ TwitterでPythonのwith構文分からん、って言ってる人がいて、てけとーに返事してしまったのだが、ふと調べてみたら違ったのでちゃんと理解しておこうと思った。 実際のwith構文 withはclassの生成と削除をコントロールすることで、RAIIを実現す…

新米Scala使いがsbtとMavenを比較してみる

Mavenとは Javaのantの次世代を謳うビルドツール。Pluginを追加できるのでキモい程高機能で、コンパイル→テスト→実行→コードチェック→デプロイ→リリースまで全てこなせる。というか途中からCIツールの仕事なんだが奪うなよwPluginを追加できるので、Scalaで…

HBaseでDNSの逆引き設定が必要な件

HBaseとは 超大規模データを扱う為に作られたKey&Value型のDBで、所謂NoSQLの1つ。Hadoopの上で動く。私的には、列圧縮ができるのが最大のウリだと思っていて、あとCassandraよりは多機能な印象。(ただし速度では劣る傾向) とりあえずセットアップ http://…

JenkinsのMercurialのパス設定で躓いた件

CI

はじめに JenkinsのMercurialのパス設定に5時間掛かったのでメモ。とは言うものの、別にMercurial関係無く躓く可能性がある。 結論 JenkinsはSCMを選べる。選べるというのは、Mercurialとかgitとかではなく、どのMercurialか、まで選べる。従ってどのMercuri…

ary[-1]の動作

ary[-1]の動作 配列の-1番目の要素を指定した場合何が起こるのかちょっと興味あったので調べてみた Pythonの場合 我らがPythonは後ろから1番目の意味になる。 ary = [1,2,3] print(ary[-1]) # 3 Rubyの場合 RubyもPythonと同じ仕様 ary = [1,2,3] puts ary[-…

UbuntuでPythonをアンインストールしてみる

そもそもの発端 FedoraだったかRed HatだったかCentOSだったかは知らないが、「yumでpythonをremoveするとKernelもアンインスコしようとするんだけどwww」とかいう話があったので、じゃあUbuntuでもapt-get remove pythonしてみよう!という話。 Ubuntu Serv…

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、大型化するモニターの前に消費電…