タグ

ブックマーク / hiratara.hatenadiary.jp (37)

  • GoogleのLocation History(Timeline)を可視化 - Pixel Pedals of Tomakomai

    Google Map に Timeline を見る機能がついていて、過去の位置情報の履歴をすべて参照することができることは有名だが、実はこのデータはダウンロードすることもできる。 support.google.com 昔、このデータを元に 1log(イチログ) へデータをインポートするアプリを書いた。 github.com しかし、 1log は 10 年分の位置データのデータ量に耐えうることができず重くて利用不能になってしまったため、 1log で自分の過去の位置情報を見ることは諦めた。それならばと思い立ち、今度は自前でこのデータを可視化してみることにした。 Google から Takeout できるデータには、 Records.json と Semantic Location History がある。(おそらく)前者が生データで、後者が Google 側で予測をした詳細データと思われる

    GoogleのLocation History(Timeline)を可視化 - Pixel Pedals of Tomakomai
    gfx
    gfx 2024/01/16
    "Google Map に Timeline を見る機能がついていて、過去の位置情報の履歴をすべて参照することができることは有名だが、実はこのデータはダウンロードすることもできる"
  • cargo test --jobs N -- --test-threads=M - Pixel Pedals of Tomakomai

    redis-rs の cluster のテストが何度やっても通らなくてハマった。ただし、テスト名を指定して一個ずつであれば成功する。該当するテストは以下。 redis-rs/test_cluster.rs at bd8dc731ded564329d74717dfacc5cce748d891f · mitsuhiko/redis-rs · GitHub このテストは redis server を立ち上げてクラスタを組んでテストを実行している。このとき、各サーバには 7000 番ポートから順番に割り当てている。 redis-rs/cluster.rs at bd8dc731ded564329d74717dfacc5cce748d891f · mitsuhiko/redis-rs · GitHub そして、デフォルトでは cargo test 1 は複数のテストを並列に実行する。直列な世界に生き

    cargo test --jobs N -- --test-threads=M - Pixel Pedals of Tomakomai
    gfx
    gfx 2020/11/28
  • 今日は Regex Festa の日です - Pixel Pedals of Tomakomai

    今日は Regex Festa の日です Regex Festa に来ていますので、自分のためのメモを残しておきます。 挨拶 wi-fiとお手洗い、喫煙所の案内 Opt Technologies さんについて QRコード読むとアンケートあります いろいろな正規表現、いろいろなオートマトン / @sinya8282 さん 正規表現は好きだが、難しい面も面白い面もある 学部の頃は世界最速のgrepを書いてたりした 院では学術よりな研究 Shibuya.pm#16 が正規表現オンリーなイベントだった 東京素晴らしい! 8年の時を経て復活 正規言語の魅力 オートマトンという単純な計算モデル 台数モデル、トポロジー、論理、文法、最小不動点、といった多用な特徴づけ いろいろな道具が使える 効率的なマッチングにオートマトンやモノイドは役に立っている 正規表現は難しい 曖昧性とキャプチャ 講義ではオートマ

    gfx
    gfx 2019/10/18
  • Haskell入門という本を書きました - 北海道苫小牧市出身の初老PGが書くブログ

    Haskell入門 というを書きました。まだ店頭で買うことはできませんが、amazonでは予約を開始しています。また、電子版も早いうちに出ると聞いているので、そちらもあわせてお求め下さい。技術評論社さんのサイトではサンプルのpdfも読むことができます。 Haskellには すごいH というとても良い教科書がすでにありますが、「アプリケーションを作って楽しむ」という観点から書かれたも欲しいなということを常々感じていました1。すごいHでHaskellの考え方やプログラムの組み方は学べますが、例えば、プロジェクトを作成して開発を始めるにはどうするかであったり、必要なライブラリをどこから探してどのように自分のプロジェクトへ組み込むのかといった、開発に必要な基的な事項は自分で学ぶ必要があります。今回執筆した Haskell入門 ではとにかくHaskellでアプリケーションを作ることにフォー

    Haskell入門という本を書きました - 北海道苫小牧市出身の初老PGが書くブログ
    gfx
    gfx 2017/09/18
    "ビルドツールの使い方や必須ライブラリの紹介、サンプルアプリケーションの作成といった内容を含む、よくあるプログラミングのhow-to本の構成"
  • MonoidもMonadもモノイドだって話 - Pixel Pedals of Tomakomai

    わかめのモナド浸しと第6回 スタートHaskell2で「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」という話をしてきた。スライドは以下。 モナモナ言うモナド入門 *1 モナモナ言うモナド入門.tar.gz .tar.gz の方はHaskellでの説明だったので、検証用コードも書いてみてgistに上げてる。QuickCheckとか使わずに値一個与えてみてるだけだけど、型が通ることくらいは確認できるかと。以下、検証用コードについて解説する。 MonoidはHaskの圏のモノイド まず、Monoidの方。図式はスライドを見てもらうとして、ソースは以下。満たすべきは各図式の時計回りと半時計回りが等しいことであり、具体的には、モノイドであれば clockwiseX == anticlockwiseX である必要があるという意味である。 assoc :: ((a, b), c)

    MonoidもMonadもモノイドだって話 - Pixel Pedals of Tomakomai
    gfx
    gfx 2014/03/16
  • YAPC::Asia Tokyo 2013 を終えて - Pixel Pedals of Tomakomai

    今年もYAPCが終わった。スタッフを始めとした関係者の皆様には、当にありがたいと思っている。また、gihyo.jpの担当の@k_takaさんには、今年も大変お世話になった。 さて、今年のYAPCに参加して感じたことが2つある。まず、世の中は自分が思った以上に進んでいて、他社もどんどん楽しそうなことをやっているのだなということ。Yasuhiro Onishiさんのはてなの開発フローのトークや、handlenameさんのLobiの開発フローのトークを聞いて、自分が最近業務に追われて思考停止してしまっていることに気がつけた。日々の開発で改善できることはいくらでもあるし、億劫がらずにもっと手を動かす必要がある。 もう1つは、Perlの閉塞感だ。座談会でRubyの利点として取り上げられていたコミュニティの活発さは、2、3年前まではPerlの利点として特筆されていた部分だ。Perlに対応していない開

    YAPC::Asia Tokyo 2013 を終えて - Pixel Pedals of Tomakomai
    gfx
    gfx 2013/09/22
  • 採択されればYAPCで話すつもりの型の話について - Pixel Pedals of Tomakomai

    今年のYAPC Asia 2013にはTypes and Perl Languageというタイトルで話をしようと申し込んだのだけど、リジェクトされそうな気しかしないので話そうとしていることの概要を書いておく。なお、トークのタイトルは名著TaPLのオマージュである*1。 以下のGoのコードをきちんと型付けされていると言って、異論を持つ人は少ないだろう。 func inc(x int) int { return x + 1 } では、以下のperlのコードはどうだろう? sub inc { $_[0] + 1; } 型がないという人もいれば、実行時に型を意識しているのだから型はあると反論する人もいるだろう。しかし、さらに別の見方として、このコードは先ほどの正しく型付けされたGoのコードから型の指定をとりはらったものだとも言える。という事は、もし、GoPerlでプログラムを実行するルールが大差

    採択されればYAPCで話すつもりの型の話について - Pixel Pedals of Tomakomai
    gfx
    gfx 2013/07/16
  • 2012年にニートになったこと - 北海道苫小牧市出身の初老PGが書くブログ

    2012年のまとめとして、今年ニートになったことをまとめておく。 経緯 3月に転職して新しい職場に勤め始めたのだけど、業務内容が合わなくて適応障害を起こしてしまった。具体的には、マニュアルに従って進める大量の単純作業が合わなかったんだと思う。早朝覚醒が起き、通勤中呼吸ができなくなったり、勤務中突然涙が止まらなくなったりした。医師にも退職を勧められたので、親族とも相談して手遅れにならないうちにということで3ヶ月の試用期間で退職することにした。 ハローワーク関連 診断書が出たので、3ヶ月の給付制限なしで給付金を貰えることになった。と言っても、待機期間とかがあったりで実際にお金が手に入るのは1ヶ月以上後で、貰える額も少ない。貯金がなければどうにもならないだろう。 手続き的には基的にハローワークの人は親切なので指示に従うとよい。最初の1〜2ヶ月は、指示に従ってハローワークに何度か足を運びつつ受給

    2012年にニートになったこと - 北海道苫小牧市出身の初老PGが書くブログ
    gfx
    gfx 2012/12/31
  • JSON::XSで作られる浮動小数点数でハマった話 - Pixel Pedals of Tomakomai

    JSON::XSを使うと、小数は浮動小数点数にパースしてくれる。 use JSON::XS qw(decode_json); my ($double) = @{decode_json("[0.6]")}; この値、printすると "0.6" なのだけど、0.6とイコールではない。 print $double, "\n"; # 0.6 print +($double - 0.6), "\n"; # 1.11022302462516e-16 なので、直感と違う振る舞いをしたりする。 # 3 / 0.6 == 5 printf "%s / %s == %s\n", 3, 0.6, int(3 / 0.6); # 3 / 0.6 == 4 <- unexpected :( printf "%s / %s == %s\n", 3, $double, int(3 / $double); 仕方ないので

    JSON::XSで作られる浮動小数点数でハマった話 - Pixel Pedals of Tomakomai
    gfx
    gfx 2012/10/24
    JSON::XSは独自の浮動小数点数パーサをもってるので、高速な代わり少し挙動が違うってのはありそうです。しかしそもそも浮動小数点数を==で比較するのが間違いという気もします!
  • Modification of a read-only value attempted - Pixel Pedals of Tomakomai

    % perl -e 'for (1) { while(<>) {} }' Modification of a read-only value attempted at -e line 1.forの中の$_は1そのものを指してて、while(<>)は$_を書き換えるものだから。 for ($x) なら 大丈夫で、$x に<>で読んだモノが入る。

    Modification of a read-only value attempted - Pixel Pedals of Tomakomai
    gfx
    gfx 2012/09/17
    お、おう…
  • Scalaのvalとvarとdef - Pixel Pedals of Tomakomai

    valは定数、varは変数、defはコード、というのが大まかな理解になる。これらは名前空間を共有しているので、定数、変数、コードに同じ名前をつけることはできない。ただし、JSやPythonのように単純にフィールドにメソッドオブジェクトが入っていると思うとハマる部分があるので、その辺を含めて調べたことをメモ。(なお、このエントリは 2.9.1.final での挙動について書いている。) クラス定義のvar、def、val はメソッド valとvarはfinal付き、final無しの変数として解釈されると思われるが、クラスのフィールドとして定義した場合にはJVM上ではメソッド経由でアクセスすることになる。ので、abstract defをvarやvalでオーバーライド*1したりできる。 class ValVarDef { val x = 1 var y = 2 def z = 3 } % jav

    Scalaのvalとvarとdef - Pixel Pedals of Tomakomai
    gfx
    gfx 2012/03/23
    JVMからみたScalaのval, var, def
  • Test::LeakTrace についてメモ書き - Pixel Pedals of Tomakomai

    ハマったので未来の自分のためにメモ書きを残しつつ、今年もよろしくお願い致しますm(_ _)m。 Test::LeakTraceの特性 Test::LeakTrace で、以下のテストは通る。 my %x; no_leaks_ok { $x{x} = undef }; しかし以下のテストは通らない。 my @x; no_leaks_ok { push @x, undef }; これは、@x にエントリが増えた分がリークとしてカウントされるから。じゃあ前者はなぜ大丈夫なのかというと、no_leaks_ok はブロックを2回実行して2回目でリークをカウントするせい。1回目の実行で%xのバケットが1つ増えるが、2回目以降は再利用するのでリークとしてカウントされない。 あと、次のコードは "not ok 1 - leaks 1 <= 0" と言ってる癖にダンプを表示しない。 my %x; my $k

    Test::LeakTrace についてメモ書き - Pixel Pedals of Tomakomai
    gfx
    gfx 2012/01/05
  • Data::Monad::CondVar をリリースしました - Pixel Pedals of Tomakomai

    YAPC Asia 2011で話をする予定のモジュールをCPANへアップしました。 Data::Monad::CondVarはJSDeferred みたいなもんです。 use AnyEvent; use AnyEvent::HTTP; sub random_choice { my ($data, $headers, $cb) = @_; my (@url) = $data =~ m{href="(http:[^"]+)}g; http_get +(shuffle @url)[0], $cb; } my $cv = AE::cv; http_get "http://yapcasia.org/2011/", sub { random_choice @_ => sub { random_choice @_ => sub { random_choice @_ => sub { my ($data,

    Data::Monad::CondVar をリリースしました - Pixel Pedals of Tomakomai
    gfx
    gfx 2011/10/12
  • 今日は JavaScript ゲーム製作勉強会 Vol.2 の日です - Pixel Pedals of Tomakomai

    Akiba.jsという集まりは初めて聞いたのですが、今日はJavaScript ゲーム製作勉強会 Vol.2に出席しています。会場はリクルートさんです。 詳細はid:nakamura001 さんの撮影した動画を参照しましょう。 はじめに / @hakobera さん ブラウザが早くなった。node.jsができた。サーバとクライアントどちらもJS ブラウザで動くRPG風なデモ的なスライド 懇親会もリクルートさんのご好意で無料! ngCore の話 / @shibukawa さん androidは5月に、iOS上は先日「忍者ロワイヤル」 ngCoreで何ができるかは「忍者ロワイヤル」をやるとわかりやすい ngCore JSで開発、マルチプラットフォーム(android, iOS, Flash, HTML5) 配信方法が豊富(ポータルでDL、appファイルを作ったり) iOS上でもDLによる配布

    今日は JavaScript ゲーム製作勉強会 Vol.2 の日です - Pixel Pedals of Tomakomai
  • 今日はYokohama.pmの日です。 - Pixel Pedals of Tomakomai

    日18:30から行われるYokohama.pm #7へ参加する予定です。 Sphinx + blockdiagで始めるドキュメント生活 / @tk0miyaさん 資料は後でTweet予定 ドキュメントの種類 納品物としてのドキュメント = お客さんのもの 設計/運用のためのドキュメント = 自分たちのもの 後者が足りない → 辛い現実 ドキュメントのメンテ テーブル定義、機能、画面キャプチャがドキュメントに更新されない メンテが必要 → Lightweight が大事 Lightweight なドキュメント Sphinex、Wiki、ソースに書く、テンプレ化 Sphinx reST形式で書く→XMLやLaTeXPDFHTMLなどに変換 Python製 reST形式 → 「====」とか「----」とか「*list」みたいなマーキング makeでビルド コードハイライト機能 → Per

    今日はYokohama.pmの日です。 - Pixel Pedals of Tomakomai
  • どんな環境でも動くPerlスクリプトを作る時の小道具 - Pixel Pedals of Tomakomai

    cpanmのように素のPerlだけで余裕で動くぜっていう配布物を作る時に便利な小道具×2です。 App::FatPacker App::FatPackerとは、依存モジュールを全て1つのファイルに押し込んでパックしてくれるライブラリです。 1枚のスクリプトに全てをまとめてくれるApp::FatPacker Module::CoreList CGI の配布や、アプリケーションの配布のときに、どのモジュールがどのバージョンから 標準添付になったのかを知りたくなります。 Module::CoreList - 標準添付ライブラリかどうかを調べる 後はHTTP::Tiny だとかText::MicroTemplate とかPurePerl で小粒なモジュールを集めれば、レトロでCPANモジュールがメンテされてない環境でも動作するスクリプトを、割とモダンな構成で作れて大変気分が良くなります。 ちなみに

    どんな環境でも動くPerlスクリプトを作る時の小道具 - Pixel Pedals of Tomakomai
    gfx
    gfx 2011/04/09
  • 今日はShibuya.pm #15の日です。 - Pixel Pedals of Tomakomai

    Shibuya.pm #15に出席予定です。昨日に引き続き、IIJさんの大会議室に向かってます。ストリーミング中継もあるらしいです。 MORE Learning Perl / brian d foyさん(@briandfoy, @briandfoy_perl) .pmは世界中にある → 実際に会いたい Acme::CPANAuthors->new('Japanese') → 日のCPAN author "Learning Perl" → 5.10に対応。5.14対応にしたい。Unicode対応したい。 "Inter mediate Perl" → 新しい版は来年の夏? 正規表現オブジェクトやMoose対応。 Mastering Perl → アップデート予定はない Effective Perl PROGRAMMING → 一番おすすめ。5.12。 Effective Parlerを更新中

    今日はShibuya.pm #15の日です。 - Pixel Pedals of Tomakomai
  • スライド「YAPCレポートの舞台裏」 - Pixel Pedals of Tomakomai

    Hokkaido.pmで話してきたので、スライドを貼っておきます。あがり症なんで人前に出ることはほとんどないのですが、今回は地元だったので頑張りました! でもやっぱりあがりました!! YAPCレポートの舞台裏View more presentations from hiratara. 今回は参加人数的に見ても大成功だったのではないかと思います。運営の方々、おつかれさまでした!

    スライド「YAPCレポートの舞台裏」 - Pixel Pedals of Tomakomai
  • 今日はHokkaido.pm #3の日です - Pixel Pedals of Tomakomai

    日、札幌にてHokkaido.pm #3が開催予定です。なんか飛行機も快速エアポートも混んでて移動が大変ですが、着き次第いつものようにメモ取ります。 ご挨拶 - @havanaclub_ さん 3回目の開催 テーマは初心者向け 懇親会もあるよ PerlCGI入門 / @keroyonn_ さん YAPCのおかげでMacBookを買ってもらった Apple風にPerlを紹介 文字化けも効率に直せる Moose WAF 大規模でも BioPerl - 科学分野 Image::Magick 呪文のようなコーディング 友好的 リビドー駆動のyusukebeさん → エロサイト駆動 今日はプログラミング初心者向けの内容(変数は何かとか) PerlCGI、インストール、文法、CGI windows対象 Perlとは? → LLの始祖 LLとは?? → Lightweight Language 学

    今日はHokkaido.pm #3の日です - Pixel Pedals of Tomakomai
  • Haskellで書いたCGIをPerlでテストする - Pixel Pedals of Tomakomai

    以下は、aとbに渡された数字を足し算するだけの簡単な(?)CGIです。 #!/usr/bin/env runghc {- sum.cgi -} import Network.CGI import Control.Monad cgiOutput (Just n) = do setHeader "Content-Type" "text/plain" output $ show n ++ "\n" cgiOutput Nothing = do setHeader "Content-Type" "text/plain" output "" cgiMain = do a <- getInput "a" b <- getInput "b" cgiOutput $ foldl (liftM2 (+)) (Just 0) (map (liftM read) [a, b]) main = runCGI $

    Haskellで書いたCGIをPerlでテストする - Pixel Pedals of Tomakomai