指定されたURLは存在しません。 URLが正しく入力されていないか、このページが削除された可能性があります。
fact(0) -> 1; %% Pattern matching for control-flow fact(N) -> N * fact(N-1). %% Recursion to create loops > example:fact(10). %% Interactive shell for fast iterations 3628800 > [{I, example:fact(I)} || I <- lists:seq(1,10)]. [{1, 1}, {2, 2}, {3, 6}, {4, 24}, {5, 120}, {6, 720}, {7, 5040}, {8, 40320}, {9, 362880}, {10, 3628800}] > Fruits = ["banana","monkey","jungle"]. %% Immutable variables ["bana
電話会社エリクソンの研究所で作られた言語「Erlang」についてしばらく調べてみようと思います。読み方はたぶん"あーらん"で。 リアルタイム処理や誤り検出が可能で組込用途に使われていて、並行処理の記述も可能、 ML や Haskell、Clean などに代表される関数型プログラミング言語の一種である、 と、見た目なかなか盛りだくさんな感じ。さてさて。 ご意見・間違いの指摘等大歓迎。 インストール 概観1 概観2 * 変数 構文の基本 データ構造 * パターンマッチ1 パターンマッチ2 パターンマッチ3 関数定義 落ち穂拾い メモ プロセス1 * プロセス2 インストール (2003/04/09) Open Source Erlang のページから、 ソースやメジャーなOS用のバイナリが手に入ります。異様にデカいので、 回線の細い方には厳しいかもしれません。Windowsの場合、 落としたイ
今回はソフトウエア設計に登場するパターンをまとめたものである「デザイン・パターン」について学びましょう。ソフトウエア設計において適切なデザイン・パターンをカタログから選び出すことで,複雑なプログラムでも効率良く設計できるようになります。 デザイン・パターンは設計上繰り返し登場するパターンを指すプログラミング用語です。元々は建築においてさまざまな建築物や街のデザインに共通して用いられる意匠や構成の組み合わせを意味するために使われていました。建築界においても,比較的近年になって使われ始めた言葉です。デザイン・パターンという考え方はChristopher Alexander氏が著書『The Timeless Way of Building』(Oxford University Press,1979)の中で初めて紹介したのだそうです。 通常,建築物は一つひとつ設計が異なり,また用途や建築条件などの
ITエンジニアの皆さんなら,一度は「情報工学」を学んだことがあるかもしれない。しかし,その知識をしっかり身に付けている人は少ないのではないだろうか。本連載では,プロフェッショナルの必須知識と言える情報工学の様々な理論について解説していく。 毎日の仕事に追われていると,ついITの原理原則を忘れがちになるものだ。何事にも言えることだが,基礎を理解してこそ,初めて応用ができるのである。そこでこの連載では,ITの根幹を成す学問体系である「情報工学」を解説していく。おそらく学生時代や入社時の研修で習った方も多いとは思うが,この機会に復習していただきたい。必ず新たな発見があるはずだ。 第1回はアルゴリズムの「計算量理論」を取り上げる。計算量理論とは,一見してつかみどころのないアルゴリズムを定量的に把握し,その良し悪しを評価する考え方である。 規則数と適用回数に着目する アルゴリズム(Algorithm
昨日ベッドで本を読んでたらPM10時前にそのまま寝てしまい、AM4:00に目が覚めた。しょうがないのでそのままシャワー浴びて日曜プログラミング。早起き、結構いいかも。平日に定時に上がれるならこういう生活がいい。 optparseが面倒くさいので今後はここからコピペする。 元は瀧内さんのコードだけど、どれからパクったか忘れた。 require 'optparse' COMMAND_LINE = "#{$0} #{ARGV.join(' ')}" OPT = {} opts = OptionParser.new opts.on('-a <abc>'){|v| OPT[:abc] = v} opts.on('-x', '--xyz <xyz>'){|v| OPT[:xyz] = v} opts.on_tail('-v', '--version', 'Show version.'){puts(op
2007年5月,ソーシャル・ブックマーク・サイトreddit.comにあったトップ記事が,マルウエアをダウンロードさせるWebサイトにリンクされた。RedditやDiggなどのソーシャル・ブックマーク・サイトでは,ユーザーの人気度に応じて記事をランク付けし,その記事へのリンクを掲載している。問題のリンク先にあったマルウエアはTrojan.ByteVerifyの亜種で,ユーザーのパソコンに別のマルウエアのダウンロードも行う。 ソーシャル・ブックマーク・サイトからのリンクを使うと,どれくらい効果的にマルウエアを広められるのだろう。いったい何台のパソコンを感染させられるだろうか。悪質なWebサイトによって感染する数は,そのWebサイトを閲覧したユーザー数と,閲覧者の中でそのマルウエアに感染しやすいユーザーの割合によって決まる。 英Eコンサルタンシーによると,あるWebページがDiggで人気記事に
Appleが開発者向けに配布した、「Mac OS X」の次期バージョン(開発コード名:Leopard)のベータ版が、ファイル共有サイトからダウンロード可能になっている。 Appleの法務部門は過去に、こうした事態を問題視してきた。少なくとも2005年4月にリリースされたMac OS Xの現バージョン(開発コード名:Tiger)のベータ版で同様の事態が生じたときには、訴訟を起こしていた。 このたび、開発コード名「9A466」というビルドが英国サイトOinkにあるのをCrunchGearが見つけた。同ビルドは現在はPirateBayにも存在する。 Crunchgearのサイトのコメントには、Oinkからはそのビルドは削除されたとも書かれているが、本記事執筆時点で同ビルドはまだPirateBayに存在する。Leopardの正式版は2007年10月にリリース予定である。
RESTなWebサービスをマウントするRESTファイルシステム、FUSEで作ってみた FUSE REST Ruby 2007-06-24 FUSE用のRubyライブラリで、FuseFSてのがあるのを最近知った RubyのFuseFS使ってtwitter file systemを作ってみた Rubyで手軽にファイルシステムを構築できるそうな。面白そうなので、ひとつ試しにRESTなWebサービスをローカルにマウントするRESTファイルシステムを作ってみた。 (http://localhost:3000/books/3.xml へアクセスして中身を表示) あと外部Webサービスをローカルにマウント!てのがやりたかったので、TwitterとTumblrのAPIをマウントしてみた。 $ cat ~/restfs/TwitterStatus/user_timeline/117011742/t
最近リリース作業が面倒になってきたので、より気軽にリリースができるよう hoe を導入しようと思います。そうすればきっと頻繁にリリースする気にもなるはず。newgem なんかもありますが、まずはシンプルに行ってみます。 hoe をインストール % sudo gem install hoe --include-dependencies rubyforge の素振り パッケージを新規に登録したり、gem ファイルをアップロードするのには、rubyforge gem を利用しているのでまずはそっちを確認します。 setup コマンドを実行するとホームディレクトリ以下に .rubyforge/user-config.yml ができているので、rubyforge.org のユーザーアカウントとパスワードを記入しておきます。 % rubyforge setupユーザー情報を与えたら、設定情報を自動取得
reflectionとは? reflectionは画像の下側に反射効果を施すだけのシンプルなライブラリです。ただ、使い方のアイデアによっては、面白いこともできます。下の図は、富士山のJPEG画像を読み込んだけのものと、reflection.jsを使って「逆さ富士」を表現したものです。実は「逆さ富士」の方の画像ファイルは、上向きの富士山の画像ファイル1枚だけです。富士山を「逆さ」にしているのが、本稿で解説するreflection.jsというライブラリが果たしている役割ということになります。 reflection.jsを使ったページ reflection.jsを使わないページ reflectionは他のライブラリを使用しませんが、動作するブラウザは多少限定されます。<canvas>タグが利用できるブラウザかInternet Explorerでないとreflectionは動作しません。ただ、表示
最近Erlangを勉強中なのだけど,かなり良い感触. メジャーじゃない言語(C/C++,Perl,Java,PHP,Rubyくらい?)は,興味を持っても,実際に業務で導入する,というところまでは行かないのだけど,Erlangは実際に使いたいと思うほど. MLでErlangの話の資料が公開されていて, Threads is evil. Processes are ugly. State machines send you mad. ということで,Erlang良いよ,という内容. 多数のリクエストを扱うようなサーバアプリケーションを作る場合,スレッドは見つけにくいバグがよく起こる上にそこまでスケールしないし,マルチプロセスは遅い&スケールしない. C10K問題と言われていて,解決する方法としては,ノンブロッキング呼び出しとか非同期呼び出しで自前で各コネクションの状態を管理してがんばるしかないわ
2007/04/27 “twitter”がブームだ。140バイト以内の短いメッセージで“現在進行形”の自分のステータスをほかのユーザーとシェアするだけのオンラインサービスだが、本国の米国はもとより、日本でも非常な人気を集めている。Alexaでアクセス数の推移を調べると、今年に入ってから本格的にブレークしている様子が分かる。4月22日にはニューヨークタイムズもtwitterと、サンフランシスコ在住の創業者2人を記事で取り上げている。 twitterのコミュニケーションツールとしての新しさ twitterに参加してみると、チャットやメール、SNSといった、既存のコミュニケーションツールのいずれとも異なる、不思議なつながり方が新鮮で楽しい。熱心にメッセージを更新するユーザーを見ていると、CUSeeMe、ICQ、mixiなどが登場したときに人々が示した熱狂に近いものを感じる。 twitterでは、
2007年05月16日22:45 カテゴリLightweight Languages そろそろerlangについて一言いっとくか 実は最近結構erlangを使っているので。 萎え - whatever erlang sucks 一貫性無さ過ぎな文法 変数束縛が Variable = Value. なのに、関数定義が function(Aargument) -> blah, blah, blah. てのはどうよ?しかも変数は大文字ではじめて関数は小文字ってわけわかめ。 しかも、 ->は関数だけではなく、 receive Message -> blah blah blah. という風にも使う。確かにMessageをArgumentとして見れば、関数定義と似てはいるのだけど。 しかしそれなら、JavaScriptのaddEventLister()じゃないけど、receiveするという関数/メソッ
Erlang に関する情報を,自分用メモを兼ねて作成しました. 間違い等見つけた方はブログのエントリまで連絡いただけるとうれしいです. 最終更新:2007/07/04 23:56 目次 Erlangの特性 Erlangは以下のような特徴があります. 簡単に言うと,ネットワークサーバを書くのに向いています. 得意なこと ・大量の並列処理 ・複数サーバでの分散処理(ただしEthernet経由で通信するので専用インターコネクトほどは速くないと思います) 苦手なこと ・純粋な計算処理(C言語の10倍程度遅いようです) ・GUIアプリケーション(WingsというErlangでかかれたGUIアプリはあるが,GUI周りの情報は少ないです) ありそうな勘違い ・マルチコア・SMP環境にすれば,コア数に比例して性能が向上する. →もちろん条件によるので,必ず比例するわけではありません. SMPサポートは条件
消す! 消す! このBookmarkletを使用すると、ページ内の見たくないエレメント要素部分を選択的に消すことができます。 このBookmarkletを起動後、ページ内の画像やテキストやテキストフィールドにマウスを重ねるとその部分がグレーの選択状態になりますので、クリックすると選択部分が画面から消えてなくなります。 スクロールせずに読んだものから消していく、という読み方ができるので便利かもしれません。 WindowsのIE6とFirefox 0.8、そしてOperaで動作確認しました。 投稿者 bookmarklet : 2004年05月18日 17:02 | トラックバック 初めまして,naoKといいます。 以前から"あー便利そうなものがいっぱいあるなー"と読ませて頂いておりましたが,今回trackbackさせてもらいました。 このscript,うちのopera7.50(en)で利用さ
Erlangをいうプログラミング言語を使って何かをすることが、 最近の流行みたいです。去年はHaskellが流行しましたね。 研究室内で僕を含めてErlangに興味津々という人が、 何人かいたので、今やろう!すぐやろう!と始めてみました。 以下はDebian Etch LinuxでErlangを使ったHello Worldに たどり着くまでの方法と、自習用の資料へのリンクです。 15分でHello Worldを表示してみましょう。 # 僕は表示までに30分以上かかりましたが・・・。 ErlangでHello World Erlangの読み方 - アーラン - Erlangとは Erlangをインストール Debian Etchではapt-getするだけです。時間は5分くらいかかります。 Windowsの人は、Erlang.orgでバイナリファイルを配布しているので、 それをインストールして
米Xeroxの研究者らは、人間が考え、話し、質問するのと同じ要領で文書検索が行えるテキストマイニングツール「FactSpotter」を開発したと発表した。 このツールは、例えばユーザーが、「what Steve Jobs said yesterday」(Steve Jobs氏が昨日話した内容)と入力すると、同ツールは文書を検索して、対象を絞り込んだ関連文書を表示する。Apple最高経営責任者(CEO)の名前を含む無数の記事が表示されることはないという。 しかし、先週発表されたこのFactSpotterソフトウェアは、インターネットなどで一般公開されない。利用できるのは、開発元であるXeroxの顧客のみだ。 Xeroxのマーケティング、戦略、提携担当ディレクター兼ゼネラルマネージャーのJean-René Gain氏はSilicon.comのインタビューで、XeroxはFactSpotterを
RSpecは長らく0.Xリリースが続いており、APIの変更がなされていました。 しかし、2007/5/19に正式りリースである1.0.0が公開され、現在ではそのバージョンが活発にメンテナンスされています。 機能の追加はもちろん、バグ修正も多く行われており、またRSpecの開発陣も、このバージョンのAPIは後方互換性を保っていくことを表明しています。これから使いはじめる分には「テスト基盤がころころ変わる」問題は多少は収まることと思います。このへんを懸念してRSpecを導入していない方がいらしたら、このバージョンは是非さわってみてください。 ということで、実際に0.8.xで書いていたspecを1.0.0互換にしてみました。完全に1.0.xスタイルの書き方というわけでは鳴く、あくまで既存資産分を動作させるための最小限の変更、ということに御注意ください。 注意点 contextとspecify 引
■ [ruby] RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize 今日は、RubyでWebサイトを解析するときに強い味方となるライブラリ、HpricotとWWW::Mechanizeを紹介します。 どちらも非常に強力なので、覚えておいて損はないよ! 以下ではまずHpricotでHTMLを解析・編集する方法について解説します。 次に、「はてなダイアリーの自動更新」を例にWWW::Mechanizeの使い方を解説します。 Hpricot HpricotはHTMLを解析するためのライブラリです。 例えば「あるページのリンクだけを全部抜き出したい」と思ったとき、どうしますか?scrAPIを使う?でもscrAPIはやっぱり ちょっと使いたいだけなのにパーザ(Scrape)用のクラスを定義するのが面倒なんだよね! Hpricotなら、たったこれだけで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く