タグ

2010年8月19日のブックマーク (15件)

  • RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)

    ● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのがになる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc

    kyab
    kyab 2010/08/19
    scalaスキが無いのは素晴らしいけど、こういう欠点克服型言語は字面もきつくみえる。可愛げがないのが欠点かも
  • 本の虫: 後の世では、何とでも言える

    人生を書き換える者すらいた。: C++は何を間違えたのか ムーブコンストラクタなぞとても使いこなせる自信がない。 ムーブの概念とC++の型システムの詳細が分からないユーザーは、別にムーブを使う必要はない。ムーブはライブラリ実装者のための機能である。なぜなら、明示的に使わなくても、関数の戻り値などのrvalueは、勝手にムーブされるからだ。 これが方向性の歴史的誤りだったよな。 C++はこういうのではなく、2パスコンパイルにしてヘッダファイルを不要にしたり、GCを言語レベルでサポートしたりすれば今頃の情勢は違うものになったかもしれないのに、結局JavaやC#の外見的な言語仕様のベースになっただけなのはちょっとさびしい。 後の世では、何とでも言える。C++が作られた当時は、到底そんなことは現実的ではなかった。歴史の話をする。 Bjarne Stroustrupが博士号をとるべく研究していた時、

    kyab
    kyab 2010/08/19
    ライブラリ実装者と利用者という2元論で実装者だけしってればってのは単純すぎ。利用者だってもっと上の層のための実装者であり、便利そうなものはやっぱり使いたい。けど必要以上に難しいのが問題では?
  • Probing Cocoa With MacRuby

    kyab
    kyab 2010/08/19
  • yohasebe.com : メタクラス完全理解

    Rubyのメタプログラミングについて興味はあるけどまだきちんと理解していない人は、次の4つのメソッドをよく見てほしい。新たな発見があるかもしれない。 class Object # 特異クラスはどこにでも隠れてる。 def metaclass; class << self; self; end; end def meta_eval &blk; metaclass.instance_eval &blk; end # メタクラスにメソッドを追加 def meta_def name, &blk meta_eval { define_method name, &blk } end # クラスの中でインスタンスメソッドを定義 def class_def name, &blk class_eval { define_method name, &blk } end end 僕はこれらのメソッドを meta

    kyab
    kyab 2010/08/19
    メタプログラミング、メタクラス。他より高度?クラス・インスタンス変数についても詳しい
  • メタプログラミングに関する文書 « yohasebe.com

    kyab
    kyab 2010/08/19
  • MacRubyでJavaScriptを動かす - Watsonのメモ

    MacRuby 0.6では動かないので、最新版のMacRubyをSVNから取得してください(^ ^; #!/usr/local/bin/macruby # -*- coding: utf-8 -*- framework "JavaScriptCore" module JSC module_function def eval(program) kJSPropertyAttributeNone = 0 unless(kJSPropertyAttributeNone) callback = Proc.new do |ctx, obj, this, len, args, exp| if(len > 0) tmp = args.cast!('^{OpaqueJSValue=}') string = JSValueToStringCopy(ctx, tmp[0], exp) size = JSStri

    MacRubyでJavaScriptを動かす - Watsonのメモ
    kyab
    kyab 2010/08/19
  • Theocacao: Add Methods at Runtime in Objective-C

    kyab
    kyab 2010/08/19
    実行時にメソッド追加
  • http://cocoadevcentral.com/d/learn_objectivec/

    kyab
    kyab 2010/08/19
    基本に戻るときはここ。デザインが綺麗
  • Ola Bini: Programming Language Synchronicity

    kyab
    kyab 2010/08/19
    define_method (class << self ;self;end)のmemoizeでの使用例
  • 言語の制約に頼るべきか?開発者の責任に頼るべきか?

    原文(投稿日:2009/7/17)へのリンク プログラミング言語は、完全な柔軟性をもって開発者が好きなようにいじり回せて、開発者が自分でやったことには責任をもつと信じるべきなのか?それとも悪いコードやメンテナンス性や可読性をさげてしまうような失敗を避けるために、設計時に言語の中に明確な制約を設けるべきなのか? Bruce Eckel氏は、ある種の機能は複雑すぎて、結局のところ、ほとんど使われないと考えている。 実行時のモデルが存在しないC++(コンパイルすると全てネイティブのコードに変換されて、Cとの互換性をもたなければならない)では、テンプレートによるメタプログラミングが現れました。そんな制約があったので、テンプレート・メタプログラミングはとても複雑で、ほとんど誰も、どう扱ってよいかわからなかったのです。 Javaは実行時のモデルを持ち、動的にコードの変更を行う方法すらあります。しかし言

    言語の制約に頼るべきか?開発者の責任に頼るべきか?
    kyab
    kyab 2010/08/19
  • [雑記]いい加減「車輪の再発明」の暗喩を使うのはどうかと思うが。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

    そもそもプログラマを含めたクリエイターという輩は、既存の車輪に我慢ならないから自分で車輪を作ってしまうような連中ではないのか? 車輪は何度も発明するな。Perlの開発者で有名なラリー・ウォールが好んで使った言葉だ。科学技術のいいところは,一度発明されたもの開発されたものはだれでも簡単に使うことができ,その恩恵に授かることができることだ。同じ苦労をしないでその結果が得られるということは,過去に積み上げたものはブラックボックスとして細部を知らずとも同じように利用できるということだ。 第7回 オブジェクト指向は「正しい」のか?──科学技術としての考察:疾走するネット・ダイナミズム|gihyo.jp … 技術評論社 記事自体の揚げ足取りというわけじゃなくて、もういい加減、オブジェクト指向で車輪の再発明の話はうんざりだ、という個人的な感傷です。OOPをよく言う時にも、悪く言う時にも。 自分が同僚にO

    [雑記]いい加減「車輪の再発明」の暗喩を使うのはどうかと思うが。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)
    kyab
    kyab 2010/08/19
    同意:既存の車輪に我慢ならないから自分で車輪を作ってしまうような連中。ラリーだってCがあるのにPerl作ってるじゃん。
  • いっそ「リズム駆動開発」とか。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

    TDDに関する議論がアツイですが・・・デブサミ2010のTDDのトラックを実際に聞いてきて、正直TDDにはついていけなくなったな〜という感じがデブサミ直後はありました。 最近の TDD 議論についてちゃんと僕の気持ちを書いてみる - 宇宙行きたい 完全に外野席からになってしまいますが、「テスト」「品質」、言葉一つ取っても十人十色の解釈で、「うえ〜〜〜、TDDをきちんと理解しようとしたら、こうした言葉の定義から厳密に理解しないと駄目なの〜〜〜??しかもみんな解釈がばらばらで、どれを信じればよいのかさっぱりだ〜〜」状態です。 数日経ち、「そもそも何でTDDが取りあげられてきたんだろう?」という疑問が出てきました。 TDDでは「RED→GREEN→REFACTORING」が「マントラ」として重視されており、このテンポというかステップを細かく繰り返すことでプログラミングに集中し、生産性を向上させる

    いっそ「リズム駆動開発」とか。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)
    kyab
    kyab 2010/08/19
  • わんくま同盟

    メニュー わんくま同盟 勉強会情報 メンバリスト 掲示板 ブログ リンク わんくま同盟 C#, VB.NET 掲示板 ライセンスオンライン コメント リンクはご自由にどぞ。 上のバナーでどぞ。 バナーは直リンクでどぞ。 07/11 東京勉強会 #120 上記イベント 申し込み受付中 わんくま同盟 横浜勉強会 #03 後援:/Culminis 今回の勉強会情報 今年もやります横浜勉強会。いよいよnativeの色合いが薄まったTechEdにつのる憤を晴らすべく、STLに飽き足らん方へのBoostネタ、そして機械語ハックの荒業SEXYHOOKを用意しました。 トリには軽くデザインパターンで熱冷ましといきましょう。 逆さにしてもこぼれぬほどに濃ゅーいC++ネタで暑苦しさ四割増(当社比)の夏の一日をお楽しみください。 懇親会は当然のごとく横浜中華街。大人数ほどウマい中華横浜の夜を過ごしましょう。

  • はてなブログ | 無料ブログを作成しよう

    引越し遍歴パートⅡ 2018年に「上京して10年で引越しを6回した」というブログを書いた。 月日は流れ、あれから6年…さらに2回の引越しをした。ホテル暮らしも含めると3回かもしれない。 前回の記事では主に神奈川〜千葉〜東京の引越し事情を書いた。関東の浅瀬でちゃぷちゃぷ遊んでいたに過…

    はてなブログ | 無料ブログを作成しよう
  • Rubyのblock、Proc、lambdaを理解する - このブログは証明できない。

    新年おめでとうございます。2009年の最初のネタはプログラミングのネタにすることにしました。 Rubyについてのステキなエントリーがあったので、紹介します。 no title 私は翻訳能力がないばかりか、リーディング能力も貧相です。ぜひ、原文を読んでみてください。 はじめに Rubyblock、Proc、lambdaはパワフルですが、解りにくい。Rubyはクロージャを使う方法が4つあって、それぞれチョットずつ違います。ここでは、そのへんを解説したいと思います。 Block もっとも簡単で、かつRubyっぽいと言えば、Blockですね。 array = [1, 2, 3, 4] array.collect! do |n| n ** 2 end puts array.inspect # => [1, 4, 9, 16] 何が起こっているか? まず、block付きでArrayの"collect

    kyab
    kyab 2010/08/19
    すぐ忘れるので