ガードで分岐

ガードで分岐させてもそれぞれが別々の関数になるわけではない。 あくまでcase式のシンタックスシュガーである事を忘れない。 --追記 パターンマッチも同じ扱いだった。

たぶん慣れるしかないんだろうけども

「Yet Another Haskell Tutorial」がMonadの章まで来たので、ここで一旦Haskellでコードを書く訓練をしている。 細かい機能は便利だと思うんだが、アルゴル系言語みたいに思いついたまま書くことが出来ないことが痛い。 これを何かクリアする方法は無いもん…

ubuntu9.10以降のGDM編集

https://forums.ubuntulinux.jp/viewtopic.php?pid=52203

do notation

まだYet Another Haskell Tutorialの6章までしか読んでないけど、もしかしてdoで並べられる式って戻り値が全部同じじゃないとダメなのだろうか

継続渡しスタイルとは何ぞや

平たく言うと、関数呼び出し/returnによって構築される処理の流れを、ラムダを駆使して関数の末尾呼び出しの連続に変換すること。 その際に引き継ぐ必要のある環境情報はラムダによって生成した関数の中に埋め込んでおく。 具体的には、『関数をcallした後に…

Haskellの型推論

当てはめる型をプログラマが指定しなくて良いC++のテンプレートな感じ。 静的型付けだから、似たようなもんになるのは当たり前か・・・。

UUIDの調べ方

ubuntu9.X以降の話っぽい $ sudo blkid /dev/sda1こんな感じ。

何かDockBarXが依存するもんが増えた

増えたのにパッケにはその事が反映されてないっぽい。 なので以下のページを参照してコマンドを打ち込む。 https://bugs.launchpad.net/dockbar/+bug/606568 sudo add-apt-repository ppa:zeitgeist/ppa && sudo apt-get update sudo apt-get install libgtk…

LLの強みを改めて知った

C++で細かいこと気にしながら時間掛けて作るくらいなら、LLでさっさと作るべき。 LLで性能上の問題が出てからC++でも遅くない。 ただしWindows、オメーはダメだ。

ロボット作り

二足歩行ロボットだけに限らないけど作りたくなったので色々勉強することに。 とりあえずPICでサーボ動かすとかそういう所から始めればいいのかな。 実践と平行して機械工学とか制御工学とか勉強したいのだが何の本買えばいいのやら(´・ω・`)

バッティングセンターのボールを簡単に当てる方法

飛んでくる場所はほぼ一定なので、バットをそこに出しておけば勝手に当たります。

Qt4.6.2で一部フォントにて半角英数が全角幅で表示されてしまう問題のubuntu10.04LTSにおける解決方法

Qtを使った自作ツールならまだしも、Skypeで表示幅が狂ってるのはものすごく気になるので直した。 一番簡単な解決策は日本語リポジトリを導入してapt-get update / apt-get upgradeを行う。当然採用。 http://www.ubuntulinux.jp/products/JA-Localized この…

SpeedyCGI使ってみた

さっそくハマった。 ハマったとは言ってもmod_perlにもあったような問題で、単にそんなことを忘れていた自分がアホだったという話。 SpeedyCGIを使って自作スクリプトを動かしていたのですが、何か調子が良くない。 よくよく調べてみると、POSTやGETで送るパ…

電磁波で死ぬらしい。

とまではいかないが、体に悪いという話はよく聞く。 ちょっと調べたら出てくる出てくる、体に悪いというサイト達。 まぁでもなんか見た目のしょぼい所は情報も古かったりするんですけどね。 調べてみるとIARC(国際がん研究機関。WHOに属する組織)での分類分…

C++の仮想メンバ関数。主に仮想デストラクタ。

先日、継承の階層が3層(親・子・孫)となっている場合、子のクラスのデストラクタにvirtualは必要なのか気になったので実験してみました。 ついでにデストラクタ以外の普通のメンバ関数についても検証。 まず以下のようなクラスとmain関数を用意。 #include <iostream></iostream>…

phononが動かん

Qt

ubuntuでpulseaudio使ってる時にphonon使って音鳴らそうとすると動かない件。 ググってもいまいちよく分からない。というか解決策書いてあるページ出てきてるのか? 前はphonon使ってるアプリ動かす前にHOMEディレクトリの.pulse消したら一応動いてたけど、…

unzipで展開する時の文字化け回避

Ubuntu9.10でzipファイル解凍での文字化け回避 - TrinityT's BLOG

ウィンドウ枠を消し飛ばす

QWidgetの第二引数にQt::FramelessWindowHintを渡すだけ。 サンプルはQtのexamples/widgets/shapedclock。

SQLiteの細々としたこと

処理をする際は必ずトランザクションを用いる。 型はNULL/INTGER(整数)/REAL(浮動小数点数)/TEXT/BLOB(バイナリ)。 AUTOINCREMENTしたい時は、主キーをname INTGER PRIMARY KEYと指定してあげればOK。 MySQLみたいな勝手な文字列変換は無いっぽい。 同時に複…

SQLiteを今更知った。

名前だけは3・4年前から知ってたんですよ。 今回地味なアプリを作るに当たって、CSVを直に読み書きするのも何だか面倒だなーと思い、似たようなもんでもっと楽に扱えるもの無いかなと探して辿り着いたのがSQLiteでした。 Qtにも入ってるので自分的には特に面…

FizzBuzz by perl

for(my $i=1;$i<101;++$i){ print $i%3 && $i%5 ? $i : ($i%3 ? "" : "Fizz", $i%5 ? "" : "Buzz"), "\n"; } foreach((1...100)){ print $_%3 && $_%5 ? $_ : ($_%3 ? "" : "Fizz", $_%5 ? "" : "Buzz"), "\n"; } print map{ $_%3 && $_%5 ? $_ : ($_%3 ? ""…

シェルでパスワードとかの入力を非表示にする。

パスワードに限らないけど、ユーザーが入力した文字列を非表示にする方法。 参考:sh でパスワードなどを入力させる時に非表示にする - Enjoi Blog sttyというコンソールのテキスト表示に関する設定をするコマンドを使います。 stty -echo で、以降ずっと入…

PerlでEmail::Send::Gmailを使ってメール送信

Email::Send::Gmail - Send Messages using Gmail - metacpan.org 超簡単。 ただしマルチバイト文字をEmail::Simple::Creatorのオブジェクトに設定する時は適切な文字コード(日本語ならiso-2022-jp)へ変換し、utf-8フラグを落としておくこと。

sftp+rsshでchrootする方法

ubuntu8.04サーバーのテスト環境で動くまで3時間くらいハマって発狂しかけたのでメモ。 rsshをインストール 特に難しいことはなく、 $ sudo apt-get install rsshでインストールされる。 rsshの設定。 これも特に難しい事は無い。 /etc/rssh.confを開いて al…

OpenSSHを用いた公開鍵認証のやり方

ubuntuを使い始めて2年。ようやくやり方覚えました。遅すぎました。 公開鍵・秘密鍵の作成 まず先に公開鍵・秘密鍵をクライアントPC側で作成します。先にsshdの設定を変更すると泣くハメになる場合があります。 $ ssh-keygen -t rsaを実行。 鍵ファイルの保…

MySQLとOracle

MySQLを所有してるSun MicrosystemsをOracleが買収! 最近そんな記事見たなぁと思ったら去年の4月の出来事だった。 完全に乗り遅れてた。 何かまだどうなるのかはっきりしてないし、Oracle的にMySQLを利用するとしたら 小規模案件や金を渋る又はあまり無いユ…

ubuntuでPDF作成

印刷時にファイルへ出力するオプションを付けて印刷開始。 PostScriptファイルで出力されるので適当に保存。 ps2pdfコマンドの引数に上記PostScriptファイルを指定。 pdfファイルの完成。 OOoなど、PDFへ出力する機能が最初から付いているアプリもある。

名前被り

どんな名称が使われているか想定出来ないような状況の場合、略語は高確率で被る。 制約が無い場合は自身の所有しているドメイン名を用いると被る確率は大幅に減る。 そうも言っていられない場合はなるべくその場においてユニークなキーを用いる。 万が一被っ…

思いついた事

煙草 煙草は吸っても良いけど周りに人がいる所で吸うな。 女装してるおっさんに嫌悪感を抱くように、近くで堂々と煙草を吸われるとそれと同じような嫌悪感を抱く。 というか常識を疑う。 風下に人がいるような時に吸ってる奴なんてさらに論外。 吸いたくもな…

QtScriptがすごく面白そう

だいぶQtにも慣れてきたのでQtScriptをいじり始めてみました。 QScriptEngine engine; QString script("1+2"), result; result = engine.evaluate( script ).toString(); これでresultに文字列の3がセットされます。 QtScriptはECMA Scriptをベースにしてい…