タグ

2014年8月14日のブックマーク (21件)

  • 今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog

    ソフトウェアを正しく理解する唯一の方法はコードを読むことです。 ドキュメントを読めばそのソフトウェアが何を実装しているか分かりますが、どのように実装されているかまでは分かりません。 開発中に何らかのトラブルに悩まされたときや、効率的なコーディングをしたいと思ったとき、下位レイヤのソフトウェアを理解しておけば素早く対処できるシーンが多くあります。 ただ、コードを読むことは簡単なタスクではありません。 現代的なソフトウェアはそれなりの規模のコードを含んでいることがほとんどです。アーキテクチャ間の差異を吸収するためのコードなど、質的な機能を理解する上ではあまり重要ではないコードも含まれています。 何らかの問題が発生してからコードを読もうと思っても、準備なしでは関連する箇所を探すだけでかなりの労力が必要な作業となります。 従って、普段からコードを読んでおくことが重要です。 また、コードを読むにあ

    今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog
  • モナド教

    前提知識:モナド モナドを理解せずともモナド教を信ずることは出来ますが,理解していればより深く納得できるでしょう. 操作 :: 型 -> 型 は,"型"から"型"へ写す"操作"の存在を表します. モナドの文脈 m が必要とする2つの操作: return :: a -> m a で,値を保ちつつ文脈 m の中に入れ込むことが出来ます. (=<<) :: (a -> m b) -> (m a -> m b) で,「値を文脈に入った別の値へ写す操作」を「文脈に入った値を同じ文脈に入った別の値へ写す操作」に変換します. id :: a -> a は値をそのまま返す操作です. id を =<< で変換して得られる操作 join :: m (m a) -> m a で,二重に文脈に入った値を一重の文脈に入った値に戻すことが出来ます. 文脈の値から生の値を取り出す型 m a -> a を持つ操作は,一般

  • SQL Tip of the Day: Be Wary of SELECT COUNT(*) - DZone Performance

  • Amazon EC2(Linux)のネットワーク設定でハマったときに見るメモ | DevelopersIO

    ども、大瀧です。 LinuxのEC2インスタンスでちょっと変わったネットワーク設定をしようとすると、思う通りに動かなかったり設定が見えなかったりと、オンプレミスとは雰囲気の異なる振る舞いをすることがあります(質的にはオンプレミスとなんら変わらないのですが)。自身で経験したケースをメモ書きとして残しておきます。 想定するLinux OS : Amazon Linux, CentOS 6.x, RHEL 6.xなどRed Hat系ディストリビューション /etc/resolv.confを変更したのになぜか元に戻ってしまう DHCPクライアントによるものです。DHCPクライアントは定期的にIPアドレス更新の問い合わせをDHCPサーバーに行いますが、そのときに付随するDNSの情報を元にデフォルトで/etc/resolv.confファイルを上書きします。これを無効にするためにNICの設定ファイル/

    Amazon EC2(Linux)のネットワーク設定でハマったときに見るメモ | DevelopersIO
  • シングルページアプリづくりのJavaScriptフレームワーク比較 - ワザノバ | wazanova

    http://blog.andyet.com/2014/08/13/opinionated-rundown-of-js-frameworks 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 開発言語やフレームワークの比較は、参考になるところはありつつも、その結果、不愉快な気分になる人がいるわけですが、それを懸念して、「(これを読んだ人は、他人の)意見を読んでいるだけだと思い返してほしい。貴方にどうすべきだと言ってるのではなく、自分にもしくはチームのために何がよいかは自分で判断すべきこと。」と前置きして、Henrik Joretegが、JavaScriptフレームワークについて私見をシェアしています。 反対意見も併記しようと思ったのですが、TwitterやHNでの反応がまだないようなので、注目すべきコメ

  • Python 2.7.x と 3.x の決定的な違いを例とともに | POSTD

    Pythonを始めたばかりのユーザーの多くが、どちらのバージョンを使えばいいのか迷っています。私の答えは、「気に入ったチュートリアルに書かれているバージョンにしましょう。そして、あとで違いを調べてください」という言葉につきます。 それでは、新しいプロジェクトを始めるときにはどちらを選べばいいのでしょうか? 使おうとしているライブラリを全てサポートしているなら、2.7.x系と3.x系のどちらを使ってもよいでしょう。そうはいっても、この2つのメジャーバージョンについて大きな違いを見ておくのは良いでしょう。どちらかのみでコードを書いたり、プロジェクトに使おうとしている時によくある落とし穴を避けられるからです。 __future__ モジュール Python 3.x で導入されていて Python 2 で使えないキーワードについては、 __furute__ モジュールをインポートすることで Pyt

    Python 2.7.x と 3.x の決定的な違いを例とともに | POSTD
  • あなたのブログに、より説得力を持たせる統計情報を、手軽に一括検索する方法

    統計レポートの一括検索 統計レポートは、Googleで探そうと思っても、その他のノイズと混じりやすく、当に欲しい情報が埋もれ、なかなか見つけづらかったりします。 そこで、調査リポートを無料で公開している各種機関のみから、結果をGoogleのサイト検索で絞って表示させることによって、手軽に取得できるようにします。 そのために「各種機関から調査レポートを一括検索できるプラグイン」をReady2SearchというWEBサービスに「統計レポートを一括検索プラグイン」を設定しておきました。これを利用するだけで使えます。 統計レポート一括検索プラグインの設定 プラグインの設定といっても簡単で、Ready2Search(統計レポートを一括検索)へ行き「OpenSearch プラグイン 統計レポートを一括検索」というリンクをクリックするだけです。 Firefoxなら、こんな感じのダイアログが Inter

    あなたのブログに、より説得力を持たせる統計情報を、手軽に一括検索する方法
  • 『iPhone5 置くだけチャージャー』販売開始!夢にまで見たワイヤレス充電が叶います - isuta(イスタ) -私の“好き”にウソをつかない。-

    『iPhone5 置くだけチャージャー』販売開始!夢にまで見たワイヤレス充電が叶います - isuta(イスタ) -私の“好き”にウソをつかない。-
  • winenv.vim 作った - 永遠に未完成

    momonga.vim #2.2 で作っていたアレです。 あのあとすぐ、細かいバグを取ったりして体の実装は完了したのだけど、その後ドキュメントを書くところで面倒になって長らく放置…。 しかし日、yuk(balloon-stat)さんが、unite-winpath なるものを作ったと言う報告をされて、これはやばいと思って重い腰を上げてさっきドキュメントを書き上げてリリースしました。やはり後回しにするもんじゃないですね…。 https://github.com/thinca/vim-winenv 何をするプラグインなの? Windows を使っている人ならわかると思うんですが、Windows でグローバルな環境変数とかを設定するの、すごく面倒ですよね。Vim から編集できたら便利そうです。これはそのために便利するプラグインです。 勘のいい人は気付いたかもしれないですが、これはレジストリを操

    winenv.vim 作った - 永遠に未完成
  • Linuxファイルシステムをまとめてみました - Qiita

    【ext2からの追加機能】ジャーナリング複数のブロックにまたがるディレクトリに対してのツリーベースのディレクトリインデックスオンラインファイルシステムリサイズ(拡張のみ) 【デメリット】2038年1月18日以降の日付に対応していない。fsckがクソ遅い

    Linuxファイルシステムをまとめてみました - Qiita
  • CSSの簡略プロパティー - Weblog - Hail2u.net

    CSSの標準仕様では一部のプロパティーに簡略(ショートハンド)プロパティーが用意されている。marginやbackground、fontプロパティーなどがそれ。うまく使うとCSSをかなり短くできるので、積極的に使いたいけど、なかなかの複雑さでそうもいかない。かといって機械的に処理するのも、CSSは人が簡単に書けることを想定して仕様が作られている節がある(根拠はない)のでまた難しい。 先日知ったCSS Shorthand Generatorの内部で使われているshrthndパッケージはまさに機械的に処理するためのもの。でも予想通り、全然ちゃんと機能するものではなかった。 例えばshrthndパッケージでは複数のfont-*プロパティーをまとめることができることになっている。 .test { font-family: serif; font-size: 1.5em; } このように書くと、以下

    CSSの簡略プロパティー - Weblog - Hail2u.net
  • 意外と知られていない、OS Xの見た目も機能もカスタマイズする簡単な方法 | ライフハッカー・ジャパン

    「OS Xは制約が多く、カスタマイズしにくいオペレーティングシステムだ」という声をよく耳にしますが、やり方さえわかっていれば、Macの見た目や機能にあれこれ手を加えられます。その方法をご紹介しましょう。 OS Xの見た目をカスタマイズする OS Xの見た目が好きだという人はたくさんいますが、完璧というわけではありません。ほかのオペレーティングシステムに比べれば手を加えにくいものの、カスタマイズは間違いなく可能です。これからいくつかツールやマニュアルをご紹介しますので、自分の手で自分だけのOS Xデスクトップを作ってみませんか。 『GeekTool』でデスクトップを丸ごとカスタマイズする 『GeekTool』は、とても簡単にデスクトップをカスタマイズし、大量の情報を追加できるツールです。このツールを使って、デスクトップにオブジェクトや情報などをあれこれ埋め込み、iMacを情報ハブへと変身させ

    意外と知られていない、OS Xの見た目も機能もカスタマイズする簡単な方法 | ライフハッカー・ジャパン
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
  • Goのjson.Marshal/Unmarshalの仕様を整理してみる · I Will Survive

    August 13, 2014 - golang TL;DR goの構造体につけるタグは、フォーマットが不正だと読み込まれない(当然) json.Marshalは、構造体のjsonタグがあればその値をキーとしてJSON文字列を生成する json.Unmarshalは、構造体のjsonタグがあればその値を対応するフィールドにマッピングする jsonタグがなければ、完全一致もしくはcase-insensitiveなフィールドにマッピングする では、ひとつづつ確認していきます。 goの構造体につけるタグは、フォーマットが不正だと読み込まれない(当然) goの構造体にはタグの機能があって、型の後に特定のフォーマットでアノテーションが記述できます type MyType struct { Hoge string `foo:"1" bar:"2"` } key:"value"をスペース区切りで複数かけ

    atm_09_td
    atm_09_td 2014/08/14
  • フロント作業の効率化

    下記勉強会の発表資料です。 --------------------------------------------------------- JSLOVE 〜JavaScriptを愛する人の話を聞いてみよう〜 http://devlove.doorkeeper.jp/events/5811 ---------------------------------------------------------

    フロント作業の効率化
  • 「保守性・管理性が劇的に上がるPHPのスマートなコードの書き方12選」の解説 その1 - assertInstanceOf('Engineer', $a_suenami)

    以下のような記事が昨日話題になりました。 はてなブックマーク - 保守性・管理性が劇的に上がるPHPのスマートなコードの書き方12選 | BULK SERVER blog 現在では記事自体は削除されていますが、魚拓がとられているのでまだご覧になってない方は以下のリンクをどうぞ。 http://bulkserver.jp/blog/2014/08/07/php-code/ - 2014年8月12日 09:28 - ウェブ魚拓 すでに消されてる記事に対して、アレコレ言うのはちょっと悪趣味かなとも思ったのですが、ブコメを見ると「もうすこし優しく教えてあげなよ」「括弧の省略がなんで嫌いなんだろう」といった記述があったので書いてみることにしました。 元記事を書いた方にこのエントリが読まれることを切に願います。 自分の立場 なんというか某記事、そんなにDisりたくないし、自分だって間違った理解でブログ

    「保守性・管理性が劇的に上がるPHPのスマートなコードの書き方12選」の解説 その1 - assertInstanceOf('Engineer', $a_suenami)
  • テスト先に書きたい若者よ - hitode909の日記

    弊社では毎年インターンを受け入れているのだけど,いまもインターンが来てて,テスト先に書きたいけど油断すると先に実装を書いてしまう,とか話してた. 個人的には,テスト先に書くのが大事というよりかは,意識して仕様を先に考えるのが大事だと思っている.テストを先に書くと,先に仕様を考えざるを得ないので,良いスタイルが身につく. 僕がよくやるのは,関連しそうなクラスの絵をひと通りノートに書いてみて,その図だけで,うまく動くことを説明できるくらい考えてみる.その時点でおかしかったら,コード書いてもおかしくなる.ノートに方眼ついてるとクラス図書きやすい.UMLとかじゃなくても,自分で見て分かるくらいでもいいと思う. 紙でうまくいったら,外部仕様だけソースコードに書いてみる.クラス名と,メソッドの定義と,メソッドの上くらいに,ひと通りコメントでも書いてみて,この関数はこういうことをするんです,こういう引数

    テスト先に書きたい若者よ - hitode909の日記
  • Node.js in Azure Web Sites and Service Bus - Reading Messages from Cloud-hosted Queues - DZone

  • 「Windows 8.1 Update 2」がキャンセルされた背景と更新内容を探る

    大型アップデートが終了したWindows 8.1 2014年8月12日(以下、すべて現地時間)、「August Updates」が公開された。同年4月2日にリリースした「Windows 8.1 Update」に続く第2弾アップデートと目されたため、公式発表以前は「Windows 8.1 Update 2」と呼ばれていたものである。だが、「Windows 8.1 Update 2 = August updates」ではない。加えてドラスティックな変更は見送られ、バグフィックスを含む包括的なアップデートにとどまっている。 そもそもAugust updatesに関する発表は、公式ブログの1つ「Blogging Windows」で同年8月5日に公開した記事が始まりだ。執筆したBrandon LeBlanc氏は「我々は多くのフィードバックに素早く対応するため、定期的な更新でWindowsに改善を提供

    「Windows 8.1 Update 2」がキャンセルされた背景と更新内容を探る
  • 開発者(個人)のためのJenkins - Git Plugin編 - Qiita

    はじめに 「開発者(個人)のための」としているのは、別に自分でやっても良いんだけど Jenkins に任せられるなら任せたい、くらいのモチベーションを表現したつもりです。 環境 Ubuntu 14.04 LTS Jenkins 1.573 Bootstrap になって雰囲気が変わりましたね 初期設定 Jenkins 初期設定 Plugin のインストール Git Plugin 依存しているPluginも自動的にインストールされます。 Git Parameter Plugin は、ビルド時に Extended Choice Parameter plugin の Single Select ようなパラメータ形式で、リビジョンやタグを選択できるプラグインです。 Git 初期設定 Git Install Git がインストールされていないなら、apt や yum でインストールしておいて良いでしょ

    開発者(個人)のためのJenkins - Git Plugin編 - Qiita
  • Spring Bootで変わる Javaアプリ開発! #jsug

    最近流行っているらしいO/Rマッパ「jOOQ」の話を中心に、どうやってCRUDするのか、SELECT結果をどうやってJavaクラスにマッピングするのか、joinとかどうするのか、springframework (spring-boot)などとどう組み合わせるか、そんな話を講義形式で30-40分ほどでお話します。 日時:2016年2月8日(水)19:30〜20:30(19:15開場) 場所:株式会社ビズリーチ 東京都渋谷区渋谷2-15-1 渋谷クロスタワー 12F 参加費:無料 持参物:名刺1枚(名札用)

    Spring Bootで変わる Javaアプリ開発! #jsug