福岡Ruby会議02での発表資料です。 http://regional.rubykaigi.org/fukuoka02/

前回からの続き。 明治ミルクチョコーレートパズルの解をすべて探す - ザリガニが見ていた...。 ペントミノの解を求めるプログラム高速化 - ザリガニが見ていた...。 ペントミノパズルを解くPythonコードは、順調に高速化の道を歩んできた。 3時間以上 → 50分 → 20分 → 3分。 ところで、現在はnumpyにほとんど依存しないコードになっている。ならば、他のプログラミング言語でも同じアルゴリズムでペントミノパズルを解けるはず。ふと、使い慣れているRubyで書いてみたらどうなるのだろう?と思った。やってみた。 Rubyで解く 完全にPython脳になっていたので、endが必要な書き方に激しく無駄を感じてしまった。 いくつかのエラーに悩まされながら、どうにか以下のRubyコードを完成させた。 実行してみると... # coding: utf-8 BROW, BCOL = 10, 6
そんな訳で、CoffeeScript を触り始めて半年弱、TypeScript を触り始めて1ヶ月弱ほど経ちました。まだまだ日は浅いですが、いちおう両方とも実務案件にて使用したということで、ここらで双方に対する振り返りを簡単にしておくとします。 CoffeeScript について http://coffeescript.org/ 学習開始時期: 2014年1月頃 始めたきっかけ: Middleman や Ruby on Rails が標準サポートしているため、面倒な環境構築等をしなくて済んだから Ruby や Haml のようなテキスト量の少ない文法が好みだったから そんな訳でとっかかりとしての基礎学習期間はだいたい2〜3日くらいで、そこから既存のプロダクションコードを CoffeeScript に書き換えつつ実案件に取り入れていきました。 おおまかな特徴 要は JavaScript をよ
前回から一年以上が経過しているけど、最近lambda_driver.gemに機能を追加したので、そのことについて書こうと思う。 Rubyで、モナ……っぽい関数合成を実装した話だ。 Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記 関数合成 関数合成については以前に書いたので、こちらを見て欲しい。 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 おさらいをしておくと、関数合成とは、 関数gと関数fから、g(f(x))という関数hを新たに作り出すことだ。 (g ∘ f)(x) = g(f(x)) 関数gと関数fの合成関数g ∘ fに引数xを渡した結果は、関数gにf(x)の結果を渡したものと等しい。つまり、このような操作である。 f = lambda{|x| x + 1
もう先週の話になってしまいましたが、Tricknotesさん主催の札幌市中央区Ruby会議01に参加してきました。 コンパクトな規模ながらも「非常に良いRubyistの活動が観測」(byしまださん)された、有意義かつ楽しい会議でした。 どの発表も聴き応えのあるすばらしいものでしたが、中でもtmaedaさんの「それNArrayでできるよ」は数値計算ライブラリのNArrayをbetter Excelとして使ってしまうコペルニクス的発想で衝撃的でした。 この発表のなかで、NArrayの軸をHuman-Readableな形式で扱えるラッパークラスを作ると便利だよ、というお話がありましたが、 これをもっと便利にするNArrayCubeクラスを試験的に実装してみたので紹介します。 使い方 # 店、世代、性別の3軸からなる売上表を作成 cube = NArrayCube.new(:int, { titl
師匠様方が走り回りまくる今日この頃、皆様いかがお過ごしでしょうか。しんやです。 弊社AWSコンサルチームでは、AWSでの環境構築を『AWS CloudFormation単独(パッケージのインストール等もCloudFormationで兼ねる)』、若しくは『AWS CloudFormation+Knife Solo』という組み合わせで行うのが主流となっています。当エントリでは後者の方、『AWS CloudFormation+Knife Solo』で環境構築を行う際の『knife solo』に於ける環境構築手順について、意外と初見では踏むべき手順が多く、躓く点も多かった(と個人的には思っている)ので備忘録も兼ねてエントリとしてまとめておこうと思います。 スタート地点 Gitインストール rbenvインストール ruby-buildインストール Rubyインストール by rbenv knife-
「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
Redmineのアーキテクチャを知るための方法を公開していた記事をメモ。 これは素晴らしい。 【元ネタ】 Redmine の ERD を描いてみました - kiwamu日記 MOONGIFT : Railsを見える化「RailRoad」 オープンソース・ソフトウェア/フリーウェアを毎日紹介 RailRoad diagrams generator ruby-graphviz を使う - Loud Minority GraphvizをRubyから使う | Jottin, Jotting! Railsを見える化するツールRailRoadを使えば、コントローラやモデル一覧を自動生成できる。 真似てやってみた。 gem install ruby-graphviz gem install railroad railroad -o controller.dot -C railroad -o model.
ちょっと前に Redmine を調べていたので載せておきます。機能としての特徴は書籍もいくつか出ているので、それらを参考にしながら触ってみればよしとして、書籍にないもう少し実装よりのところが気になるものです。 バージョンは以下のとおり。 % svn info URL: http://redmine.rubyforge.org/svn/trunk リポジトリ UUID: e93f8b46-1217-0410-a6f0-8f06a7374b81 リビジョン: 2819 まずは全体感を把握しようと、RailRoad を試してみました。Graphviz も忘れずにインストールしておきます。 % gem install railload % cd redmine_home % railroad -o controller.dot -C % railroad -o model.dot -M % nea
SIZE: 13608925 bytes MD5: 50d307c4dc9297ae59952527be4e755d SHA256: aff85ba5ceb70303cb7fb616f5db8b95ec47a8820116198d1c866cc4fff151ed 特徴 主要な新機能 主要な変更点は以下のとおりです。 言語コア機能 キーワード引数: API 設計の新しい柔軟性 Module#prepend: クラス拡張の新しい方法 シンボルの配列を簡単に作るリテラル %i __dir__: 実行中のファイルのあるディレクトリ名 default UTF-8 encoding: 多くのマジックコメントが不要に 組み込みライブラリ Enumerable#lazy / Enumertor::Lazy: 無限の遅延ストリーム Enumerable#size: 遅延サイズ評価 #to_h: Hash へ
Capybara-Webkit+Cucumber+Sinon.JSでJavaScriptのテストはここまで変わる:フレームワークで実践! JavaScriptテスト入門(5)(1/3 ページ) しっかりとJavaScriptをテストするために、今注目のJavaScript用のテストフレームワークをいくつか紹介し、その概要から実践的な使い方まで解説する連載。今回は、RubyでWebKitをヘッドレス化するフレームワーク、受け入れテストの記述が日本語でできるツール、スタブやモック、スパイが使えるライブラリを組み合わせたテスト方法などを紹介。 Capybara-WebkitとCucumberとSinon.JSを利用したJavaScriptのテスト 本連載の最終回となる今回は、これまでの連載のようなJavaScriptのロジックを単体テストするのではなく、Webブラウザ上の操作と、それによって動作
先日仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプトというネタエントリを書いたのだが、その際Rubyのワンライナーをもう少しまともに理解したいと思ったので入門してみた。手元のRubyは1.9.2 はじめに Rubyのワンライナーは、rubyコマンドに色々なオプション(-eや-nなど)をつけて実行する。各オプションの網羅的な解説が見たければ、コマンドラインでは$ man rubyで閲覧できるし、webではるりまサーチで参照できる。ただ、これらは網羅的すぎるので、以下よく使うオプションとその周辺情報についてまとめた。 -e 一番基本的なオプション。スクリプトを実行する。(ちなみに他のオプションと組み合わせる時は必ず最後に記載する) 例: hogeと表示 $ ruby -e 'puts "hoge"' -n プログラム全体がwhile gets ... endというルー
情報収集はビジネスマンとしての基本である。しかし普段シェルで作業する者としては、毎回ブラウザを立ち上げる時間すら不毛である。よって、シェルから一瞬で情報収集できるRubyのワンライナーを書いた。 上からYahoo, はてな, Naverまとめ, 2ちゃん $ ruby -r open-uri -e 'open("http://www.yahoo.co.jp").read.scan(/topics.+?>([^<]+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://b.hatena.ne.jp/hotentry").read.scan(/entry-link.+>(.+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://matome.naver.jp/").read.sc
ポロン「右手からRuby・・・」 ポロン「左手からiOS SDK・・・」 ポロン「合体!!!」 ポロン「魔力解放 RubyMotion!!!!」 ・・・いやぁロト紋、懐かしいですね。こんにちは。みなさんドラクエ10やってますか!ぼくは全職カンストなのでやってません!あと数日で公開のパッチ1.2を待ち焦がれています。次のアップデートに期待してるのはなんといっても魔法戦士ですよね。以前にみたところによると魔法戦士にはMPを他のプレイヤーに分け与えるMPパサーという職業スキルがあって、パラディンのHPパサーが専用じゃなかったようにこれも非専用スキルのようです。と、いうことは!余ったMPを武闘家なり盗賊なりに分けて無限タイガークローなんてことが可能そう。これは熱い・・・当初予定のMPパサーの仕様に修正が入らなければ、ですけど。スティック100に振ってる自分としてはスーパースターがスティック装備可能
ソースコードタグシステム GLOBAL の、作者自身による解説本「GNU GLOBAL ハンドブック」を読んだので紹介します。章立ては次の通りです。長かったので少し「(省略)」と書いてはしょりました。 目次 第1部 導入編 第1章 インストール 1.1 インストールの最も簡単な説明 1.2 インストールの準備 1.3 ソースアーカイブからのインストール 1.4 CVS リポジトリからのインストール 1.5 ソースアーカイブの署名を確認する 第2章 さぁはじめよう 2.1 GLOBAL ひとめぐりのための最初の題材 2.2 タグファイルを作る 2.3 シンボルの定義場所を調べる 2.4 シンボルの参照場所を調べる(-rオプション) 2.5 定義でも参照でもないシンボルを探す(-sオプション) 2.6 ディレクトリを移動する 2.7 正規表現を使う 2.8 egrep 相当の機能を使う(-gコ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く