最近データベースというかSQLについて勉強しているんですが、奥が深いですね。この前の第9回中国地方DB勉強会のときに聞いたrank関数を使って、ランキング機能をリファクタリングしよう!と思って最近頑張ってます。というのも、複雑なクエリ(遅い)を業種数分(10回くらい)呼んでいたため、Herokuだと結構ギリギリの速度になることもあったので、なんとかしなければ!と思っていたのです。 とりあえず、私の開発環境を載せておきます。 Mac Yosemite Ruby 2.2 Rails 4.2.1 PostgreSQL 9.3.4 ひとまずrank関数を使うところまで まず、NewRelicを使ってActiveRecordが出力しているSQLを取得し、それを0xDBEのコンソールに貼り付けて、rank関数を使って業種でパーティションしてランキングを出すところまでしてみました。rank関数は、関数名
皆さん、スプラトゥーンやってますか!? お気に入りのブキはデュアルスイーパー、シオカラーズはホタルちゃん派のmzsmです。こんにちは。 スプラトゥーンは去年のE3のNintendo Digital Eventで初めて披露された紹介映像を見た瞬間に心をわしづかみにされて、それからずーーーーっと楽しみにしてたタイトルなので、今遊べているのがほんと嬉しいですね。 ちょうどいま、今年のE3が開催中なわけですから、あれからもう1年経ったんですねぇ…早いなぁ…。 Twitterの僕のTL上では、主にIT系のエンジニアを中心に、スプラトゥーンを遊ぶためにWii Uごと買ったという人を少なくとも10人は観測しています。 少々金銭に余裕のある大人は「スプラトゥーンのためだけにWii U買うのはなぁ…」だなんてケチくさいことは言わないで、楽しいゲームを遊ぶためならハードくらいとっとと買うみたいです。 僕はとい
Critical Rendering Path Stay organized with collections Save and categorize content based on your preferences. Optimizing the critical rendering path refers to prioritizing the display of content that relates to the current user action. Delivering a fast web experience requires a lot of work by the browser. Most of this work is hidden from us as web developers: we write the markup, and a nice look
How browsers work Stay organized with collections Save and categorize content based on your preferences. Preface This comprehensive primer on the internal operations of WebKit and Gecko is the result of much research done by Israeli developer Tali Garsiel. Over a few years, she reviewed all the published data about browser internals and spent a lot of time reading web browser source code. She wrot
科学はその方法論上のイメージよりもはるかに”ぞんざい”かつ”非合理的”なものである。 Paul Feyerabend著『Against Method(方法への挑戦)』(1975年) プログラミング言語は魅力的な分野です。それは、計算機科学(と論理)を 社会学や人間とコンピュータの相互作用 、科学的に定量化できない直感や嗜好、そして(良くも悪くも)政治などを含む分野と結び付けてくれるからです。 プログラミング言語を話題にする場合、たいてい何らかの客観的な真実を追求する科学的議論になってしまいます。科学は完璧のオーラに包まれているため、科学的本質の核心部だけに集中し、他の部分を無視するのが正しいプログラミング言語の考え方だと単純に思ってしまうのも無理ありません。 しかし、これではプログラミング言語を面白くしている多くのものが除外されてしまいます。この隙間を埋める1つの方法は、科学の哲学に目を向
<meta name="viewport" content="width=device-width,initial-scale=1"> と呪文のように書いてきたが、いい加減ちゃんと整理して理解しよう。 いろいろ調査した結果、以下の考え方で理解できると思う。 まず、実際の液晶の解像度は一旦忘れろ。 <meta name="viewport" content="width=480">と指定したとする。 するとそこに幅480pxの仮想的なウインドウが作られる。幅480pxの液晶モニターがあることをイメージして欲しい。これをviewportと呼ぶ。 ブラウザはviewportにレンダリングする。viewportの中では、あたかも本当に480pxのモニターを使っているかのような環境になっている。なので、JSのdocument.documentElement.clientWidthなんかも480を返す
つい先日、Polymerがついに1.0になり、Production readyということになりました。webcomponents.jsというpolyfillが必要って時点で本当に Production readyなのか?という疑問は尽きませんが、それでも一つの里程標となったことでしょう。 さて、約1年半ほど前、0.4の時代のPolymerを社内システムとはいえ、プロダクションに適用してみたものの、メンテナンスの煩雑さやそもそもそれを使った機能が使われない(!!)ことから、ほとんどいじることはありませんでした。 その間に、0.5が出て、0.8が出て、ときたわけですが、1.0が来たということなので、ちょっと時間を使って0.4からどれくらい変わっているかを身を以て体験してみました。 Polymerのアップグレード(with Bower) Polymerは推奨通りにBowerでインストールしてまし
RDBの専門家として日々活動している中で気づいたことのひとつに、「RDBはデータへのアクセスの実装をインデックスに頼っているが、インデックスは全ての問題を解決できるほど万能ではない」ということがある。インデックスというのはとても強力な部品であり、その点には全く異論はない。だが、世の中の全ての問題(クエリ)を解決できるほど、柔軟性に富んだものではないということだ。RDBは、どのインデックスを使ってデータへアクセスするかということを、オプティマイザを用いて判断する。大抵のRDB製品では、オプティマイザはよい仕事をするので、インデックスとオプティマイザの組み合わせによって、ほとんどの問題に対応できる。だが、100%ではないのであり、そのようなケースがシステムの性能問題を引き起こしたり、プログラマ(アプリケーションの設計者)に、NoSQLへ完全に移行したり、クエリ高速化のために非正規化をすると言っ
平成27年6月12日(金曜日)午後7時45分に専門機関からの通報を受け、調査した結果、上田市役所の庁内ネットワークが、標的型サイバー攻撃を受け、ウィルスに感染していたことが判明しました。 上田市役所では、二次被害を防止するため、15日(月曜日)午前11時30分からインターネットを遮断していることから、電子メールの送受信ができず、市民の皆様をはじめ関係の皆様に大変なご不便をおかけしております。 現在までに情報が外部に流出した事実は確認されておりませんが、市は対策本部を設置し、迅速な対策を進めてまいります。復旧までのしばらくの間、ご不便をおかけいたしますが、ご理解いただきますようお願いいたします。 情報流出を口実とした特殊詐欺などの発生が懸念されます。市役所から電話で個人情報をお聞きしたり、お金の振込をお願いするようなことは絶対にありませんので、十分にご注意いただくとともに、冷静な対応をお願い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く