サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
hide-o-55.hatenadiary.org
6/30、7/1に開催されたYAPC::Fukuoka 2017 HAKATAに行ってきました。 初めての九州、福岡の良さ 今回のYAPCがキッカケで始めて九州に行きました。 福岡空港は市街地と近いと話には聴いていましたが、実際に見てみると市街地のど真ん中に飛行機が降りていくのは不思議な感じでした。そして地下鉄で博多や天神まですぐということで、東京とのアクセスは思っていた以上に良かったです。 あと、ラーメン屋が大量にあってラーメン好きとしては最高の街ですね。 前夜祭 ホテルにチェックインした後、新天町の立ち飲み屋で1杯飲んでから前夜祭会場であるヌーラボさんのオフィスに向かいました。 LTを聴いたり、聴かずに議論したり、酒のんだりいつものYAPCの光景でした。 前夜祭のあと沖縄の学生たちを連れて鯖を食べに行きました。 酒の隠れ家 博多鯖郎(中洲/海鮮(海鮮料理)) - ぐるなび 時間が遅かっ
YAPC::Asia Tokyo 2015に行ってきました。 今年は開催時期の近辺で仕事が忙しくなることが事前にわかっていたのでトークには応募せず、個人スポンサーとして参加しました。 ↓の個人スポンサーのノベルティのタンブラーが非常に良かったです。大事に使います。 スタッフの皆様、良いネットワークを提供してくださったCONBUの皆様お疲れ様でした&ありがとうございました。 以下、聞いたトークの雑な感想です。特に意識してなかったけどハードウェア系を中心に見ていた模様。 前夜祭 PHP帝国の逆襲!(を願うPHPerが話す最近のPHPについてのクイックツアー PHP7対応版) 前回のベストスピーカーにして、我らがHachioji.pmの主宰uzullaさんのPHPトーク。聴衆を弄りつつ盛り上げていくトークはさすが。 Perlワンライナー入門 「入門」ということなので正直、対象者から外れていた・・
Node.jsのC++アドオンをTravis-CIでテストする際に、io.js@v3の環境でのみビルドエラーが発生していたので原因と対策を記録しておく。 ※バージョン等の情報は2015-08-19時点のものである。 事象 io.js@v3.0.0の環境で以下のようなビルドエラーが発生する。 /home/travis/.node-gyp/3.0.0/include/node/v8.h:336:1: error: expected unqualified-id before ‘using’ /home/travis/.node-gyp/3.0.0/include/node/v8.h:468:1: error: expected unqualified-id before ‘using’ /home/travis/.node-gyp/3.0.0/include/node/v8.h:499:48:
1/31に開催された Hachioji.pm #46に行ってきました。 Goを書いてたら、いつのまにかアセンブリを書いてた話 Goで最適化のためにアセンブリ書いた話をしました。 スライド https://github.com/hideo55/go-popcount 参考:http://golang-jp.org/doc/asm.html 追記:GoでPopCountやってるパッケージはすでに他にもあるけど、POPCNT使えて、かつPopCount単機能で使えるのが無かったので書きました。 LT 他の人の LTの雑なメモです。 @xtetsujiさん 透過的に例外をキャッチ ENDだとだめ @tsucchiさん DBの自動再接続 @ichigotakeさん C言語はじめました @akira1908jpさん 最近Raspberry Piを購入 @mackee_wさん FF14 ラノベ朗読w @
YAPC::Asia 2014 で 自然言語処理を支える技術 〜要素技術とPerlの活用〜 というタイトルで発表してきました。発表はペース配分を間違えて、時間切れになってしまい、見に来て頂いた方々には申し訳ないです。 発表資料は以下です。 ビギナー向けという位置づけなので、確率の数式などは出さないようにしています。 感想 今年は前夜祭から参加しましたが、非常に楽しかったです。 今回はPerl以外のトークが多かったですが、それが結果的にこれまで YAPC に参加してこなかった人を呼ぶ結果になり、そういった方々に Perl の文化を伝えるきっかけになったのではないかと思います。 なにはともあれ、yusukebeさんを始めとするスタッフの皆様、参加者のみなさまお疲れ様でした! Chiba.pm 後夜祭的な感じでHUBで飲んでいたのですが、Chiba.pmな方々がいたので主催者多忙のためしばらく開
6/21(Sat)に開催された Hachioji.pm #41 に行ってきました。 参加者は13人でした。今回は、八王子に出来たハッカソンでも使えそうなフリースペース ヘヤニワや、Yo、YAPC::Asia TOKYO 2014 などについて話していました。 自分のLT C++でウェーブレット行列ライブラリを書いた話をしました。 資料 LT 以下、他のみなさんのLTの雑なメモです。 @hirobanexさん CPANにあるセッションモジュール HTTP::Session2など @ytnobodyさん OpenVZ で docker っぽいことやる VZNope @hkobaさん YATT::Liteでセッション使う例 Yet Another Template Toolkit @ichigotakeさん Android ニュース GroovyがAndroidサポート Dart on Andr
暫く Vim の設定をいじっていなかったので、設定(Vim 7.4 へのアップグレードも含めて)を見直しました。 以前の記事はこちら。 Go 付属の vim プラグインを使うのをやめて vim-go にした $GOROOT/libexec/misc/vim に Vim プラグインが付属していますが、使うのをやめました。 理由としては付属 Vim プラグインと gocode の Vim プラグインを使うより、vim-go を使うほうが管理が楽だと考えたためです。 Go 関連の設定は以下のようにしました。 if !exists('g:neocomplete#omni_patterns') let g:neocomplete#omni_patterns = {} endif let g:neocomplete#omni_patterns.go = '\h\w*\.\?' let g:quickr
C++ のテストフレームワーク igloo を使ってみました。 Loading... igloo の特徴 ヘッダファイルのみなので導入が楽 iglooはヘッダファイルのみで構成されているため、テストフレームワーク自体のコンパイルが必要ないので導入が簡単でした。iglooのソースはgithubにあるので、 git submodule https://github.com/joakimkarlsson/igloo extlib/igloo のようにして、"extlib/igloo" をインクルードパスに含めるようにするだけです。 Travis-CI などのCIサービスで使うのも簡単です。 BDDスタイルでテストを書ける BDDスタイルでテスト/サブテストを書くことができます。これによりテストが構造化され、テストコードの見通しが良くなります。スタイルは以下の3つが使用できます。 Context/
もう先週の話になりますが、拙作 Module::Build::XSUtilがサポートされたMinilla 0.7.0がリリースされました。 Module::Build::XSUtilとは? Module::Build::XSUtilはModule::Install::XSUtilと同等の機能をModule::Buildで実現するためのモジュールです。以下の機能があります。 コンパイラのC99サポートのチェック コンパイラのC++サポートのチェック ppport.hの生成 Perlのバージョン間のAPIの違いを吸収 xshelper.hの生成 便利なマクロ、ppport.hでサポートしていないAPIのサポート デバッグオプションの付与 コンパイラの警告の有効化 MinillaでModule::Build::XSUtilを使用する方法 minil.tomlに以下のようにXSUtilセクションを
blogに書くまでがYAPCです。 ってことで、9/20, 21に慶應義塾大学日吉キャンパスで開催されたYAPC::Asia Tokyo 2013に行ってきました。 今年も個人スポンサーとして参加です。個人スポンサー用のTシャツがイケてるので満足です。 以下、ざっくりとした感想など。 1日目 Charsbarさんのトーク聞いてたら、Minillaの話の所でMinillaのModule::Build::XSUtilサポートに言及されてびびったw 昼食はらすた pjfのトークが非常に面白かったけど、英語の障壁があるのか人が少なかった気がする 懇親会のあとはHUBで終電近くまで飲んでた 2日目 今年の本命トーク、これからのPerlプロダクトのかたちは、期待通り素晴らしかった 昼食は浜虎 午後はPerl入学式 In YAPC::Asiaにサポーターとして参加 個人的ベストLTはまかまかさん 後夜祭
Minillaを使い始めたのですが、MinillaとModule::Build::Plaggableは共にModule::Build::subclass()を使用していて、Module::Build::subclass()は多重に使えないという制約のため一緒には使えません。 XSモジュールではModule::Build::Pluggable::XSUtilを使っていたため、Minillaでも同等のことを行うためのモジュール Module::Build::XSUtil を作りました。 GitHub MetaCPAN Minilla専用というわけではなく、素のBuild.PLでも使えます。 なお、オプションの名前はModule::Buildの流儀に近いかたちにアレンジしています。 use strict; use warnings; use Module::Build::XSUtil; my $
MurmurHash3をpure perlで計算する。Digest::MurmurHash3::PurePerlをCPANにリリースしました。 もともと、Algorithm::HyperLogLog::PP用に作っていた murmur32( ) に murmur128() を加えて、独立したモジュールとしました。 CPANTestersでもいまのところ問題が無いようなので、Algorithm::HyperLogLogのmurmur32の実装も、Digest::MurmurHash3::PurePerlに切り替えました。 参考までに、他のpure perlなハッシュ関数(128-bit)と共にベンチマーク結果を以下に貼っておきます。 Rate sha md5 murmur3 sha 808/s -- -92% -92% md5 10000/s 1138% -- -2% murmur3 102
簡潔データ構造の勉強がてら、各種簡潔データ構造の核となる簡潔ビットベクトルを扱うC++ライブラリを書いてみました。 GitHub - hideo55/cpp-HSDS: Succinct Data Structure Library Collection.Includes bit-vector/wavelet-matrix/trie. 簡潔データ構造とは? 簡潔データ構造とは、データ構造を最適に近いサイズで保存しつつ、インデックスを利用して高速な操作を実現するデータ構造のことです。 簡潔ビットベクトルとは? 完備辞書(Fully Indexable Dictionary, FID)とも呼ばれます*1。 簡潔ビットベクトルはビットベクトルに対する簡潔データ構造で、ビットベクトルに対して以下の操作が可能なデータ構造のことを指します。 access(i): ビットベクトルのi番目の値を返す ra
以前にもやったのにやり方忘れて調べ直したので、メモっときます。 gh-pagesブランチを作成 以下のコマンドでgh-pagesブランチを作成します。 $ git checkout --orphan gh-pages --orphanオプションで空の一切履歴のないブランチができます。 以前は以下のようなことをやっていたのですが、だいぶ楽になりました。 $ git symbolic-ref HEAD refs/heads/gh-pages $ rm .git/index $ git clean -fdx Creating Project Pages using the command line - GitHub Help gh-pagesをGitHubにpush 空のブランチだとpush出来ないので適当なファイルをコミットしてからpushします。 $ echo "My GitHub Page
以前から興味はあったけど手を出していなかったGo言語ですが、Go 1.1のリリースで、64bit整数も使えるようになったことだし、そろそろやってみる事にします。当面の目標は今までC++で書いていたネットワークサーバ・プログラムをGoで書くことです。 環境構築 普段使っているOSXにGo言語の環境を作ります。 Go言語のインストール 参考 Homebrewであれば以下のコマンドで一発です。 $ brew install go $ cat hello.go package main import "fmt" func main() { fmt.Printf("hello, world\n") } $ go run hello.go hello, world 環境変数 Go関連の環境変数を設定します。 brew upgrade したらGOROOTの設定も変わるようにしています。 参考 progr
5/11に開催されたHachioji.pm #28に行って来ました。 LT @moznion君が既にまとめてくれているので、そちらを見るといいと思います。 Hachioji.pm #28 に行ってきました - その手の平は尻もつかめるさ 自分のLT Algorithm::HyperLogLogを--pureperl-onlyオプション対応させた話と、Data::FuzzyHashの話をしました。 Data::FuzzyHash は PHP でも使われている ssdeep を使用しています。 質問でもありましたが、fuzzy hash で判定できるのはあくまでもバイト列の類似性なので、画像の類似検索の場合は画像フォーマットを統一する必要があります。また、類似画像検索の場合は画像に特化した別のアプローチもあるので、そちらを検討したほうが良いと思います。 資料
CPANモジュールでサポートしていないOSのTest ReportをNA(Not Available)にしたい場合はMakefile.PLやBuild.PLで以下のようにする必要があります。 unless ($^O eq "MSWin32" || $^O eq "cygwin") { die "OS unsupported\n"; } CPAN Testersのツールは以下のメッセージを検出した場合に、NAとして扱います。 No support for OS OS unsupported また、Devel::AssertOSを使用することで同様のことが可能です。 See also: CPAN Authors FAQ
SpookyHash の Perl バインディング、Digest::SpookyHashをCPANにリリースしました。 SpookyHashとは JenkinsHash*1の作者として知られるBob Jenkinsによる128bitの非暗号論的ハッシュアルゴリズムです。 特徴としては キーが短い(192byte未満)場合の最適化が施されており高速 Avalanche effect 少しの入力の変化で結果が大きく変わること 同じキーでもシードを変えることで多数の独立した異なるハッシュ値を得ることができる など。詳しくは本家サイトを参照ください。 Digest::SpookyHash SpookyHashのC++実装をPerlから利用するためのインタフェースとして実装しています。 ざっと見た感じ、RubyやPythonのバインディングはまだ出ていないようです。 なにかあれば、以下のリポジトリに
4/6に開催された、Hachioji.pm #27に行って来ました。春の嵐と言った感じの天気でしたが15名(初参加3名)の参加者が集まりました。 自分のLT お題無視して、最近リリースしたCPANモジュールの紹介とそれに付随して 多くのMurmurHashの実装がバイトオーダーを考慮していない の件の話をしました。 スライド LT 以下、LTのメモ。 今回のお題は「今でしょ!」でした。#TV見ない人には通じなそう @mackee_wさん MongoDB.pm Moose -> Mouseに書き換えてみた Moose -> Mooo 遅くなった metaにアクセスしているとMooseを呼び出しているためと思われる 初参加 @outerinsideさん AdaBoost 弱い分類器を学習するメタ学習アルゴリズム Algorithm::AdaBoost Alogorithm::*が少ないから狙い
(注)dataの型はunsigned char*です。 全部見た訳じゃないですが、https://code.google.com/p/smhasher/をはじめとするMurmurHashの実装は、x86/x86_64等、リトルエンディアン環境を前提とした実装となっており*1、SPARCやPowerPCといったビッグエンディアン環境では同じキーのハッシュ値が違うものになってしまいます。 よって、バイトオーダーの異なる環境間でのやり取りにMurmurHashを使用すると問題が発生する可能性があります。必要であれば、ビッグエンディアン環境ではバイトオーダーを並べ替えるパッチをあてる等の対策を取りましょう。 *1:関数名が_x86となってるので当然と言えば当然
cpanm(App::cpanminus)は1.6000でcpanfileをサポートしましたが、Travis CIでcpanfileを使用したモジュールのテストがコケるという現象が発生していました。 原因 --notestオプションが指定されると、cpanfileの on 'test' で指定されたモジュールがインストールされないことが原因でした。 Travis CIではテストを実行する前に cpanm --quiet --installdeps --notest . を実行して依存モジュールをインストールしていたため、テスト用のモジュールがインストールされず、その後のテストでモジュールがロードできず 'Can't locate Test/Mock/Guard.pm in @INC' なような状態になります。 解決 cpanmの問題とするかどうか微妙でしたが、宮川さんが対応してくれました。
3/23に開催されたChiba.pm #2に参加して来ました。 #1に続いての参加でしたが、今回もガチなトークからゆるふわなトークまであって非常に良かったです。全体的にDB関係の話が多くて「Chiba.pmではなくChiba.DBでは?」みたいな感じになってましたw Chiba.pmは3ヶ月に1度程度の頻度で開催する予定みたいなので、次回は地元千葉からの参加者がもっと増えるといいですね。 自分のLT 先日CPANにリリースしたAlgorithm::HyperLogLogというモジュールの紹介とともにXSモジュールの開発について話しました。XSモジュールの開発やHyperLogLogアルゴリズムに興味を持ってもらえたようなので話して良かったです。 資料 トーク Perl RDBMS Programming @karupaneruraさん Perl RDBMS Programming(DBI/
HyperLogLogアルゴリズムをPerlから使用するためのモジュール、 Algorithm::HyperLogLogをCPANにリリースしました。 XSモジュールですが、XSが使えない場合はPure Perlでも使えるように作ってあります。 HyperLogLog とは? HyperLogLogは、ある集合の異なり数(カーディナリティ/cardinality)を少ないメモリ消費で推定するアルゴリズムです。 詳しくは以下の論文を読んで下さい。 http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf なお、並列計算用に改善されたHyperLogLog++というアルゴリズムがGoogleによって開発されています。 http://static.googleusercontent.com/external_content/untrust
2/23に開催されたLike a ハッカソン #5 (pre Hachioji.pm #26)及び、Hachioji.pm #26に行って来ました。 Like a ハッカソン #5 (pre Hachioji.pm #26) 久しぶりのHachioji.pmハッカソンでした。前回が去年のYAPC::Asiaの前だから約半年ぶりとなりました。 今回はそれぞれ、もくもくと作業したりしながら分からない所を相談したりしてました。 自分の成果としては、 Data-Iterator-SlidingWindow-0.05 - Iteration data with Sliding Window Algorithm - metacpan.org をCPANにリリースしました。 これは、Sliding Window法という固定長の区間を1つずつシフトしてデータの区間分割する手法(LZ法などの圧縮アルゴリズム
1/19に開催されたHachioji.pm #25に行って来ました。 場所はもはやお馴染みとなったタイ料理屋のタイラーンナーでした。 本イベントは主に東京西部、神奈川西部のエンジニアの交流を目的としたものです。 だったはずが、名古屋やら大阪からもやってくる、よく分からない会になってますねw LT 今回のテーマは開催日がセンター試験ということで、「試験(テスト)」でした。 以下皆さんのLTのメモ @hondalicaさん 資料 @mackee_wさん テストってナンだ @__papix__さん ビビッドレッド・オペレーション Test::PretyCure テストが成功すると必殺技を叫ぶ @akira1908jpさん PHPで非同期ファイルダウンロード OutoutBeffueringの設定変えれば?(by uzullaさん) @ytnobodyさん Plack::Middleware::E
11/29に開催された、groongaを囲む夕べ3に行って来ました。 最近ArangoDBに浮気気味だったんですが、groonga 2.0.9の新機能、そしてgroongaの今後は、「また、groongaやるか!」と決意させるに十分な魅力があると思います。 なんか知らんうちに、関連プロジェクトに名を連ねているので、メンテしたり新しいのつくるの頑張りたいです。 メモとか 気になったポイントをメモから抜粋。 groonga開発者からのgroongaの紹介 *roonga族の使い分け KVS的に使うなら低レイヤAPI 全文検索ならHTTP groongaの今後 スケールアップ marisa-trie採用予定 スケールアウト mroonga + Spider Node.js + fluentd でsharding 採用事例全般 なぜ*roongaを使うのか 動的に構築して高速に検索したい 更新さな
10/20(Sat)に開催されたChiba.pm #1に行って来ました。 ほとんどPerlを触ったことがないという方も、近くでやっているということで来てくれたようです。 今回はじめてLTをやったという人もいたので、こうして発表する人の裾野を広げていけるといいですね。 千葉出身ということもあって、地元のコミュニティを応援する意味でも今後もできるだけ参加していきたいです。 主宰の@kaztrさん、参加者のみなさんお疲れ様でした。 自分のLT PerlのArangoDB Clientについて、作る際に考えたことなどを発表しました。 ちなみにgitリポジトリはhttps://github.com/hideo55/p5-ArangoDBです。 LT LTのざっくりとしたメモです。 (名前はATNDに登録してる名前にしてます) Arveltさん はじめてのPerl CSVを読み込む/ディレクトリ一覧表
I released ArangoDB client for Perl. https://metacpan.org/release/ArangoDB This module is supporting the following features. Collection Document Edge Index(Hash / Skip-List / Geo / Cap Constraint) Simple Query (all / by_example / first_example / range / near / within) ArangoDB Query Language (AQL) Example: use ArangoDB; my $db = ArangoDB->new({ keep_alive => 1, }); # Create document $db->('users')
7/28(SAT)にTakao.mt 2012に行って来ました。 Takao.mtは夏限定でHachioji.pmとして高尾山のビアガーデンに飲みに行く企画です。 いや〜今年のTakao.mtは暑かった。本当に蒸し暑かった。でも、おかげでビールがめちゃくちゃ美味かったです。 LT 去年もそうだけど、Takao.mtだとLTが結構gdgdで結局、高尾山をおりてから八王子の居酒屋でLTをやりました。 @__papix__さん なぜHachioji.pmに参加するか?という話 @uzullaさん YAPC::Asia 2012でのLTthon企画について @maka2_donzokoさん Acme大全2012の話 夏コミ C82 12日東U10aだそうです 自分のLT ArangoDBのPerlクライアントを書いたという話をしました。 公開はひと通り機能を網羅してからですが、夏期休暇中にやろうと
次のページ
このページを最初にブックマークしてみませんか?
『WebService::Blog->new( user => ’hide_o_55’ )』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く