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

__builtin_return_addressについて

__builtin_return_address関数の紹介。簡単にいうとある関数が どこから呼び出されたか知ることができる関数です。厳密には 該当の関数を終えたときにどの番地に戻るかということなの ですが、たいてい call命令などの次の命令を示すので、呼び出した 場所の…

IO::Prompt::Simpleを少しいじってみた

にひりずむ::しんぷる - IO::Prompt::Simple 書いた 会社の印刷のために IO::Promptを使ったスクリプトがあったんですが、 IO::Promptが Perl 5.14で動かない問題があったので, 自分で適当に書いたコードを使っていました。 そんな中 @xaicronさんが IO::Pro…

call-processで標準出力と標準エラー出力を分離する

call-processのドキュメントには書いているんだけど 試したことがなかったので試してみました. BUFFER 引数にリストを与えるというだけのものです。 テストのために使うプログラムは以下のとおりです。 #!perl use strict; use warnings; print "This messag…

カレントバッファを Postscriptとして出力する

Emacsはデフォルトで Postscriptへの変換 ps-spool-*関数(ps-spool-buffer等) があるんですが、デフォルトだと日本語が文字化けしたり、見た目も個人的に いまいちなので、u2psを使って Postscriptに変換する elispを書きました。 毎回毎回手打ちするのが面…

Perlに予約語ってあるのだろうか?

某ソースコード解析ツールを見ていると、各言語の予約語の定義という ものがあり、そういや Perlの予約語ってなんだろうって思った。 予約語の定義とは Wikipediaによると 予約語(よやくご)とは、プログラミング言語において字句的には識別子(変数名、関…

アクティブなウインドウを四隅に移動させる

いろいろと作業をしていると別のウインドウを見つつしたいから, ちょっと 隅まで移動させたいということがあります. マウスで移動させてもいいのですが, キーボード操作で移動できた方がいいかな, ということで書いてみました. 利用したコマンド wmctrl xpro…

attribute packedに関するコード生成

各 OSの IPヘッダ構造体を見ていると, attribute packedを使っているのと 使っていないのがあってなんでだ、って思って生成するコードを調べてみた。 attribute packedをつけているのは NetBSD, FreeBSD. つけてないのが Linux, OpenBSDです. 各 OSの定義 Fr…

浮動小数点数演算に関するメモ

とあるコードで正しく動くであろうマシンで得られた結果と、 開発中のツールから得られた結果を比較して、開発中のものを テストするというものがあったのですが、浮動小数点の精度の 違いがもしかしたら出るのではないかということで。 x86の浮動小数点に関…

Perlで学ぶ「詳解 UNIXプログラミング」(その11) 第11章 端末入出力

はじめに 「詳解 UNIXプログラミング」の第十一章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110329/1301324988 11.1 割り込み文字を無効にし、ファイルの終わりの文字を変更する PerlではC言語っぽいインタフェースでなく、OOishなインタフェ…

Perlで学ぶ「詳解 UNIXプログラミング」(その10) 第10章 シグナル

仕事が忙しくなり 4ヶ月ほど放置してましたが、再開. はじめに 「詳解 UNIXプログラミング」の第十章を示します. 本家 http://d.hatena.ne.jp/atsuoishimoto/20110328/1301279230 10.1 SIGUSR1とSIGUSR2を捕捉する簡単なプログラム #!/usr/bin/env perl use …

Building ARM tool chain & Linux Kernel

ARMのクロスコンパイラ及び Linuxの作成手順のメモ事前に必要なものはこちらを参考にビルドしてください。 各ソフトウェアのバージョン Binutils-2.21.1 GCC-4.6.1 newlib-1.19.0 GDB-7.3 Linux Kernel 3.0.1 ビルド環境 さくらサーバの Ubuntuで行いました…

defined @_の挙動

http://memo.freedom-lite.com/?p=991 を見ていて、最後の例の挙動が違うなぁって思ったんですが、 これは 5.14で defined @_の挙動が変わっていることが原因でした。 % perlbrew exec perl -e 'sub {print "defined\n" if defined @_}->()' perl-5.10.1 ===…

Re: Perl MP3::Info MP3::Tag

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スクリプトを実行する Perlのパスを知る

Perlスクリプトを自動生成する際に shebangにちゃんとした perlパスを埋め込みたいということで調べてみた。 Configモジュールを使うことで知ることができます。 #!perl use strict; use warnings; use Config; print $Config{perlpath}, "\n"; 結果 % perl …

shell-popしたときに、カレントバッファのディレクトリに移動する

EmacsWiki: Shell Pop shell-popは大変便利なのですが、ディレクトリの移動が面倒なことが あります。使い方は人それぞれだと思いますが、私の場合、カレントバッファに 関連した処理を実行したい場合に shell-popを使うので、popupした 際に自動でカレント…

プロンプトの先頭に m4と出る問題

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関…

すべての AV女優にマッチする正規表現

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…

Re: Perlを用いて、ファイル名をそのファイルの一行目に挿入するにはどのようにすれば...

http://www.cjrda.com/detail/q1165049091こんなのでいいんじゃないですかね。 % cat テキスト.txt 元のテキストです. % perl -i.bak -wlp -e 'print $ARGV if $. == 1' テキスト.txt % cat テキスト.txt テキスト.txt 元のテキストです. しかしベストアンサ…

emacs内のターミナルの色を変える

shell-popを使い始めたのですが便利ですね. multi-termと合わせて使っているのですが、デフォルトの色が黒背景だと見づらかったので 変更しました. 変更 変更は ansi-term-color-vector 変数を変更することで行います。 '黒', '赤', '緑', '黄', '青', 'マゼ…

Ubuntu 11.04で Gtk2のテストが失敗する問題

以前買った GTK本をいまさら読んでいるのですが、ただ Cで書くのも 面白くないので Perlでも書いてみようと思って Gtk2をインストール しようとしたのですが、テストでこけたのでそれについて。 失敗するテスト 失敗するのは t/GtkScrolledWindow.tです。 % …

hs-minor-mode

Emacsのマニュアルを読んでいると hs-minor-modeという 折り畳みのできる機能を知りました。 具体例 これが こんな具合になります。(C-c @ C-h(hs-hide-block)を実行) 設定 minorモードとして設定します。c-mode, cperl-modeでは利用できました。 (add-hook …

get-shit-done.pl

ついついダラダラと見てしまうサイトをブロックしてくれるPythonスクリプト「Get Shit Done」 | ライフハッカー[日本版] greenisus/get-shit-done · GitHub コード コンフィグファイル読み取りの部分は別にいいか、と思って書いてません。 ソースはこちら…

自分のブログのGoogle Reader購読者数をPerlでぶっこ抜く

自分のブログのGoogle Reader購読者数をRubyでぶっこ抜くの Perl版. コード 仕組みを理解するために Google WebAPI関連のモジュールには頼らず 書いてみました。 #!/usr/bin/env perl package App::GoogleReader; use Mouse; use Carp; use Furl; use JSON; …

Text::UnicodeTable::Simple-0.01をリリースしました。

Syohei Yoshida / Text-UnicodeTable-Simple-0.01 - search.cpan.org リリースしました。初CPANモジュールです。 はじめに Text::UnicodeTable::Simpleというのを書いてます - Life is very short モジュールを書いた動機は上記のエントリの通りです。 サン…

V850 GCC 4.6.1のテスト その 1

v850用クロス開発環境の構築 - Life is very short で作った GCCをtestgenに かけていたところ終了しないプログラムがあったのでそれについて。 問題が発生するプログラム testgenの gcc.4-2-01/t0501.cです。以下に示すのは最小化し、 関数名等一部変更した…

v850用クロス開発環境の構築

メモがてらに. 開発環境 さくら 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 事前準備 クロスコンパイ…

CPAN Authorを数える

なんとなく気になった。 #!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) …

HTTP::Tinyでプログレスバーを表示

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…

ExtUtils::Installedを使ってインストールされているモジュール一覧を得る

App::cpanmigrate - search.cpan.org のソースを見ていたら, ExtUtils::Installedを使うことで インストールされているモジュールを知ることができるということを知りました。 ExtUtils::Installedは標準モジュールです。以下のようなワンライナーで一覧が得…