タグ

2011年1月26日のブックマーク (21件)

  • JavaScriptのテストについて本気出して考えてみた(1) - 愛と勇気と缶ビール

    一週間のうちまる一日くらいは、「あーあのJavaScriptコードのテストってどうするのがいいかしら?」と考えている。 嘘です。多分45分くらい。 考えている時間の長さはどうでもいいんだけど、JavaScriptのテストは場合によっては中々ややこしい問題に成り得る。DOMなどの外部リソースにタッチすることのない「純JavaScript(オレオレ用語です)」であればブラウザ上であろうとRhino上であろうとNode JS上であろうと(理論上は)テストを動かせるのだが…。 JavaScriptであろうとなかろうと、外部のリソースに依存している(外部のリソースを操作する)コードはそうでないコードよりテストが面倒になる。ファイルR/WやDBの操作などIO系は勿論そうだし、どこかのサーバに何かしらのプロトコルで話しかけるようなコードもしかり。 JSのテストがややこしくなるのは、JavaScript

    JavaScriptのテストについて本気出して考えてみた(1) - 愛と勇気と缶ビール
  • scalaの、配列に対する統一的な扱いについて - xuwei-k's blog

    C言語だと、配列ってなくてはならない存在で、入門書でも比較的最初の方に出てきますよね?それはいいとして、言語の誕生や影響うけた順として、 C => C++ => Java みたいなことがよく言われるじゃないですか?そして、C++でもJavaでも、C言語*1の配列の構文を、よくも悪くも受け継いでますよね? なんか、出だしからまとまってなくて何が言いたいか意味不明ですが、scalaはその配列の構文受け継いでないよって話。 なんで受け継いでないか?それが具体的にどういうことか?を説明していきます。 これ以降基的にJavaの例をだして、Javaと比較して説明します。 配列の特殊な構文を挙げてみると、以下のような4点でしょうか? 1.初期化が簡単にできる。 2.型名の書き方が特殊 int[] intArray = {10,20,30,40,50}; // 中括弧つかう・・・ // "int[]"

    scalaの、配列に対する統一的な扱いについて - xuwei-k's blog
  • AJDTを使って規約違反のコードを検出する方法 - 達人プログラマーを目指して

    AspectJというと、メソッドなどに処理を織り込むAOPのイメージが強いと思いますが、AJDTというeclipseのプラグインを使うと強力なコード検証ツールとして利用できることは意外と知られていないようです。(AJDTはSpring Tool Suiteには最初から内蔵されています。) 実際、 コントローラークラスのメソッド内でフィールドの設定を行う サービス層を経由せずに直接DAOを呼び出している 日付オブジェクトを直接newしている*1 などの箇所をコンパイル時に検証して、警告やエラーとして検出できます。 たとえば、Spring MVCのコントローラークラスのメソッド内でフィールドの設定を行っている箇所を警告として検出するには以下のようなアスペクトを書くだけです。 package sample.mvc; import org.springframework.stereotype.Co

    AJDTを使って規約違反のコードを検出する方法 - 達人プログラマーを目指して
  • StackTraceを少し便利に(2) - Pixel Pedals of Tomakomai

    結論から言えば、ベストな解は見つかってませんので、あくまでアイデアのメモとして。 以前、P::M::StackTrace について以下のような話を書きました。 plackup を -E development で起動するとついてくるPlack::Middleware::StackTraceは大変便利ですが、このMiddlewareは最後に発生したdieを追跡するため、フレームワーク内で try ... catch ... die をしていると、原因となった部分ではなく rethrow させた部分のトレースが表示されてしまいます。 レガシーオレオレフレームワークをPSGI化した記録 ここで言っているrethrowとは、例えば以下のようなコードです。"some reason"が例外として上がってきた場合、普通なら表示したいスタックトレースは直接の原因となった(1)の呼び出し時のものでしょうが、

    StackTraceを少し便利に(2) - Pixel Pedals of Tomakomai
  • 日本IBMエバンジェリストに聞く、エンタープライズストレージの最新動向

  • 実はブラウン管で地デジOK アンテナ、チューナー使わぬ方法

    地上デジタル放送(地デジ)へ完全移行する時期が迫り、総務省は地デジ対応テレビへの買い替えやアンテナの工事といった準備を進めるよう呼びかけている。 だが実際は、アナログ放送終了後もブラウン管テレビのような地デジ非対応の受像機も使える。しかもデジタルチューナーの設置なしで地デジ放送を視聴できる方法があることは、あまり広報されていないようだ。 地デジ機器「駆け込み需要」で過去最高の出荷 総務省が、地デジに関する相談窓口として開設した「デジサポ」のサイトには、地デジのCM動画が流れている。2パターンある内容はいずれも「アンテナの改修の重要性」を説明するものだ。 2011年7月にアナログ放送が終了するため、テレビは地デジ対応のものに変えるか、非対応のテレビに地デジチューナーを内蔵した録画機をつなぐかといった措置が必要となる。アンテナも、使っていたものがそのまま地デジに対応しない場合があり、そうなると

    実はブラウン管で地デジOK アンテナ、チューナー使わぬ方法
  • IT業界に求められる営業の姿を考えてみた - GoTheDistance

    IT業界の営業かくあるべき論 - Togetterが面白かったので首を突っ込んでみます。 上記で言われている営業は「パッケージ導入やオリジナルでの受託開発業をやっているシステム屋の営業」という前提のようです。僕もこの前提で書いていきます。 良く聞く話ですが、エンジニアからすると最たる不満の1つに「営業は不勉強」というのがあると思います。自分が売り込もうとしている商品が技術を武器にしているのにも関わらず、システムや技術のことを知らずに言葉だけで売るのはいかがなものか、という問題です。 これらの知識が無いと何がマズいかと言うと、 顧客の要望のインパクトがどれほどのものかわからない。 できない事に対する代替案が提案できない。 判断できることが少ないのでスピードが落ち、エンジニアに負担がかかる。 などがあります。 システムの営業の難しいところは、顧客のニーズはあくまでシステムがもたらす効用(ソリュ

    IT業界に求められる営業の姿を考えてみた - GoTheDistance
  • R&Dトレンドレポート 記事一覧 | gihyo.jp

    第25回マッシュアップ開発のススメ[その11:モバイル版アプリケーションを作ろう⑤] 脇武士 2011-10-19

    R&Dトレンドレポート 記事一覧 | gihyo.jp
  • ぜひとも押さえたい! iPhoneのセキュリティを守るための3つの基本 | ライフハッカー・ジャパン

    デスク配線がスッキリ。Ankerの全部入り12 in 1モニタースタンドが突然8,250円OFFされてた #Amazonセール

    ぜひとも押さえたい! iPhoneのセキュリティを守るための3つの基本 | ライフハッカー・ジャパン
  • Genericsとか - しげるメモ

    Java : Generics - lethevert is a programmer あたりを読んで、Genericsって難しいって思う人がたくさんいるんだなと。 確かに難しいけど、それは コンパイラ作るのが大変 フレームワーク作るのが大変 とかその辺の話で、末端の開発者(上の成果を利用する人)はほとんど気にせずに使えると思うのですよ。Javaの仕様が複雑、と言っているほとんどの人は上に関わっている人とか、言語学者?の人なのかなと思います。 たとえば、enumの親であるjava.lang.Enumはジェネリッククラスとして宣言されていて、 class Enum<E extends Enum<E>> 上のような宣言ですが、これを気にする人とかあまりいないのではないかと思います。 それでも、これらを利用する開発者にとっては気がつかないうちにいろいろな恩恵が与えられています。 ほかにも、jav

    Genericsとか - しげるメモ
  • 「GPLによりproprietary(企業所有)コードの公開を強制させられる」というFUD(嘘)を一掃する - karasuyamatenguの日記

    http://www.groklaw.net/article.php?story=20031214210634851 groklaw.netはPamela Jonesという弁護士補助員が営んでいるフリーソフトウエア関連の法律ブログ。以前、SCO対NovellでLinux/Unixの「知的所有権」をめぐる訴訟では技術コミュニティーに法律を分かり易い文で説明して活躍した。弁護士ではないためか、普通ドライな法律分析には見られない率直な態度でドラマの背後にある人間関係や感情までも解説してくれるのでとても読みごだえがある。米国でのFOSS関連の法律問題に関心のある方にはお勧め。OracleGoogleもカバーしている。 今回は「間違ってGPLコードを取り込んでしまうと、社内機密コードまで公開させられる」というFUDを(Fear Uncertaingy and Dread=恐怖心を与える噂)を一掃し

    「GPLによりproprietary(企業所有)コードの公開を強制させられる」というFUD(嘘)を一掃する - karasuyamatenguの日記
  • Spring MVCでセッション属性のキーをコントローラーごとに別々にするには - 達人プログラマーを目指して

    Spring MVCで、フォームBean*1をセッションスコープに格納して処理をしたい場合、以下のように@SessionAttributesアノテーションをコントローラークラスに付加することで行うことができます。また、処理の完了時には SessionStatusをパラメーターで受け取り、setComplete()メソッドを呼び出すことでセッション中のフォームを削除します。 @Controller @RequestMapping(value="/account") @SessionAttributes("account") public class AccountController { private Map<Long, Account> accounts = new ConcurrentHashMap<Long, Account>(); @RequestMapping(method=Re

    Spring MVCでセッション属性のキーをコントローラーごとに別々にするには - 達人プログラマーを目指して
  • nullという値は本当に必要か考えよう - かとじゅんの技術日誌

    今回は、nullの扱いは気をつけようねというお話。特にこれからの人に読んでもらいたい。 nullは変数を初期化する時などに、当たり前のように登場します。Javaではnullがないなんて考えられないわけです。(C#でも同様) しかし、nullの考案者のTony Hoareは「10億ドル単位の過ち」と発言しています。 null参照の考案は10億ドル単位の過ち?(スラッシュドット・ジャパン) - エキサイトニュース nullには、それだけの魔性があって使い方を考える必要があります。nullは”値が存在しない”という状態を表現する時に使われることが多いのですが、そのnullに対する注意が十分に払えずにトラブってしまうことが多いのです。Scalaではその"値が存在しない"という状態をOption型のNoneで表現することでnullを回避する手段が提供されています。JavaではScalaのようにはでき

    nullという値は本当に必要か考えよう - かとじゅんの技術日誌
  • ウェブページを完全に削除したときは404よりも410のHTTPステータスコードを返すといい

    今日は技術的なトピックを扱います。 通常、ウェブページがもう存在しなくなったときは404のHTTPステータスコードを返します。 するとしらばくすれば検索結果からも消えます。 しかしGoogleウェブマスターツールでは、ずっと以前になくなったはずのページが「クロールエラー」セクションで「見つかりませんでした」として表示されることがあります。 理由は、404エラーを返したページが今でもないままなのか確認するためにGooglebotが再訪問するためです。 404は“Not Found”(見つからない)で、ページがなくなったことではなくアクセスできない状態を示します。 アクセスできない理由は、ページを削除したことではなくネットワークの障害やサーバーの不具合による一時的なものかもしれません。 通常のページよりは頻度が低いですが、その404を返したページを再び訪問して相変わらずないままなのかそれとも再

    ウェブページを完全に削除したときは404よりも410のHTTPステータスコードを返すといい
  • デザイン思考で考える7つのこつ「デザイン思考が世界を変える」

    ナイキはアスリートの行動を分析してiPodで一億キロ以上のランニングを促進した。 appleはモバイル端末のありかたをデザインしてiPhoneで爆発的ヒットを生んだ。 顧客をより深く理解できれば、より効果的にニーズを満たすことができる。 これは、もっとも信頼できる長期的な収益源であり、持続可能な成長源である。 時代は大量生産からサービスや経験へと移行している。 求められているのはデザイン思考。 地図を塗り替える飛躍的な発想が求められている。 「デザイン思考が世界を変える」にその方法が書いてあったので自分なりに書いてみる。 「何を?」ではなく「なぜ?」を問う 問題の枠組みを見直し、制約を定め直し、よりイノベーティブな答えを切り開く機会となる。 車ができる前、人々は車ではなく速く走る馬が欲しかった。 何が欲しいのかではなく、なぜ欲しいのかに注目したから車は生まれた。 目を見開く 優秀なデザイン

    デザイン思考で考える7つのこつ「デザイン思考が世界を変える」
  • 防御的プログラミング・予想されるエラーの処理(2) - Strategic Choice

    防御的なエラー処理について、知っておくべき考え方を列挙します。正当性と堅牢性エラー処理には「正当性」と「堅牢性」という考え方があります。正当性とは、不正確な結果を決して返さないことを意味します。不正確な結果を返すくらいなら、何も返さない方がマシ、という考え方です。堅牢性とは、ソフトウェアの実行を継続できるように手を尽くすことです。それによって不正確な結果がもたらされることがあってもかまわない、という考え方です。どちらの考え方を優先するかは、ソフトウェアの種類によります。安全性を重視するアプリケーションでは、堅牢性よりも正当性が優先されます。誤った結果を返すくらいなら、アプリケーションを止めた方がまだよい、というアプリケーションです。例えば、医療関連の制御アプリケーションであれば、誤った結果を返して処理を継続させるよりは、アプリケーションを止めた方が、大きな事故を未然に防ぐことになります。コ

  • 「余った年賀状」はどうしたらいいの!?案外知られていない未使用はがきの有効活用法

    消費インサイド 今の世の中、いったいどんな商品やサービスが流行っているのか? それを日々ウォッチすることは、ビジネスでヒントを得るためにも重要なこと。世間でにわかに盛り上がっているトレンド、これから盛り上がりそうなトレンドを、様々な分野から選りすぐってご紹介します。 バックナンバー一覧 返信分を見込んで多めに頼んだ年賀状が余る──年が明けてしばらくしたこの時期、未使用年賀状の処理に困ることはないだろうか。 紙飛行機にして飛ばすのもいいが、一番オトナな行動は「郵便局へ持っていく」ことだろう。未使用品や書き損じの年賀はがきを郵便局に持ち込むと、1枚あたり5円で通常のはがきや切手に交換してくれる。知らない人も案外多いのでは? 実はこれ、年賀はがきに限ったサービスではない。一般はがきや郵便書簡、レターパックや不要となった切手など、所定の手数料を払いさえすれば、様々な郵便アイテムに交換できる。詳細は

    「余った年賀状」はどうしたらいいの!?案外知られていない未使用はがきの有効活用法
  • 首都圏で引っ越す人が知らないともったいない情報 - 西尾泰和のはてなダイアリー

    「引越れんらく帳」にお客さまのお名前や引越先のご住所などを登録しておけば、電気・水道・ガスなどの引越に関する手続きで何度も同じことを入力する手間が省けます。他にも、NHK、クレジットカード、損害保険等々、主要な企業の住所変更などにも対応しています。 東京電力 引越コンシェルジュ すごい、こんなものがあったなんて。1回住所や電話番号、メールアドレスなどを入力したら、東京ガスや水道局は違うウェブサービスなのにちゃんとデータが引き継がれてさくさく入力できる。12分くらいで電気とガスの手続きを完了した。水道はお客様番号をメモしてこなかったので後でやろう。

    首都圏で引っ越す人が知らないともったいない情報 - 西尾泰和のはてなダイアリー
    atm_09_td
    atm_09_td 2011/01/26
    これは覚えておこう。
  • Webエンジニアスキルの勘所

    Webのエンジニアにはどういうスキルが一番必要か?という話を考えてみた。 例えば、C言語やUnixの経験が長く、オブジェクト指向も理解していたとしたら、PHPから始まり、Rubyなどの理解は決して難しくないだろう。 では、それだけの経験で一線級のWebエンジニアとしての信頼が置けるかというと、ちょっと違うような気がする。 考え方のベースは、 「Webは、要するにテキスト処理であることが多い。だから難しい」 ほとんどの事がHTTPプロトコルを通じてテキストデータとして情報が、なんのネットワークの制約もなく流通する。つまり、HTTPヘッダを含むテキストの操作でセキュリティホールを作り、それが世界のどこから攻撃されるかわからない。 また、 同様に世界中からアクセスが集まることがありうるので、回りくどいテーブル設計をしてしまうと、あっというまに破綻してしまうこともある。 そして、 基的にマルチア

  • Javaの総称型と2レベル計算 | Kandoの日記 | スラド

    Twitterで@nagise氏が書いていた: ・http://twitter.com/#!/nagise/status/29524997517090816 から@nagise氏によって書かれたBlogエントリ: ・HttpSessionを型安全にする を読んで、2レベル計算という考え方ではどう理解できるかについて思ったことをまとめ。 コンパイルにおける様々な最適化や型検査、総称型を考えるときに便利な考え方の一つとして多レベル計算がある。 コンパイラが行う各種の変換を、プログラムが来実行すべき計算を多段に分けて計算していると捉える見方である。 特にコンパイル時の処理と実行時の処理というように2段階に分けて計算が実行されると考えた場合は2レベル計算と呼ばれる。 2レベル計算のもっとも簡単な例は最適化における定数の畳みこみで、以下のような定義があった時: public class Const

  • GAE/PythonでMemcachedを使ってみた « python練習帳

    Memcached使ってみました。単純な例で動作を確認後、python-blog-systemの画像出力部分に適用し、ベンチマークをとりました。 Memcachedとは 分散KVS(キーバリューシステム)の一種です。いわゆるRDB(リレーショナルデータベース)は、スケールアウトに向かない構造をしているために、安いサーバをいっぱい並べても性能がリニアに向上しません。Memcachedでは、トランザクションや、データの耐久性などを保証しないかわりに、大量のデータを、高速にキャッシュすることができます。詳しい説明は家でどうぞ⇒http://memcached.org/ 概要が知りたければwikipediaがお手軽です。 シンプルな例 まずは、非常にシンプルなコードを書いて動作を確認しました。 初回アクセス: 何も表示されません。 キーweatherに対して何も設定されておらず、Noneが返され