吉祥寺.pm #26でお話したソフトウェア開発における『知の高速道路』の話です。 将棋や数学とのソレには程遠い。主にサッカーの戦術的ピリオダイゼーションを参考に考えてみました。が結論は、まだありません。

Part 1 Task の依存関係の解決 Part 2 Workflow の冪等性 Part 3 Task 間でのデータのやり取り Part 4 Task の並列実行 Workflow Engine って何? Workflow Engine と言っても多機能なものから、シンプルなものまで様々なものがあります。そこで、主旨がぶれないように、この記事での Workflow Engine は、以下の要件を満たすソフトウェアとします。 Workflow Engine とは、依存関係のある複数の Task を、意図した順番通りに実行するもの この記事では、この要件を満たす Workflow Engine を Ruby でつくる方法について解説します。 依存関係を記述する 依存関係を解決するコードを書く前に、依存関係を記述する方法をまず決めましょう。 依存関係を記述するには、luigi のように Ta
Levenshtein距離とJaro-Winker距離両方とも、二つの単語、文章の間の違い(距離)を調べる方法です。 Levenshtein Distanceレーベンシュタイン距離 - Wikipedia 1文字削った文字列の末尾にどのような文字を追加すれば一致するか見ることで、1文字削った文字列との距離から1文字加えた文字列との距離を求めることができる。 数値(距離)が低ければ低いほど、似ている文字列となる Jaro-Winkler DistanceJaro–Winkler distance - Wikipedia, the free encyclopedia ジャロ・ウィンクラー距離も同じく文字列間の距離を調べるが、こちらはミスタイプをより検知することが出来る。ミスタイプはミスワードとは違い、最初の数文字は正しいことが多いという研究結果から、こちらの方法ではPrefix bonusとし
Subject: [ruby-dev:49209] データ構造コンテスト:テーブルデータ構造の再考 From: SASADA Koichi <ko1@ d . t Date: Wed, 12 Aug 2015 19:10:54 +0900 # 概要 Ruby インタプリタのデータ構造についての協力者を募集します。具体的には、 特定のテーブルデータ構造の高速化、およびベンチマークの作成です。題目にコ ンテストと書いていますが、とくに賞品はありません。 # 詳細 Ruby インタプリタでは、テーブルデータ構造を使っています。テーブルデータ 構造だと曖昧ですが、Ruby だと Hash クラスに代表される、あるキーに対して 特定の値が返る、というデータ構造と考えてください。キーに重複はないことと します。 Ruby インタプリタのテーブルデータ構造には、st というデータ構造が利用され ており、
Competitive Programming Advent Calendar 2014 7日目です。 今回は古典的なデータ構造をRubyで実装してみます。 まず通常の木、二分木からはじめ、その次に二分探索木、そして二分探索木に少し機能を加え高性能にした平衡二分探索木を扱います。 冒険の地図 木 二分木 二分探索木 平衡二分探索木 ランダム挿入二分探索木 Treap 基本 木(Tree) 以下の図は木の例です。一番上にある頂点(丸)を根と呼びます。各頂点に直接ぶら下がっている頂点たちをまとめて子と呼びます。子を持たない頂点を葉と呼びます。 頂点同士は辺(棒)で結ばれています。木には、辺によってループができないという特徴があります。 木の性質 木には素晴らしい性質があります。各頂点の子を根と考える(上の部分は無視する)と、それぞれの子も木になっているという点です。それらの木のことを部分木と呼
今回は「全探索」問題の2問目「Cryptography」を跳ばして3問目の「Interesting Digits」に挑戦します。 いったん横道に逸れますが「最強最速アルゴリズマー養成講座」用のリポジトリをgithubに登録しました。 succi0303 /fastest_algorithmer 「Cryptography」の解答はgithubに登録してあります。もし興味のある方がいらっしゃいましたらgithubを参照ください。 それでは「Interesting Digits」の問題文の確認。 problem statement The digits 3 and 9 share an interesting property. If you take any multiple of 3 and sum its digits, you get another multiple of 3. Fo
http://patshaughnessy.net/2013/10/30/generational-gc-in-python-and-ruby 前回のエントリーはこちら。 ブタペストで開催されたRUPY2013でのPat Shaughnessyのプレゼンの後半です。RubyとPythonのガベージコレクタの違いを、今回は、Pythonの循環データ構造への対応とRuby 2.1の世代別ガベージコレクタの話題に触れながら、紹介しています。 1) Pythonの循環データ構造と参照カウント Pythonは、いくつのポインタがそのオブジェクトを参照しているかを、参照カウントと呼ばれる整数で管理している。変数もしくはオブジェクトが、そのオブジェクトを参照しはじめれば数字が増えて、プログラムがそのオブジェクトを使うのをやめれば数字が減る仕組み。 1960年代以来、コンピュータ科学者が気づいているアルゴ
http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyが、ブタペストで開催されたRUPY2013でのプレゼンの前半を自らのブログで紹介しています。 ガベージコレクタは、「ゴミを集める」という行為だけでなく、「新しいオブジェクトのためにメモリをあてがう。」「不要なオブジェクトを見つける」「不要なオブジェクトからメモリを取り戻す。」という、人間の心臓が血液を浄化するような働きをしている。 この簡単なコードサンプルを見ると、RubyとPythonの記述はよく似ているが、それぞれの言語の内部でのインプリの仕組みは違う。 1) Rubyのメモリ Rubyは、コードが実行される前に、数千のオブジェクトを先につくり、それをリンクされたfree listに置
2013年03月10日23:45 カテゴリアルゴリズム百選Math Algorithm - Ruby 2.0 や Haskell の遅延リストを JavaScript で プロになるためのJavaScript入門 河村嘉之 / 川尻剛 これを書いたら欲が出て来たので。 dankogai/js-list-lazy ・ GitHub ちなみに「プロになるためのJavaScript入門」は参考書にした一冊。この場を借りて献本御礼。 無限リスト 自然数を受け取って対応する値を返す関数を一つ食わせるだけです。 var ll = List.Lazy(function(i){return i}); // also predefined as List.Integers p( ll.length ) // Inifity p( ll.get(42) ) // 42 p( ll.take(42) ) //
Garbage Collection Advent Calendarの25日目の記事です。 ついに、か、完走したぞ!!うぉぉー。はあ、つかれた。もう来年はいいです。 ということで今日の分のスライドもあわせて、まとめてこの記事にはりつけておきます。 (あーあ、はてなダイアリーにslideboom埋め込めないのか…) mrubyのTri-color incremental mark & sweep GC 解説 その1 mrubyのTri-color incremental mark & sweep GC その2 mrubyのTri-color incremental mark & sweep GC その3 しかし、スライドのアニメーションとGCの解説って相性いいですねえ。 Impressでpptを吐いているのですが、それなりにslideboom上でも動いてびっくりしています。ツイートする
Small programs written in Ruby. Requirements Ruby Algorithm and Data Structure sort-bubble.rb - buble sort sort-intersection.rb - intersection sort sort-selection.rb - selection sort sort-merge.rb - merge sort sort-quick.rb - quick sort trie.rb - trie data structure Use of External Library traverse_fammon.rb - monitoring the modification of filesystem by using libfam-ruby Web API googlemapgenerato
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く