サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
blog.ajiyoshi.org
最近Hadoopを使うために5~6年ぶりにJavaをいじっています。 そんで、ちょっとばかり耐えがたいわけです。 例えばありがちな例題を挙げると、 ["google", "検索エンジン","開発"]のようなタグ(文字列)のリスト(でも配列でもなんでもいい)を受け取って [ {tag=>"google", enc=>"google"}, {tag=>"検索エンジン", enc=>"%E6%A4%9C%E7%B4%A2%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3"}, {tag=>"開発", enc=>"%E9%96%8B%E7%99%BA"} ] のようなハッシュテーブルのリストに変換しなさい。 ただしパーセントエンコーディングを行う関数(でもメソッドでもなんでもいい) uri_encodingは与えられているものとする。 こんなこと、Web
昔新人にバグとは何かについて偉そうに語ったことがある。 バグとは何か。以下のようなものである。 バグの定義「Aという入力に対して、Bという結果を期待したのに、Cのような結果になった」 B≠Cな状態がバグである。 最低限必要な要素は三つ:入力条件、期待する動作、実際の挙動 である。 入力というのは関数への引数でもいいし、何かの操作とか設定とか環境とかでもいい。結果というのも返り値でも挙動でも表示されるメッセージとかでもいい。 プログラマがバグ報告をするならば、上記のような書き方が好ましい。 Aという入力が100%Cという結果を引き起こすならバグ報告としてなおよい。再現状況が判明しているということだからだ。 したがって、tracにバグ報告のチケットを作るならば、必ず上記の3要素(条件、期待する動作、実際に起きたこと)を書きなさいという風に教えた。 このようにバグを定義した場合
こないだ買ったSICPを通勤電車で読んでるんだけど、面白すぎる。 (でも通勤電車で本文を読んで家で練習問題をやろうと思ってたけど、家ではついニコニコなんぞを見てしまうので、本文は3章を読んでるのに練習問題はまだ1章の途中までしかやれてない。くやしいのうwwwwくやしいのうwwww) 例えば1章では、√xを求める関数を書くのを題材に、関数による処理の抽象化について説明している。 √xの近似値を guess として、(x/guess + guess)/2 でよりよい近似値が得られる(これはf(x)=√xに関するニュートンラプソン法による)というのを天下り的に与えられたとき、手続き型言語脳だとどう書くだろう? new function(){ function average(a, b){ return (a + b)/2 } function square(a){ return a
id:JavaBlackさんから以下のようなツッコミをいただいた。トラックバックくれればいいのに おれおれオブジェクト指向は何が違うのか Java/C++/C#のオブジェクト指向的機能というのは、数学的なモデルとしては「包含関係を持つ集合をプログラマが任意に定義できる機能」と言える。包含関係というのはaggregationのことじゃなくて、集合としての包含関係なので、汎化/特化のことだ(つまり継承だ)。 http://blog.ajiyoshi.org/Entry/263/ たぶん,この人も全く分かってないと思う.憂鬱系のおれおれオブジェクト指向だと,こんな感じになります. 僕がオブジェクト指向をどうとらえているかというと、この定義がすっきりしていて綺麗だと思っている。 Rees Re: OO 以下に示すのは、[オブジェクト指向にまつわる]用語に関連づけられる機能や特性のメニューだ。オブジ
Perl で手軽にイタレータっぽいことをやりたいんだが うぅむ、呼出し元にて丸括弧の中に中括弧があるのが、みっともないなぁ。もっと美しい書き方は無いものか。で、dankogai氏のページを見た: 404 Blog Not Found:perl - for(1..1e10) と Iterator というのを見て、プロトタイプ宣言してやれば map とかみたいにコードブロック渡せるんじゃないか?とおもってやってみたら無理だったという話。 多分、元々やりたいことはRubyのiteratorみたいに $sar->each { my ($time, $p) = @_; print ("$time : $p\n"); }; こんな風に書けるメソッドを書きたいということだろうと思う。 でも↓のbad_eachでは期待したようには動かない 勉強不足で知らなかったのだけど、コードブロック
Mash up Caravanで発表した資料です。 JavaScriptでHTMLを生成するやり方に関する基本的な内容ですが、意外とこの辺がまとまったドキュメントってWeb上にないのではないかなと思います。 ↓の Prev Next でページ送りします LingrTickrを使ってバックチャンネルのチャットを表示するように仕込んで行ったんですが、会場が地下だったためネットつながらなくてぽしゃったのが心残りでした。 Previous | Next
フィード大好きのHI☆RO☆SIがまた何か作ったらしい。 RSS/Atom Feedに関わる最良のソリューションの提供を。 本来の「大量の記事を読む」というニーズであれば、他のどのリーダーよりも目的に即していると思う。 すでに人類にはLDRとFastladderがあるのにここまでの大言壮語を見るとさすがに試してみたくなった。主に「どう見てもLDRの方が大量に読めます。本当に」と言うために。 とりあえず今LDRで読んでいるフィードと、加えてmalaさんが読んでいるフィードのOPMLを突っ込んでしばらく使ってみた。 (中略) というようにmodiphiについて思うことは色々あるけど、まあそれはどうでもいい。 http://buzzurl.jp/user/note103/bm/615738 modiphiを罵倒するだけではアンフェアだと思ったのでFastladderに同じように自分が読んでたフィ
Yahoo!ブックマークがソーシャルブックマークにリニューアルしたらしい。 なんかyahoo.co.jp内へのリンクだろうが外部ドメインへのリンクだろうが全部リダイレクト経由なのがものすごい不愉快。どこへ飛ぶのか分かりにくい。 あと不愉快以前にこれはセキュリティ的に問題があると思うんだけど。ウィルス作者が ttp://example.com/virus.exe をブックマークしたらどうするつもり? Yahoo!の人たちはみんトピのときも同じようなことをしてたけど。 俺のリンクを見てくれ。こいつをどう思う? Yahoo!ツールバーダウンロード! すごく・・・危ないです・・・ とかやると一見yahoo.co.jpドメインなリンクのダウンロードダイアログを作れると思うんですが(このファイルはWindowsについてたcalc.exeですがダウンロード&実行とかはしないでください)。 教訓は何かとい
amachang - JavaScript 入門を最初に見たときは見落としてたんだけど、javascript - 勝手に添削 - JavaScript入門でwith()は徹底的に避けるべしと言われている部分の奇妙なコードが気になって調べて見た。 var nl = document.getElementById('target02').getElementsByTagName('div'); for (var i = 0, l = nl.length; i with({e:e}) setTimeout(function() { var box = new Box(e); box.start(); }, i * 500); } amachang - JavaScript 入門 なんじゃこの with文? と思ったので色々試したり調べたりしてみた。 正しい挙動 うごかす
※追記:あまりにも記事タイトルが適当すぎて我ながら日本語でおkと思ったのでタイトルを変えました。 http://labs.cybozu.co.jp/blog/kazuho/archives/2006/12/oo-settimeout.php http://blog.livedoor.jp/dankogai/archives/50714622.html このネタはmalaさんが1年半前に通過した地点なのである程度常識の部類かと思ってました。 でもdankogaiがわざわざやるってことは知らない人も多そうだし、malaさんが同じネタをまたやるようにも思えないので、ついでにLDRに現在使われてるFunction.prototype.laterとかを紹介してみる。 Function.prototype.later = function(ms){ var self = this; return fu
標準偏差っていうのが何なのか、最近知りました。 標準偏差 - Wikipedia こういう数式で表されます。 ていうか、僕こういう数式にすごく抵抗あるんですよねぇ。 プログラムの方が理解しやすいかも。 標準偏差 これを見て、そういえばBuzzurlのタグクラウドを作るのに、標準偏差を基に重み付けをしたなあと思ってソースを見たら汚かったので書き直してみた。 普通に書くとこう。 #分散を求める。標準偏差が欲しい場合は戻り値をsqrt() #average関数は自明なので省略 sub variance { my $num = scalar(@_) or return 0; my $ave = average(@_); my $ret = 0; while(@_){ my $i = shift; $ret += ($i-$ave)**2; } return $r
このページを最初にブックマークしてみませんか?
『*「ふっかつのじゅもんがちがいます。」』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く