タグ

rubyに関するzetamattaのブックマーク (166)

  • Ruby - 新しいクラスの作成と既存クラスの変更(インスタンス変数とinitialize) | Kamimura's blog

    Ruby - 新しいクラスの作成と既存クラスの変更(インスタンス変数とinitialize)

    Ruby - 新しいクラスの作成と既存クラスの変更(インスタンス変数とinitialize) | Kamimura's blog
    zetamatta
    zetamatta 2013/05/25
    曰く「Pythonはデータの隠蔽が出来ない」― えぇ、下線二つ「__」を頭に付けても駄目でしたか?
  • プログラマのための言語別コーディング規約まとめ | Web活メモ帳

    みなさんはコーディング規約を利用していますか。 個人で開発している時はオレオレルールで良かったのですが、 複数人で開発するようになると共通のルールがあった方がストレス無く開発が出来るようになります。 WEB系の言語のコーディング規約について、調べ物が必要だったので、 まとめたものをブログでもシェアします。 HTMLCSS Google HTML/CSS Style Guide の推奨ガイドラインまとめ HTML5 コーディングガイドライン(HTML5)ver1.0 JavaScript JavaScriptのいろいろなコーディングルールをまとめてみた PHP PHPのコーディング規約 PSR-0、PSR-1、PSR-2、PSR-3とは WordPress コーディング基準 Pear Manual :: 標準コーディング規約 Zend Framework PHP 標準コーディング規約 Ca

    プログラマのための言語別コーディング規約まとめ | Web活メモ帳
  • ついに顕在化しはじめたArrayリスク : 404 Blog Not Found

    2013年03月11日18:15 カテゴリTipsLightweight Languages ついに顕在化しはじめたArrayリスク JavaScript: The Definitive Guide (Kindle ed.) David Flanagan [邦訳:JavaScript 第6版] 以下のようにした理由は、実はJavaScriptのArrayが配列ではないことに起因します。 404 Blog Not Found:Algorithm - Ruby 2.0 や Haskell の遅延リストを JavaScript で これに対して、List.Lazyではmapやfilterを関数合成で実現しています。JavaScriptのArrayが、(整数個のデータ構造が順序よくならんだ古典的な意味での)配列でないことは、以下のように確認できます。 JavaScript var ary = ne

    ついに顕在化しはじめたArrayリスク : 404 Blog Not Found
    zetamatta
    zetamatta 2013/03/13
    まぁ、JavaScript の配列って、連想配列だからな
  • lua, V8, ruby, mrubyでfib(39)の実行時間比較 2013-03-12版 · hnakamur's blog

    2012-05-04 2013-03-13追記 この記事が@matzさんにツイートされたのを受けて、各処理系の最新版で再度試してみました。 lua, V8, ruby, mrubyでfib(39)の実行時間比較 2013-03-12版をご参照ください。 mruby (軽量ruby) ソース公開 | quredo-styleを見て、自分の環境でlua, luajit, V8, ruby, mrubyで試してみた。 テスト環境 Model: MacBook Air 13-inch, Mid 2011 CPU: 1.7GHz Intel Core i5 RAM: 4GB 1333MHz DDR3 OS: Mac OS X Lion 10.7.3 lua fib.lua function fib(n) if n < 2 then return n end return fib(n-2) + fib

    zetamatta
    zetamatta 2013/03/13
    V8 と luajit 速いな!
  • mrubyについて - 環境構築・零

    今日はひなまつりですね、何か記事を書いて更新したいと思います。 mrubyが盛り上がっていますね、mrubyの話でも。 基的にユーザなので、ユーザの目線でいきますか。 環境は、 Windows 8 Ruby 2.0 EmEditor で書いてます。 環境構築をする上で、 「人間とウェブの未来」※1というサイトが簡単でよかったと思います。 ただ、-eオプションをつけて実行を試す一番最後の欄。 (環境変数でPATHをmruby/binにつないでいるので) mruby -e 'puts "Hello mruby World!"' unterminated String meets end of file と出力されて動いているかどうかわかりませんでした。 追記:わかりました、Cygwinで同じことをするとHello mruby World!と出力されました。 つまり、ターミナル上で実行するよう

    mrubyについて - 環境構築・零
    zetamatta
    zetamatta 2013/03/10
    「mruby -e 'puts "Hello mruby World!"'」でエラーになるのは、コマンドプロンプトがシングルクォートを引用符として認めていないからですね。「mruby -e "puts 'Hello mruby World!'"」ならOk
  • Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい

    Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def

    zetamatta
    zetamatta 2013/03/02
    Ruby の人は手品でもしたいの?Ruby の case で嬉しがってる人を見ると、初期の C++er が演算子のオーバーロードで喜んでいたのと姿がかぶる。便利だけど、後から見て、分かりにくいんだよ
  • Big Sky :: mruby から正規表現が消え、正規表現がやってきた。

    mruby には元々、正規表現のコードが入っていました。標準では ifdef で無効化されており、有功にしてもコンパイルエラーが出る状態でした。それを IIJ さんが hack して使える様にしてくれていたのだけど、Matz としては思う所があってか取り込まれていませんでした。 もったいないなーと思い、それをしばらく最新にメンテしてたのですが、こちらも取り込まれる事はありませんでした。 おそらく軽量 mruby に標準で正規表現が組み込まれている事でのオーバーヘッドや、期待しないメンテナンス作業を嫌っての事だと思います。 おかげで通常の mruby では正規表現リテラルを含むコードはパースエラーとして扱われ、CRuby 向けに書かれたアプリケーションの移植の妨げになっていました。 ならばとばかりに、逆に mruby から正規表現を取り払う修正を pull-req しました。 Pluggab

    Big Sky :: mruby から正規表現が消え、正規表現がやってきた。
    zetamatta
    zetamatta 2013/02/24
    Matz氏はmrubyが「太る」のを嫌っているのではないか?mrubyはcrubyに近付くべきとは自分は思わないな
  • Ruby1.9のfiberのかっこよくつかおう

    1. e-Zuka Teck Night Vol.1 Ruby の クロージャと ファイバーを かっこよく使ってみよう e-Zuka Teck Night, Rubyist九州 近畿大学 山崎重一郎 2. e-Zuka Teck Night Vol.1 Rubyには 関数型言語の 顔があるんです  1.9になってますます関数型言語的な感じ  closureやFiberはそんな感じが強い  今日はRubyをオブジェクト指向言語じゃなくて関 数型言語みたいに扱います!

    Ruby1.9のfiberのかっこよくつかおう
    zetamatta
    zetamatta 2012/12/13
    lambda を -> と表記したり、引数を [ ] で囲むのは分かりにくいな。文法としてあまりうまい表現とはいえないと思う
  • WebPay: 開発者向けクレジットカード決済サービス

    ドメインウェブの設定が見つかりません 考えられる原因 ドメインウェブの設定がまだ行われていない。 ドメインウェブの設定がまだ反映されていない。(反映には数時間~24時間かかることがあります) ドメインウェブ・DNSの設定が誤っている。 アカウントが存在しない、契約が終了している、削除されている。

    zetamatta
    zetamatta 2012/12/13
    なぜ、Ruby限定?
  • [ruby] facter を require して使うのは危険 - HsbtDiary(2012-10-24)

    ■ [ruby] facter を require して使うのは危険 facter という puppetlabs が作っているシステム情報を良い感じに取得する gem があるんだけど、こいつはコマンドラインで使うのは良い物のアプリケーションの内部から Ruby のコードとして呼ぶのは危険っぽいということがわかった。 というのも https://github.com/puppetlabs/facter/blob/master/lib/facter/ec2.rb でトップレベルにおもむろに metadata とか userdata といういかにもなメソッドを定義していたり、いきなり LANG=C したりしてるからです。 今日、たまたまた Photo#metadata というモデルを直していてその中で Facter.value('fact_name') とかしたら、突然 metadata にアク

    [ruby] facter を require して使うのは危険 - HsbtDiary(2012-10-24)
    zetamatta
    zetamatta 2012/10/25
    曰く『(Rubyの)トップレベルにおもむろに metadata とか userdata といういかにもなメソッドを定義していたり、いきなり LANC=C』― Python なら前者のようなことは防止できたかもね
  • コマンドプロンプトでこっそりTwitterをするためのRubyスクリプト「Tw」NOT SUPPORTED

    zetamatta
    zetamatta 2012/10/16
    Windowsの場合、日本語のツイートが駄目っぽい。秘密キーの扱いがどうなってるのかが気になる
  • 「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え:Rails Hub情報局:エンジニアライフ

    2012年9月に行われた札幌Ruby会議2012の基調講演の1つで、Rubyの生みの親のまつもとゆきひろさんが、最近あった面白いエピソードを混じえて“イノベーション”の質について語っていました(44分の動画)。ポイントとなる部分をまとめてみました。まつもとさんの話はもちろん、統計的裏付けだとか学問的裏付けがある議論というものではありませんし、ご人も楽しそうに話し、聴衆も楽しんでトークを聞くというゆるい感じのものでした。ただ、「イノベーションの質は捉えがたい」というメッセージや、「だからあれこれ考えずにコードを書こう、われわれはコードを書くことにアイデンティティを感じているのだから、それこそがハッピーになる道だ」というメッセージは、参加していたRubyistたちの胸に響くものがあったのではないかと思います。 以下、口語文体のまま、ポイントとなる前半のトークをまとめてみました。トーク後半

    「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え:Rails Hub情報局:エンジニアライフ
    zetamatta
    zetamatta 2012/10/11
    僕も Ruby に対してはネガティブに思ってるけど、それはユーザに対してであって、言語自体は確かに優れた車輪だということを認めざるをえないと思うよ
  • Bitboxer - Ruby -vs- Python

    Ruby and Python. Two languages. Two communities. Both have a similar target: to make software development better. Better than Java, better than PHP and better for everyone. But where is the difference? And what language is “better”? For the last question I can say: none is better. Both camps are awesome and do tons of great stuff. But for the first question the answer is longer. And I hope to prov

    zetamatta
    zetamatta 2012/10/04
    まぁ、確かに Python は変化を恐れて、なかなか 3系に移行できない雰囲気はあるよね
  • Shibu's Diary: Pythonはなぜ?str.join(seq)なのか?

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 PythonAPI設計の中で、たまに思い出したように話題が出てくるのが、配列に入った文字列を結合するメソッド。Pythonではstr.join(iterable)です。他の言語(僕がよく知っているRubyJavaScript)はArray.join(String)となっています。どちらでもありえる話ですが、個人的にはPythonの方が自然だな、と感じていました。ですが、他の言語の方がいいという人も多く、Pythonプログラマーの中でも好き嫌いが出たりもします。せっかく、弾さんがPerlの国からやってきて適度にガソリンをまいて炎上したところなので、Python歴史を紐解いてみました。 軽くjoin歴史について語っているサイトはないか探してみる 軽くぐぐってみると、何箇所か

    zetamatta
    zetamatta 2012/10/01
    『Rubyは「人にやさしい」がウリなので』 ― その表現はマイナスイオンっぽいので、やめてほしい
  • Rubyistなら知っておくべき地味だけど便利なメソッド - joker1007’s diary

    備忘録兼、初心者向けのメソッド一覧。 余裕があればRails編とかも書こうかな。 これ忘れてるとか何事?とかいう突っ込みがあれば是非お願いします。 もうちょっとコードの具体例書きたかったけど、めんどくさくなってきたw Array Array#combination(n), Array#permutation(n) 配列のデータを元に組み合わせ(順列)を作ってくれます。 ブロックを渡さない場合はEnumeratorで組み合わせの各要素を列挙します。 Enumerator Enumerator#with_index(offset = 0) Enumeratorの各要素に合わせてindexを列挙してくれるEnumeratorを返す。 each_sliceやcombination等にメソッドチェインで繋げて使う。 Enumerator#with_object(obj) with_indexと同様で

    Rubyistなら知っておくべき地味だけど便利なメソッド - joker1007’s diary
    zetamatta
    zetamatta 2012/08/16
    説明が分かってる人にしか分からない記述なので、初心者は詳細をマニュアルで確認せよってとこなんでしょうね
  • Ruby 安定版の保守委託先募集中 | スラド デベロッパー

    Ruby アソシエーションが、Ruby 安定版の保守を行う事業者を募集している。対象は Ruby 1.9.3 で、不具合修正パッチのマージや Ruby 1.9.3 系のリリース作業、さらに脆弱性が発見された場合には緊急リリースやパッチ提供を行う、という内容だ。委託期間は 10 月から 3 月までの半年間、報酬は 180 万円。 個人・法人を問わず募集しているとのことで、腕に覚えのある方は応募してみては。ただ、180 万円という金額が安いのか高いのかはちょっとタレコミ子には判断しかねるが。

    zetamatta
    zetamatta 2012/08/09
    曰く「半年間、報酬は 180万円」― 法人は(宣伝も兼ねてでないと)無理ですね
  • 宇宙船演算子 - May the Source be with you

    Ruby には比較を行う <=> という演算子があります。sort メソッド等は内部でこの演算子を利用して値の比較を行っているので、自作クラスにこの演算子を定義してオブジェクトの大小関係を明らかにすることが出来るようにしておけば、配列に入れた自作クラスを sort するようなことができるわけですね。*1 例えば以下のように使うわけです。 class Foo def initialize(value) @value = value end def <=>(param) @value <=> param.value end attr_reader :value end array = [Foo.new(4),Foo.new(1),Foo.new(2),Foo.new(9),Foo.new(3)] array.sort.each do |e| puts e.value end この演算子は、スタ

    宇宙船演算子 - May the Source be with you
    zetamatta
    zetamatta 2012/07/25
    曰く『Ruby には比較を行う <=> という演算子があります』― Perl にもあるよー
  • エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type

    エンジニアtypeは、各種エンジニアをはじめ「創る人たち」のキャリア形成に役立つ情報を発信する『@type』のコンテンツです。

    エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type
    zetamatta
    zetamatta 2012/07/14
    曰く『そもそも論として「設計だけ」をやるエンジニアなんて不要なんですよ』『「プライベートクラウド」なんて単語を聞くと、ただただ悲しくなってしまいます』
  • mod_mruby、mod_lua、mod_perl、mod_rubyのアーキテクチャの違いと性能

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mod_mrubyやmod_lua、そしてこれまでApacheモジュールをスクリプトで書く場合に使われてきたmod_perlとの性能比較を行っています。 modとしてのアーキテクチャの差で処理系の性能差を埋める 処理系としての差ではなく、Apacheのmod_***としてのアーキテクチャの差によって、Apache上での性能が大きく変わる事が分かってます。Apacheはプロセス(スレッド)をプールしておいて、複数のリクエストに対しプロセスを再利用するアーキテクチャであるため、インタプリタのロードやライブラリの読み込み、さらにはスクリプトをコンパイルするタイミングを工夫すれば、Apache上では高速に動作させる事が可能になります。 例えば、mru

    zetamatta
    zetamatta 2012/06/16
    mod_*** の表で比較している。が、mod_mruby が mod_lua より圧倒的に速い理由が知りたいな
  • rubyでpythonのdefaultdictっぽいものを実現する - 射撃しつつ前転 改

    Pythonのハッシュテーブル(Pythonではdictと言いますね)には、初期値が設定できる亜種としてdefaultdictというものがある。Rubyの場合、Hashクラスには初期値が設定できるが、初期値としては整数か文字列、シンボルぐらいしか使えない。初期値として配列とかハッシュテーブルを使えないのである。 そこで、Pythonのdefaultdictっぽいものを作ってみた。以下にコードを示す。 class DefaultHash < Hash def initialize(init) @init = init end def [](k) v = super k if v v else self[k] = @init.clone end end end a = [1,2,3,4,5,4,3] h = DefaultHash.new(Array.new) a.each{|k| h[k].

    rubyでpythonのdefaultdictっぽいものを実現する - 射撃しつつ前転 改
    zetamatta
    zetamatta 2012/05/27
    わざわざクラスを継承せずとも、default_proc メソッドで ok らしい。まぁ ||= とかもあるし