palmoのブックマーク (30)

  • JavaScript でブロックスコープを実現する: Days on the Moon

    JavaScript には基的にブロックスコープというものが存在しない。どうしてもブロックスコープを扱いたいときは function 式を使ったりする。 var a = 10; { var a = 20; print(a); // 20 } print(a); // 20 var a = 10; (function () { var a = 20; print(a); // 20 })(); print(a); // 10 だがやはりブロックスコープがあったほうが便利ということで JavaScript 1.7 では let 式、let 文、let 宣言が導入される。 var a = 10; let (a = 20) { print(a); // 20 } print(a); // 10 しかしこれでは対応するブラウザが Firefox 2 以降などに限られる。ところが、with 文とオブ

  • Test::Class - naoyaのはてなダイアリー

    最近 Perl でテストを書くときに Test::Class を使ってます。(もしかして常識?) これまでは *.t で Test::More をそのまま使ってたけど、テストが大きくなってくるとコードが分かりにくくなったり、自分であれこれしなきゃいけないことが多くてめんどくさい。 Test::Class は xUnit スタイルで Perl のテストを書けるフレームワークです。xUnitPerl 実装といえば Test::Unit もあるんですが、テスト用の関数も Test::Unit の流儀に従う必要があってちょっと嫌。Test::Class は Test::More と Test::Harness とか、普段使い慣れてる Perl らしいテストスタイルを使いつつ xUnit できるという点が良いです。 使い方ですが、 Test::Class を継承したテストクラスを作り テスト用

    Test::Class - naoyaのはてなダイアリー
  • Perlメモ

    複数のプロセスでロック状態が異常であると判断し,そのうちの 1つがロックを解除したことにより,別のプロセスがロックしたにもか かわらず,先ほどロック状態が異常であると判断したプロセスによってこの正常なロッ クを解除されてしまう可能性があります. この方法の問題点は,異常なロック状態を解除する操作が正常なロック状態をも 解除できてしまうことにあります.逆に言えば,異常なロック状態を解除する操作に よって正常なロック状態を解除できなければ問題ないわけです.そのためにはどうす ればよいのか? 答えはロック状態が常に変化していけば よいということです.そして,これを実現するのに都合がよいのが rename による方法になります. 最初のスクリプトで説明しますと,ロックファイルが lockfile という 名前のときがロックが解除されている状態で,lockfile987654321 のよう に後ろに

    Perlメモ
    palmo
    palmo 2006/06/25
    Perl のカテゴリ別 tips。とても便利。
  • :: H & A :: blog: 半角スペースのススメ

    半角スペースのススメ アルファベットで表される単語の前後には必ずスペースが存在します。このスペースがあることで、それがひとつの単語であることが分かります。 This is a pen. が Thisisapen. となっていると、なんのことだか途端に分からなくなります。 ここでもうひとつ重要なのが、アルファベットの単語が日語の文章の中に入ったときにも、前後にスペースを入れるか入れないかで読みやすさが大きく変わるということです。 日語の文字とアルファベットが並ぶ場合、スペースがなくても単語の切れ目が分からないということはないのですが、どうもアルファベットの文字というのは、単語の前後にスペースが入ることを前提にデザインされているみたいで、スペースがないと妙に詰まった感じになってしまいます。 試しにやってみましょう。 今日はApple Storeへ行ってきました。今日は Apple Stor

    palmo
    palmo 2006/06/21
    僕も同じく英単語の両端にスペース派です。
  • 一般ユーザ環境におけるCPANモジュールの使い方 - iandeth.

    先週公開した、じゃらんWebサービスを使ったサンプルサイト「シンプル宿検索」にて、perlのソースコードも一緒に公開してみたのですが、さっそく興味を持ってくれた方から問い合わせを頂きました。 cgiを実行させようとしたら以下のエラーが出てしまいました: Can't locate Template.pm in @INC (中略) at search.cgi line 5 ... Template.pm モジュールがインストールされてないよ!って怒られています。あー、コード公開する際は必要なCPANモジュールも一緒に添付しといてあげたほうが親切なのかな?いやでもそれ面倒くさいし無理あるなあ・・・。 Webでキーワード "CPAN" を検索すると出てくるCPANの使い方系ページの多くは、そのサーバの root 権限を持っている前提で、サーバの共通ライブラリ下にCPANモジュールを追加する方法を紹

  • 株式投資正統派 文章が下手なあなたへ

    03 - 1999.11.30 今回は、株とはまったく関係ない『文章』の書き方について能書きをたれます。 同じ文章を書くのなら、できるだけわかりやすい文章を書きたいものです。わかりにくい文章は困りますよね。例として、以下の文を読んでください。 ホームページにCGI設置したいけれども、なかなか難しくて手間をかける方は、掲示板、ゲストブック、カウンターアクセス統計などの設置が今日から簡単です。今すぐフリー登録して見ませんか? ご満足いただけると思います。 これは、アクセスカウンターや掲示板を無料で提供してくれるJ機関のHP説明文です。分かる人には分かります。しかし、インターネットを始めてまもない方には難しい文章です。間違いなく、下手な文章です。私が以下のように書き換えてみました。 . 自分のホームページに掲示板、ゲストブック、アクセスカウンターを設置したいけれど、なかなか難しくて大変だというあ

    palmo
    palmo 2006/06/11
  • 404 Blog Not Found:perl - ('ぁ' .. 'ん') は動きません

    2006年06月08日17:30 カテゴリLightweight Languages perl - ('ぁ' .. 'ん') は動きません PerlのRange Operator, ..は便利なものですが、限界もあります。 my @alpha_small = ('a' .. 'z'); は期待通りに動いても、 my @hiragana = ('ぁ' .. 'ん'); はそうはならないのです。 ただし、簡単な解決策もあります。 my @hiragana = map { chr } (ord('ぁ') .. ord('ん')); Perl 5.8.1 以降は tr/ぁ-ん/ァ-ン/も、qr/[α-ω]/も使えるのに、範囲演算子はそうでないというのはバグに見えないこともないですが、私自身はこれでもいいと思います。というのも範囲演算子の場合、$a .. $bという変数も受け入れなければならないから

    404 Blog Not Found:perl - ('ぁ' .. 'ん') は動きません
  • 型グロブとシンボリックリファレンスでメソッド定義するときの注意点 - Unknown::Programming

    型グロブとシンボリックリファレンスを使ってメソッドを動的に定義するというケースって結構あります。 例えばアクセサメソッドを提供するmk_accessorというのを作りたいとします。 package Hoge; use strict; sub mk_accessor { my $class = shift; my $accessor = shift; no strict 'refs'; *{"${class}::$accessor"} = sub { my $self = shift; $self->{$accessor} = shift if @_; return $self->{$accessor}; }; } sub new { my $class = shift; return bless {} , ref $class || $class; } Hoge->mk_accessor(

    型グロブとシンボリックリファレンスでメソッド定義するときの注意点 - Unknown::Programming
  • Rubyの変数のお勉強 - Unknown::Programming

    さてさて、三日坊主どころか始めてすらいない状態が続いてましたね。 そろそろやれよと。勉強しますと自分で言い出したんだからやりましょう。 と、言うわけで勉強第一回としてRubyの変数について勉強します。 と、言いたいところだけどまず「ruby」なのか「Ruby」なのかどっちで書くのが良いのだろう? Perlの場合は「Perl」が一般的だ。公式HPでは「Ruby」になってるのでとりあえず「Ruby」でいきます。 さぁ、勉強開始といきますか。 新しい言語を勉強するのって楽しいですね。 基的なスタンスとして「Perlで言うとこういうこと」みたいな僕的解釈を入れつつ勉強してみようと思ってます。 よし! そろそろやるぞ! まずは変数の勉強でもするか! さぁ、Rubyにはどんな変数があるかな? プログラミング言語 Ruby リファレンスマニュアル ローカル変数 インスタンス変数 クラス変数 グローバル

    palmo
    palmo 2006/05/31
    Perlと比較しつつRubyの学習。面白そうです。がんばってください!
  • コーディングや設計で難所に出くわした時にすること - higepon blog

    仕事趣味でコードを書いているとき、設計をしているときに難所に出くわすことがあります。 そんなときに僕が意識的に心がけていることを紹介します。 もっと良い方法があったらぜひ教えてください。→皆様。 難所に出くわす前に「もうすぐ難所だな」と気づいているときは、すでに冷静な状態で心構えができています。 この場合はきちんと対処ができることが多いです。 何度も考えがループしていたり、難しすぎて他の事に逃避しているときは集中力がないか、難所にさしかかっているサインなので、難所の場合は以下の5つを順番に試しています。 絵を描く 人に言葉にして説明する 思考の流れをテキストにする 散歩する 次の日に持ち越す 絵を描く 設計やコーディングに関して、分かっていることを絵や図にあえて描いてみます。 分からないところは箱を描いて中に? とでも書いておけば良いです。 絵を書く過程で、自分がどこが分かっていないかが

    コーディングや設計で難所に出くわした時にすること - higepon blog
  • 多次元配列であれこれ 続き - hibomaの日記

    2次元の配列でビットマップをまねて、左右対称に反転/上下対称に反転 を再現する操作 の続きをやります。 今度は2次元の配列(行列?平面?)を「90度回転」する操作をしてみようと思います。画像を90度回転する ってよくやるよね。写真の縦横の向きを変えたりとか。その操作の再現。 っとその前に前日のコードのリファクタリングからやります。 my @A = qw(a1 a2 a3 a4); my @B = qw(b1 b2 b3 b4); my @C = qw(c1 c2 c3 c4); my @D = qw(d1 d2 d3 d4); my $XY = [ \(@A , @B , @C , @D) ]; 配列は全部無名配列にしてリファレンスとしてぶっ込みました。入れ子になったこの配列をこれからごにょごにょします。 配列に対する操作は sub y_reverse { my $ref = shift;

    多次元配列であれこれ 続き - hibomaの日記
    palmo
    palmo 2006/05/26
    二次元配列の回転。面白い。
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    palmo
    palmo 2006/05/26
    グループは確かに便利そう。(^_^)
  • 2006-05-25

    たとえば、あなたがブログに何か意見を書いたとします。 それに対して、次のようなコメントが書かれた、としたらどうでしょうか。 あなたはそういう意見なのですか。何もわかっていないバカがよくそういう意見を言うんですよね。 確かに、形式論理からすると、「あなたはバカだ」とは一言も言っていません。「あなた」と「何もわかっていないバカ」の両者には包括関係はありません。 でも、書かれた側は腹が立ちますよね。 また、同じ状況で、次のようなコメントが返ってきたらどうでしょうか。 あなたはそういう意見なのですか。あなたはバカかもしれませんね。 これも確かに、形式論理からすると、「バカである可能性がゼロである」を否定しているだけです。バカではない証明はできない(バカではない例を挙げるだけでは不十分)以上は、誰もが「バカかもしれません」。ここでは「あなたはバカだ」とは言っていません。 でも、やっぱり書かれた側は腹

    2006-05-25
  • 勉強日記というもの - Unknown::Programming

  • privateでfinalなメソッドの定義 - Unknown::Programming

    my $_PRIVATE_METHOD = sub { my $self = shift; print 'hoge'; }; sub public_method { my $self = shift; $self->$_PRIVATE_METHOD(); } 外部からアクセスされたくない オーバーライドされたくない そんな場合のみ使用するのもありかと思います。 Perlっぽく行くならmyじゃなくてourで宣言しといて抜け道を用意するのもありですな。 あとで$_PRIVATE_METHODの単体テストやりたいとかになった場合にできるし。 ・・・実際はあまりこんな使い方はしないけど。

    privateでfinalなメソッドの定義 - Unknown::Programming
    palmo
    palmo 2006/05/25
    レキシカルなクロージャによるprivateでfinalなメソッド
  • http://d.hatena.ne.jp/test_31331/20060525

    palmo
    palmo 2006/05/25
    がんばってください!
  • PHPがどうにも好きになれない理由 - Unknown::Programming

    仕事PerlPHPも使うんだけど、どうにもPHPが好きになれない。 いったいなんでだろうか。先にPerlから入ったもんだから後から入ったPHPに対して不満があるのかな? ま、とにかく両方やっててPHPが微妙だなぁと思う部分を列挙してみよう。 ただPHPに関してそれほど詳しくないので間違っている部分もあるかもしれません。 あ、ちなみにここでいうPHPってのはPHP4(PHP4.4.1)のことです。 変数のtypeミス(strict 'vars') これが一番痛い。 まさしくPerlでstrictを使わずに実装してるような、そう、まるで先祖帰りしてるような感覚になってしまうので当につらい。 変数のスコープ 変数のスコープが関数単位でしか発生しないのが痛い。 これによりif条件の場合のみとかループ中でしか使わない変数とかを定義できない。 つまり、変数の存在範囲を細かく設定できないのだ。 配

    PHPがどうにも好きになれない理由 - Unknown::Programming
  • Lucky bag::blog: IE で min-width を指定する方法

    IE は min-width に対応していないんだけど、「Stu Nicholls | The CSS Playground」でスクリプトを使わず CSS だけで擬似的に min-width を指定する方法が紹介されていたんで、ざっくりとご紹介。この方法は、Win IE のみに効く方法で、Mac IE では機能しない模様。サンプルとして下記の (X)HTML を使用してみる。 <div class="container"> <div class="box"> <div class="contents"> 内容 </div> </div> </div> これに対して、幅 90% で最小幅 400px の指定をしてみる。IE5.5 と IE6 に対応したパターンと IE5.01 と IE5.5 と IE6 に対応したパターンの2種類の方法がある。 実際に試してみたサンプル IE5.5 と IE

    palmo
    palmo 2006/05/25
  • 多次元配列 ->「ビットマップ」? - hibomaの日記

    唐突ですが my $A = ['a1' , 'a2' , 'a3' , 'a4']; my $B = ['b1' , 'b2' , 'b3' , 'b4']; my $C = ['c1' , 'c2' , 'c3' , 'c4']; my $D = ['d1' , 'd2' , 'd3' , 'd4']; my @XY = ($A , $B , $C , $D ); #もしくはこっちの方が書き方キレイかな? # #my @A = qw(a1 a2 a3 a4); #my @B = qw(b1 b2 b3 b4); #my @C = qw(c1 c2 c3 c4); #my @D = qw(d1 d2 d3 d4); # #my @XY = \(@A , @B , @C , @D); 入れ子になったこんな配列があります。この配列はイメージとして # 1 2 3 4 # #A a1 a2 a3

    多次元配列 ->「ビットマップ」? - hibomaの日記
    palmo
    palmo 2006/05/25
    二次元配列とreverseによる線対称反転。日経ソフトウェア7月号の青木淳さんの「変形」に関する記事を読んだ後だったので、タイムリー感。
  • iandeth. - Perl/CGI辞典 - 土井 毅さん 著 - にて use strict が推奨されていない件について

    iandeth. Perl, Flash ActionScript, MySQL, Movable Type, システム開発 - そんなテーマのサイトdeth. p.32 [参考] 他のプログラミング言語では、変数宣言は宣言に含まれることが多いですが、Perlには変数宣言という概念がありません。Perlは変数が最初に評価された時点で領域を確保します。Perlと他のプログラミング言語で大きく異なるのがこの変数宣言機能の有無であり、見通しの悪い複雑なスクリプトを書いてしまう主因でもあります。 最初のイントロダクションの章でそんな風に書かれています。これを読んだプログラミング初心者の人達はきっと「えぇ?そうなの?Perl使いにくそうだなあ」と思ってしまいますよね、きっと。そしてさらには・・・ p.104 strict プラグマは、Perlスクリプトでの記法を厳密にするためのプラグマです。 (中略