タグ

ブックマーク / emasaka.blog.fc2.com (16)

  • 本を読む pdfgrepでPDFをgrepする

    タイトルで出オチのような気もしますが、LinuxにはPDFファイルをgrepするpdfgrepというコマンドがあります。UbuntuやFedora、Debianなどでは標準リポジトリからインストールできます。 $ sudo apt-get install pdfgrep 正規表現はPOSIX拡張正規表現です。-Hオプションでファイル名が、-nオプションで該当するページ番号が付きます。 $ pdfgrep -Hn --color auto 'Dash|ダッシュ' *.pdf UM06_P008-010.pdf:2: ダッシュして UM06_P011-033.pdf:8: Dashホーム UM06_P011-033.pdf:8: と、Dashがデスクトップ上にオー UM06_P011-033.pdf:8: バーレイ表示される。DashはWi UM06_P072-085.pdf:3: をDash

  • 本を読む シェルでバックグラウンドジョブの起動メッセージを出さないようにする

    小ネタ。 bashやzshで、コマンドラインからバックグラウンドでコマンドを実行すると、ジョブ番号の起動メッセージが表示されます。PROMPT_COMMANDとかprecmdとかでコマンドをバックグラウンド実行するときなどには、ちょっと邪魔です。 $ sleep 3 & [1] 24616 このメッセージはシェル自身が表示しているので、もちろんリダイレクトは効きません。“set +m”すると出なくなりますが、以後すべて出なくなるものなので、戻してやるのが面倒なため、避けたいところです。あと、bashだとうまくいきませんでした。 % set +m % sleep 3 & で、サブシェルからバックグラウンド実行してみました。 $ (sleep 3 &) めでたしめでたし。

  • 本を読む Emacsの正規表現置換で“\#”のフォーマットを変える

    最近のEmacsでは、正規表現置換(replace-regexpやquery-replace-regexp)の置換後パターンの中に“\#”があると、そこに何番目の置換箇所かの連番数字が入ります。たとえば、“^”を“\#: ”に置換すると、各行頭に“10: ”のような行番号が挿入されます。 ただ、以下の制限があって、ときどき不便を感じます。 0オリジン固定 数値のフォーマットが固定。“01”とか“ 1”とかにできない そこで、Emacs Lispのadviceを使って動作を変えてみます。コードはこんな(↓)感じ。 やっていることは、query-replace-compile-replacementの結果を横取りして、“(number-to-string replace-count)” を “(format *replace-count-format* (+ replace-count *re

  • 本を読む ママ、どうして/usr/binにcdがあるの?

    FreeBSDとかMac OS XとかOpenSolarisとかには、/usr/bin/cdというコマンドがあります。定期的にMLなどで話題にのぼる、自転車置き場の議論(bike-shed discussion、略してBSD)の定番ネタのようです。 このコマンドは、もちろん内蔵コマンドのcdのような動作はしません。呼び出し元とは独立したプロセスなので、呼び出し元のシェルに影響を与えません。 なんのためにあるか なんでそんなのがあるかというと、POSIXで「シェルの内蔵コマンドもexec系のシステムコールでアクセスできるべし」と決められてるからだそうです。「特別な内蔵コマンドを除き」ってありますが、cdは入ってませんね。 all of the standard utilities, including the regular built-ins in the table, but not t

  • 本を読む 「新春座談会 このコンピュータ書がすごい! 2011年版」をustで見た

    トークイベント「新春座談会 このコンピュータ書がすごい! 2011年版」をustreamで見ました。 とりあえずメモそのまま。ぼーっと見ていたのでちゃんと追えてません。 年間1位(書名発表後からust開始) 担当稲尾さん 去年以前出たを紹介14位「マスタリングTCP/IP」 第4版 おなじみ 10位「現場のプロから学ぶXHTML+CSS」教科書的定番 19位「エンジニアが教えるミックス・テクニック99」ここしか AndroidiPhone去年は、特にiPhoneAndroidはあまり出ていなかった 去年、機体がいろいろ出た iPhoneiPadブームiOS系 ジャンルを絞ったがいろいろ出た「iOSデバッグ&最適化技法 for iPad/iPhone」 「基礎から学べる組み込みAndroid」 「AndroidアプリUIデザイン&プログラミング」 同じシリーズでiPhone・And

  • 本を読む 関数型言語shの基礎文法最速マスター

    関数型言語shの文法一覧です。他の関数型言語をある程度知っている人がこれを読めば、shの基礎をマスターしてshを書けるようになっています。以下、Clojureあたりを想定して説明します。 注意:これは基礎文法最速マスターねたのパロディです。動作は物ですが、意味はコジツケです。 REPL shの処理系は、POSIX準拠のUnix系環境であれば標準で用意されています。REPLを起動するには、shを実行します。 sh すると、プロンプトが表示されます。 $ shのほかに、REPLに行編集機能を付けたbash・zsh・tcshなどもありますが、ここでは割愛します。 なお、REPLとして使うほかに、あらかじめ用意したスクリプトをshで実行することもできます。 sh hoge シーケンス shの扱うデータは、すべて、ある単位(ラインと呼びます)のデータが並んだシーケンスです。たとえば、seq関数(L

  • 本を読む うろ覚えでKanzenの辞書データ構造をまねてみる

    発端 twitterでつぶやいてみました。 Lispの人って、シンボルシンボルと連呼してエッチですね …じゃなかった、こっちこっち(↓)。 Kanzenの辞書はS式によるTRIEで持っていた記憶があるけど、どんな構造だったっけかな KanzenはLispマシンのTAO/ELIS上で動く漢字入力システムで、SKKの原型です(実装はまったく別)。とりあえず、うろ覚えで、Emacs Lispを使ってデータ構造を再現してみます(うろおぼえ選手権的な意味で)。 こんな構造にしてみます。 ("k" (("a" (("o" . "顔") ("n" (("j" "i" . "漢字") ("z" "e" "n" . "完全"))))) ("u" "r" "u" "m" "a" . "車"))) 1文字ごとのTRIE構造 文字列はcdr方向に伸びる 各セルのcdrは: 候補が1つなら、その文字 候補が複数なら

  • 本を読む YAPC::Asia 2009に参加

    毎年恒例となった、世界的Perlイベント「YAPC::Asia」が今年も日で9月に開催されました。今回はJPA(Japan Perl Association)主催です。 毎度ながら、とてもわくわくしながら話を聴かせていただきました。ライブラリ作者のスピーチが多いせいか、参加するとなんらかのコードを書きたくなるイベントですね。特にスタッフやスピーカーの方々、ありがとうございました。 そうそう、ダラクこと「Acme大全」も買いました。無駄にパワーがかかっていて、すばらしい内容です。 イベントから1か月弱たって、すでにレポートがWebに出尽してますし、状況が変わっている部分もあると思いますが、以下、自分のためにメモをまとめておきます。 前夜祭 前夜祭は、Yokohama.pm出張版として開かれました。前夜祭といいつつ、旬のネタを押さえているところがニクいですね。ロビーではシュウマイパーティも

  • 本を読む 「Shibuya.lispテクニカルトーク#3」観覧

    Lispコミュニティ「Shibuya.lisp」のテクニカルセミナーイベント「Shibuya.lispテクニカルトーク#3」が開催されました。今回はGaucheの川合史朗(Shiro)さんも登壇するなど、やはりすごく面白い話をいろいろ聞けました。 以下、観覧メモ。間違いがあったらご指摘ください。 今回は、メイントークでCommon Lispの2件も継続を活用していたのが印象的でした。継続は力なり。あと、Lispとは関係ありませんが、なぜかプレゼンターのうち2人もタイル型ウィンドウマネージャを使っている方がいました。 開会の挨拶(佐野匡俊) 前回からのアップデートが紹介されました。なんといっても、Shiroさんが開発した、Lingrを継ぐチャット「Chaton」が大きいトピックでした。一方、逆引きCL/Scheme/Clojureは停滞ぎみで、知りたい側の人の声が欲しいとか。 次回のテクニカ

  • 本を読む IIJのMapReduce実装「ddd」

    IIJMapReduce実装である「ddd」(Distributed Database Daemon)の話を聞いてきました。立ち話なのでごくさわりの部分だけでしたが、以下にメモしておきます。素人なので、理解が間違っていたらごめんなさい。 インターネットバックボーンのルーターの莫大なログを集計してトラフィックを解析するために開発 (emasaka注:元から散らばっているログを一箇所に集めずに集計できるので、MapReduce系に向いた用途か) GoogleMapReduce論文を参考にフルスクラッチで実装 WinnyっぽいP2P技術も採用 Key-Value Storageによる分散ハッシュテーブル Amazon Dynamo? ノードを増やせばそれだけスケールするスケーラビリティ ノードが落ちてもほかのノードにもデータがある可用性 マスターがなくすべてのノードが完全に対等なP2P構成

  • 本を読む 「Debug Hacks」出版記念イベント

    書籍「Debug Hacks」の発売記念トークイベントが、新宿のジュンク堂で開かれた。ちょうど持ってなかったので、買いがてら、イベントに参加してみた。 今回は、内容とかの技術的な話じゃなくて、執筆裏話が中心。作業工程の話がいろいろ聞けた。バタバタしながらも、オンスケジュールで出版できてよかったですね。 の中身はこれから読みます。以下、メモ(敬称略)。 自己紹介 大岩 発起人のひとり 大和 大岩と、を書きたいねといってたら実現 吉田 あとから参加 仮想化あたりを担当 自分のがオライリーから出るなんて イベントやって、人気作家みたいでうれしい 安部 発起人の3人のひとり 島 コントリビューター ミラクルではない 安部の知り合い アメリカからリモートで執筆 裏話 源流の源流(大岩) 社内で20%ルールを検討 結局やらなかった でも自分は開発したいものはない ではを書こう ダンプの見方と

  • 本を読む UbuntuなノートPC上にDebian sidのchroot環境を作る

    Debian sidのLinux環境が必要なとき、ハッカーな人なら普通にインストールとかするのでしょうが、ヘタレな私には避けたいところです。そこで、ノートPCで使っているUbuntu上に、chroot環境としてsid環境を作ります。 わかっている人には常識かもしれませんが、とりあえず次回のために作業メモを残しておきます。間違いなどありましたらご指摘ください。 chroot環境ってなに? chrootはUnix系OSのシステムコールで、指定したディレクトリを現在のプロセスのルートディレクトリに設定するものです。たとえば、/usr/localにchrootすると、/usr/local/binが/binとして見え、かわりに/usr/localの外が見えないようになります。 これを使い、どこかのディレクトリ以下にLinux環境一式を作って、そこにchrootすれば、あたかも別のLinux環境にログ

  • 本を読む スクリプト先頭の「#!」に相当する記号をLinuxに追加する

    Unix系OSでは、ファイルの最初の行に「#!」で始まる行を入れると、続けて書かれたコマンドにより以降を実行します。 最近のLinuxでは、同様のことをユーザーが設定できるbinfmt_miscというしくみ(カーネルモジュール)があるということを、「東京エリアDebian勉強会」という勉強会で知りました。さっそく試してみます。以下、Ubuntuでの例です。 まず、binfmt_miscモジュールを確認します。 $ lsmod | grep binfmt binfmt_misc 16904 1 入っています。標準で定義されている設定は、こんな感じです。 $ ls /proc/sys/fs/binfmt_misc cli jar python2.5 register status さて、以下のPerlスクリプトを用意します。「#!」行はわざと省略しています。 use strict; use w

  • 本を読む ファイルを作ってからchmod 600するのはセキュアじゃない

    「どう書く?org」でさんざんふざけた回答を投稿しまくっている私なんですが、自分のことを思いきり棚に上げてツッコんでみます。もし、これで参考になる方がいらっしゃればと。 「ACLの制御 どう書く?org」というお題が出されて、「セキュリティ」というタグがついています。これに対して、ファイルを作ってからアクセス権限を変更する回答がいくつか寄せられています。 これは、セキュリティとしてはヤバいパターンではないかと思います。簡単にいうと、ファイルを作ってからchmodする間にopenしてしまえば、アクセス制限は適用されないからです(少なくともUnix系OSでは)。 回答されている方々は理解したうえでお題の要求に答えているからいいのですが、知らない方々が見ることを考えると、ちょっと危険かなと。いや、セキュリティは私も苦手なんですが。 実験してみましょう。まず、ファイルを作ってからchmod 600

  • 本を読む ジュンク堂トークセッション「新春座談会 このコンピュータ書がすごい2009」

    書店のジュンク堂池袋店で「新春座談会 このコンピュータ書がすごい2009」というトークイベントをやっていました。私は自重しない大人なので、喜んで聴きに行ってきました。いや、自重する必要はないんですが。 「座談会」とか「売りあげランキング」とかいうのをそっちのけで、司会の高橋征義さんが早口で2時間、好きなコンピュータ書について熱く語りまくっていたのが印象的でした。がすごく好きなんだなー。 とりあえず、以下、会場でとったメモ。 ほか、「高橋会長の『このコンピュータ書がすごい!2009年版』@ジュンク堂書店池袋店を生中継するよ!(→したよ!) - OneRingToFind by 榊祐介」が、内容もビジュアルも充実していて、とてもいいです(2009.1.11追記)。 高橋さん: 私はただのコンピュータ書読み 出版社の方々に声をかけました 技評:稲尾さん WEB+DB PRESS 雑誌の編集なの

  • 本を読む GREE LabsでHadoopの話を聞いてきた

    GREEさんで不定期でやってる、GREE Labsオープンソーステクノロジー勉強会で、Hadoopの話を聞いてきました。Hadoopは、つまりはGoogleのGFSやMapReduceのクローンだそうで、「Googleを支える技術」にトキメいた人なら必見ですね。 発表は、技術面を簡潔に押さえたうえでわかりやすく、そのうえ実際の利用事例の話も聞けたのが面白かったと思います。最近のWeb系では、サービス面でもマネタイズ面でも、データマイニングとか行動ターゲティングとかがアツいんだなぁと思いました。 プレゼン資料もust録画も公開されていますが、以下、自分のメモという意味で記録しておきます。 Hadoopについて(太田一樹) Preferred InfrastructureのCTOで、Sedueの作者。大量のデータの処理がテーマで、半分は酒でできているw。そんなこんなで、はてブ検索でも使われてい

  • 1