[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

programmingに関するbayashi_netのブックマーク (203)

  • Perl の数値変換

    Last Updated: 2002/03/26 Perl で、16進文字列、10進整数、2進文字列、バイナリー文字列の相互変換を行うための、スクリプトメモです。 特に断っていない限り、Perl 5.001 以上で動作します。 目次 16進文字列からの変換 10進整数からの変換 2進文字列からの変換 バイナリー文字列からの変換 16進文字列→10進整数への変換 hex() 関数は、16進文字列を整数値に、手軽に変換できます。 $num10 = hex("4A"); # $num10 には 74 が入る $num10 = hex("FFFFFF"); # $num10 には 16777215 が入る 余談ですが、数値リテラル中では 0x に続けて 16 進数で記述することで、数値を表すことができます。 $num10 = 0x4A; # 74 $num10 = 0xFFFFFF; # 1677

  • Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009

    Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 例えば、「ディレクトリが存在しなければ作成」という処理を書くことを考えてみます。 if (! -d $dir) { mkdir $dir or die "failed to create dir:$dir:$!"; } でいいしょうか? いえ、違います。これだと、-d 演算子でディレクトリの不存在を確認した後、mkdir を呼ぶまでの間に他のプロセスがディレクトリを作成してしまう可能性があります。なので、たとえば C ならば、 if (mkdir(dir) != 0 && errno != EEXIST) { fprintf(stderr, "failed to create d

  • 技術系アドベントカレンダー2009のまとめ | iNNX ブログ

    最近は、PHPのMVCフレームワーク「symfony」関連の活動と、多治見IT勉強会などをやっています。 Googleプロフィール ブログへのコメントやツッコミ、twitterやFriendFeedでのreplyなどお気軽にお願いします! Latest Posts 360件のエントリ [12/02]技術系アドベントカレンダー2009のまとめ [12/02]多治見IT勉強会 大忘年会を12/18(金)に開催します [11/25]多治見IT勉強会 第2回もくもく会を11/26に開催します [11/14][golang]CGIでGO!で使ったパッケージなどのメモ [11/14][golang]CGIでGO! [11/05]多治見IT勉強会(第8回)のお知らせ [10/27]北陸アンカンファレンスに参加します [10/26]GALONGE文明崩壊 [10/19]LSL Convention J

  • 新人プログラマーがプロのプログラマーとして独り立ちするための7つの条件 - ハックルベリーに会いに行く

    ぼくは以前にIT関連の仕事をしたことがあって、ぼく自身はプログラムを組めるわけではないのだけれど、何人かのプログラマーさんと一緒にお仕事をさせて頂く機会があった。その中で生まれて初めてプログラマーという職業の方と交流させて頂いたのだけれど、彼らはなかなかにユニークで特異な個性の持ち主たちであった。もちろんプログラマーと一口に言っても色々なタイプがいて、必ずしもひとくくりにできるわけではないのだが、共通していたのは好奇心が旺盛で新しい物好きだということだった。そして少々気難しい面がありつつも、基的にはポジティブで、明日に向かって色々なことを前向きに、精力的に取り組んでいる人が多かった。 そんな中で、特に親しくお話しさせて頂いたTさんというプログラマーがいて、この方もなかなかに個性的で、ご自分の意見や主張というものをはっきりと持っており、ITのみならず世の中に対しても一家言お持ちであった。そ

  • Life with Cygwin

    沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。

  • PHPの「えせプログラミング言語」の弊害 - moriyoshiの日記

    先日のエントリーでも少し触れたが、PHPの最大の問題点は、それが持つ「一見その言語構造がよくあるプログラミング言語の形をとりながら、プログラミング言語の最も大切なところを外している『えせプログラミング言語』である」点にある。Webアプリケーションの開発で注意すべき部分とは何かを根底の部分でちゃんと理解せずにPHPアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「PHPでプログラミング言語を学ぶ」などもっての他だし、「JavaでもPHPと同じようなプログラミング言語を作ってWebアプリの開発を効率化しよう」などという発想もとても危険である。 PHPの発想の根底には、「HTMLテンプレート用言語とロジック記述用言語の統一により、開発コストを減らそう」という CGI 時代の安易な発明がある。PHPは、その前近代的な発想を通じて、テンプレートとロジックを同じファイル

    PHPの「えせプログラミング言語」の弊害 - moriyoshiの日記
    bayashi_net
    bayashi_net 2009/10/17
    いくらなんでも、それはひどい、、、「ビジネスロジックをテンプレートに混ぜ込んで書く」
  • Devel::StackTrace::AsHTML

    via www.flickr.com I combined all of the great works done by tokuhirom, kazuho, nipotan and Sartak: render Devel::StackTrace object as an HTML. As a bonus, if you render WithLexicals object it will display the lexical variables with JS toggle button. Plack middleware and plackup has now been converted to use this new StackTrace screen. Pretty slick! Available at github and CPAN shortly.

  • Vim Documents in Japanese

    help.txt      For Vim バージョン 9.1.  Last change: 2024 Dec 06 VIM - メインヘルプファイル k 移動:  カーソルを使用するか、"h" で左、"j" で下、        h   l "k" で上、"l" で右に移動できる。                    j ヘルプの終了:  ":q<Enter>" を使用する。 Vim の終了:  ":qa!<Enter>" を使用する (注意! 変更はすべて破棄される)。 項目へジャンプ:  タグ (例: bars) にカーソルを合わせ、CTRL-] を押す。 マウスでジャンプ:  (xterm または GUI で) マウスを有効にするには ":set mouse=a" と入力する。 bars 等のタグ上でマウスの左ボタンをダブルクリックする。 元の場所に戻る:  CTRL-O を押す

  • あらゆるPerlスクリプトは10種類の記号と改行だけで表現できるか? - すぎゃーんメモ

    ''!~('(?{'.('? ?{..!? } .{.(!???.~(!}{! ^^ ?.){{?})'^'{!){~(?)?.!?{!}}!~{!}?}}!{^(^ !???(.)~'^' ~~.(~?)^}^~^){}(.{ ?!^) ^!?!?(()(}?^!'^'! !}!)(({!){!({)~(. ^..({?.{)~){)(!(^ '^' )(?{!{~~{{^ }!())~{ }^!{^)^()~!}!}!^^').'})') 元来、プログラマというのは怠惰なヒトたちであり、少しでも自分の作業がラクになるように色々なプログラムを開発してきたわけでして。 プログラムを書くにしてもできるだけラクに(タイプ数を少なく)、ということで「Code Golf」なんてのが考え出されたのだと思います。 Code Golf ところで、Acme::EyeDropsという変態モジュールは「記号だ

    あらゆるPerlスクリプトは10種類の記号と改行だけで表現できるか? - すぎゃーんメモ
  • mixiの検索システムを開発する29歳スーパークリエータ|【Tech総研】

    独創的発想で活躍している若手エンジニアを探し出して紹介するこのシリーズ!今回登場するのは、日初のSNSサービスで今や、1110万人を超えるユーザーを有する『mixi』で、膨大なコンテンツの検索システムを自社開発した研究開発グループの若手マネージャーだ。 1978年生まれ。立命館大学政策科学部を卒業後、01年に大手OA機器メーカーに入社。システムエンジニアに。独立行政法人情報処理推進機構(IPA)の2004年度第2回未踏ソフトウェア創造事業で、全文検索システム「Hyper Estraier」を開発、スーパークリエータに認定される。2006年6月、ミクシィ入社。研究開発に従事。 株式会社ミクシィ 2004年2月から日初のSNS(ソーシャル・ネットワーキングサービス)として『mixi』を展開。「居心地の良いサイト」「身近な人や趣味・興味が同じ人との交流」をコンセプトに開発、人気を集め、今や1

  • ウノウラボ Unoh Labs: プロセスの監視を行う デーモン monit

    こんにちは satoです。 monitは プロセスの監視を行うデーモンです。 条件とそれに伴うアクションを指定することができます。 条件とは例えば以下のようなものがあります プロセスが起動していなかったら 特定のプロセスのメモリの使用量が あるサイズを超えたら 特定のプロセスのCPUの使用率が 50%を超えている状態が 10分続いたら 特定のポートに接続できなくなったら など アクションには以下のような物があります 起動、再起動する アラートメールを送信する ユーザスクリプトを実行する など これらを組み合わせて、プロセスの監視を行います。とくにユーザが作成したプログラムの監視などに効果を発揮します。インストールは RedHat系なら yum install monit で入ります。(CentOSや商用のRedHatはrpmforgeをリポジトリとして追加する必要があります) 主な設定ファ

  • Schenker - RubyのSinatraのようなフレームワーク作成中 - spiritlooseのはてなダイアリー

    http://github.com/spiritloose/Schenker 前に Ruby の Sinatra を触ってみていいなとおもったので最近作り始めた。 ひととおり機能はそろってきたので公開してみる。 HTTP::Engine + HTTP::Engine::Middleware + HTTPx::Dispatcher + Sinatra風インターフェース みたいな感じのフレームワーク、っていうかDSL。 # myapp.pl #!/usr/bin/env perl package MyApp; use Schenker; get '/' => sub { 'Hello, world!'; }; get '/hello/:name' => sub { my $args = shift; "Hello, $args->{name}!"; }; で `./myapp.pl` すると動

    Schenker - RubyのSinatraのようなフレームワーク作成中 - spiritlooseのはてなダイアリー
  • 第12回 POE:「Perl萌え~」の略ではなく | gihyo.jp

    あだ名の多さは人気の証明? POEという名前にはあきれるほど多くの寓意がこじつけられています。もともとはPerl Object Environment「Perlのオブジェクト環境」の頭文字を並べたものですが、POEの公式サイトを見てみると、Edgar Allan POE「エドガー・アラン・ポー」に始まり(そう、POEは「ポエ」ではなく「ポー」(⁠ないし「ポゥ⁠」⁠)と読みます⁠)⁠、Parallel Object Executor「オブジェクトの並列処理機⁠」⁠、Pathetically Over-Engineered「涙がちょちょ切れるほど作り込みすぎた⁠」⁠、Perl Obfuscation Engine「Perl難読化エンジン⁠」⁠、Perl Objects for Events「イベント用Perlオブジェクト⁠」⁠、Persistent Object Environment「永続オ

    第12回 POE:「Perl萌え~」の略ではなく | gihyo.jp
  • 第126回 ダックタイピング と インタフェース - bingo_nakanishiの他言語出身者のためのPerl入門

    動的型付け言語と静的型付け言語における多態性 オブジェクト指向では、多態性(ポリモーフィズム)という発想がでてくる。この多態性を実現する方法を今回は2つ紹介する。 Perlは動的型付け言語であり、ダックタイピングという手法で、多態性を実現できる。対して、静的型付け言語であるJavaでは上位の型を作ることで多態性を実現できる(今回はインタフェースを用いてみた)。 多態性を用いればif文がなくなるなどの恩恵を受ける事ができる。 (今回はこのif文がなくなる場面については説明はしない) ダックタイピング Perlでのタックタイピングを見てみよう。 my $human = Human->new(); my $duck = Duck->new(); my $dog = Dog->new(); $human->touch($duck); $human->touch($dog); いま、このようにhum

    第126回 ダックタイピング と インタフェース - bingo_nakanishiの他言語出身者のためのPerl入門
  • a = a + 1; /* って違和感あるはずなのに */ : 404 Blog Not Found

    2009年07月10日15:00 カテゴリLightweight Languages a = a + 1; /* って違和感あるはずなのに */ ここまでは、いい。 だれでもわかるプログラミングの教え方もある……といいな - 狐の王国 じゃあ「c = a + b」はどうなるのか。 これはcという新しいバケツを用意し、aとbを足した数字を入れろという意味だ。ところが、 a = a + 1; でまともに数学を習った人ならつっかかるはずだし、実際つっかかるなのに、ほとんどの言語が代入演算子として=を採用しているのはなぜなのだろう? いや、私だってこれがFORTRAN由来だってことは知っている。私が知りたいのは、これが数学から見ても自然言語から見ても不自然なのに、ことプログラミングに関しては、なぜこれが自然になってしまったか、ということ。 代入に、=を使う必然性が全くないことは、それを使わぬ言語も

    a = a + 1; /* って違和感あるはずなのに */ : 404 Blog Not Found
  • mixi Engineers’ Blog » 言語バインディングを書こう

    世田谷の某所から原宿まで自転車通勤しているのですが、そろそろ寒くなってきたので電車に切り替えようかと悩み中のmikioです。今回はTokyo Cabinetのスクリプト言語バインディングについて述べます。 スクリプト言語バインディングとは TCはC言語で実装されたライブラリで、C言語(C89、C99)およびC++言語のプログラムから利用することができます。CやC++は各種の計算処理やシステムコールの呼び出しを直接的に記述できるので高速に動作するプログラムを作ることができる反面、ポインタ演算やメモリ管理などで致命的なバグを潜ませやすいので非常に注意深くコーディングを進めなければいけません。つまり、プログラムの実行速度は速いが、開発速度は遅いということです。 それに対して、PerlRubyをはじめとするいわゆるスクリプト言語は、実行速度はCやC++に劣るものの、高水準かつ直感的な文法と強力な

    mixi Engineers’ Blog » 言語バインディングを書こう
  • 適切なクラスタ数を推定するX-means法 - kaisehのブログ

    K-means法によるクラスタリングでは、あらかじめクラスタ数Kを固定する必要があります。HatenarMapsでもK-means法を使っているのですが、クラスタ数は(特に根拠もなく)200個に決め打ちになっていました。 これに対して、X-means法というK-means法の拡張が提案されていることを知りました。X-means法を使うと、データに応じて最適なクラスタ数を推定できます。 K-means and X-means implementations http://www-2.cs.cmu.edu/~dpelleg/download/xmeans.pdf X-means法の考え方は、K=2で再帰的にK-means法を実行していくというもので、クラスタの分割前と分割後でBIC(ベイズ情報量規準)を比較し、値が改善しなくなるまで分割を続けます。 調べたところ、Javaのデータマイニングツー

    適切なクラスタ数を推定するX-means法 - kaisehのブログ
  • 転置インデックスを実装しよう - mixi engineer blog

    相対性理論のボーカルが頭から離れないmikioです。熱いわっふるの声に応えて今回はTokyo Cabinetのテーブルデータベースにおける検索機能の実装について語ってみたいと思います。とても長いのですが、最後まで読んだあかつきには、自分でも全文検索エンジンを作れると思っていただければ嬉しいです。 デモ モチベーションをあげていただくために、100行のソースコードで検索UIのデモを作ってみました。Java 6の日語文書を対象としているので、「stringbuffer」とか「コンパイル」とか「倍精度浮動小数」とかそれっぽい用語で検索してみてください。 インデックスがちゃんとできていれば、たった100行で某検索エンジン風味の検索機能をあなたのデータを対象にして動かすことができます。ソースコードはこちら(テンプレートはこちら)です。 でも、今回はUIの話ではないのです。ものすごく地味に、全文検索

    転置インデックスを実装しよう - mixi engineer blog
  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

  • クラスカルのアルゴリズム - naoyaのはてなダイアリー

    昨年からはじめたアルゴリズムイントロダクションの輪講も終盤に差し掛かり、残すところ数章となりました。今週は第23章の最小全域木でした。辺に重みのあるグラフで全域木を張るとき、その全域木を構成する辺の合計コストが最小の組み合わせが最小全域木です。 アルゴリズムイントロダクションでは、クラスカルのアルゴリズム、プリムのアルゴリズムの二点が紹介されています。いずれも20世紀半ばに発見された古典的なアルゴリズムです。 二つのうち前者、クラスカルのアルゴリズムは、コスト最小の辺から順番にみていって、その辺を選んだことで閉路が構成されなければ、それは安全な辺であるとみなし、最小全域木を構成する辺のひとつとして選択します。これを繰り返しているうちに最小全域木が構成されるというアルゴリズムです。 今日はクラスカルのアルゴリズムを Python で実装してみました。扱うグラフは書籍の例を使ってみました。以下

    クラスカルのアルゴリズム - naoyaのはてなダイアリー