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

promise mail for android

体験版がLynx3Dに入っていて、自分のイメージするスケジュール登録方法とこいつの宣伝文句がかなり一致していたので試しに使ってみた。 結果:メールからスケジュール登録する方法で紹介されてる例文の名詞と件名だけ入れ替えた文章を全力で無視した。 全く…

Unix系OSにて、リンクするQtライブラリのパスを指定する

Qt

qmakeのproファイルにて以下の変数を設定する。 QMAKE_LFLAGS_RPATH QMAKE_RPATHDIR 例えば、proファイルにQMAKE_RPATHDIR=/opt/myqtと設定すると soファイルの検索リストの先頭に/opt/myqtが追加される。

C++0x VS2010/g++4.5共通で使用可能な機能

auto lambda Rvalue references (without for *this) decltype Right angle brackets Local and unnamed types as template arguments Extern templates Static assertions

Qtでアイコン取得

// システムアイコンの取得 QIcon icon = QCommonStyle().standardIcon(QStyle::SP_HOGEHOGE); // ファイルに設定されたアイコンの取得。 QIcon icon = QFileIconProvider().icon(QFileInfo(FILENAME)); ディレクトリのアイコンはシステムアイコンに含まれて…

PSファイルの描画サイズを保ったままPDFにする

ps2pdf -dEPSCrop hoge.ps hoge.pdf これでPSファイルのBoundingBoxのサイズに合わせたサイズのPDFが作成される。 PSファイルのBoundingBoxのサイズをgrepして確認し、ps2pdfに-gWxH(W,H共にBoundingBoxの10倍の値が良い)を渡して手動設定も出来るけど2手間…

GeneXus

南米発のツールがIT業界に与えるインパクト | 日経 xTECH(クロステック) 某所経由でこんな記事を発見した。 世界はRADな流れだし、いいんじゃないの? どの程度応用性があるか次第やね。その辺が期待できなさそうだけど。

qtHaskellのインストール

buildスクリプトを使ったインストールだとcabal --globalでインストールしようとする。 従ってHOpenGLとParallelが同じ条件でインストールされていないとうまくいかない。 ユーザーローカルにインストールしようとすると面倒くさそうなので、システムにイン…

Monad Laws

日本語訳何て言うの。 何やらMonadを扱う関数は下記の3つのルールを守れという事だそうな。 return a >>= f が f a と同義。 f >>= return が f と同義。 f >>= (\x -> g x >>= h) が (f >>= g) >>= h と同義。合成の優先順位が変わっても問題ないように、と…

do notation

基本的には、(>>)::(Monad m) => m a -> m b -> m bの連鎖のシンタックスシュガー。 ※以下に現れるfsは処理の集まりを表す。 do{f}→f do{f; fs}→f>>do{fs} ただし以下の特殊な動作になる場合が存在する。 do{let decls; fs}→let decls in do{fs} do{x >= g

HaskellでXorShift

整数型の無限リストという形で疑似乱数が欲しかったのでXorShiftで作ってみました。 これを作る過程でData.WordとBitsを使いましたが、使いやすくてすごく気に入った。 ちなみにC/C++の^記号がXORを意味するのを忘れていて無駄に時間を食ったのは内緒。 impo…

あるリストの各要素をある処理を経て他のリストへ入れたい時。

例えば『空白区切りで並んだ数値文字列の合計を算出して、それをリストに格納したい』時。 以下のような処理を行う。 -- 仮に結果を単精度浮動小数点数としておく。 plus :: String -> [Float] plus = foldl f [] . words -- (1) where f (x:xs) d = (x + (r…

ガードで分岐

ガードで分岐させてもそれぞれが別々の関数になるわけではない。 あくまで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みたいな勝手な文字列変換は無いっぽい。 同時に複…