ISUCON本選に出場して9位でした。最高スコアは3位

ISUCON6本選行ってきました 恒例のレゴ 戦ってきましたー 最終スコア チームにるぽの結果は9位でした。 スコアの推移 最高スコアは31,776点で最高スコアだけなら3位でした。 このスコア出たときはいけるぞ!まだ入賞狙える可能性あるぞ!という感じでしたが…

ISUCON6予選突破しました

ISUCON6予選突破 ISUCONというWebアプリケーションのパフォーマンス改善コンテストに参加し、予選突破しました。 やっとですよ。やっと。ISUCON4, ISUCON5と予選敗退していてプライドがズタズタになっていたのでやっと突破できて本当に嬉しいです。 スコアは…

Amethystを使い始めてSpacesを見直してTotalSpaces2を入れた

MacでSpacesはVMWareでWindowsを起動するときくらいしか使ってなかったんですが、Amethystというタイル型ウィンドウマネージャを入れたことでより良いSpaces環境が欲しくなってTotalSpaces2を導入した。 TotalSpaces2totalspaces.binaryage.com TotalSpaces2…

rubyでArray#find, detectを使い分ける

find, detect (Enumerable) - Rubyリファレンスref.xaio.jp detectメソッドは、findの別名です。 今までfindをよく使ってましたが、ActiveRecordを使っているところではActiveRecordのfindと区別するためにdetectを使おうってメンバーが話しててそうだなと思…

jQuery#dataは値をconvertする

次のようなhtmlに$('#tel').data('tel')で取得すると300000000に変換されてしまう。 <span id='tel' data-tel='0300000000'>電話番号</span> jQueryのバージョンによっては下記のようにjQuery#dataは数値っぽかったら数値型に変換した結果を返してくれるみたいです。余計なお世話だ。注意しましょう。 $('…

Hashから値を取り出す時にもコードに意思を埋め込む

何気ないところでもコードに性格でますよね。下記のようにHashからvalueを取得するの一つとっても hash = {name: 'foo'} hash[:name] # foo 下記のようにfetchを使う事でアクセスするキーが必ず存在することをコードで示せます。 動作が違うのはHash#fetchは…

#SQLアンチパターン ファントムファイルに立ち向かう

SQLアンチパターン SQLアンチパターン作者: Bill Karwin,和田卓人(監訳),和田省二(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購入: 9人 クリック: 698回この商品を含むブログ (41件) を見る ファントムファイル(幻…

ブログを更新する

ずっとブログを書いて無かったのですが、最近幼なじみがブログを始めてコツコツとコンスタントに更新しているんですよ。業界も全然違うので内容は全然異なるのですが、なんか刺激を受けて私もまたブログを更新していきたいなーと思ってます。 せっかくなので…

Macでもタイル型ウィンドウマネージャを使う

awesome wmを使いたい人生だった http://awesome.naquadah.org/ 一緒に開発してるメンバーでawesomeってウインドウマネージャを使っていて、便利そうだなーとずっと思ってたんですけど、Macには無いよなーと思って諦めてたらMacでも同様のものがありました M…

Amazon RDS for MySQL リードレプリカを使ったテーブル変更

RDBでデータ件数が多いテーブルに対するカラム追加を行うと時間が数時間かかって困るんですけど、RDSだったらリードレプリカを使えば比較的容易にできるってのを最近知りました。 MySQL5.6からはオンラインDDLとかPercona-Toolkitのonline-schema-changeとか…

ISUCON4 予選に参加した

予選に参加して惨敗した 9/27の一日目に参加して最終スコアはworkload 8で33,000ぐらい。 惨敗してかなり悔しい。根拠もない自信で予選くらいは思いつく実装を全部できればなんとかなるやろと甘く見てた。。 本戦出場の最終的な結果は10/6辺りに発表されるら…

Google App Engine for Goでデプロイしてみる

SDK Download https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Go path設定 export PATH=/path/to/go_appengine:$PATH サンプルアプリケーションをダウンロード https://github.com/GoogleCloudPlatform/appengine-guestbook-…

golangのプログラムをbuildしてwindowsのexeを作る

golnagをセットアップする 今回はgvmを使った。OSはMac OS X。 https://github.com/moovweb/gvm gvmをインストール % bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) go1.3をインストール % gvm i…

hubコマンドで作業中のgit branchでpull request開くの楽になった話

何はともあれまずはhubをインストール brew install hub .zshrcに下記を追加 function current_branch() { ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo ${ref#refs/heads/} } topicブラ…

InnoDBで行ロック/テーブルロックになる条件を調べた #mysqlcasual Advent Calendar 2013

はじめに この記事は、MySQL Casual Advent Calendar 2013 7日目の記事です。 〜 Casual に記事を書けばええんやでヽ(´ー`)ノ 〜 私がMySQLで えっ?! っと思った下記エントリーの挙動が何故そうなってしまうのかを書きたいと思います。 InnoDBで行ロック/…

Google Cloud SQLのMySQLはテーブル名の大文字・小文字を区別する

lower_case_table_namesが0 http://gyazo.com/d498c0763518ad915063f031996e1458.png 変更することもできないみたいだ http://gyazo.com/18c463fc5da72b4570c79f67ca74cb54 全然見えないや。。gyazoはっとく

Blogを容易に書けるようにCreate Linkをセットアップ

参照しているブログの内容をこのブログに引用したい時にいちいちmarkdownで書くのは面倒なのでCreate Linkを使います。 インストール Chrome ウェブストア - Create Link 他のサイトから引用する時にしようするフォーマット > %text%%newline%%newline%> [%t…

vagrantのインストール

最近、Chefに興味を持って触っています。Chef便利です。Chefを使うとレシピと言われるファイルを用いてサーバにnginxなどをインストールすることができます。 使いこなせるようになると以下のような嫌な事から解放されます Aのサーバにはemacsがインストール…

MySQLの設定ファイルmy.cnfをいじってslow-queryを検出する

はてなダイアリーからはてなブログに引っ越してきました githubで慣れたmarkdown記法が使える gistのコードが貼り付けられる あたりがはてなブログの利点かな markdownで下記のようなコードシンタックスが付くのは楽ちんでいいですね。 function animationPi…

050plusに登録してみた。お友達紹介キャンペーンコードもあるよ

基本料金が月315円で050の電話番号が取れて、通話料金は下記で電話がかけられる。試しにどんなものか契約してみました。 携帯へ:16.8円/1分 一般電話:2.8円/1分 一部IP電話:無料 今ならお友達紹介キャンペーンってのをやってるらしくて一応ココにも貼ってお…

Google App EngineのHttpHeaderを調べて見た

name:Host data:xxxx.appspot.com name:Cache-Control data:max-age=0 name:Pragma data:no-cache name:Accept data:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 name:Accept-Language data:ja,en-US;q=0.8,en;q=0.6 name:Accept-Char…

PyCon JP 2012(App Engine Conference 2012)でパネルディスカッションのモデレータしてきました

PyCon JP 2012に参加してきました。初めてパネルディスカッションのモデレータをつとめる事になりドキドキしていたのですが、Google App Engineに詳しいスペシャルなパネラーさんのおかげでなんとか終わりました。 当日どれくらいの人が来てくれるのか不安だ…

テスト駆動JavaScriptの第2章をメモ

Node塾 講義その6に行くのでメモった Node塾で下記の読書会をする。テスト駆動JavaScript作者: Christian Johansen,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2011/11/25メディア: 大型本購入: 19人 クリック: 331回この商品を含むブロ…

2011年も今日でおわり

毎年、年末年始にみんなblog書いてるので私も何か書こうかなと思うのだが、特に書くことない。今年は、特別何かの技術に特化して調査したりすることもなく淡々と自分のいま持っている技術でモノを作るというのをしていた気がする。 Google App Engine 2009, …

Chrome Web Storeに公開しているChrome拡張のレビューコメントを取得する方法

こんな感じで取れた。Review Notifyでも作ろうかな。Reviewをメールで配信してくれたりすると嬉しいだけどないよね? function getReviews(extensionId, callback) { var entities = [{'url' : 'http://chrome.google.com/extensions/permalink?id=' + exten…

緊急地震速報をしてくれるChrome拡張を作りました。

3月11日(金)午後2時46分頃にマグニチュード 9.0を記録する「東北地方太平洋沖地震」が発生し今も余震が続いています。仕事に集中できないくらい余震が発生しています。この状況をエンジニアとして何か出来ないかと思いChrome拡張を作りました。 この拡張機能…

Chrome拡張ATND NotifyでGoogleカレンダーに参加予定イベントを追加する機能を入れた話。または、ATNDの予定をiPhoneのカレンダーに入れる方法

ATND Notifyってこれです。 機能追加の話 という事だったので しますた。 という訳でGoogleカレンダーに追加したい人はATND Notifyをインストールしてください。インストールはここから。インストールするとイベントカレンダーにこんなボタンが追加されてま…

Developers Summit 2011 松尾さんのGoogle App Engine発表資料

【18-C-4】Google App Engine - 無限の彼方へView more presentations from Developers Summit.Javaで全部書き直したコードを書こうと思ったけど力尽きた。誰かいい感じで頼む。

Developers Summit 2011のLT大会で発表してきました

【デブサミオフィシャルコミュニティから選出のLT大会2011】にappengine ja nightコミュニティから私が発表させて頂きました。このような機会を与えてくれたみんなに感謝します。 資料 デブサミ2011 LT大会【17-E-7】appengine ja nightView more presenta…

Google App EngineではAdmin権限でリクエストするとCPU使用率と1リクエストあたりの課金額がわかる

Admin権限ありでログインするとHttpヘッダーで下記のようにCPU使用率とかがわかるようになってます。 プログラミング Google App Engine作者: Dan Sanderson,玉川竜司出版社/メーカー: オライリージャパン発売日: 2011/01/24メディア: 大型本購入: 5人 クリ…

ATND Notifyがもっと評価されるべき5つの理由

去年、Chrome extensionでATNDを便利にするATND Notifyを作ったのにblogに書いてなかったので書く。Twitterでは"マジ狩る拡張"とか"数時間で埋まる人気の勉強会だが、ATND Notify(Chrome Extension)入れてる私に死角はなかった"とか"補欠繰り上がり通知で…

Google App EngineのAdmin Consoleを便利にするChrome extensionを作ってます。

インストールするとDataViewerページがこんな感じになります インストールはこちら http://goo.gl/b4aup 何ができるの? GQL実行履歴を保存し再実行できる GQLを自動生成する プロパティ名の下にテキストボックスが出るようになります。そこに値を入力すると…

MacBook Air 11インチ欲しい!

MacBook Air 11インチ欲しい!下さいな。新年一発目の投稿がこれとはごめんなさい。

秀丸でeclipseのnext search(Ctrl+K)を実現する方法

eclipseでよく使うキーボードショートカットにnext search(Ctrl+K)があります。next searchは選択範囲文字列で下候補を検索するという単純な機能ですが、めちゃめちゃ便利でよく使います。ふと、これを秀丸でもやりたいなぁ〜と思ったのでマクロを作ってみま…

Google Developer Day 2010(GDD)とGDD Bootcampにいってきた。

Google Developer Day 2010(GDD)基調講演 Google App Engineは現在1week 55億ページビュー 日本はユーザが多い。appengine ja nightも紹介された appengine ja nightブース appengine ja nightの発表 @shin1ogawaさん(GDDBootcamp) Slim3 ハンズオン資料 S…

appengine ja night #9に行ってきた。 #appengine #ajn9

おしながき 本編 @bufferingsさん:Datastoreのクエリを理解しよう @kazunori_279さん:Next gen queryを斬る! BT(Beer Talk) @cht_007さん:BDレコーダー+スマホ/PC連携サービス『Chan-Toru beta』 @ashigeruさん:近くを探す? @tagomorisさん:SDKを試…

HTML5とGoogle I/O 2010(AppEngine)のリンクめも

Google I/O 2010 - App Engine http://www.youtube.com/view_play_list?p=FBF991DAE0E02FED xhr2-steaming http://www.slideshare.net/KensakuKOMATSU/xhr2-steaming-twitter-with-ipad phvsicSketch http://physicsketch.appspot.com/ Canvasでピクセル操作…

appengine ja night #8に行ってきた。 #appengine #ajn8

今回はサッカーSNSを実際にAppEngineで運用している@najeiraさんをはじめ、ランキング問題をやっつけるために@koherと@kibayosさんがSkip Listをひっさげて来て下さいました。 BeerTalkでは、App Engineで動作するCMSを作成している@shuji_w6eさん、@zetta19…

はてなダイアリーで「Twitterにつぶやく」ボタンを作って配置するまでを読んで配置してみた。

ここの通りにすれば簡単にできました。 最近ちょこちょこと見るようになった、Twitterでつぶやくボタン。欲しくなったんですけど、はてなダイアリー標準にはどうやら無いっぽいんで作ってみました。 こんな感じ このエントリーをTwitterでつぶやく firefoxの…

iPadの予約は明日からiPad 16G(3G)モデルを一括購入+データ定額の場合は、58,320円で月々2,910円の2年縛り契約

5月10日時点で東京にて予約できる場所は下記のみ ソフトバンク八重洲中央口 ソフトバンク六本木 ソフトバンク渋谷 ソフトバンク表参道 Apple Store銀座 予約開始は5月10日の午前10時からですぞ。 注意 他のソフトバンクショップやApple Online StoreだとiPad…

appengine ja night #7に行ってきた。 #appengine #ajn7

今回は@shin1ogawaさんの尽くしの一日。shin1ogawa ja nightが開催されました。shin1ogawaさんは恐らく日本で一番appengine/javaに詳しいと思われる人です。そんな人のライブコーディングが見れるとあって楽しい一日でした。 また、@kazunori_279さんがUstを…

eclipseにEGitをインストールするメモ

EGit http://download.eclipse.org/egit/updates インストール時に下記のエラーが出た。 session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Collect, operand=, action=). No repository fou…

新規に開発するプログラムもテストがなければレガシーシステムである

テストのないレガシーコードにテストを作ることによって、そのシステムの理解が深まったり、動作を記述することによって、変更の影響が即座にわかったりする。変更の影響がわかれば、大胆に実装を変更したりすることが容易にできるようになり、開発の俊敏性…

appengine ja night #6に行ってきた。 #appengine #ajn6

blog書くのめっちゃ遅れた。ちゃんと書きますよ。slim3がリリースされましたね。そのslim3の目玉機能であるGlobalTransactionを荒川さん、ひがさんから解説頂きました。今回はいくつかustream動画があります。これなかった人も動画を見ればいいですよ。 おし…

Google App Engine code labの資料が公開された #appengine

"Google App Engine Java の色々な機能を、実際にコーディングしながら体験してみよう" という主旨のもと、Google App Engine for Java のコードラボをこれまでに3回開催してきました。Java を使った Web アプリケーションの開発経験はあるけれども、App Eng…

appengine ja night #5に行ってきた。 #appengine #ajn5

みなさまお疲れ様でした。今回も楽しかったw。 ajn5ではpythonは松尾さん、javaはひがさん。お二人とも有名なフレームワーク開発者という超豪華メンバーだった。その影響かATNDの申し込みは24時間たたずに定員オーバー、申し込みが軽く100人を超えて定員を1…

Oracleでデータファイルを縮小する際にORA-03297エラーが出た時の対処

下記のコマンドを実行した際にエラーが出る場合がある。 ALTER DATABASE DATAFILE 'データファイル名' RESIZE サイズ[K|M]; ORA-03297: ファイルには、要求したRESIZE値を超える使用中のデータが含まれています。 これは、データファイルを縮小しようとした…

Google App Engineでよくある質問

質問形式でとりあえずApp Engineの情報を整理しようと思います。 サーバの管理コンソールで表示するとログの時刻表示がおかしい? タイムゾーンがPSTで表示されます。ローカルの時刻にするgreasemonkeyなどがあります。 firefox http://userscripts.org/scri…

AppEngineでKind(テーブル)を削除する方法

Google App Engineではデータを削除したい時にサーバのデータに対してDelete文を実行したりDrop Tableしたりということができません。Kindをdrop(KindにあるEntity[レコード]を全件削除)するには現時点では削除するコードをサーバにデプロイしてブラウザか…

AppEngineでsessionを有効にしていると遅くなる

Google App Engineのsession情報はDatastoreを使っているため若干遅い。セッションを使わないアプリならセッションを無効にしておいた方が良い。 appengine-web.xmlにてfalseする ※デフォルト(sessions-enabledの記述がない場合)ではセッションは無効にな…