サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
bigfatcat.hateblo.jp
perl から jpeg画像の大きさを一気に変換(縮小)したかったので、GDモジュールを入れることにした。 cpanコマンドでインストールしようとしたけど、「libgd」がどうたらで怒られてインストールできない。 % cpan install GD そこで、「gd-something」で探してみると、「gd-devel」が入ってないのがいけなそうな予感。 % yum list | grep gd- (正直に言うと、最初は「% yum list | grep libgd」で探していた。libgd って「gdという名前のライブラリ」という意味なのか…。) gd-devel をインストール % sudo yum install gd-devel 再び GDモジュールのインストール。今回は無事インストールできた。 % cpan install GD 参考 CentOSでperlのGDモジュールをイ
いろいろ忘れそうなので、その都度メモしながら読む。 UNIX Network Programming, Volume 1, Second Editionが2011/12現在のサポートページ(本に書かれているリンクとは異なるので注意。)。 UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI 作者: W.リチャードスティーヴンス,W.Richard Stevens,篠田陽一出版社/メーカー: ピアソンエデュケーション発売日: 1999/07メディア: 単行本購入: 8人 クリック: 151回この商品を含むブログ (35件) を見る 第2版と第3版の違い 第2版は大分内容が古くなっているようなので注意。 買ってから気付いたが、、日本語訳の最新版は原著の第2版。 原著の最新版は第3版。素直に英語版を買ったほうがよさげ。。。。 第3版のサーポートページ: UNIX
使えるまでのおおまかな流れとしては、Plaggerの動作に必要なPerlモジュールをインストール → svnから最新のPlaggerをチェックアウト → 設定 → 利用可能。といった感じ。 インストール 1回目失敗 cpan[9]> install Plagger ... Test Summary Report ------------------- t/00_compile.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.41 cusr 0.07 csys = 0.51 CPU)Result: FAIL Failed 1/1 test programs. 1/1 subtest
どうすればよいか? postfixをスタート $ sudo postfix start ログはここ $ tail -f /var/log/mail.logこれで無事、SMTPサーバが起動した。(今回はSMTPサーバが動けばよいので詳しくは調べていない) macのスタート時にSMTPサーバを起動するには「/etc/hostconfig」を以下のように編集すればよいらしい。(確かめていないので間違っているかも) /etc/hostconfig に 「MAILSERVER=-YES-」を追加 $ sudo vim /etc/hostconfig ... MAILSERVER=-YES- ...参考ページ: guess what?: Macで開発用SMTPサーバをたてたい!:情報源。 OS X ハッキング! (19) システム環境設定と/etc/hostconfigの関係 | マイナビニュース:/
「yum install パッケージ名」でインストールするのは楽だけど、どこに何のファイルがあるか分からないと困るときがある(設定ファイルを編集したいときとか)。もちろん、ごり押しで find を使って探す方法もあるけど、別のもっと賢い方法を見つけたのでメモしておく。 あまり良い例じゃないけど、例えば、ls が入ってるパッケージって coreutils だっけ?っていうときに、 % rpm -ql coreutils | grep -E '*/ls' /bin/ls /usr/share/man/man1/ls.1.gzとすれば、確かめられる。 もっと現実的にありそうな場合だと、「Samba ずっと前に yum でインストールしたけど、設定ファイルの smb.conf ってどこにあるんだろう?」っていうときに % rpm -ql samba | grep smb.conf /usr/sha
ポイントは2つ、 1.引数を渡す方法として、クロージャを使う 2.コールバック関数(以下では handleResult)の中では this を使わない(というか、使えないみたい) id:amachangのエントリ XMLHttpRequest の onreadystatechange の this - IT戦記 に救われた。 var hikisuu = "渡したい引数だよ"; var request = window.XMLHttpRequest ? new XMLHttpRequest() : (function() { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { return new ActiveXObject("Microsoft.XMLHTTP"); } })(); request.onreadyst
のは前からだけど、今年からはWebとの連動も本格的に始まってさらに良くなっている。 特に、テキストが無く、Webサイトでの学習に焦点を絞ったニュースで英会話 - トップが非常に使えることにさっき気づいた。 NHKの持っている英語コンテンツを活かしているので他はマネできないと思う。 とりあえずこの「ニュースで英会話」と「トラッドジャパン」、「英語5分間トレーニング」だけは毎日聴いてみる。 ほんとNHKにはお世話になってるなぁ。受信料支払い拒否とかよく聞くけど、単に活用してないだけな気がする。 むしろ自分はもっと払う。テレビ無いけど。
ls とか、cat とかのソースを読んだことないのはプログラマとしてやばいらしいので読めるようになりたい(参考:lsコマンドのソース(FreeBSD版):濃縮還元オレンジニュース|gihyo.jp … 技術評論社)。GNU版は読みにくいみたいなので、BSD版をダウンロードして読んでみたいと思う。 早速、ダウンロードと思ったけど、ソースコードのダウンロード方法が分からない…。ググってみると、どうやら BSD の CVSリポジトリってとこからダウンロードできることが分かった。 まずは、空の .cvspass ファイルを作っておく % touch .cvspass次に、CVSROOT を設定して export する。.bash_profile に書いておくと便利。 % export CVSROOT=":pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/nc
yumリポジトリからソースファイルをダウンロードするには − @IT 標準のyumコマンドには、ソースのRPM(SRPM)ファイルをダウンロードする機能がない。 らしい…。先に教えてください…。 どうりで man yum で探しても見つからないわけだな。source とかキーワードにして探してたよ…。 ダウンロードできるようにするためには yum-utils パッケージが必要なので、まずインストール。 # yum install yum-utilsそして、yumdownloaderコマンドに --sourceオプションを付けて実行すればパッケージ(拡張子.src.rpm)をダウンロードできる。 # yumdownloader --source パッケージ名 試しに、lsコマンドが含まれるパッケージを yumdownloader でダウンロードしてみる。 まず ls がどのパッケージに含まれ
以下のようなファイルを作って試してみると便利さがすぐ分かる。 include.h #define MAX(x, y) ((x) < (y) ? (y) : (x)) #define MIN(x, y) ((x) < (y) ? (x) : (y)) int sum(int i1, int i2) { return (i1 + i2); } main.c #include "include.h" #define MORE "/usr/ucb/more" 手順 1.CTRL-x でサブモードに入る 2.以下の表のコマンドをとにかく試してみれば分かる コマンド 意味 CTRL-d マクロ定義 CTRL-f ファイル名 CTRL-k 辞書ファイル CTRL-i 現在のファイルと #include ファイル CTRL-l 行全体 CTRL-] タグ CTRL-p CTRL-x なしの状態の CTRL
以下のプログラム(参考:作って学ぶ、今どきのWebサービス: 第2回 RSSフィードの料理はLWPとXML::RSSにおまかせ)を実行したら、「Wide character in print at」というメッセージが print を実行する度に出力されてしまった。 #!/usr/local/bin/perl # http://www.ibm.com/developerworks/jp/webservices/library/itm-ws2-rss/ use strict; use Encode; use LWP::Simple; use XML::RSS; my $url = shift; my $document = LWP::Simple::get($url) or die "cannot get content from $url"; my $rss = XML::RSS->new;
随時ここに書き足していく予定。 何だか楽しくなってきた。 " .vimrc for mac " common settings :set textwidth=78 :set nocompatible :set background=dark :syntax on :set number :set tabstop=4 :set shiftwidth=4 :set expandtab :set shiftround :set incsearch :set hidden ":set fenc=utf-8 :set fileencodings=euc-jp,iso-2022-jp,cp932 :set enc=utf-8 " set list mode (show tab as sequence of ">-") :set list :set listchars=tab:>- " set colo
混乱しそうになったのでメモしておく。 結論的には、親クラスのメソッド呼び出しは 「細い矢印+SUPER」 を使おうねというだけの話。詳しくは、以下のソース中の コメントを参照。 { package LivingCreature; sub speak { my $class = shift; print "a $class goes ", $class->sound, "!\n"; } } { package Animal; use base qw{LivingCreature}; } { package Mouse; use base qw{Animal}; sub sound { 'squeak' } sub speak { my $class = shift; # 継承の概念が使われるので、LivingCreature の speak が呼び出される # SUPER::speak は、
Javascript で関数の呼び出し元オブジェクト(Caller)をあらかじめ指定したいときは、fn.call(obj) を使う。 例えば、こんな感じ。Firebug が入ってなければ、console.log() を 換わりに alert() とすればOK。 Caller の束縛 function fn() { console.log(this.attr); }; var cat = { attr: "nyan" }; // caller を束縛する function bind(fn, obj) { return function() { fn.apply(obj); }; }; // bind var fn_bound = bind(fn, cat); document.getElementById('kuma').onclick = fn_bound; 操作対象のHTMLの例 <!D
「続・初めてのPerl 3章」の練習問題で、CPAN からモジュールをインストールする必要があったので、自分用に作業メモを残しておく。 基本的には以下のサイトを参考にさせて頂いた。 CPAN 初級 まず、自分の環境(colinux 上の Fedora7)には cpan shell(CPAN.pmモジュールがこれに該当するのかな?)が入ってなかったのでインストールする。 % sudo yum install perl-CPAN 次に、対話的なモジュールインストールシェル(cpan shell)を起動して初期設定をする。 % sudo perl -MCPAN -e shell 自分は、以下の初期設定をするかどうか聞かれたときに、no と答えた。(本当は、デフォルトの yes で設定を一つ一つ確認したほうがよかったっぽい) Are you ready for manual configurati
tmuxで複数サーバの同時オペレーション これを見て思い出したが、自分も同じようなshell script作った: https://github.com/keisatou/multitmux 30台とか60台に対して同じコマンドを発行したいことが運用やってると割とあるので、そういった場面で便利。multitmuxで並列にコマンド発行して楽して、確認だけは慎重にやるみたいなオペレーションを想定している。 こんな感じで使う: まず改行区切りのホストリストファイルを用意。(まとめて一行で書く記法には未対応。) host.list host1 host2 host3 openコマンドにホストリストを与えると、tmuxのwindowを開いてsshする: $ multitmux open host.list ※ 0個目(一番左端のwindowはssh元のホストのままにしてある。) コマンドを送りたいと
「C-x RET f」で保存時の文字コードを変更できるのは知ってたけど、これを文字化けしたときに実行して、C-x C-s で保存すると、表示されている(文字化けしている)文字自体を指定した文字コードで保存してしまうらしく、さらに訳の分からない内容のファイルになってしまう。(推測なので、間違っていたらつっこんでください) この場合、正しい対処法としては「C-x RET r」(revert-buffer-with-coding-system)を使えばよいみたい。 revert-buffer-with-coding-system のヘルプの抜粋 (revert-buffer-with-coding-system CODING-SYSTEM &optional FORCE) Visit the current buffer's file again using coding system CODI
追記(2007年12月28日(金)) 以下の内容には恐らく筆者の勘違いが含まれていると思うので、あんまり鵜呑みにしないでください。あと、ネタ元の id:fbisさんからコメントを頂いたのでそちらも参照してください。整理がついたら内容を随時訂正していく予定です(整理つかないかもしれないけど…)。 追記(2007年12月30日(日)) id:kitsさんがブクマで教えてくれたリンク先「perlsyn - perldoc.perl.org」の foreach の説明がわかり易いかも。要は、LIST 中の要素で一つでも左辺値でなければ、制御変数「$_」の変更は失敗するということらしい。あと、自分が激しく勘違いしてたとこだけど、制御変数「$_」は常に LIST 中の各要素のエイリアスになるみたいです。 whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Progra
続・初めてのPerl の p.113 にシュワルツ変換というものが紹介されていた。 このシュワルツ変換を使うと、sort関数の間接指定内で割高な処理(比較的多くの時間やメモリがかかる処理)をするときに実行効率がよくなるらしい。 例えば、以下の「間接指定内で割高な処理を行う」2つのソート方法では「シュワルツ変換を使ったソート」の方が実行が早くなるということだ。 シュワルツ変換を使ったソート my @output_data = map $_->[0], sort {$a->[1] と $b->[1] を使ったソート比較} map [$_, $_ の割高な処理], @input_data; 通常のソート my @output_data = sort {$a の割高な処理と $b の割高な処理 を使ったソート比較} @input_data; そこで、実際に実行速度に違いが出るのかそれぞれの方法のベ
前日の日記で試したVim/RubyでvimのRubyインターフェースが有効にできなかったので(./configure実行途中でメモリ食い尽くして止まる…Cygwinのエラーなのかもしれない)、vimを使うのをあきらめてMeadowを使ってみる。 参考1 Meadowのインストール: Meadow/Emacs memo: 設定済み Meadow を使ってみよう Emacs (Meadow) のインストールと使い方 - アルゴリズムとデータ構造入門 インストールしたら、Cygwin上のbashからMeadowを簡単に起動できるようにMeadow.exeへのパスを通しておく。 ~/.bashrc(c:\cygwin\home\{user名}\.bashrc)に以下を追加する。 PATH=/cygdrive/c/meadow/bin:$PATH export PATH 追記(2007年7月10日)
「Rubyist Magazine - Emacs 上の調べ物は langhelp で!」で「Ri for (X)Emacs」というEmacs(Meadow)上でriが実行できるパッケージが紹介されていたので、ReFeの導入ついでにこちらも入れてみる。 1.まずはダウンロード RubyForge: Ri for (X)Emacs: Project Info 2.適当なディレクトリで解凍、展開する $ gunzip -dc ri-emacs-0.2.3.tar.gz | tar xf - これでri-emacs.rbとri-ruby.elが作成される。 3.ri-emacs.rbとri-ruby.elをロードパスの通ったディレクトリに入れる 例えば、「/cygdrive/c/meadow/site-lisp/」など。 4..emacsにRi for (X)Emacsの設定を追加 ri-rub
html-helper-mode はキーバインドが覚えにくいので psgmlモードを代わりに使うことにした。psgmlモード なら「C-c C-e タグ名 RET」でタグの挿入ができるらしいので、覚えるキーバインドが少なそうだ。 ここから先の内容は、(情報源)の内容の要約版みたいなものなので、詳しくはそちらを参照。 PSGMLの入手とインストール 1.A GNU Emacs mode for SGML filesから「Version 1.3.1」をダウンロードする 2.psgml-1.3.1.tar.gz をロードパスの通ったディレクトリに入れる(C:\meadow\site-lisp とか) 3.psgml-1.3.1.tar.gz を解凍・展開し、そのディレクトリに移動する $ gunzip -dc psgml-1.3.1.tar.gz | tar xf - $ cd psgml-1.
find 検索開始ディレクトリ オプション -exec perl -p -i.bak -e 's/検索文字列/置換文字列/g' {} \; 使用例 find . -type f -exec perl -p -i -e 's/<html>/<html lang="ja">/g' {} \; Perlの各オプションの意味 項目名 意味 -p 入力ファイルから1行づつ取り出して処理し、表示する。 -i ファイルを修正する。拡張子を指定すると、その拡張子でバックアップを取ってくれます。 -e 直後に続く部分をスクリプトとして処理する。 s/検索文字列/置換文字列/g 文字列の置換。検索文字列を置換文字列に置き換える。最後の「 g 」を指定すると、1行に複数検索文字列がある場合、全て置換してくれる。なければ最初の1個だけ置換。 毎回長いコマンドを打つのはめんどくさいので、シェルスクリプトにまとめて、
Meadowを再起動せずに、.emacsの変更を反映させるためには、 .emacsを編集しているバッファで以下のコマンドを入力すればよい。 M-x eval-current-buffer 又は、以下のコマンドでも出来るらしい。 M-x load-file RET ~/.emacs 実際にやってみたんだけど、なぜか w32-add-font: Already registerd BDF M+ font.というメッセージが出て、再読み込みされない。.emacsに書いた「M+ FONT」の設定をコメントアウトすると読み込まれるみたい。うーん、困った。M+ FONTの設定を有効にしたまま再読み込みしたいんだけどな… 参考(というより、そのままパクリました) .emacs を再読み込みする方法 - gan2 の Ruby 勉強日記 追記(2007年8月30日(木)) M+フォントの設定を書いたまま「
画面切り換えなしで、Rubyの編集・読み込み・実行を行いたいなと思ったので、Meadow上でRubyを実行させる方法を調べてメモしておく。 (具体的には、Meadow上でRubyを実行させるために、irbをバッファに開いて使う。) 手順 1.編集したいRubyファイルをMeadowで開く。 2.MeadowでM-x run-rubyと入力。これで下のウインドウにirbが読み込まれる。 3.プログラムの読み込み irbを実行した状態で、C-c C-l RETと入力すると編集中のrubyソースコードのバッファがirbへ読み込まれる。 このようにすれば、Rubyの編集・読み込み・実行が全てMeadow上で出来るので便利。 後で分かったが、inferior-ruby-modeでは日本語が正しく表示されない。inf-ruby.elを読まなくちゃ分からないのかな…とりあえず後回しにして、日本語は使わな
Vim/RubyとWirbleなるツールをインストールして、色分け表示などをできるようにする。 Vim/Ruby:Vimのシンタックスハイライト機能 Wirble:irbのシンタックスハイライト機能 手順 1.CygwinにはデフォルトでRubyのgemが入っていないので入れる gemのダウンロード:RubyGems Guides $ tar -zxvf rubygems-0.8.1.tgz・・・ $ cd rubygems-0.8.1 $ ls ChangeLog Rakefile TODO doc/ gemspecs/ lib/ redist/ test/ README Releases bin/ examples/ install.rb* packages/ scripts/ $ ruby install.rb ・・・ As of RubyGems 0.8.0, library s
このページを最初にブックマークしてみませんか?
『BigFatCatのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く