本を読む

読書やコンピュータなどに関するメモ

Linuxのスクロール方向をOS X Lionに合わせる方法

 MacのOS X Lionではホイールスクロールの向きが従来の逆で、スマートフォンと同じ指の動きになりました。MacとLinuxマシンを交互に使ってると混乱するので、LinuxのほうをLionに合わせてみます。

% xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=11   [slave  keyboard (3)]
% xinput get-button-map 10
1 2 3 4 5 
% xinput set-button-map 10 1 2 3 5 4

「Software Design」2011年8月号

 第1特集は「仮想化時代の統合監視」と題して、Hinemos/Zabbix/Nagiosの比較から、監視項目の決め方、監視の拡張、仮想サーバーやクラウドに固有の注意点まで解説。実システムの例も1pずつ載っていて、AKB 48総選挙の投票システムにはVoltDBが使われていたのか、と本題と違うところでびっくり。監視といえば、mixiの連載も今回はNagiosを使った監視がテーマ。

 あと、松信さんの「データベース技術の羅針盤」連載も、DBを中心に運用技術のポイントを解説している。「実績のある技術を使う」「アーキテクチャを複雑にしない」という問題予防から、監視すべき項目、そのときに着手すべきところなどを挙げている。

 第2特集「Evernote的ドキュメントシステム構築指南」は、羽生章洋さんによる「フォーム化の呪縛」を抜けたサービスという分析のあと、文字認識や、複合機のインターネット連係、全文検索、画像検索、音声検索という構成技術(Eernoteは音声検索はないけど)をそれぞれ紹介。Evernoteを使う人ではなくて、類似のものを作ろうという人向けの内容がSDらしい。

 「PaaS最前線」は、OpenShift(Red Hat)、Cloud Foundry(VMware)、Heroku、DotCloudといった、第2世代PaaSと呼ばれるサービスを並べて紹介。

 ほか、Ubuntu Monthly ReportはOpenStackでプライベートクラウドを作る話。OpenFlow連載は、実際にOpenFlowスイッチとOpenFlowコントローラを動かしてみる話。自作インフラ連載はサーバーの組み立て。Android連載は、NDKの続きで、加速センサと3Dグラフィックス。Objective-C連載はオブジェクト永続化のCore Data。iPhone連載は、Core Animationフレームワークによるアニメーション。VBA連載は、IEを呼び出してGoogle翻訳にアクセスして結果をスクレイピングする話。

「新クロサギ」11巻

新クロサギ 11 (ビッグ コミックス)
黒丸 夏原 武
小学館 (2011-06-30)

貧困ビジネス詐欺編(後半)、出会い工作詐欺編、カード現金化詐欺編(前半)。今回の手口メモは、ネタバレなので「続きを読む」で。

続きを読む »

「MOONLIGHT MILE」22巻

MOONLIGHT MILE 22 (ビッグ コミックス)
太田垣 康男
小学館 (2011-06-30)

 ジュニアが戦い、吾郎がついに立つ。

「FRONT MISSION DOG LIFE & DOG STYLE」7巻

FRONT MISSION DOG LIFE & DOG STYLE(7) (ヤングガンガンコミックス)
太田垣 康男
スクウェア・エニックス (2011-06-25)

 ナイフ1本で女王の盾をいかにかいくぐるか、そして…。読者のカリカチュア的な犬塚も暗躍。

「宇宙兄弟」14巻

宇宙兄弟(14) (モーニングKC)
小山 宙哉
講談社 (2011-06-23)

 ムッタの悪戦苦闘、ヒビトの危機。

「リスキーエッジ」

 麻雀のルールも知らないのだけど、麻雀マンガの「根こそぎフランケン」は好きで、何度も読み返している。その押川雲太朗による「リスキーエッジ」をふと手にとったら、これも面白くてハマった。これがコンビニコミックでしか読めない(つまり、新品がほぼ手に入らない)というのも厳しいな。

 主人公の吉岡は「フランケン」の田村系キャラ。逆境育ちで、傲慢不遜、不利な状況を冷静な判断で凌ぎながら勝機を見逃さず逆転するという、リスキーエッジな打ち筋。まわりのキャラが評していわく「生き方は行け行けだが麻雀に関してだけはマシーンのように冷静」「笑ってやがる。自分を窮地に追い込む事がそんなに楽しいのか」「少しは腕が縮んでもおかしくないんだが 歯をくいしばって自分の麻雀をしてやがる」。勝負のときは食べ物が喉を通らなくなるという描写が何度か出てきて、表紙のキャッチコピーにいわく「爽快感0!」…いやそこまでではないと思うんだけど。

 ほかのキャラも、勝つより負けない麻雀の寺田、超人的な読みのロバートなど、打ち方のキャラクタづけがされていて(っぽい、麻雀よくわからないけど)、卓上での対決自体がいちばんドラマチックになっている。まあそれ以外のストーリーはご都合主義的なところもあるしあっさりした感じなんだけど。

 ところで、鎌田編ぐらいまでとそれ以降とで、話の雰囲気がどことなく違ってる気がする。最初のほうは行き先なくピリピリと綱渡りしてる感じ、後のほうは正面からぶつかっていく感じで。

勝負の最中には楽観も悲観もする必要はないんだぞ

反逆の麻雀 リスキーエッジ 最終決戦
押川 雲太朗
竹書房 (2010-07-16)

「日経Linux」2011年8月号

 特集2「5大Linuxディストロ完全解説」で、Ubuntuのパートを執筆しました。「Unityを中心に」というリクエストをいただいたのをよいことに(?)、Ubuntu自体の説明をさておいて、Unity(UbuntuのUIの)の使い方やカスタマイズ方法を説明しています。自分のところはともかく、Fedora、CentOS、Debian、Knoppixについては、その道のエキスパートの方々が、ちゃんとディストリビューションの特徴を解説していて、参考になると思います。

 特集1「Linuxだからできること50選」は、Linuxのさまざまなアプリの紹介とその使い方を1/2~2ページずつ紹介。いろいろなジャンルにまたがっていて、よく集めたなー。

 特集3が「Linuxカーネルの仕組み」で、うすだひさしさんの栗マンガでカーネルの基礎を解説するという趣向がヘンテコ(ほめ言葉)で面白い。特集4はPT2をlinux 2.6.38で使う話。

 編集部が人事移動だそうで、それにともない誌面レイアウトも少しリニューアルしていました。新連載もいくつか始まっていて、「プリンターを極める」はプリンティングの仕組みを解説。「Upstart完全理解」は、第1回はLinuxが起動するまでの仕組みの説明。「Web感覚で作るAndroidアプリ」はTitanium Mobileによるアプリ開発の解説。「やさしいLinux」の第1回はyumとaptの使い方。「意外とつまづくあんな設定こんな設定」の第1回は、LVMでのドライブ追加など。

 ほか、Matzさん連載はプロセス間通信(パイプ、SysV IPV、ソケット)とZeroMQ。Wakame連載は、IaaS基盤ソフトに必要とされる機能の解説。RHEL 6クラウド連載はPacemakerによる仮想サーバーのフェイルオーバー構成。LPIC連載はファイルシステムやネットワーク。「Linuxカーネルの新機能」はBPF JITコンパイラ。

「ASCII.technologies」2011年8月号

 特集1「Fedora 15に見る最新Linux」が、ディストリビューション紹介に終わってなくて、カーネルやブートシステム、仮想化、GNOME、KDE、セキュリティ、LibreOfficeなど最新Linux動向を解説していて参考になった。

 特集3「論理回路でわかるCPUの仕組み」は、AND回路やOR回路などの話から始まって演算やフリップフロップ、カウンターなどに進むという、そういえば一般向け雑誌では最近見なくなったなという題材で、なつかしい。

 特集2がWindows Server 2008 R2で、仮想マシンのダイナミックメモリやRemoteFXなどについて。連載「明日木大学技術育成部」はグラフ探索の基礎。

 で、編集会議(編集後記)コーナーで、休刊の話が…残念。

「WEB+DB PRESS」vol.63

WEB+DB PRESS Vol.63
WEB+DB PRESS Vol.63
posted with amazlet at 11.07.08
竹迫 良範 和田 卓人 じゅんいち☆かとう 太田 昌吾 小野 修司 ミック 嶋田 裕二 個々一番 みやけん 清水 亮 おにたま 中島 聡 角田 直行 はまちや2 上谷 隆宏 青木 俊介 大塚 知洋 生尾 剛士 大和田 純
技術評論社
売り上げランキング: 518

 特集1が「WEB開発の「べし」「べからず」」で、想像以上に面白かった。こういう企画って、えてして一般化しすぎてどこかで聞いたような一般論や精神論になってしまいがちなのだけど、この特集ではコーディング・テスト・データベース・インフラのテーマごとにほどよく具体的に解説していて、参考になる。

 特集2がpixivのシステム構成の紹介。どうしてもベニヤ板サーバーの印象があるのだけど、サービスの成長にともなって起きた問題とそれぞれごとにとった対策が紹介されていて、読みごたえがある。特集3は「作って学ぶOAuth認証」で、OAuth 1.0/2.0についてわかりやすく解説している。

新連載が続々登場していて、UEIの清水亮氏によるインタビュー「フロンティアたちの哲学」はTogetter吉田氏。mixiの「帰ってきた大規模Webサービスの裏側」は、バーストトラフィックでスイッチのバッファがあふれた事例。「Rubyわくわくナビ」は、ArrayやHashなどRuby 1.9で地味に追加されているメソッドの紹介。「再考するJava」は、コレクションのクラス構成。「JavaScriptベストプラクティスラボ」は、開発環境やデバッグなど。

 .NETプラットフォームに関する記事が、新連載の「いまどきの.NET開発」と単発の「ASP.NET MVCとWindows Azureを活用したHTML 5 Webアプリ開発」の2本載ってたのも印象的。

 そのほか、「SQL緊急救命室」がUNIONの使いすぎの話。「Perl Hackers Hub」が、高速なWebAPIサーバーを作るポイントや、データベースまわりのテスト。「モテモテPHP」がPHPからNoSQLを使う方法とmemcachedを素で呼ぶ方法。「スマートフォン開発倶楽部」がAndroid 3の話。

IPv4接続でwww.kame.netの亀を踊らせる方法

 www.kame.netを開いてロケーションバーにこう(↓)入力してEnter。

javascript:void($("div.center>img").attr("src","/img/kame-anime-small.gif"))

 意味はまったくありませんが。

 ところで、これを試して知ったんですが、www.kame.netってjQueryを読み込んでるんですね。

Shibuya.pmテクニカルトーク#16をustで見ました

 Shibuya.pmテクニカルトーク#16が開催されたので、ustで見ました。参加申し込みは、あいかわらず瞬殺でしたね。

 今回のテーマは「夏の正規表現祭り」。いずれもマニアックかつ現実的な話で、とても面白く視聴していました。

 以下、メモ。

Dan the (Irr|R)egular Expressionist (@dankogai)

  • 「すべての魔女を消し去りたい」
    • s/魔女//g
    • 命かけるなコード書け
  • 正規表現はついつい使いすぎる
  • 正規表現厨の典型症状
    • /^(XX|YY)$/
      • ハッシュで
      • スマートマッチもある。遅いがエレガント
    • メールアドレス
  • use Regexp::Common
    • IPv4アドレスにマッチする正規表現
  • use REgexp::Assemble
    • alteration:文字列|文字列、のパターン
      • 頭からマッチする
      • character class([])はビットマップを作る
    • TRIEを作る
    • 実はPerl 5.10以降はTRIE Optimizationしてくれる
      • どのalterationにマッチしたかまでは取れない
  • 同じ修飾子を複数指定
    • ふつうは意味がかわらない
    • eだけは、その回数だけevalする
  • JavaScriptの正規表現は弱い
  • 正規表現はPerlに自然にとけこんでいる
  • Mac OS X Lion
    • MacPortsからパッチをもってくる

正規表現 - もう一つのバベルの塔 (木村浩一)

  • 「正規表現メモ」
    • ある意味黒歴史
    • 本の執筆の話をもらったが…
  • [[:<:]]と[[:>:]]
    • Tclで使える
    • 単語の境界にマッチ
  • [= =] [. .]
    • POSIXで定義
    • ほとんどサポートされてない
    • [= =]:アクサンテギュやウムラウトが付いたものもマッチ
    • [. .]:スペイン語で、英字だと2~3文字になるが1文字扱いになるものを1文字に
  • 幻のJPerl 5.6
    • dankogai「Javaで実装されてます(嘘)」
    • あるときを境にJPerlは出なくなった
      • Perl 5.6の正規表現で戻り読みが入った
        • 日本語では1文字=1バイトと限らない
      • それだけではないが
  • 大まかな正規表現の分類:3種類(木村説)
    • POSIX基本(grep、ed)
    • POSIX拡張(egrep)
    • Perl拡張(ひとくくり)
  • 文字クラスとlocale
    • awk 4.0リリース
    • [a-z]がマッチする対象

Hello, re::engine! (@__gfx__)

  • 正規表現関連の成果
    • HTML::FillInForm::Lite
    • Text::Xslate
  • re::engine
    • Perlの正規表現演算をオーバロードできるようにする
    • Perlコアと正規表現エンジンを独立させた
  • 素数にマッチする正規表現
    • use re::engine::RE2
  • コードを修正しなくてもエンジンを差しかえられる
  • 関数ポインタをvirtual tableに入れてディスパッチ
    • PerlIOやMAGIC変数でも使われるテクニック
  • (壇上でプレゼンをgit commitとgit push)
  • re::engne::PCRE
    • PCREをPerlから利用できるw
  • re::engine::Oniguruma
    • バックトラックに強い(セグフォしない)
  • re::engine::RE2
    • 速い、ただし低機能
  • re::engne::boost
    • 遅すぎる
  • re::engine::Plugin

正規表現の限界 (@sinya8282)

  • サイボウズ・ラボユースで正規表現エンジンの開発
  • 複雑な正規表現
  • 前提:ここでいうのはpureな正規表現
  • 基本:連接、選択、閉包の3つの演算だけで書ける
    • 簡単?
  • 否定:マッチしない正規表現
    • /a*/ → /.*[^a].*/
    • /abc/の否定は? /abc|efg/の否定は? /.*abc.*/の否定は?
    • なぜ難しいか
      • 正規表現からDFAを作ることとほぼ同義
        • 受理と非受理を入れかえればいいだけ
      • 正規表現→NFA→DFA→否定のDFA→GNFA→否定の正規表現
    • 任意の否定表現を生成するツールを作ってみた
      • (えらいことに…)
    • 否定は正規表現の限界を超えてはいない
  • 正規表現で表現できないもの
    • ネスト
      • 括弧の対応
      • 四則演算のBNF
  • 再帰の深さを限定すれば、有限の状態で表せる
    • 文字列長がNであれば再帰の深さは高々N
    • カッコの中にまた正規表現
    • レベル5だと2000文字ぐらい
    • 前のレベルの*2+35文字(漸化式)
  • 実用的には再帰回数よりマッチ対象文字列の長さで制限?
    • 140字以内の完全な四則演算を認識する正規表現:約40ゼタ文字
  • Q: 否定対応エンジン
    • A: LTで
  • Q: ピュアな正規表現にこだわるのは
    • A: DFAに変換できる。研究テーマ、DFAの並列化

LT:僕の考えた世界最強の正規表現エンジン(速けりゃイイじゃん?) (@sinya8282)

  • 実装しようとしているエンジンの紹介
  • どう実装しよう
    • 速度、速度…
    • 速度と機能は反する?
  • Regen
    • Regular Expression Gererator
    • 正規表現からいろいろなものを生成
      • x86コード、DFAグラフ、正規表現
  • 高速化
    • DFAベースのマッチング
    • コード生成(Xbyak)
    • 並列DFAマッチング
  • 期待してね
  • https://github.com/shinya8282/regen

LT:Plaggerで覚えたPerlの正規表現 (@yusukebe)

  • 2006年夏、ぼくは正規表現を覚えた
  • それ、Plaggerで
    • EFTの設定
    • 30個のエロYAML
      • いまではないサイトも
  • エロサイトも作ったよ
  • 初心者の時は既存プロダクトをいじるといいよ

Regexp::Assembleとかそのへんの話 (@yappo)

  • 住所を抜き出して位置情報を取ってGoogle Map
  • 膨大な住所情報を手作業でやってられない
  • 膨大なので圧縮したい
  • 最適化、ベンチマーク
    • だいぶ差
  • Regexp::Optimizer
    • コンパイラが通らなかった
  • Trie::Optimizer
  • だがRegexp::Asssembleをおすすめ
    • メンテされてる

再帰的正規表現 JSON Validator (@TAKESAKO)

  • PCRE拡張
    • (?(DEFINE) …) パターンを定義
    • (?R) 再帰
      • (?0)(?1)(?2) 任意のキャプチャ部分の再帰
  • 再帰的正規表現 便利

僕と契約して、(ry (@sugyan)

  • Quine
    • RubyでQB
      • 目の色が変わったり、セリフが変わったり
    • Perl版
    • JavaScript版
  • evalとprint以外は好きに書ける
  • なんとなくuse utf8って書きたくなかったので
  • 文字数を合わせる
  • ちょっとだけ正規表現使ってますw

色々なものを正規に表現してみよう (@nipotan)

  • 正規表現共有サイト
  • 電話番号
    • 残念
  • Number::Phone::JP
    • 存在しない番号にマッチしない
  • Number::Phone::JPを使ってるモジュールの例
    • Data::RuledValidator::Plugin::Japanese
  • 郵便番号
    • 存在しない番号が圧倒的に多い
  • Number::ZipCode::JP
    • 昨日CPANに上げた
  • 誰得?
    • MySQLで郵便番号をprimary keyにしたテーブルと、判定比較
      • 若干速いw
  • 適当に書かれたデタラメの正規表現に騙されないように

execによるリダイレクトで番号を自動で割り振る

 シェルスクリプトのリダイレクトでは、execを使うと一般的なプログラミング言語のopenみたいなことができます。

exec 5> out.txt

 こうしておいて、ファイルディスクリプターの5番にリダイレクトしてやれば、out.txtに出力されます。

ls >&5

 クローズは“番号>&-”。

exec 5>&-

 ただ、これだと空いてるファイルディスクリプター番号を自分で管理しなくてはなりません。そこで、最近のbash(4.1以降)やzshでは、数字のかわりに変数を指定すると、自動で割り振ってくれます。

exec {fd}> out.txt

 こうするとファイルディスクリプター番号が自動で割り振られて、その番号が変数fdに入ります。あとは番号のかわりに変数を指定します。

ls >&$fd
exec {fd}>&-

 …ただ、実際には多くの場合、execを使わなくてもコマンド群を{}や()で囲ってリダイレクトすれば済んだりするんですが。

参考:bash(1)、zshmisc(1)

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly