タグ

ブックマーク / nari.hatenablog.com (21)

  • プログラマなら押さえておくべき「ソフトウェアライセンス」の話 - I am Cruby!

    読書感想文ソフトウェアライセンスの基礎知識作者: 可知豊出版社/メーカー: ソフトバンククリエイティブ発売日: 2008/09/25メディア: 単行購入: 7人 クリック: 62回この商品を含むブログ (30件) を見るGW帰省(電車の中)で読んだがこれ。 この時期だし新米プログラマに良いだと思うので紹介しておく。 ソフトウェアライセンスはプログラマの基礎知識ほとんどのプログラマはOSSのライブラリを使用して、ソフトウェアを作るはず。 そこで使用するライブラリのソフトウェアライセンスには気を遣わなければならない。 例えば、GPLv2のソフトウェアに動的リンクする場合はコピーレフトが適用されてしまう。 「しゃーねぇ、じゃあ公開したろうか」と思うと、実はGPLv2とは互換性のないライセンスがすでに適用されてしまっていた。 チェックメイツッ!!! ソフトウェアライセンスは敵じゃないよ!そう

    taka222
    taka222 2011/05/02
  • 26歳の誕生日 - I am Cruby!

    27歳と思っていたけど、26歳になったみたいです。昔からなんですが、自分の年齢を覚えきれないんですよね…。 私宛に誕生プレゼント送ったつもり募金にご協力をお願いします。 東北地方太平洋沖地震 ツイートする

    taka222
    taka222 2011/03/22
  • はじめての並行プログラミング(1) - I am Cruby!

    第53回 社内勉強会に使用したテキストファイル「はじめての並行プログラミング(1)」 今回話すことスレッド? 並行プログラミングの難しさ 複数の仕事を同時に『並行プログラミング』とあるプログラムで何かの処理を同時におこないたい 方法は大きく分けて二つプロセススレッド(軽量プロセス)※ スレッド in プロセス の関係。プロセスとスレッドの違い(簡単に言えば)プロセスは「資源を共有しない」。スレッドは「資源を共有する」。スレッドが共有するもの メモリアドレス空間、ファイルハンドルなどスレッドが共有しないもの プログラムカウンタ、スタック、ローカル変数スレッドを使うメリットよいとこ 一つのプロセス内で並行処理が可能 非同期な処理とか 起動も低コスト データの同期が低コスト グローバル変数で受け渡しなどわるいところ 共有データの扱いが難しい(超重要)スレッドの安全性(safety)スレッドセーフ

    taka222
    taka222 2011/02/15
  • 地獄のコミッタ「ゴールドセイント」 - I am Cruby!

    zigokuno

    taka222
    taka222 2011/01/30
  • K&R malloc/free作ってみた - I am Cruby!

    movieK&R malloc/free作ってみた - narihiro.info(動画)新山さんの動画があまりにも面白くてマネしました。

    taka222
    taka222 2010/04/11
  • GC本の説明Ust - I am Cruby!

    GC全国各地で色々と勉強会を開催して貰えるようです(T-T)これは僕も何かせねば! ということで、一章ずつ内容を説明するustでもやろうかと思います。 とりあえず、僕の手元にまだがないので(!!)。が届いたら、平日の夜9時頃からやろうかなーと思っています。第一回は来週の水曜(3/24)あたりを想像しています。どれだけ需要があるものかわかりませんが…。興味のある人は覗いてください。詳しい情報はtwitter(@nari3)で流すと思います。 ガベージコレクションのアルゴリズムと実装作者: 中村成洋,相川光,竹内郁雄出版社/メーカー: 秀和システム発売日: 2010/03/18メディア: 単行クリック: 494回この商品を含むブログ (10件) を見る

    taka222
    taka222 2010/03/17
  • GC本の作業ログ - I am Cruby!

    結城さんのデザパタの作業ログがとても参考になったので。# しかし、あのクオリティを持つがたった3ヶ月で書き上がったというのは神がかり的ですよね。 2009/04/29 執筆開始 2009/05/30 Pythonの章書き始め 2009/07/06 Pythonの章書き上げ: 78P 2009/07/11 Pythonの章を監修者様へ 2009/07/30 DalvikVMの章書き始め 2009/08/09 DalvikVMの章書き上がり: 58P 2009/08/09 Pythonの章をレビュア様へ 2009/08/17 Rubiniusの章書き始め 2009/09/05 Rubiniusの章書き上がり: 47P 2009/09/07 DalvikVMの章をレビュア様へ 2009/09/07 保守的GCの章書き始め 2009/09/14 DalvikVMの章を監修者様へ 2009/09

    taka222
    taka222 2010/03/12
  • 「ガベージコレクションのアルゴリズムと実装」という本を書きました。

    gcbook, gcai, GCGCLoverのみなさん、お待たせしました。「ガベージコレクションのアルゴリズムと実装」の情報公開です。 書名:ガベージコレクションのアルゴリズムと実装 著者:中村 成洋/相川 光 監修:竹内 郁雄 ページ数:472ページ 体価格:3,200円 発売開始日:2010年3月17日(水) ※地域・書店によって遅れることがあります ISBN:978-4-7980-2562-9 C3055 読み所 書は次の2つのテーマを扱います。 1.GCのアルゴリズム(アルゴリズム編) 2.GCの実装(実装編) アルゴリズム編では、これまでに考案されてきた数多くのGCアルゴリズムの中 から、重要なものを厳選して紹介します。伝統的かつ基的なものから、やや 高度なアルゴリズムを選定しています。GC独特の考え方や各アルゴリズムの特 性などを理解していただくのがアルゴリズム編の最大

    taka222
    taka222 2010/03/03
  • シャイなRubyistにできること - 松江Ruby会議02 - I am Cruby!

    matsuerubykaigi02, matrk02 発表資料シャイなRubyistにできることView more presentations from authorNari. この発表で伝えたかったこと 勉強会に無理して行く必要ない。 そんなに素晴らしいもんじゃねー 自分のために情報を発信する 人のためにやってるんじゃねー カリスマシャイは静かに暮らしたい ヤオモテ、OK 動画matsuerubykaigi02 02/13/10 12:39AM, matsuerubykaigi02 02/13/10 12:39AM rubycity on USTREAM. Conference 19分くらいからです。 懇親会takkanmさんやkakutaniさんとお話ししました。他にも色々な方とお話ししました。とっても楽しかったです!また、まつもとさんに「良いプレゼンだった!」といわれたのが凄く嬉しか

    taka222
    taka222 2010/02/14
  • Railsハイパー実践講座 - 第35回NaCl勉強会 - - I am Cruby!

    RailsRailsハイパー実践講座-第35回NaCl勉強会View more presentations from authorNari. 注意 鵜呑みにしないこと Rails3がでたら色々変わるかも 蛇足こういうのをまとめた記事をどこかで出したいです。雑誌かなあとも思ったのですが、達人出版会さまが動き出したら、そちらにお願いしてみるつもりです。いや、たぶん、忙しくなければきっと。 また、こういうを誰か書いて欲しいのです。もう、入門書はたくさんだ!

    taka222
    taka222 2010/02/09
  • rvmが凄く良い - I am Cruby!

    rubyrvmを導入したのですが、これまた超絶に便利です。これは使うべき。早く使っておけば。くうう。 さてさて、何が便利なのでしょう? 各rubyのバージョン、patch-levelに応じて gem を分けることが可能 一部は共有し、一部はそれぞれの環境で、ということも可能らしいとにかく細かい使い方ができるみたいです。aptitudeで入れたsystemrubyと共存できる 普通に使うのはaptitudeのrubyプロジェクトで使うのはこのrubyと切り分け可能パッケージングされたものがpatch-level最新のものでないことは良くあること。とはいえ、普通にruby使うときなんかは他のパッケージとの兼ね合いもあるし、aptitudeで入れたrubyを使いたい。でも、patch-levelが低いruby仕事で使うのはちょっとなーという時に便利です。 .rvmrcによってプロジェクト

    taka222
    taka222 2010/02/07
  • マイ.emacs探訪 - I am Cruby!

    Emacs(Emacs Advent Calendar jp: 2009 : ATNDの参加記事。すいません、私なんかがトリなんです。昨日はshugoさん。最初はk1LoWさんでした。)みなさん。メリークリスマス。こんな暇な日は自分の.emacsを見ながらニヤニヤすることにしましょう。emacsでメモclmemoemacsのメモはclmemoを愛用しています。clmemoはプログラマお馴染みのChageLogの書式を使ってメモを取るelispです。 (autoload 'clmemo "clmemo" "ChangeLog memo mode." t) (setq clmemo-file-name "~/memo/clmemo.txt") (global-set-key "\C-xM" 'clmemo) 重要なメモはココに集結させています。clmemoが便利なのは、メモを取る先が一つのテキ

  • メモリ破壊の現場を見つけるTips - I am Cruby!

    RubyAdventJP, GC, Ruby(この記事はRuby Advent Calendar jp: 2009 : ATNDの4日目です。前日はmrknさんでした) 健全なるRubyistであれば、RubyのGCをいじることが週に一度はあるでしょう。そのときに困るのが、GCをいじってしまったことによるバグの修正です。GCをいじるというのは想像以上に難しく、少しでも書き間違えるとメモリ破壊が発生します。そのときに使えるTipsをこの記事で書くことにします。 みなさんご存じの通り、メモリ破壊というのは原因を特定するのが困難です。これは問題が発覚する場所とメモリ破壊が起こった現場が位置的に遠いことに起因しています。偉大なるハッカーのまつもとさんですら、その発見は困難です。 [ruby-dev:38628] Re: [BUG: trunk] called on terminated objec

    taka222
    taka222 2009/12/05
  • スーパーマリオブラザーズをRubyで作ってみた - I am Cruby!

    Ruby2008/8/7にやんわり修正しました。 ソースコードsvnは svn co http://svn.coderepos.org/share/lang/ruby/nario Codereposにあげているので自由に触ってください。 環境設定Windowsであれば、ファイル内のrskit/game.exeで、フルスクリーンで動作します。linuxであればruby/sdlを動く環境を作成して、 ruby nario.rb で大丈夫です。 Ubuntuで動作確認していただきました。 SUPER NARIOをプレイしてみた(最速レビューをめざして) - きみのハートを8ビットキャスト 操作方法十字キー ←↑→↓Aボタン ABボタン B終了 ESC(フルスクリーンで動かすときは特に覚えておいたほうがいいです) Todoきのことか成長系、他のマップ、BGM、SEただ、1-1を作って非常に疲れたの

  • 発表資料 RubyのGC改善による私のエコライフ - I am Cruby!

    rubykaigi2009RubyのGC改善による私のエコライフView more documents from authorNari.  動画TODO: ニコニコ?に載ったらココに貼りますね.  感想こんなにホームだったのは初めてです.というのも「GCに興味ある人」っていったら100人くらいいる人がみんな手を挙げたんだから(T-T) コミッタの方々が前にいらっしゃって,とても緊張した.たぶん今までのプレゼンで一番の緊張だった気がする.ドキドキ. GCの話.手を挙げて貰ったこれも80人くらい買うよと言って貰えた.ちょ!「これが全員なんじゃない?」というツッコミがあって笑ってしまった. なぜか,45分くらい時間があって,30分の資料しか作っていなかったので,やっぱり15分時間が余った.「質問タイムナウ」となって,いっぱい質問をいただく.ありがとうございます.この質問タイムが予想以上に盛り上

    taka222
    taka222 2009/07/21
  • ConservativeGCとは何か - I am Cruby!

    GCRHGに見るとこうある そこで、まずその数値がVALUEであるか(ポインタであるか)どうか調べてみて、それらしく見えるならば全てポインタとして扱うことにする。 このような手法を「保守的GC(conservative GC)」と呼ぶ。「とりあえず安全側に倒す」というところが保守的だということらしい。 第5章 ガ−ベージコレクション レジスタや関数スタック内に数値があるとポインタと区別がつかない。とあるが、それは具体的にどういう事か。私は頭が悪い子なのでミニマムなプログラムを作って試してみる。 以下は関数スタック内を覗いて、printfしたという簡単なお仕事。たったの70行くらい #include #include int *stack_top, *stack_end; int *heap_bottom, *heap_top; //簡易版 int is_pointer_to_heap

  • SpecialWarningというプラグインをリリースしました - I am Cruby!

    Rails最初にソースはgithubに上げてます.authorNari’s special_warning at master - GitHub こんな経験はありませんか? class Foo ApplicationController def index if params["numeric"] == 1 # 大事な処理 end end end なぜかこのif文の中に入らない..何故だ!何故だ!何故だ! それ文字列と数値の比較じゃない? params["numeric"].class #=> String 1 #=> Fixnum "1" == 1 #=> false 1 == 1 #=> true 文字列と数値の比較はfalseになるよ! でも,分からない気づけないRailsだとmodelとかviewとかhelperとかcontrollerとか...パラメータがゴチャゴチャになるのでよ

  • 酔っぱらったので5分でBrainf*ck処理系を作ってみた - I am Cruby!

    Ruby休みだったのでビールを飲みました.その勢いを借りて5分程でBrainf*ck処理系を作ってみるなどしました.ビールとRubyを一緒にキメたので非常に良い気分です.動画あわせて読みたいとても面白いので是非買いましょう.作った処理系 # Five minutes for cooking language by Ruby. class Brainf_ck def self.run(src) b=check_bracket(src) pc=0 p=0 t=Array.new(1000, 0) while pc case src[pc] when ?> then p+=1 when ? then p-=1 when ?+ then t[p]>255 ? t[p]=0 : t[p]+=1 when ?- then t[p]0 ? t[p]=255 : t[p]-=1 when ?. then

  • Railsのちょっと気の利いたプラグインたち - I am Cruby!

    Railsこれはちょっとだけ便利だな!というRailsプラグインたちを集めてみた.Safe ERB サニタイズを注意してくれるプラグインsvn - Revision 6: /plugins/safe_erbSafe Record SQLエスケープを注意してくれるプラグインauthorNari’s safe_record at master — GitHubannotate_models モデル,fixtureファイルの先頭にカラム名などのスキーマの情報を書いてくれるプラグイン Plugins - Annotate models - Agile Web Development rails_footnotes development環境で常に下にデバッグ用の情報が出力される.(例 params, session, SQL, filter内容)drnic’s rails-footnotes at

  • passengerを読み解く(動かすまで) vol1 - I am Cruby!

    Ruby, Rails, passengerpassengerを読んでみる事にしました.なんでかと言いますとWeb(サーバとか)が大好きだからです. passengerとは簡単に言うと,HTTPサーバであるApacheにアプリケーションサーバを組み込んで,ApacheだけでRailsが動く拡張モジュールです.また,言い換えると、PassengerはApacheを拡張し、アプリケーションサーバーのように行動できるようにします.通常,ApacheからRailsアプリケーションを動作させる場合,mongrelなどのAPサーバが必要ですが,それが不要です.それと,色々と高速に動作します.その理由とかは,後々読んでいくうちに解説できればと思います.(というかまだ読んでないのでよく分からない)  動かしてみるでは,PassengerをApacheに組み込んでRailsアプリを動かしてみましょう.Rai