タグ

2009年1月29日のブックマーク (7件)

  • 2log.net

    This domain may be for sale!

    hirafoo
    hirafoo 2009/01/29
    はてな+これはひどい=はてなはひどい
  • 僕は木になりたい。。。 : Rails 初期データ投入時の auto_increment項目のクリア - livedoor Blog(ブログ)

    Railsのmigrate機能で初期データ登録用のマイグレーションファイルを 作りました。 でも、何度かmigrationをしているうちに、 auto_incrementで採番される値はクリアされないので、 どんどん大きくなっていってしまいます。 他のテーブルで外部参照しておりキーの値が変わっては困るのです。 で、最初は以下のようにマイグレーションファイルを作成しました。 class ImportStatusInitialData < ActiveRecord::Migration def self.up down Status.create( :status => 1, :name => "AA" ) Status.create( :status => 2, :name => "BB" ) Status.create( :status => 3, :name => "CC" ) Stat

  • 最近流行りのプログラミング言語 | OSDN Magazine

    プログラミング言語の流行り廃りというのは、それ自体なかなか興味深い分析対象だ。少しだけ昔話をすると、私がコンピュータをいじり始めた十数年前は、PascalやQuick Basicあたりも広く使われてはいたものの、結局はC言語を学ばないとどうにもならなかった。私より世代が少し前の人ならばアセンブリも必修科目だっただろうし、少し後の人だと、もしかすると最初に触れた言語はCではなくJavaかもしれない。 それが最近では、職業はプログラマです、しかしCやJavaで何か書いたことはありません、という人も結構いるようだ。最初に触れた言語がPerlRubyといった動的言語で、実用途にもそれらをそのまま使い続けているという人が増えているのだろう。個人的には、そういったモダンで設計の優れた言語からプログラミングを学び始められる人たちのことをとてもうらやましく思う。少なくとも、雑誌に数十ページに渡ってみっし

    最近流行りのプログラミング言語 | OSDN Magazine
    hirafoo
    hirafoo 2009/01/29
  • クラス変数とクラスインスタンス変数とインスタンス変数の違いについて - 遅咲きのエンジニア

    Ruby Way 第2版を読んでいきなりつまづく。 P46 class Myclass @x = 1 # クラスインスタンス変数 @y = 2 # 別のクラスインスタンス変数 def mymethod @x = 3 # インスタンス変数 # ここで@yにアクセスすることはできない end end これのなにが分からなかったかというと、クラスのはじめの@xとメソッド内の@xが別物であるということ(コメントに書いてあるんだけどね)。5年間C++を学んできた自分としては変数の宣言があることは当然だと思っていたため、なかなか理解できませんでした。 ということで、クラス変数とクラスインスタンス変数とインスタンス変数の違いについて。 クラス変数とは、 別名static変数とも言われ、各インスタンスが共有する変数のこと。 クラスインスタンス変数とは、 クラス変数とほぼ同じだが、そのクラスのみでしか参照で

    クラス変数とクラスインスタンス変数とインスタンス変数の違いについて - 遅咲きのエンジニア
    hirafoo
    hirafoo 2009/01/29
  • フィールドごとに getter/setter を用意するな - ぐるぐる~

    未だにフィールドごとに getter/setter を用意しろって言う人がいてびっくりするわけですが。 フィールドごとに getter/setter を用意する人の言い分 そうやれって/Webページに書いてある フィールドに触れないと不便だろう それが OOP だ 言い分に対する反論 そうやるなってに書いてある 5章 オブジェクト指向エクササイズ 5.2.10 ルール9:Getter、Setter、プロパティを使用しないこと ThoughtWorksアンソロジー List<Book> getBooks() { return books; } これはクライアントに最大限の柔軟性を提供するが、さまざまな問題を生み出す. コレクションをそのまま返すと, その内容に依存している内部状態が知らない間に無効にされてしまうかもしれない. 略 代わりに, コレクション内の情報への, 限定された, 意味

    フィールドごとに getter/setter を用意するな - ぐるぐる~
    hirafoo
    hirafoo 2009/01/29
    いちいちインスタンス変数全てにgetter/setter用意するの?javaにはClass::Accessor的なものは無いのだろうか
  • Winnyのノード情報の復号 - 適当なブログ

    pythonWinnyのノード情報(IPアドレスとポート番号)を復号するスクリプトをPythonで書いてみた。ソースコードは以下。自作のRC4暗号化モジュールを使用している。こことかにあるノード情報を復号すると面白いかも。しかしローカルIPアドレスを登録してる奴がいるのには驚いた。 #!/usr/bin/env python # coding: shift-jis import sys sys.path.append("rc4") import rc4 def binary(hexstring): result = [] for i in xrange(0, len(hexstring), 2): result.append(chr(int(hexstring[i:i+2], 16))) return ''.join(result) def decode_node(code): magic

  • XS code template - 動的にXSUBを生成する - エキスパートPerl - Perl-users.jp

    XSコードはふつうPerlコードよりも多機能で高速ですが,書くのが難しいため敷居が高いことも事実です。また,いちいちコンパイルしなければならないのも煩わしい点です。 ところで,Perlにはクロージャという仕組みがあり,動的にコードを生成することができます。したがって,XSでクロージャに等しいことを実現できれば,XSコードの煩わしさを避けつつXSの利益を享受することができます。 なお,この文書はXSによるコード例を解説していますが,XSそのものについては解説しません。 XSについてはperlxstutやperlxs,perlapiを参照してください。 クロージャの分析 まず,Perlのクロージャを分析します。Perlのクロージャは以下のようなものです。 sub make_accessor{ my($name) = @_; return sub{ $_[0]->{$name} }; } my