タグ

ブックマーク / 0xcc.net (26)

  • Epeg で JPEG ファイルのサムネイルを高速に生成する - bkブログ

    Epeg で JPEG ファイルのサムネイルを高速に生成する Epegは JPEG ファイルのサムネイル (縮小画像) を高速に生成するライブラリです。JPEG に特化した手法でサムネイルの処理を行うため、内部的に画像をビットマップに伸張せず、高速かつ少ないメモリで処理できるのが特徴です。 インストール Epeg は Debian パッケージになっていないようなので、ソース (ダウンロード) からインストールしました Epeg は内部的に libjpeg を使っているため、Debian GNU/Linux では sudo apt-get install libjpeg62-dev で事前にインストールしておく必要があります。 Epeg そのものは ./configure && make && sudo make install でビルド・インストールできます。 サンプルコード Epeg の

    ziguzagu
    ziguzagu 2009/04/23
    GraphicsMagickだとどうなるかな
  • Unicode の文字列をエスケープする JavaScript - bkブログ

    Unicode の文字列をエスケープする JavaScript Unicode の文字列を \uXXXX (UTF-16) と \xXX (UTF-8)、&#DDDD (数値文字参照)、Base64, Quoted-printable、 URL などの形式でエスケープする JavaScript です。

  • いやなブログ: 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す

    普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで

    ziguzagu
    ziguzagu 2007/06/13
    ptraceでいぢる
  • 特別扱いする - 学校では教えてくれないバッドノウハウ英語 #9 - bkブログ

    特別扱いする - 学校では教えてくれないバッドノウハウ英語 #9 学校では教えてくれないバッドノウハウ英語の9回は、special case ~という動詞の表現を取り上げたいと思います。 "special case" は通常、「特別な場合」という意味の名詞として使われます。しかし、英語も日語と同様に、名詞は動詞化する傾向があるため、"special case" は「特別扱いする」という意味の動詞としてもよく使われます。 例) I didn't want to special case IE4 but I had to... IE4 を特別扱いしたくなかったんだけど、避けられなかったよ。。 Would it be possible to special-case this file so that we don't have to worry about it? このファイルのことを気にし

  • 数字に関する短縮記法 - 学校では教えてくれないバッドノウハウ英語 #8 - bkブログ

    数字に関する短縮記法 - 学校では教えてくれないバッドノウハウ英語 #8 学校では教えてくれないバッドノウハウ英語の8回は、数字に関する短縮記法を取り上げたいと思います。 2x, 10x, ... ソフトウェアの開発では、性能が2倍になった、などのように数字が何倍になったかを議論することがよくあります。このようなときに便利なのが数字の後ろに x をつける記法です。 例) C++ is 10x faster than Perl for this kind of application. この手のアプリには C++ の方が Perl より10倍速いよ This simpler code gained a 5x performance improvement. もっと単純なこのコードで 5倍の性能改善が得られたよ。 上の例は x を使わない場合、 ten times faster や five-

  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • デバッグに使えるサスペンス用語 - 学校では教えてくれないバッドノウハウ英語 #7 - bkブログ

    デバッグに使えるサスペンス用語 - 学校では教えてくれないバッドノウハウ英語 #7 学校では教えてくれないバッドノウハウ英語の7回は、"post-mortem", "tombstone", "culprit" を取り上げたいと思います。いずれもデバッグに関する議論で使える表現です。 "post-mortem", "tombstone", "culprit" の通常の意味はそれぞれ「検死」「墓石」「容疑者」です。どれもサスペンス映画に登場するような言葉ですが、ソフトウェア開でも、デバッグという一種のサスペンスの場面で使われます。 "post-mortem" は、プログラムの検死、すなわち、プログラムがなぜ死んだのかを原因調査すること、または調査結果を意味します。 例) We should perform a post-mortem analysis to make sure this doe

  • 実用上OK - 学校では教えてくれないバッドノウハウ英語 #6 - bkブログ

    実用上OK - 学校では教えてくれないバッドノウハウ英語 #6 学校では教えてくれないバッドノウハウ英語の6回は、"in practice" を取り上げたいと思います。ソフトウェアの設計に関する議論などで役立つ表現です。 ソフトウェアの設計にはトレードオフがつきものです。速度を追求しようとすればメモリの消費が増えたり、メモリを節約しようとすればプログラムが複雑化したりと、さまざまな面でトレードオフが発生します。 すべての条件を満たす理想の設計は存在しないため、実用上問題にならない要素については割り切る必要があります。そこで便利なのが今回紹介する "in practice" という表現です。 "in practice" は「実際上」「事実上」「実用上」といった意味を表します。同様の意味は副詞の "practically" でも表せますが、"in practice" の方が多少、フォーマルっぽ

  • 動くようにする - 学校では教えてくれないバッドノウハウ英語 #4 - bkブログ

    動くようにする - 学校では教えてくれないバッドノウハウ英語 #4 学校では教えてくれないバッドノウハウ英語の4回は、"get it to work" を取り上げたいと思います。トラブルシューティングの場面で使える表現です。 "get it to work" の直訳は「それを動くようにする」です。簡単にいえば「動かす」です。典型的な用例は I can't get it to work で、「動かせねー!」というときに使います。 例) I tried all sorts of things but just could not get it to work. いろいろやってみたけど、動かせなかったよ。 I couldn't figure out if there was a way to get it to work. 動かす方法があるかわからんかったよ。 Do you happen to

  • もし必要なら - 学校では教えてくれないバッドノウハウ英語 #3 - bkブログ

    もし必要なら - 学校では教えてくれないバッドノウハウ英語 #3 学校では教えてくれないバッドノウハウ英語の3回は、"if need be" を取り上げたいと思います。"if need be" はソースコードのコメントの中でとりわけよくみられる表現です。 "if need be" の意味は「もし必要なら」です。同じ意味を表す "if necessary" という表現も一般的ですが、"if need be" の方が2文字分短いためか、"if need be" の方を好むプログラマも多いようです。 例) // Change the font size if need be. // フォントサイズを変更する、必要なら。 We could help improve the test coverage if need be. 必要ならテストカバレージの改善を手伝ってもいいよ。 この表現はメールでもよ

  • やっとくよ - 学校では教えてくれないバッドノウハウ英語 #2 - bkブログ

    やっとくよ - 学校では教えてくれないバッドノウハウ英語 #2 学校では教えてくれないバッドノウハウ英語の2回は、"Will do." を取り上げたいと思います。主語も目的語もなく Will と do とピリオドだけで構成される、テストでは 0点をもらいそうな表現です。 この表現に初めて出くわしたのは、私が出した "I think it would be good to handle this case (この場合も処理したらいいと思う)" といった感じのメールに対する返信の中です。 そのときの返事は "Will do." の一文しかなく、主語が省略されているため、肝心の「誰がやるのか」という点がはっきりせず、もしかして、 "You will do that (お前がやる)" だったらどうしようとかなり焦りました。結局、省略されていた主語は "I" で、 "I will do that (

    ziguzagu
    ziguzagu 2006/12/05
    will do.
  • こうすればうまくいくよ - 学校では教えてくれないバッドノウハウ英語 #1 - bkブログ

    こうすればうまくいくよ - 学校では教えてくれないバッドノウハウ英語 #1 宮川さんの人気企画「学校では教えてくれないエンジニアリング英語」に便乗して、私もソフトウェア開発に使えるフレーズ、とりわけバッドノウハウ的な場面において役立つフレーズを紹介していこうと思います。第1回は "do the trick" です。 do the trick は「こうすればうまくいくよ」というときに使えるフレーズです。日常会話にも使えますが、とりわけ「うまくいかない」「うまくいった」という場面が多く発生するソフトウェア開発では特に便利なフレーズです。 例) In that case, setting LD_ASSUME_KERNEL=2.4.19 should do the trick. それなら、 LD_ASSUME_KERNEL=2.4.19 をセットすればうまくいくはず。 Heh, this seem

  • いやなブログ - スルー力カンファレンス (スルカン) 開催決定!

    スルー力カンファレンス (スルカン) 開催決定! ものごとをやり過ごしたり見て見なかったことにしたりすることを「スルーする」と呼ぶようになって久しい今日この頃ですが、このたび「スルー力」、すなわち、スルーする力に関する、 ITエンジニアのためのカンファレンスを開催することになりました。ユニークな下でおなじみの某社CTOをはじめとする豪華なスピーカ陣による講演が行われる予定です。 「人生の大半の問題はスルー力で解決する」とはスルー力研究の専門家の間では共通のコンセンサスですが、昨今頻発するネット上での炎上事件、人間関係上のストレス問題、あるいは仕事上での燃え尽きの多発などの事情から、スルー力に対する社会的、特にITエンジニアの間での認知度が足りないのではないか、という問題意識が今回のカンファレンス開催の背景にあります。 現在、スピーカは調整中の段階にありますが、スルー力のベストプラクティス

  • いやなブログ - PuTTYのフォントを「モトヤシーダ1等幅」に設定する

    PuTTYのフォントを「モトヤシーダ1等幅」に設定する PuTTY のフォントを「モトヤシーダ1等幅」に設定してみました。小さいサイズでの視認性は MSゴシックと同等に高く、文字を大きくしたときに断然きれいなのがいい感じです。 PuTTY (私は日語版を使っています) のフォントはデフォルトでは Terminal に設定されています。これは視認性の高いビットマップフォントです。 しかしながら、ビットマップフォントゆえに、私がよく使う「最大化されたときだけフォントの大きさを変更する」という機能と相性が良くありません。この機能はウィンドウを最大化したときに、端末の桁と行を増やす代わりにフォントを大きくするもので、PuTTYの設定の「ウィンドウ」の欄にあります。

  • Binary Hacks in Action - bkブログ

    Binary Hacks in Action Development Environment Conferenceで15分ほど喋った内容のスライドを公開しました。 最後のスライドで、来月にオライリージャパンから出版予定の Binary Hacks の宣伝をさせていただきました。従来、あまりまとめられることがなく「知る人ぞ知る」的な存在だった低レイヤの技術のノウハウを集めて誰にでも使えるようにすることが書の目的です。ご期待ください。

  • いやなブログ - JavaScript ではてなブックマーク数を表示

    JavaScriptはてなブックマーク数を表示 はてなブックマークのブックマーク数は人気の指標として参考になります。このブログでは各エントリの末尾に、ブックマーク数を画像で取得する API を使って、ブックマーク数を表示するように設定しています。 ブログシステムのようにテンプレートを使える場合は、ブックマーク数を表示する HTML をたくさんのページに貼り付けるのは簡単ですが、そうでない場合はなかなか面倒です。そこで、ここでは JavaScript を使ってはてなブックマーク数を表示する方法を紹介します。 やり方 まず、次のような JavaScripthatena-bookmark.js として保存してウェブに置きます。 function makeHatenaBookmarkLinks() { return ("<a href='http://b.hatena.ne.jp/ent

  • 詳解UNIXプログラミング - いやなブログ

    詳解UNIXプログラミング いつか全部読もうと思いつつ、長らくつまみ読みしかしていなかった『詳解UNIXプログラミング』を、ようやく思い立って最初から最後まで読みました。 こののすごいところは、ほとんどすべてのページに、Unix のシステムプログラミングを行う上で重要なことが書かれていることです。書を通読しながら、「こんなこともできたのか」「こんな落とし穴があったのか」「こういう仕組みだったのか」といった発見が数え切れないほどありました。 買った当初は、とりあえず持っておいて必要なときにリファレンス的に使えばいいや、と考えていたのですが、リファレンスというものは「何ができるか」をある程度知っていないと有効に活用できません。そういった意味でも通読して、Unix のシステムコールでどんなことができるのかを一通り知ったのは大きな収穫でした。 書では全編を通じて、システムプログラミングにあり

  • ハッカー養成塾: 深追い、佳境、バッドノウハウ

    最終更新日: 2006-01-31 オープンソースマガジン2006年3月号に向けて書いた記事の元の原稿 です。 ハッカーウォッチャー 前回の武藤健志さんからバトンを受け取った高林です。ハッカー養 成塾の講師という大変な役目を軽々しく引き受けてしまいましたが、 筆者などは、むしろ出来の悪い塾生といったところが当です。 しかし、どういうわけか、これぞハッカーという人たちと知り合う 機会には恵まれてきました。稿では、彼らを観察して得られた知 見を元に、ハッカーの人物像について考察してみたいと思います。 ハッカーの人物像 ハッカーといってもいろいろな種類がいますが、筆者の周りのハッ カーに共通に見られる傾向に、以下の3つがあります。 「深追い」しまくり 「佳境」に入りまくり 「バッドノウハウ」に詳しいこと甚だしい 上記の 3点について、これから掘り下げていきたいと思います。 「深追い」は筆者と

  • いやなブログ: Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

    Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか 通常、Linux の共有ライブラリを作るときは各 .c ファイルを PIC (Position Independent Code) となるようコンパイルします。しかし、実は PIC でコンパイルしなくても共有ライブラリは作れます。それでは PIC にする意味はあるのでしょうか。 さっそく実験してみます。 int func () { printf(""); printf(""); printf(""); } PIC でコンパイルするには gcc に -fpic または -fPIC を渡します。-fpic の方が小さく高速なコードを生成する可能性がありますが、プロセッサによっては -fpic で生成できる GOT (Global Offset Table) のサイズに制限があります。一方、-fPIC はどのプロセッサで

  • 横着プログラミング 第3回: 履歴マニア

    最終更新日: 2002-05-18 (公開日: 2002-05-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 コンピュータの方がうまくできることに人間を使うな。 -- Tom Duff *1 私の見る限り、プログラマという人種は決まって事務作業が嫌いな ようである。同じような書類を何枚も書かされたり、1つ誤字があ るから書き直せと言われたりすると、異常にストレスがたまる。 同様に、計算機を使っていても、同じような作業を何度も繰り返し たり、ちょっとでも間違えたら最初からやり直し、というのは耐え られない。そこで、今回は履歴を活用して作業の再利用をするノウ ハウを取り上げる。 シェルの履歴 Unixを使い始めて間もない初心者が作業しているところを見ると、 打ち間違えたコマンドを律儀に最初から打ち直しているのに気づく

    ziguzagu
    ziguzagu 2005/12/24