D3を書くときの小さいTips

marginの扱いがダルい div > svg > g としてその中にいろいろ追加していく、というのがベストだと思っていますが、marginの取り扱いが割とだるい。よくあるのが d3.select('div').appned('svg') .attr('width', width + margin * 2) .attr('height', height …

可視化における代数処理

このポストは「The grammar of graphics」の5章「代数(algebra)」を(つまみつつ)訳したものです。 5. 代数 代数(algebra)という言葉はアラビア語の「al-jebr」という単語が語源であり、「修復」または「破損した部品の再結合」を意味しています。本章ではグ…

YAPC::Asia Tokyo 2013に参加&発表&レポートしてきました

YAPC::Asia Tokyo 2013に参加&発表&レポートしてきました。 登壇者・スタッフ・招待合わせて、1131人もの参加者が集まるPerlの祭典「YAPC」。 去年までは一参加者でしたが、今年は発表する機会もいただけたので、20分ですがトークしてきました。 発表 内容も…

grammar of graphics / three stages of graphics creation

この記事は「grammar of graphics」についての理解のためのメモです。 可視化の作成において3つの段階にフォーカスを当てる。 Specification Assembly Display 1. Specification ユーザのアクションをフォーマルな言語に置き換える作業を指す。 ユーザはこの…

LLまつりに行ってきました

今年もLLイベント「LLまつり」に行ってきました。 今年はLTもしてきました。CROSSの宣伝をしにいくつもりで「CROSSの話かそれがダメならJavaScriptで時系列解析の話で」と申し込むと、後者になっていました。 という訳で僕自身は「JavaScriptで時系列解析」…

advent calendar 24日目 selectAll(), data(), enter(), append()に翻弄されるひとたちに

d3

ようやくボクのクリスマスが終わります。 d3は可愛いんですが「selectAll() -> data() -> enter() -> append()」は経験から学ぶのが最も早い、としか答えられません。 クリスマスプレゼントとして、そんな方々のためにUnderstanding selectAll, data, enter,…

ICML2013 読み会に参加して来ました

ICML2013の論文をみんなでよってたかって紹介しよう、という会に行って来ました。 読み手は埋まらないだろうと思って「埋まらなかったら読みますよー」って言ってたら速攻で8人埋まってびっくりした。 あと、こういう会に40名近く(女子含む)が来るってことは…

社内環境などでgitプロトコルが使えないときに内部的にgitを使ってるプロダクトでうまくやる

gitを直接叩くときは、URIをhttpsプロトコル側を使うなどで回避出来ますが、bowerやnpm、cpanmなどでは困りますよね。 こういう時は % git config --global url."https://".insteadOf git:// とするとgit側でプロトコルを変更してくれるので、プロダクト側か…

d3.js advent calendar 23日目

d3

ボクのクリスマスはまだ終わっていません! データベースエンジニア養成読本に たぶん、最後に「まあ、データってことばに関係するからちょっと混ぜておくか」というノリだと思いますが データ可視化についての内容で寄稿しました。 データ可視化の歴史とかJ…

35歳定年説

先週の23日で晴れてエンジニア定年説となる35歳を迎えることになりました。 ハッピーバースデー俺! ちらっとここ数年を振り返ってみるとこんな感じ CROSSを始めた 2012, 2013 mongo-hadoopのパッチを送った/発表した mongodb tokyo, hadoop code reading fl…

Githubでpull request送りたいとき

id:papixさんができる! pull request!という素晴らしいまとめを書いてくださっています。 もっと前に欲しかったw なんですが、pull request送るぞ!って決めてからforkしてコードを書きなおして・・・ってだるいので、マサカリを担いだ人は多分常識なんでし…

hadoop datanode 縮退時に replication 数以下にまで落としたらちょっと困った件

とある開発環境のhadoopクラスタの規模を小さくする時にちょっと詰まった。 通常は増やすこととか減らしたとしても壊れたからとかスペックがあれなんで外す、ってことだと思うけど、バラすまでやってみた。レアなケースな気はするのでメモっておく 具体的に…

とりあえずtwoをbowerに登録しておいた

それなんてRaphael感も若干あるtwo.jsです。 ちょっと(どころではなく)弄りたかったのですが、bowerに見つからなかったので、登録しておきました。 bower install two とするだけで落ちてくるので試してみます

bowerについて

bowerが0.9.2になり、gitリポジトリが変更になりました。 twitter/bower=>bower/bower 基本 bowerとは、WebのJavaScript package managerです。 npmやgem、cartonのように、jqueryやd3、angularなど、プロダクトのwebで必要なpackageを管理するツールです。 …

特定のstyleがあたったelementを取得する方法

朝っぱらから、 @mutuki @agektmr @Shumpei @os0x などを巻き込んでしまいました。 ありがとうございます! やりたかったこと Webページ内の画面遷移を引き起こすクリッカブルな要素の全抽出がしたい。 とりあえず a タグを取り出したけど、最近はdivとかima…

doccoとgrunt-doccoのごにょごにょについて

doccoという結構使いやすい*1ドキュメント生成ツールがあります。 これのgruntのpluginがあるのですが、これにまつわるもやもやについて docco doccoはコードの中にmarkdownを書いてインラインコメントアウトするとよしなにdocumentを生成してくれます。 0.6…

d3.js advent calendar 22日目

d3 advent calendar 22日目d3でデータをネスト化したりして、いろいろなグラフを描いてみよう!(まとめ) まとめ的な統括的なものです sample garalley見たら載ってることも多いですが、総括して見られることがメリットだと思ってください 注意:面倒なのでco…

d3.js advent calendar 21日目

d3 advent calendar 21日目d3で適当なデータを作ったり、いろいろフォーマットする d3の便利な関数の具体的な使い方 サンプルデータを生成する サンプルデータって必要ですよね。そんな時の方法です var size = 24 * 7 * 14, mean = 100, stdev = 20; var no…

d3.js advent calendar 20日目

d3 advent calendar 20日目d3.layout.tree d3.layout.tree d3.layout.treeは「樹形図」を描くことができる.layoutです 書きたいですよね?樹形図! 概要 このlayoutは、前回紹介したhierarchyの具体的な表現例の1つになります。 従って、ネスト化されたデー…

d3.js advent calendar 19日目

d3 advent calendar 19日目d3.layout.hierarchy d3.layout.hierarchy このlayoutは直接利用するものではなく、d3.layout.treeなど階層構造を表現するためのベースlayoutです。 今日はこのlayoutのAPIにふれて、次回で具体的なlayoutであるtreeの使い方を説明…

時系列解析と異常値検知の会(仮)

ぴーなんちゃらの @sla さんに . @sla さんと時系列解析について一度お話を伺いながら飯に行きたいと思ってる2013-03-22 10:26:10 via Silver Bird って声をかけたら「おk」と返していただいたので、貴重な時間をいただき、「時系列解析と異常値検知(とS式 …

paramtuner v0.0.0リリース

こちらで反省したとおり、使いやすいようにgruntから切り離しました(最初からそうしろ・・・ in codeでチューニング(というか、今は乱数で総当り。最適化のロジックは鋭意作成中)してその結果を利用して、なにか、とかができます。 github npm npm install p…

ARIMAについての感覚的な理解(1/2)

最近ずっと時系列解析について調べています。 その基礎の中に「ARIMA」というモデルがあります。 ARIMAは「Autoregressive Integrated Moving Average」、日本語で言うと「自己回帰和分移動平均」というモデルです。 はあ?なにそれ? ARIMAモデルは次の3つ…

grunt-contrib-tuning v0.0.0 リリース

grunt-contrib-tuningをリリースしました。 いろいろなパフォーマンスのチューニングをgruntから利用することができます。 grunt.loadNpmTasks 'grunt-contrib-tuning' と登録して grunt.initConfig tuning: test: params: alpha: range: [1, 100] beta: ran…

DashにD3.jsのドキュメントを追加する方法

d3

Dashというツールがオフラインでも見られていいので使っています。 d3を追加する方法をメモ というほどなんら困らないのですが、 gitにあげてくれている人がいるので $ git clone git://github.com/exlee/d3-dash-gen.git して、その中の.docsetsを追加する…

データ可視化 HandsOn #2を開催しました

まだまだ、ふっくらした開催概要ですし、進め方も全然決まってなく参加者の皆様を戸惑わせながらですが、データ可視化 HandsOn #2を開催しました テーマ 僕自身がいま関心があるものですが「コストパフォーマンス」を可視化する、というテーマで取り組んで頂…

interpolate.js作りました

npmで名前が被ったので「series.interpolate.js」にしました 背景・課題 時系列分析をずっと調べているのですが、時系列データで途中データが飛ぶケースがあります。 例えば、ガチャのデータ、Webサイトのアクセスログ、404の回数のログ、いくらでもあります…

d3のd3.interpolateObjectで返される補間オブジェクトが共有化されてる

issue:1030 d3.interpolateObjectは2つのオブジェクトを補間してくれるので欠損データの扱いとかが楽にできるんですが、バグ?というか、ハマるところ。 var ts = [ {time: new Date(2012, 0, 1), sum: 132435}, {time: new Date(2012, 0, 2), sum: 133450},…

strptimeで%aとか%bを使うときにlocaleをチェックする

r

Rでdatetimeを扱うときにstrptimeでparseしますが、とあるデータを処理していた時に躓いたのでメモ。 08/Feb/2002:05:52:37 +0900,Hoge,Fuga とか 21/Oct/2006:22:12:34 +0900,Hoge,Fuga とか Wed Sep 6 2006 11:34:00 +0900 (JST),Hoge,Fuga と言ったログを…

Parallel.js雑感

Parallel.jsという、JS (browserでもnodeでも!)でマルチコア並列処理をするためのライブラリが公開されたのでさくっと紹介(2月10日に最初のcommitみたいです) READMEを読むと「せっかく web worker こなれてきたからもっと十分に使えるようにしようぜ!」っ…