広島市現代美術館は1989年、公立館では国内初の現代美術を専門とする美術館としてオープンしました。ヒロシマとの関連を示す作品を中心に国内外の現代美術作品を収集し、多種多様な展示をおこなっています。自然豊かな比治山公園内に位置し、美術館までの道すがら四季折々の風景をお楽しみいただけます。
![広島市現代美術館 | Hiroshima MOCA](https://cdn-ak-scissors.b.st-hatena.com/image/square/4ac4dbb837496db11c2cd3bb47c3e463045010b0/height=288;version=1;width=512/https%3A%2F%2Fwww.hiroshima-moca.jp%2Fwp-content%2Fthemes%2Fgenbi-theme%2Fcmn%2Fimg%2Fglobal%2Fbg_contact.jpg)
後編を公開しました(2014/10/8) これは、テスト駆動開発(TDD)とTDDがソフトウェア設計に与える影響についてKent Beck、David Heinemeier Hansson、および著者の3人で行った一連のディスカッションの議事録です。 ディスカッションに至った経緯 あるセンセーショナルな発言とブログ記事が発端となり、お互いの見解と経験について理解を深める目的で、話し合いが持たれました。 この会話のきっかけとなったのは、 DavidがRailsConfで行った基調演説です。 彼はRailsコミュニティでTDDおよびユニットテストへの不満を表明しました。 程なくして、彼はいくつかのブログ記事を公開しましたが、そのうちの最初の記事で “TDDは終わった” と宣言したのです。 それから2~3日後、Davidのその後の記事について私がタイプミスの修正を送ったところ、 Davidは彼の
吉報は突然届くもので、本日、情報処理学会の山下記念研究賞の受賞が決定しました。 まず、情報処理学会の山下記念研究賞(旧研究賞)とは以下のような賞になります。3年前に会社を辞めてまで学術研究に飛び込んだ自分としては、非常に光栄ですし何よりうれしいです。 2014年度詳細-情報処理学会 山下記念研究賞の推薦理由は、 [推薦理由] Webサービスを安定して提供するために,Webサーバソフトウェアの内部機能の拡張が必要となる場合がある.この機能拡張を,生産性や保守性を考慮してスクリプト言語で行う手法の提案がいくつかなされているが,高速性・省メモリ・安全性の面でいくつかの課題があった.著者は,Apache HTTP Serverに組み込みスクリプ卜言語であるmrubyを組み込むことで,Rubyスクリプトにより容易に機能拡張でき,高速・省メモリで動作する機能拡張支援機構を提案している.また,本機構の有
Bullet will notify you of database queries that can potentially be improved through eager loading or counter cache column. A variety of notification alerts are supported.
モデルからデータを取得する際に常に特定の検索条件を指定することができるdefault_scopeですが、 デメリットについてあまり注意を払わずに使ってしまって失敗しました。 サンプル事例 環境 * Rails 3.2.12, 4.0 * MySQL 5.1.65 ※ 実際に問題が起きたバージョンが3.2.12 なのでそちらが中心になっています。 データを「名前」「年齢」どちらか指定された値で並び替えるという処理があったので、 特に指定が無ければid順で取得するという条件をdefault_scope を使って追加しました。 class User < ActiveRecord::Base default_scope -> { order(:id) } end これで、モデルからデータを取得する際に必ずORDERが指定されるようになります。 User.all #=> SELECT "users"
前回は『N+1件』問題を解決して、パフォーマンスを改善することができました。今回はページ表示部分(View)に関する処理を変更することでパフォーマンスを改善したいと思います。 まずは、前回終了時点のパフォーマンスを確認しておきましょう。 だいたい1秒弱かかっているようですね。そういえば前回、クライアントマシンのスペックを記載するのを忘れていました・・・筆者は Mac Book Air 2012 mid (デュアルコア2.0GHz Intel Core i7)/メモリ8G を使用しています。 それでは、チューニングを初めましょう! パフォーマンス・チューニング2:Viewヘルパー さらなるパフォーマンスの改善を行うためには、どの処理に負荷がかかっているのかを知ることが不可欠です。rack-mini-profilerの表示を確認し、当たりをつけましょう。『959.0ms』という部分をクリックし
MEANとは、LAMP(Linux, Apache, MySQL, PHP)に変わる技術としてじわじわと注目されはじめているアーキテクチャです。このアーキテクチャMEAN(MongoDB, Express, AngularJS, Node.js)は、シンプルでかつ強力なアーキテクチャで、現在のJavaを利用したアプリケーション開発とは一線を画すところです。HTML5開発にとってJavaの役割が殆どなくなるというのも注目すべき点だと考えます。MEANで一般的に言われる注目すべき事項は次のところです: JavaScriptフルスタックである データモデルとしてクライアントからデータベースに至までJSON そして、この記事を書こうと思ったきっかけですが、2014/10/5(日) Mozilla Open Web Day in Tokyo | Mozilla Japan でのMEAN解説展示で、様
サービス障害を起こさないために、障害を起こし続ける。逆転の発想のツールChaos Monkeyを、Netflixがオープンソースで公開 米国でビデオオンデマンドサービスを提供しているNetflixは、Amazonクラウド上でわざとシステム障害を起こすためのツール、Chaos Monkeyをオープンソースで公開しました。 Chaos MonkeyはAmazonクラウド上で使うツール。Amazonクラウド上のインスタンスをランダムに落としまくることで、サービスに対して仮想的な障害を引き起こしてくれます。 NetflixはこのChaos Monkeyを実環境で使うことで、本物の障害が起きたとしてもサービスが継続できることをテストし続けてきました。Netflixのブログ「Chaos Monkey released into the wild」から引用します。 There are many fail
Amazon EC2は9月末、その内部で使用しているXenハイパーバイザのセキュリティリスクに対処するため、全インスタンスの約10%にあたるインスタンスに対して段階的にリブートを行うメンテナンスを実行していました。 リブートをユーザーが回避する手段はなく、AWSから事前に通知を受けたユーザーはリブートによってデータを失ったりシステムがダウンしたりしないように、何らかの処置をする必要がありました。 AWS上で大規模なシステムを運用しつつもこのメンテナンスリブートを難なく乗り切ったのが、米国で動画配信サービスなどを運用するNetflixです。その理由は同社が開発したChaos Monkeyというツールにありました。 同社のブログにポストされた記事「A State of Xen - Chaos Monkey & Cassandra」で、その顛末が紹介されています。 Chaos Monkeyによっ
MEAN(MongoDB, Express, AngularJS, Node.js)を解説する 前に触った感想です。 MongoDB 良くも悪くもNoSQL。トランザクション無を補うためスキーマが基本汚くなる。 汚いスキーマにアプリケーションの変更が入って安全にデータが壊れる。 結局、不整合が起きてバッチに頼る。バージョン変えるとデータが壊れる。スケール環境は不安定になって止まるのは基本。基本いつのまにか変更されて変な動きして死んでる前提で、動く/戻せる環境構築できない奴は死ぬ Expressシンプルに書けるんじゃなくて、薄い機能しか無い。ミドルウェアをたくさん詰むことになり、ミドルウェアのチェーンは黒魔術詠唱と変わらん。 唱えた本人もどうなるか分からないのがざら。エラーが勝手に握りつぶされるのは基本。 落ちるのがミドルウェア内のエラーとか基本。 いつの間にか落ちるのも基本。基本いつのまに
ボクは本当にAngularが好きで、もはや恋するレベルに達していて、今ではもう実案件に使っている。 イカ理由。 APIがほんっっっっっとうに糞 趣味の問題といえばそうでもあるが僕は糞だと思う → 趣味には口を出しません。そう思うならそうです。 実装が黒魔術 良識あるJSエンジニアなら Function.prototype.toString() しない 実際に一部のクロージャが破壊されてて挙動が直感に反する DirtyCheckの実装、表面的にもDirtyな挙動として現れるのでデータバインドとして何も嬉しくない →データバインドだったり、Web Components のような、未来にnative実装されるAPIを包括的に実装しようとした結果の1つだと思ってます。 もっといい方法はあるのかもしれないですけど、Angularではこうしてるよっていうのが現状なのかなと。 上記で毒づく程不満はないで
先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く