2011-01-01から1年間の記事一覧
__builtin_return_address関数の紹介。簡単にいうとある関数が どこから呼び出されたか知ることができる関数です。厳密には 該当の関数を終えたときにどの番地に戻るかということなの ですが、たいてい call命令などの次の命令を示すので、呼び出した 場所の…
にひりずむ::しんぷる - IO::Prompt::Simple 書いた 会社の印刷のために IO::Promptを使ったスクリプトがあったんですが、 IO::Promptが Perl 5.14で動かない問題があったので, 自分で適当に書いたコードを使っていました。 そんな中 @xaicronさんが IO::Pro…
call-processのドキュメントには書いているんだけど 試したことがなかったので試してみました. BUFFER 引数にリストを与えるというだけのものです。 テストのために使うプログラムは以下のとおりです。 #!perl use strict; use warnings; print "This messag…
Emacsはデフォルトで Postscriptへの変換 ps-spool-*関数(ps-spool-buffer等) があるんですが、デフォルトだと日本語が文字化けしたり、見た目も個人的に いまいちなので、u2psを使って Postscriptに変換する elispを書きました。 毎回毎回手打ちするのが面…
某ソースコード解析ツールを見ていると、各言語の予約語の定義という ものがあり、そういや Perlの予約語ってなんだろうって思った。 予約語の定義とは Wikipediaによると 予約語(よやくご)とは、プログラミング言語において字句的には識別子(変数名、関…
いろいろと作業をしていると別のウインドウを見つつしたいから, ちょっと 隅まで移動させたいということがあります. マウスで移動させてもいいのですが, キーボード操作で移動できた方がいいかな, ということで書いてみました. 利用したコマンド wmctrl xpro…
各 OSの IPヘッダ構造体を見ていると, attribute packedを使っているのと 使っていないのがあってなんでだ、って思って生成するコードを調べてみた。 attribute packedをつけているのは NetBSD, FreeBSD. つけてないのが Linux, OpenBSDです. 各 OSの定義 Fr…
とあるコードで正しく動くであろうマシンで得られた結果と、 開発中のツールから得られた結果を比較して、開発中のものを テストするというものがあったのですが、浮動小数点の精度の 違いがもしかしたら出るのではないかということで。 x86の浮動小数点に関…
はじめに 「詳解 UNIXプログラミング」の第十一章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110329/1301324988 11.1 割り込み文字を無効にし、ファイルの終わりの文字を変更する PerlではC言語っぽいインタフェースでなく、OOishなインタフェ…
仕事が忙しくなり 4ヶ月ほど放置してましたが、再開. はじめに 「詳解 UNIXプログラミング」の第十章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110328/1301279230 10.1 SIGUSR1とSIGUSR2を捕捉する簡単なプログラム #!/usr/bin/env perl use …
ARMのクロスコンパイラ及び Linuxの作成手順のメモ事前に必要なものはこちらを参考にビルドしてください。 各ソフトウェアのバージョン Binutils-2.21.1 GCC-4.6.1 newlib-1.19.0 GDB-7.3 Linux Kernel 3.0.1 ビルド環境 さくらサーバの Ubuntuで行いました…
http://memo.freedom-lite.com/?p=991 を見ていて、最後の例の挙動が違うなぁって思ったんですが、 これは 5.14で defined @_の挙動が変わっていることが原因でした。 % perlbrew exec perl -e 'sub {print "defined\n" if defined @_}->()' perl-5.10.1 ===…
Perl MP3::Info MP3::Tag | Index of /.Phantom いい書き方かどうかは不明だけど。 ここから取得したものは, shift_jisで エンコードされているので shift_jis決め打ちで。 #!perl use strict; use warnings; use MP3::Info; use MP3::Tag; use Encode; my $…
Perlスクリプトを自動生成する際に shebangにちゃんとした perlパスを埋め込みたいということで調べてみた。 Configモジュールを使うことで知ることができます。 #!perl use strict; use warnings; use Config; print $Config{perlpath}, "\n"; 結果 % perl …
EmacsWiki: Shell Pop shell-popは大変便利なのですが、ディレクトリの移動が面倒なことが あります。使い方は人それぞれだと思いますが、私の場合、カレントバッファに 関連した処理を実行したい場合に shell-popを使うので、popupした 際に自動でカレント…
CarbonEmacs+zsh+ansi-termで4mと出る問題 - yaottiの日記 - Emacsグループ と同じなんだけど、homebrew環境ということで一部異なっていたので メモがわりに記載。 % mkdir -p ~/.terminfo/65/ % cp /usr/share/terminfo/65/eterm ~/.terminfo/65/eterm-colo…
kill-whole-line カーソルのある行を killする. vimでいうところの "dd". Ctrl-kだとカーソルから行末までですが、行頭から行末までの kill. キーバインドは "Ctrl + Shift + Backspace" (setq kill-whole-line t)とすることで, Ctrl-kが kill-whole-line関…
Regexp::Aseembleで遊んでみた. コード 正規表現作成プログラム #!perl use strict; use warnings; use autodie; use Regexp::Assemble; use Web::Scraper; use URI; binmode STDOUT, ":utf8"; my $cache_file = 'actresses.list'; main() unless caller; su…
http://www.cjrda.com/detail/q1165049091こんなのでいいんじゃないですかね。 % cat テキスト.txt 元のテキストです. % perl -i.bak -wlp -e 'print $ARGV if $. == 1' テキスト.txt % cat テキスト.txt テキスト.txt 元のテキストです. しかしベストアンサ…
shell-popを使い始めたのですが便利ですね. multi-termと合わせて使っているのですが、デフォルトの色が黒背景だと見づらかったので 変更しました. 変更 変更は ansi-term-color-vector 変数を変更することで行います。 '黒', '赤', '緑', '黄', '青', 'マゼ…
以前買った GTK本をいまさら読んでいるのですが、ただ Cで書くのも 面白くないので Perlでも書いてみようと思って Gtk2をインストール しようとしたのですが、テストでこけたのでそれについて。 失敗するテスト 失敗するのは t/GtkScrolledWindow.tです。 % …
Emacsのマニュアルを読んでいると hs-minor-modeという 折り畳みのできる機能を知りました。 具体例 これが こんな具合になります。(C-c @ C-h(hs-hide-block)を実行) 設定 minorモードとして設定します。c-mode, cperl-modeでは利用できました。 (add-hook …
ついついダラダラと見てしまうサイトをブロックしてくれるPythonスクリプト「Get Shit Done」 | ライフハッカー[日本版] greenisus/get-shit-done · GitHub コード コンフィグファイル読み取りの部分は別にいいか、と思って書いてません。 ソースはこちら…
自分のブログのGoogle Reader購読者数をRubyでぶっこ抜くの Perl版. コード 仕組みを理解するために Google WebAPI関連のモジュールには頼らず 書いてみました。 #!/usr/bin/env perl package App::GoogleReader; use Mouse; use Carp; use Furl; use JSON; …
Syohei Yoshida / Text-UnicodeTable-Simple-0.01 - search.cpan.org リリースしました。初CPANモジュールです。 はじめに Text::UnicodeTable::Simpleというのを書いてます - Life is very short モジュールを書いた動機は上記のエントリの通りです。 サン…
v850用クロス開発環境の構築 - Life is very short で作った GCCをtestgenに かけていたところ終了しないプログラムがあったのでそれについて。 問題が発生するプログラム testgenの gcc.4-2-01/t0501.cです。以下に示すのは最小化し、 関数名等一部変更した…
メモがてらに. 開発環境 さくら VPSサーバで行いました CentOS 5.5 x64 gcc-4.1.2 各ソフトウェアのバージョン binutils-2.21 gcc-4.6.1 newlib-1.19.0 gdb-7.2 gmp-5.0.2 mpfr-3.0.1 mpc-0.9 ppl-0.11.2 cloog-ppl-0.15.11.tar.gz 事前準備 クロスコンパイ…
なんとなく気になった。 #!perl use strict; use warnings; use Furl; use IO::Uncompress::Gunzip; my $url = 'http://ftp.nara.wide.ad.jp/pub/CPAN/authors/01mailrc.txt.gz'; my $ua = Furl->new; my $res = $ua->get($url); unless ($res->is_success) …
Furlの FAQのものと同じですが。 #!perl use strict; use warnings; use HTTP::Tiny; use Term::ProgressBar; use File::Basename; my $url = shift or die "Usage $0 url"; my $ua = HTTP::Tiny->new( agent => 'sample ua', ); my $bar = Term::ProgressBa…
App::cpanmigrate - search.cpan.org のソースを見ていたら, ExtUtils::Installedを使うことで インストールされているモジュールを知ることができるということを知りました。 ExtUtils::Installedは標準モジュールです。以下のようなワンライナーで一覧が得…