タグ

2013年10月28日のブックマーク (31件)

  • Sequel について (その1) - tmtms のメモ

    最近 Sequel というライブラリを触ってるので簡単にまとめてみます。 Sequel Sequel は Ruby の構文で SQL クエリを記述するためのライブラリです。 SQL の文法が嫌いな自分には持って来いです。 RDB 毎の差異も吸収してくれます。 自分は MySQL しか知らないので、以下は MySQL での例です。 インストール % gem install sequel % gem install ruby-mysql 接続 DB = Sequel.connect('mysql://user:password@hostname:port/dbname') # または DB = Sequel.mysql('dbname', :host=>'hostname', :user=>'user', :password=>'password', :port=>'port') 上の例では定

    Sequel について (その1) - tmtms のメモ
    t_a_o
    t_a_o 2013/10/28
  • iterable と iterator - methaneのブログ

    イテレータを介して見るPHPクラスの内部構造 を読んだのですが、 最近の php はちゃんと Python などの言語を参考にしてるなーと思うことが多かったのにこの仕様は残念です。 Python など多くの言語では、イテレータの取得とイテレータの使用を明確に区別しています。 Python ではイテレータを取得できるオブジェクトを iterable と呼び、イテレータを iterator と呼びます。 iterable は __iter__ メソッドを実装し、 iterator は __next__ メソッド (Python 2 では next)を実装します。 また、 iterator は同時に iterable も実装し、自分自身を返すようにします。 これにより、 for 文などは「イテレータを取得しそれをイテレートする」というシンプルな動作ができます。 iterable と iterat

    iterable と iterator - methaneのブログ
  • http://ja.d3js.info/alignedleft/tutorials/d3/

  • WEBSITE.WS - Your Internet Address For Life™

    <p> Your browser does not support frames. Continue to <a href="https://www.website.ws/wc_landing.dhtml?domain=node.ws">https://www.website.ws/wc_landing.dhtml?domain=node.ws</a>.</p>

  • Guava Librariesの機能をざっと見てみる(前半) | Sawam's Page

    記事では,Javaを便利に使うためのライブラリであるGuava Libraries(以下,Guava1)について紹介する.今回はライブラリの機能の中でも特に便利そうな機能について紹介する.  Javaで開発をしているとCollectionFrameworkに使いたいデータ構造やアルゴリズムがなかったり,繰り返し書いてしまうイディオムのような物が出てきたりする.GoogleのGuava Librariesを使えば,CollectionFrameworkにないデータ構造やアルゴリズムを使えたり,イディオムを避けたり,わかりやすいコードにすることができる. Gauvaを使えば,Javaでよく書くコードを簡潔に書けたり,Javaでよく起こるバグを防いだりできる.具体的には次のような機能がある. nullによるバグを早期発見できる. メソッド呼び出し時に満たすべき条件をチェックできる. 一つのC

    t_a_o
    t_a_o 2013/10/28
  • Guavaをざっくり紹介 - ellerの日記

    Guava librariesをご存知でしょうか?Googleが開発・使用しているコアライブラリです。OSSであり簡単に入手できます。 http://code.google.com/p/guava-libraries/ このライブラリは結構多機能で、海外の著名プロダクトでもよく見かけるのですが、日のネットでの知名度はいまいち高くない気がします。もともとの名前(Google Collections)はそこそこ知名度があったと思うのですが、この差はなぜでしょうか?私の観測範囲が狭いだけかもしれませんけども……。 自分が使ってみて思った「へーこんなことができるんだー」をまとめてみますので、共感するところがあればぜひ検証してみてはいかがでしょうか。 何が嬉しいの? Guavaはできることを増やすライブラリではなく、普段やっていることを短く書くためのライブラリです。Apache commonsなど

    Guavaをざっくり紹介 - ellerの日記
    t_a_o
    t_a_o 2013/10/28
  • 【AWS】VPC環境の作成ノウハウをまとめた社内向け資料を公開してみる | DevelopersIO

    よく訓練されたアップル信者、都元です。今回のお題は久しぶりにVPCです。 この記事は、アップデート版が存在します。最新情報は【AWSVPC環境構築ノウハウ社内資料 2014年4月版を参照してください。 VPCを利用する理由 弊社で構築するAWSのサーバ環境は、一部の例外を除いて全てVPCを利用しています。 突然ですが、筆者はあまり大規模なシステムに携わった経験がありません。大規模なプロジェクトだと「数百数千台のサーバがラッキングされ、それが論理的なネットワークで区切られていて」「複数のデータセンターが冗長化された専用線で結ばれて」等、正直ちょっと想像つかない世界があるんだと思います。よくわかんないですが。 (c)John McStravick. (CC BY 2.0 Licensed) 逆に、小さなシステムであれば、月々数万円でレンタルサーバを借りて「1台のマシンの中にWebサーバとDB

    【AWS】VPC環境の作成ノウハウをまとめた社内向け資料を公開してみる | DevelopersIO
    t_a_o
    t_a_o 2013/10/28
  • Create Your Own Programming Language

    Want to create a programming language, but don't feel like going through one of those expensive and boring 1000-page books ? Well, you're not alone ... The best system to create your first programming language.

  • 「Lord Jamar vs. Hopsinから読み解くヒップホップ・シーンの姿(雑感)」 探究HIP HOP

    あなたはHip Hopにどの様な印象をお持ちですか。実はHip Hopは40年以上もの歴史を持つ文化形態なのです。当ブログでは管理人お薦めの楽曲(Classic)を中心に、Hip Hopの楽しさを配信して行こうと思います。 現在、90年代初頭に活躍したヒップホップ・グループBrand Nubianのオリジナル・メンバーであるLord Jamarがとある発言をめぐり矢面に立たされております。事の発端は、先日Youtube上で公開されたVladTV.com によるインタヴュー動画。同動画はインタヴュイーとして招かれたJamarが予めVlad側に用意された質問に答える質疑応答形式で展開されており、現行のヒップホップ・シーンにおける白人ラッパーの立ち位置や、同性愛について自説を披瀝したものとなっているのですが、何と彼は、「白人ラッパーはヒップホップにおける“ゲスト”であり、分を弁えろ」と発言。一部

    t_a_o
    t_a_o 2013/10/28
  • コマンド履歴の達人を目指してみる - ザリガニが見ていた...。

    ターミナルのコマンド履歴をインクリメンタルに検索して実行するにはControl + R - Macの手書き説明書 自分も知らなかった...。まだまだ知らないことって、いっぱいある。 それにしてもコマンド履歴というのは、自分はよく使う。直接入力するより、過去の履歴を探し出して、必要な修正してからコマンド実行するパターンが多い。長〜いファイルパスやオプション指定のあるコマンドなんて、ほとんどがコマンド履歴の修正と実行である。コマンド履歴が使えるからこそ、快適なコマンド操作ができると思っている(自分の場合)。 コマンド履歴は質実剛健なコマンドの世界に、選択して実行するというGUI的なゆるい操作感を与えてくれる。コマンドを忘れる心配や、スペルを間違う心配から、救ってくれる。それほどまでにコマンド履歴に頼りきっている状況なのに、今日も上下の矢印キーを激しく連打するしかない自分は、一体どうしたら良いも

    コマンド履歴の達人を目指してみる - ザリガニが見ていた...。
  • http://ntcncp.net/2012/12/26/translate-dhh-concerns-to-extract-module

  • にわか TOEIC マニア - steps to phantasien

    社内で開かれたワークショップ形式の研修に参加したのは一年前、ちょうど今頃のこと。 それはたぶんチームワークのような何かを学ぶ会だったはずだけど、 私の感想は題と関係なく「いいかげん真面目に英語を勉強しないとあかん」だった。 話が通じないとチームワークどころじゃない。 米国資勤めの会社員からすると、英語はグローバル云々以前に仕事用 DSL みたいなもの。 英語ができないまま騙し騙し働くのはたぶん、 SQL が書けなからと ORM の上だけでコードを書こうとするのに似ている。できなくはないけど、いろいろしんどい。 幸い私は Web 開発者じゃないから SQL はわからなくていい。でも英語はやらないとダメっぽい。 入社二年半、ようやく現実を直視した。 最初はしゃべる練習をしようかと思ったけれど、そもそもしゃべる以外の英語すらできるといえるのか。怪しい。 むしろまず典型的日人として英語ができ

    t_a_o
    t_a_o 2013/10/28
  • 最近の Java Web 開発 : http://qiita.com/monzou/items/9174d0baf08af295e703

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    最近の Java Web 開発 : http://qiita.com/monzou/items/9174d0baf08af295e703
    t_a_o
    t_a_o 2013/10/28
  • Java 8 新機能についてのまとめ 1 - A Memorandum

    Java8 の Developer preview が公開されたので、そろそろ新機能についてまとめておきます。 機能一覧はこちらです。 インターフェースにstaticなメソッド定義が可能になった 例えば、java.util.Comparator には以下の static なメソッドが追加されています。 @FunctionalInterface public interface Comparator<T> { public static <T, U> Comparator<T> comparing( Function<? super T, ? extends U> keyExtractor, Comparator<? super U> keyComparator) { Objects.requireNonNull(keyExtractor); Objects.requireNonNull(k

    Java 8 新機能についてのまとめ 1 - A Memorandum
    t_a_o
    t_a_o 2013/10/28
  • Web Audio APIでMIDIファイル再生

  • Railsの各種サーバーの速度ベンチマーク: Pound、Varnish、Nginx、Unicorn、Mongrel

    Railsの各種サーバーの速度ベンチマーク: Pound、Varnish、Nginx、Unicorn、Mongrel RailsのアプリをPound、Varnish、Nginx、Unicorn、Mongrelを使用して動かした際の速度ベンチマーク。以下の構成での同一Railsアプリをhttperfでベンチマークした結果をまとめます。 Pound -> Varnish -> Nginx -> Unicorn * 2 Varnish -> Nginx -> Unicorn * 2 Nginx -> Unicorn * 2 Mongrel (Rails.env == 'development') node.js (Express + Socket.IO) 全体の構成Poundを80番ポートを公開し、Varnishを81番ポート、nginxを8080番ポート、Unicornの2プロセスをsocke

    t_a_o
    t_a_o 2013/10/28
  • 仮想通貨「Bitcoin」とは一体何か、どういう仕組みかが一発で分かるまとめ - GIGAZINE

    P2Pの仕組みを利用することで簡単に送受信でき、決済手数料も極めて安価なことから、ネット決済ツールとして日増しに存在感を強める仮想通貨「Bitcoin(ビットコイン)」について、一体どのようなものなのか、その仕組みはどうなっているのかについて、見るだけでサクサクわかるムービーがいろいろと公開されています。 ◆ビットコイン鉱山 一般的なデジタル通貨は、取引所で既存通貨とデジタル通貨を両替することで手に入れられます。これに対してビットコインの入手経路は、両替所だけではありません。自らの手で「採掘」することも可能です。 What is Bitcoin Mining? on Vimeo http://vimeo.com/69320194 ビットコインはP2Pネットワークで運営されており、ビットコインを所持する人は"銀行の小さな一片"として機能するため、「分散型通貨」とも称されます。 ではビットコイ

    仮想通貨「Bitcoin」とは一体何か、どういう仕組みかが一発で分かるまとめ - GIGAZINE
    t_a_o
    t_a_o 2013/10/28
  • L&#39;eclat des jours(2013-10-25)

    _ WebMVCと設計パターン WebMVC(面倒なので以降はただのMVC。J2EEのMVCがSmalltalkのMVCと異なるMVCだということは既に10年以上の歴史があるのだから、今更どうでもよろしい)というのは、Transaction Script PatternとDomain Modelの間にまたがるスペクトラムだ。これがMVCの最大の特徴であり利点なのだが、なぜか、Transaction Script PatternとDomain Modelの両極端の声の大きい人が自分の視点を叫ぶ(実際に前者で声が大きい人はいない。彼らは沈黙のうちにコードを広める)。そこで混乱が生まれ、最悪のTransaction Script Pattern実装(貧血)と最悪のDomain Model実装(血 )が幅をきかせることになる。といっても、最悪のDomain Modelは普通は作れないのでそれほど

    L&#39;eclat des jours(2013-10-25)
  • D3.js の Data-Driven な DOM 操作がおもしろい

    D3.js は「ビジュアライズ用のライブラリー」だと紹介されがちなんだけども、意外にも D3.js にはグラフを描画する機能がない。 D3.js のトップページには次のように書いてある。 D3.js はデータからドキュメントを生成するためのライブラリーです。D3 は HTML, SVG, CSS を使ってデータに命を吹き込みます。Web 標準を重要視しているので、独占的なフレームワークに縛られません。強力なビジュアライズ用のコンポーネントと data-driven な DOM 操作手順を組み合わすことで、モダン ブラウザーの能力を最大限に活用できます。 D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG

    D3.js の Data-Driven な DOM 操作がおもしろい
  • ActiveRecord4でこんなSQLクエリどう書くの? Merge編 | Webシステム開発/教育ソリューションのタイムインターメディア

    ActiveRecord4でこんなSQLクエリどう書くの? Merge編 #activerecord#rails#ruby 2013年 10月 24日 nishio 「このデータ取得するのにSQLではこういう風に書けばいいんだけど、ActiveRecordでは一体どう書けばいいの?」 毎回この課題に悩まされています。 特に業務アプリの場合、とてつもなく複雑なSQLを投げる場合があります。 ものすごい数のテーブルをjoinして、existsで条件みて、union allして。。。 なんていう処理がでてくると、さすがにActiveRecordやDatamapperを使ってクエリを組み立てるのをあきらめて、直接SQLを書いてしまうことがあります。 でも、できればActiveRecordを使ってスマートにSQLを組み立てたいものです。 scopeで書いておけば、処理も使い回せますしね。 ということ

    ActiveRecord4でこんなSQLクエリどう書くの? Merge編 | Webシステム開発/教育ソリューションのタイムインターメディア
  • PHP: The Right Way

    ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ

    t_a_o
    t_a_o 2013/10/28
  • 長年の議論に終止符 -- MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較 - interdb’s blog

    https://mariadb.com/kb/en/optimizer-switch/にあるように、MariaDBのオプティマイザはかなり改良されている。 では、MariaDBのオプティマイザ/エクゼキュータはどの程度優秀か、4つのSELECT文の実行を通してMySQLと(ついでにPostgreSQLと)比較してみる。 (2014.12.3追記:オプティマイザについては省略してますが、こんながでます。) 結論を先にいえば「MySQLは検索が速い」というのは都市伝説。MariaDBはがんばってるけどPostgreSQLにはまだまだ及ばず。 *念のため。これはベンチマークじゃないよ、オプティマイザ/エクゼキュータの機能比較です。 自分で再確認したい場合はこちらにスクリプト群と実験のやり方を簡単に書いたので参照のこと。 調査環境 同一マシンにMySQL5.6.14、MariaDB10.0.4、

    長年の議論に終止符 -- MySQL、MariaDB、PostgreSQLのオプティマイザ/エクゼキュータ比較 - interdb’s blog
  • redisってなんじゃ?(pub/sub編)

    redisにはpub/subという機能があります。 これはpublish/subscribeパターンという仕組みの実装で、発行者と購読者という役割でメッセージの配信を行うものです。 では、redisのコンソールを使って試してみたいと思います。 redis1とredis2という2つのホストを使用します。 redis1ではローカルホストでredis-cliに接続します。 redis2ではredis1のredis-clに接続します。 redis1 # redis-cliredis 127.0.0.1:6379> redis2 # redis-cli -h 10.0.0.200redis 10.0.0.200:6379> メッセージの購読はチャンネル名を指定します。 redis2でgreetingというチャンネル名でsubscribeコマンドを実行します。 redis2 redis 10.0.0.

    t_a_o
    t_a_o 2013/10/28
  • RDS: MySQLの管理者向けTips - aws memo

    RDSは、DBのroot権限をもらえないので、色々とRDS独自の代替手段(プロシージャ)が用意されている。 このあたりは要チェック。 Appendix: Common DBA Tasks for MySQL - Amazon Relational Database Service めぼしいものをピックアップ Slow Log ローテーション mysql> CALL mysql.rds_rotate_slow_log; セッションkill, クエリkill mysql> mysql.rds_kill (thread-ID); mysql> mysql.rds_kill_query (thread-ID); レプリケーションスキップ mysql> mysql.rds_skip_repl_error; 他、MySQL5.1.62, 5.5.23には色々な情報を定期的に蓄積する Global St

    RDS: MySQLの管理者向けTips - aws memo
  • Gradle入門 | DevelopersIO

    よく訓練されたアップル信者、都元です。Gradle(グレードル)つかってますか? 筆者は、プロダクトコードを書くのも好きなのですが、その周辺にある「プロジェクトのライフサイクル管理」の自動化にも非常に興味を持っています。つい半年前くらいまではMaven信者だったのですが、今は宗旨替えをし、Gradleにどっぷりハマっております。 Gradleは、進化系のビルド自動化ツールです。Gradleは、ソフトウェアパッケージもちろん、その他様々な形式のプロジェクト(例えば自動生成された静的Webサイトやドキュメント等)のビルド・テスト・(ライブラリ等の)公開・デプロイ・その他を自動化します。 プロジェクトライフサイクルマネジメントツール? このようなビルド自動化は、古くはGNU Makeやシェルスクリプトが利用されており、その後Javaの世界ではAnt, Mavenと進化を遂げて来ました。Gradl

    Gradle入門 | DevelopersIO
    t_a_o
    t_a_o 2013/10/28
  • How to Stub External Services in Tests

    Requests to external services during test runs can cause several issues: Tests failing intermittently due to connectivity issues. Dramatically slower test suites. Hitting API rate limits on 3rd party sites (e.g. Twitter). Service may not exist yet (only documentation for it). Service doesn’t have a sandbox or staging server. When integrating with external services we want to make sure our test sui

    How to Stub External Services in Tests
  • ファイルアップローダを作ろう - 鳩舎

    How to じゃなくて、何かの言語を学ぶ、もしくはあるパラダイムにチャレンジするとき、に僕がよく使うサンプルアプリケーションとして、ファイルアップローダというのがあり、それの仕様をまとめておこうと思い至っただけです。 ちょっと研修資料っぽい感じになっちゃったけど、まぁいいか。 アプリケーションの概要 非ログイン型のファイルアップローダです。ファイルの保持先は S3 や Disk 、 DB への Blob などいくつかの選択肢が提供されます。 HTTP のフォームからファイルがアップロードされ、リストで表示されるだけの簡単なアプリケーションです。 ファイルには有効期限があり、それを過ぎるとダウンロードできなくなる、かつリストにも表示されなくなります(保存先の実ファイルも削除されていることが望ましいです)。 また、ファイルにはプライベートモードがあります。プライベートモードのファイルはリスト

    ファイルアップローダを作ろう - 鳩舎
  • Ruby Hacking Guide を Kindle で読めるようにする - Stats of the Rivers

    Rubyソースコード完全解説 というがあります。 その名の通り Ruby 処理系のソースコードについて解説もので、 Ruby Hacking Guide (略して RHG) という名称でも知られています。 他に類を見ない日語で書かれた言語処理系ソースコード解説ということで非常に貴重なです。 さて、このは2002年に出版され、残念ながらすでに絶版となっているこのですが、ありがたいことに2004年に著者の青木峰郎さんが HTML 形式で文を公開*1されていて、今でも全文を読むことができます。 でもやっぱり Kindle で読みたいので Kindle 用の .mobi ファイルをつくることにしました。 基的には、以下の流れで .mobi ファイルを生成します。 RHG の HTML 版のアーカイブをサポートページからダウンロードする .mobi ファイル生成のためのコマンドラインツ

    Ruby Hacking Guide を Kindle で読めるようにする - Stats of the Rivers
  • Vimでパターン検索するなら知っておいたほうがいいこと - derisの日記

    この記事はVim Advent Calendar 2012の166日目の記事です。 165日目はaueweさんによる.vimrcに書くべきでないVimの設定項目でした。 Vimに限りませんが、テキストエディタを使う際にテキスト検索はよく使うと思います。 ある程度慣れた人だと正規表現を用いたパターン検索を使うようになります。 もちろん、Vimにも正規表現を用いたパターン検索を行う機能は備わっています。 しかし、お世辞にもVimのデフォルト設定ではパターン検索は書きやすいとは言えません。 特に、他の正規表現方言に慣れている人は、Vimの正規表現の書き方の違いに戸惑うと思います。 記事では、Vimでパターン検索するなら知っておいたほうがいいこと+ Vimのパターン検索に使えるメタ文字をご紹介します。 パターンって何?という方は:help usr_27.txtを一読することをおすすめします。 一

    Vimでパターン検索するなら知っておいたほうがいいこと - derisの日記
    t_a_o
    t_a_o 2013/10/28
  • DevOps Day Tokyo 2013 参加レポート

    こちら、Galbreath さんの当日の資料。 DevOps が実行出来ない理由 Tool が足りない 社風の影響 見えないモノが価値がないと事業から考えられている 出来る事は、価値があるモノの社内への説明と、Tool を使った可視化。データの可視 化が重要。Ops の人は結構「データをどこそこの部署に見せても理解してもらえない」 だとか「データを閲覧させると万が一の時にシステムが破損する」等と考えがち。が、 ビジネス寄りの人にとって重要なグラフが含まれていたり、アカウント担当の人に役立 つものも含まれている。ましてシステムが破損することなど決して無い。 重要なのは “運用のメトリクスを公開する” こと! Graphite グラフ描画ツール まず完成度が高いわけではない 同類のソフトウェアでは行えないクエリが発行出来る REST API Flexible Input & Output Si

    DevOps Day Tokyo 2013 参加レポート
    t_a_o
    t_a_o 2013/10/28
  • http://blog.uu59.org/2013-09-28-from-screen-to-tmux.html