2015年1月1日木曜日
2013年12月1日日曜日
slimlockをインストールした
slimを使い始めてそれなりに経ったが、画面ロックを入れないまま過ごしていた。
いい加減何とかしようと思ったので、slimlockを入れてみた。
slimの1.3.6だと入っているようだが、Ubuntu 13.10だと1.3.4なので自前でビルドした。
# ライブラリをインストール(もしかしたら他にもいるかも) $ sudo apt-get build-dep slim # slimをclone $ git clone https://github.com/dannyn/slimlock.git $ cd slimlock # ヘッダが見つからなかったので、パスを追加しつつmake $ make CFLAGS="-I/usr/include/freetype2" $ sudo make install # 起動テスト $ slimlockcheckinstallなどでパッケージングしてもいいかもしれないが、まあ、そのうちということで。
2013年5月25日土曜日
Ubuntuにkmsconを導入する
kmsconというlinuxの組み込みコンソールを置き換えるプロジェクトがある。
このソフトウェアでttfな日本語フォントも描画できるらしい。
コンソールでメッセージが表示できないから、ロケールを英語にするという馬鹿げた対応が嫌いだったので、ものは試しという事で使った見た。
インストールは以下のようにすれば良い。
なおデフォルトではtty9を使うらしく、kmsconを終了するには、CTRL+ALT+F1でtty1に戻って、 CTRL+Cを打てばよい。
またデフォルトでtty1等をkmsconにするにはubuntuの場合は、upstartでgettyを起動している場所を書き換えれば良い。 ただし書き換えには十分に注意すること。
このソフトウェアでttfな日本語フォントも描画できるらしい。
コンソールでメッセージが表示できないから、ロケールを英語にするという馬鹿げた対応が嫌いだったので、ものは試しという事で使った見た。
インストールは以下のようにすれば良い。
$ git clone git://github.com/dvdhrm/kmscon.git $ cd kmscon $ ./configure --with-fonts=freetype2,unifont,pango --with-renderes=bbulk,gltex,cairo,pixman $ make $ sudo make installCTRL+ALT+F1あたりで、コンソールに移動して、実行してみよう。
$ sudo kmscon実行するとloginが起動されるので、ユーザー名とパスワードを入れてログインする。 日本語テキストをlvなどで見れるか試してみよう。
なおデフォルトではtty9を使うらしく、kmsconを終了するには、CTRL+ALT+F1でtty1に戻って、 CTRL+Cを打てばよい。
またデフォルトでtty1等をkmsconにするにはubuntuの場合は、upstartでgettyを起動している場所を書き換えれば良い。 ただし書き換えには十分に注意すること。
$ sudo vi /etc/init/tty1.conf 以下を書き換える。 exec /sbin/getty -8 38400 tty1 ↓ exec /usr/bin/kmscon -vt=tty1 --no-switchvtあとは再起動するなり、以下でupstartを再起動させれば良い。
$ sudo stop tty1 $ sudo start tty1なおデフォルトではキーボードレイアウトが英語配列になっているので、日本語にしたい場合はオプションをつける。
$ sudo kmscon --xkb-layout=jp
2012年7月8日日曜日
pythonでの名前かぶり
pythonでsocket使ってみたくなってやってみたんですよ。
次の内容をsocket.pyって名前で作ったんですよ。
import socket
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.connect(("www.google.co.jp", 80))
soc.send("GET / HTTP/1.0\r\n\r\n")
data = soc.recv(4096)
soc.close()
print data
そしたら、'module' object is not callableって怒られたんですよ。
いろいろ探したら、標準のsocketモジュールと名前がかぶっているのが悪いみたい。
こんなの気づかないよ…
参考
2011年11月30日水曜日
screenからtmuxに乗り換えた
いままで端末マルチプレクサとしてscreenを使っていたのだが、オワコンという話を聞いていたのでtmuxに乗り換えた。
screenはどっかから設定ファイルを拾って使っていたのだが、tmuxはデフォでステータスバーも出るしほぼ無設定で使っている。ただしscreen時代からCtrl-tをコマンドのプレフィックスとして使っていたのでその設定と、256色使いたかったのでTERMの設定をした。ホームディレクトリの.tmux.confに設定ファイルを書く
set-option -g default-terminal "screen-256color"
set-option -g default-command zsh
set-option -g prefix C-t
諸事情でログインシェルとターミナルのシェルを変えているので明示的にzshに変えている。
さて、これで大体OKなのだがEmacsがscreen-256colorなるターミナルを知らないので色が8色しか使えない。調べたところlist/term/${TERM}.elを読んで色設定をするらしいが、残念ながらscreenの設定が存在しない。入れようという話も出ているようだがEmacs23では入っていないので、適当に設定をコピペした。つぎを.emacs.elあたりに書いておけば良い。
(defun terminal-init-screen ()
"Terminal initialization function for screen."
;; Use the xterm color initialization code.
(load "term/xterm")
(xterm-register-default-colors))
これで色もちゃんと付くようになった。
追記:Emacs24ではscreen.elが追加されたらしい。はやくStableになって欲しい。
2011年11月13日日曜日
C++のドラフトをビルドした話
完全に俺得話。
いろいろ思ってC++の最新のドラフトをゲットしようと思った。で嬉しいことにドラフトはGithub上でホスティングされているので、ビルドしてみた。
環境はXubuntu11.10。gitでcloneするとMakefileがあるので中のコメントを読んで適当にtexliveをapt-getしておく。あとdotファイルのためにgraphvizもインストールしておく。
で、makeしてみたんだがsedがエラーを吐く。どうも"{"や"}"をエスケープしていないのが原因らしい。適当に修正してまたmake。一服しているうちに出来上がりました。
で、makeしてみたんだがsedがエラーを吐く。どうも"{"や"}"をエスケープしていないのが原因らしい。適当に修正してまたmake。一服しているうちに出来上がりました。
めでたしめでたし
2011年11月11日金曜日
bool型の変換について
もうただの忘備録でござるの巻。
CやC++では0はfalseとして、0以外はtrueとして扱われることは広く知られていることですが、逆にbool -> Integral typeどうなるんじゃらホイ。
Standard conversionにはっきりと書いてありました。
CやC++では0はfalseとして、0以外はtrueとして扱われることは広く知られていることですが、逆にbool -> Integral typeどうなるんじゃらホイ。
Standard conversionにはっきりと書いてありました。
false -> 0
true -> 1
終わり。
true -> 1
2011年10月12日水曜日
GMA500にはまった件
すごく久しぶりにブログ更新。
後輩がArchLinuxをいじっているので僕も入れてみたくなって、家で眠っていたDell inspiron mini12にインストールしてみた。
ところがXがうまく動かない。
このマシンはGMA500という難有りのグラフィックチップが乗っているんだが、最近のLinux Kernel(2.6.29以上?)ではpsb-gfxというドライバが標準で用意されていて、これを使えば2Dは使えるらしい。
ところが、pacmanでxorg-serverとxf86-video-fbdevを入れても動かない!色々試したんだがうまくいかない。資料もない。
Xのlogを見てみると/dev/fb0がないようなので、デバイスファイルを作ってみたがうまくいかない。
ふとlsmod | grep psbとしてみるとpoulsboという名前が…。こいつはGMA500のコードネームで、この名前があるってことは、もしかして2つのモジュールがロードされているのではないかと思い至る。
/etc/modprobe.d/blacklist.listを作成してblacklist poulsboを書いて保存し、startxすると、ビンゴ!起動しました。
ということで、現在のArchではGMA500をpsb-gfxで使う場合poulsboモジュールをロードしないようにしましょう。
後輩がArchLinuxをいじっているので僕も入れてみたくなって、家で眠っていたDell inspiron mini12にインストールしてみた。
ところがXがうまく動かない。
このマシンはGMA500という難有りのグラフィックチップが乗っているんだが、最近のLinux Kernel(2.6.29以上?)ではpsb-gfxというドライバが標準で用意されていて、これを使えば2Dは使えるらしい。
ところが、pacmanでxorg-serverとxf86-video-fbdevを入れても動かない!色々試したんだがうまくいかない。資料もない。
Xのlogを見てみると/dev/fb0がないようなので、デバイスファイルを作ってみたがうまくいかない。
ふとlsmod | grep psbとしてみるとpoulsboという名前が…。こいつはGMA500のコードネームで、この名前があるってことは、もしかして2つのモジュールがロードされているのではないかと思い至る。
/etc/modprobe.d/blacklist.listを作成してblacklist poulsboを書いて保存し、startxすると、ビンゴ!起動しました。
ということで、現在のArchではGMA500をpsb-gfxで使う場合poulsboモジュールをロードしないようにしましょう。
2011年7月21日木曜日
2011年6月8日水曜日
flymakeの設定
メモメモ。
どうもGCCのバージョンによって、エラーの出力フォーマットが異なるらしい。
そのため最新のGCCを使っているとflymakeでの出力がすべてエラーとして表示されてしまっていて見にくい。
適当なところに、次の設定を書いとけばOK。
GCC4.6にて確認。
どうもGCCのバージョンによって、エラーの出力フォーマットが異なるらしい。
そのため最新のGCCを使っているとflymakeでの出力がすべてエラーとして表示されてしまっていて見にくい。
適当なところに、次の設定を書いとけばOK。
GCC4.6にて確認。
(setq flymake-err-line-patterns
(cons
'("\\(.+\\):\\([0-9]+\\):\\([0-9]+\\): \\(.+\\)" 1 2 3 4)
flymake-err-line-patterns))
2011年6月3日金曜日
C/C++でのvoid*の違い
久々に。
僕のボスがC/C++でvoid*型でのキャストの違いについて指摘するのだけれど、よくわかっていなかった。
Cではこの動作は正しいので確かにエラーではない。が、警告がほしい時もある。
GCCでは-Wc++-compatをオプションに渡せば良い。
僕のボスがC/C++でvoid*型でのキャストの違いについて指摘するのだけれど、よくわかっていなかった。
int *p = malloc(sizeof(int));とか書くと、CではOKでC++ではエラーとなる。
Cではこの動作は正しいので確かにエラーではない。が、警告がほしい時もある。
GCCでは-Wc++-compatをオプションに渡せば良い。
2010年6月15日火曜日
c++の初期化
検索しても見つからなかったので。
C++では変数宣言時に初期化ができる。で、クラスならコンストラクタがあるが(デフォルトコンストラクタも含む)、その他はどうなのかという話。(たとえばint型とか)
規格では8.5Initializersに規定されている。それによるとint a();とか書くとvalue-initializeされる。
value-initializeとはクラスや配列以外ならばzero-initializeが行われると規定されている。
zero-initializeはscalar type(おおざっぱに言えば整数型やポインタ)では0に変数を初期化するとある。
つまり
int a(); //a <- 0
となる。
これがあるので、たとえばstd::mapで
std::map< int, int > m;
m[0];
とかすると、zero-initializeが行われ、m[0]が0になる。
※追記
後輩から指摘されてしまった。
int a(); //type of a is int (*)()宣言では空のパラメータを書いたときは、関数宣言とみなされることを失念していた。
宣言以外では、以下のようにかける。(右辺)
int a = int();
ところで
int a; // a have an indeterminate initial valueでいいのだろうか。
登録:
投稿 (Atom)