読者です 読者をやめる 読者になる 読者になる

時計を壊せ

駆け出しWebプログラマーの雑記

ISUCON6で敗北した感想

予選前「3年もやって決勝行けないとかエンジニアじゃないでしょ」 ↓予選後「人権がない」#isucon— ほと (@hoto17296) 2016年9月18日 ぼくはISUCONに初回から毎年参加しているので6年参加しているということになる。 予選ができたのが4年前のISUCON3で、その…

DeNAに入社して半年経った

実は去年の9/1からDeNAで働いている。 たまに聞かれるけど、別にいまさら隠すようなものでもないので、公開しておこうかとおもう。 気づいたらもう半年くらい経ってたので感想とかを。 なお、相変わらずPerl5を中心にコードを書いている。 (知人に余計な心…

ISUCON6のために準備していたあれこれ

気持ちが収まりきってないので感想とは別にひとまず準備していたあれこれを紹介しようとおもいます。 Anislbe いわゆる秘伝のタレというやつです。 以下のことを事前に自動化していました。 使わなかった/役に立たなかったものもありましたが、このあたりを…

YAPC::Asia 2015でうっかりをなくす技術について発表しました

スライドはこちらになります。 Technology for reduce of mistakes - うっかりをなくす技術 from karupanerura </xmp> www.slideshare.net まとめていただきました! うっかりを潰せ!Perlに見る「やらかし防止」 #yapcasia #yapcasiaC - Togetterまとめ YAPC::Asi…

YAPC::Asia Tokyo 今日、このあと 15:30 から「うっかりをなくす技術」について話します

うっかりをなくす技術 - YAPC::Asia Tokyo 2015yapcasia.org 裏番組がすごいつよいので、負けないようにがんばります! もしよかったらきてください!

Perlからmrubyの関数を呼び出せるようになりました

mRuby.pmにmrubyの任意の関数を呼び出すインターフェースを追加しました。バージョン0.08としてリリースしています。 Perlのデータを引数として渡してmrubyの世界で扱い、mrubyの世界の値を返してPerlから使うことができます。 mrubyからPerlにデータを渡す…

Cartonで不要になったモジュールをcpanfile.snapshotから削除したい

こうすることで消せた: rm -rf local carton install --deployment carton install なんか良い方法ないかなー。 追記: 2015-06-11 17:03 CIでcpanfile.snapshotを生成すれば解決しそう 参考: Carton考2014 | おそらくはそれさえも平凡な日々www.songmu.jp

GeoHex v3のC99実装ができた

掲題の通り。詳しくはREADMEを読んでみて欲しい。 karupanerura/c-geohex3 · GitHub GeoHexとは何なのかと言うと世界を六角形により分割するためのアルゴリズムだ。 サイバーでかっこいいデモが公開されている。 デモサイト: GEOHEX.net 幾つかインターフェ…

npmに上がっていないブラウザ向けに書かれたJavaScriptをnode.jsから雑に使うの術

ブラウザ向けに書かれたJavaScriptだと、windowに対してexportしていて、nodeから使いにくくて困ることがある。 nodeでも動くようなpatchを書けばいいという話ではあるが、githubにコードが上がっていないとやりにくくてつらい。 そこで、適当なObjectをcont…

Implicitly Unwrapped Optionalは基本的に使うべきではない

Swiftのはなしです。 Swiftは言語標準でOptionalが入っていて、Optionalを除く全てのデータ型はnilを表現できません。 その中で、特殊なOptionalとして、Implicitly Unwrapped Optionalと呼ばれるものがあります。 これは、勝手にunwrapしてくれるので普通の…

Akka 2.4を雑にためす: その1

※ メモです Scalaもくもく会に参加した。 Gitterでわいわいしながら自分のペースでもくもくできてよかった。 第1回 Scalaもくもく会@Volare - connpass 第2回 Scalaもくもく会@Volare - connpass ぼくは、Actorが使ってみたくてScalaでAkkaをためしてみた。 …

情熱と仕事と休息

仕事をやっていると、無条件で楽しいときもあれば、苦しいときもある。 苦しいときに、めげずに前向きに仕事をするためには情熱が必要だ。 情熱があれば、苦しいときでもがんばれるし、ときにはすごい力を発揮出来るかもしれない。 人はそれぞれ、違うところ…

gradleでtestを回すときにprint debugをしたい

build.gradeにこんな感じのやつを追加することでstdout/stderrが見えるようになるっぽい。 test { testLogging.showStandardStreams = true }

JavaでDH鍵交換の初期化ベクトルを生成する

20億のデバイスでDH鍵交換の初期化ベクトルを生成できます。 以下のような具合のJavaコードをCreateDiffieHellmanIv.javaとして保存しましょう。 import java.security.AlgorithmParameterGenerator; import javax.crypto.spec.DHParameterSpec; public clas…

YosemiteでAndroid StudioがJVMを見つけられずに起動出来ない問題の対処法

こういう具合のlaunchctlで読む用のplistを書いておいて、launchctl loadしてやるとよいっぽい。 setenv STUDIO_JDK on loaded. いちいち全部の環境でsetupするのめんどくさいのでこんな具合で簡単に入るようにした。 launchctlの仕様よく分かってないのでな…

Goでおみくじするgomikuji作った

go

karupanerura/gomikuji karupanerura/gomikuji · GitHub こうして、 go get github.com/karupanerura/gomikuji こう gomikuji すると、 運勢がでます。 ご査収ください。

はてなブログおみくじ2014

はてなブログおみくじ2014 新年明けましておめでとうございます。今年もよろしくお願い致します。

2014年のKPT

昨年のKPT: 2013年のKPT - 時計を壊せ 2013年のKPT - 時計を壊せ 技術と関係ないこと: 技術以外で2014年を振り返ってみる - あふれだす 技術以外で2014年を振り返ってみる - あふれだす KEEP 続けたい事、良かった事。 新しい分野に挑戦した Parserの実装、…

WEB+DB Press Vol.84のPerl Hackers Hubに寄稿しました

WEB+DB PRESS Vol.84作者: 藤吾郎,桑野章弘,福永亘,谷井靖史,野村晋之介,蛭川皓平,岡田友輔,藤本真樹,伊藤直也,宮崎靖彦,佐藤健太,高橋俊幸,佐藤太一,海野弘成,佐藤歩,泉水翔吾,渡邊恵太,舘野祐一,中島聡,橋本翔,はまちや2,竹原,伊賀敏樹,WEB+DB PRESS編集部…

Gotanda.go && 五反田もくもく会に参加しました && Gotanda.pm #2 は明日です

Gotanda.go Gotanda.go #1 : ATND Gotanda.go #1 : ATND Gotanda.goはみんなでA Tour of Goをやっていました。 Goは数年前にちらっと触ったきりだったので、だいぶ忘れていましたが、 スライスの仕組みをちゃんと理解できたのは大きな収穫でした。 わいわい…

YAPC::Asia Tokyo 2014で個人スポンサーしつつボランティアスタッフしつつperl5 meta programmingについて喋りつつreject conでWorkmanについてLTしました

タイトルが長い。 YAPC::Asiaとは ここを読むと良い。 概要 / ABOUT - YAPC::Asia Tokyo 2014 概要 / ABOUT - YAPC::Asia Tokyo 2014 Perlのトーク殆ど無いじゃんという意見についての個人的な見解 いまどき色々な言語が開発に利用されるのは当たり前だし、…

Job-Queue Workerの実装を管理するdaemon

Message Queueとか だいたいみんな、Message QueueとしてGearmanとかQ4MとかResqueとかRabbitMQとかZeroMQとかまあたくさんあるけど、なにかを使っていると思う。 Perlの人だとQudoとかTheSchwartzとかをつかっている人も多いと思う。 でも、preforkなworker…

yasnippet 8.0をupgradeしたらdefaliasしたmajor-modeを考慮しなくなったっぽい

EmacsWiki: C Perl Modeを参考に以下のようなコードを埋め込んでいた。 (defalias 'perl-mode 'cperl-mode) perl-modeでいろいろなsnippetを作ってcperl-modeで使っていたけど、 どうもyasnippetをupgradeしたら動かなくなってしまった模様。(tagも8.0までし…

#dwangocpp に参加するためにLTしてきた

C++

僕は8年くらいC++を書いていなかった。今年の前半はC++11を学ぶことにしていたので少しづつ触ってはいたが、流石に8年ぶりとなるのでC++の基礎的な文法から学び直すこととなり、せいぜいhello worldに毛が生えた程度のものしか書いてこなかった。autoなどC++…

Macにエコーをかけて発言させるfunctionできたよー!

Mac OS Xに何故か入っているsayコマンドをご愛用の皆様、いかがお過ごしだろうか。 sayコマンドはmacに様々な言語で様々なワードを発言させる事ができ、 非常に便利なので公私共に多用している方も非常に多いと思う。しかし、あまりに多用していると、なにか…

gitで新しくブランチを切るベストプラクティス

git

普段から普通にやっている方法です。 git fetch git checkout -b $BRANCH_NAME origin/master git push -u origin $BRANCH_NAMEgit fetchでoriginを最新にして、origin/masterからブランチを切ります。 これで、プロジェクトの最新の状態からbranchを切る事…

Gotanda.pm #1 告知までにやったこと

忘備録です。 ざっくりやったこと Gotanda.pmを立ち上げる 大まかなスケジュールを立てる 会場を探す 日程と詳細なコマ割りを仮組みする イベント参加登録サービスに登録する 開催を告知する Gotanda.pmを立ち上げる Yokohama.pmは遠いし、Shibuya.pmは最近…

about.meをやめてオレオレabout.meを作った

もう去年の11月頃の事になるが、仕事の一環であるイベントに参加した。 イベントの参加者のエンジニア志向の学生と名刺やtwitter idなどを交換した。 当時の僕のtwitterのプロフィールなどに載せているURLはabout.meだった。 about.meは良いサービスだ。お手…

Time::Strptime進捗

頭を悩ませながらのんびり作ってます。 https://github.com/karupanerura/Time-Strptime Time::Strptimeとは strptimeのpure perlによる実装です。 epochとoffsetだけを返すシンプルな機能を持っています。 pure perlですが最小構成のperl codeを文字列とし…

株式会社はてなに入社しました

そんな夢を見ました。株式会社はてなに入社しました - hitode909の日記

ORDER BY狙いのキーが何故速いか

どの最適化が効くんや…とググった。 以前も調べた気がしたが思いだせず、ひたすらググる羽目になったので、 反省してブログに残す。ふつーにmysqlのdocumentに書いてあった。 http://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html If you use LI…

#yokohamapm #10 に参加しました

ビールおいしかったです。スポンサーのKAYACさん、準備・運営して頂いた皆さんありがとうございました。 こんな感じの内容を話させて頂きました。 perl5の日付時刻処理とか from karupanerura &lt;/xmp> 要約すると、既存のライブラリ、罠が多くて理解と慣れ…

クソコード、あるいは技術的負債

クソコードについてここ数日で考えたことを書いてみる。 技術的負債まわりのえらいひとたちの議論を眺めてて、技術的負債って言うとなんかプロっぽいけど、クソコードって言ったほうが示したいモノを素直に表してるし分かりやすいきがしてきた。 クソコード…

redis-sentinel管理のredisを手動failoverさせる

やんごとなき理由でredis-sentinel管理のredisのmasterを再起動したくなって、 手動failoverのやりかた調べてたら公式のドキュメントにちゃんと書いてあった。 公式のドキュメントちゃんと読まないとダメだ。 適当なsentinelに入って、 redis 127.0.0.1:2637…

2013年のKPT

2013年終わったのでKPTやってみる。 Keep 新しい分野に挑戦した Android フロントエンド開発 こっちはお手伝いとお遊び程度だけど 新しい言語に挑戦した Java JNI(Android NDK) JSX Haskell 新しいモジュールを作った Parallel::Async SQL::Maker::Plugin::C…

ISUCON3でまたもや惨敗したはなし

ISUCON3への参加から日が経ってしまいましたが、来年の自分へのメッセージとして書きます。 だいたいの内容 坂パスタチームの仲間の面々が書いてくれているのでそちらをご参照下さい。 id:kfly8 http://kfly8.hatenablog.com/entry/2013/11/30/200331 id:mas…

Amon2で非同期レスポンスを使う方法と、非同期WebAppのハマりどころ

この記事はPerl Advent Calendar 2013の15日目の記事です。 Amon2とは @tokuhirom さんが開発しているPerl製のWAF*1です。 Plackを軽くwrapしたような軽量でシンプルなWAFです。 現在、Version 6.00がリリースされていますが、Version 3.50からwebsocketのサ…

state変数は初期化のタイミングで例外が発生しても二度と初期化が行われる事は無い

タイトルの通り。 まあ、初期化は1度しか行われないので、あたりまえといえばあたりまえですがハマったのでメモ。 以下検証コード。undef,2,2となるかと思いきや初期化は1度しか行われないのでundef,undef,undefとなる。 static variable be undef if throw …

#isucon 3予選を運良く通過したはなし

予選通過、かなり高い壁だと思っていたので通過出来て大変喜んでおります。 #isucon 提出AMIで提出通りの設定でベンチ動かして当日最高スコア以上の11222.3が出た。どういうことだw— かるぱねるら (@karupanerura) 2013, 10月 7 ちなみに、当日記録できた最…

#yapcasia 2013の感想とParallel::Asyncを書いたはなし

前夜祭 前夜祭では昨年のLTソンと同じくらいの熱気が会場を沸かせ、ときにはApache::LogFormat::CompileとかNorikuraとか真面目なプロダクトの紹介もありつつ、Acme系のはなしなどいろいろあっておもしろかったです。 ぼくも熱気に当てられて飛び込みLTとか…

#yapcasia 2013 で 「ぼくがかんがえたさいきょうのMVC」について話してきました

昨日の13:40から多目的教室3で「ぼくがかんがえたさいきょうのMVC」という題でトークをさせて頂きました。 ぼくがかんがえたさいきょうのMvc from karupanerura &lt;/xmp> http://yapcasia.org/2013/talk/show/f60b8522-d43e-11e2-ac80-4cc16aeab6a4 …

たよりがいのあるO/R Mapper "Aniki"

って売り込めると思うのでAnikiって名前のORMだれか作ってください。

JavaでDH鍵交換を実装する

やんごとなき事情でJavaでDH鍵交換を実装しなければならなくなったので実装してみました。 クラス/メソッドの説明と型しか書かれていないJavaのドキュメントをdisりつつ、いろいろ試行錯誤してみたらできた。 ググっても無駄に長くてめんどくさくて実用性に…

YAPC::Asia 2013 で ぼくがかんがえたさいきょうのMVC についてはなします #yapcasia

YAPC::Asiaとは 日本で最大級の規模のPerlのカンファレンスです。Perlのカンファレンスですが運用、プロトコル、テスト等開発に関わる様々なトークがあり、和気あいあいとした雰囲気でときには意識高い話もしつつ、ゆるふわにPerlとその周辺技術等への学びや…

Yomiuri構想

まだ構想段階だけどこれだいぶイケてね?って思ったので勢いで書いてみる。 Yomiuriとは 手軽に拡張出来るJekyllインスパイア系ブログフレームワーク/オーサリングツール 特徴 CLIで記事が書ける vimやemacsなどお好みのエディタでどうぞ。 Github Flavord M…

plenv.el 0.31 released!!

plenv.elのメジャーバージョンアップが行われました。 今回のバージョンアップでは--asオプションを利用してperlをインストールしたケースでうまくperlのパスを取得出来なかった問題が修正され、README.mkdnのサンプルコードにおけるflymakeと連携する部分の…

コンテキストとハッシュの怪

怖い話 割とハマりがちなので。 たとえば、以下のようなコードがあったとします。 use strict; use warnings; use utf8; use Data::Dumper; sub yyy { my $key = shift; return unless $key; return "yyy_$key"; } my $hashref = { xxx => yyy(), aaa => 'bb…

perl触ってるんだから一度くらいソースフィルタを触ってみたいなと思ったのでVS.pmを書いた

VS.pmとはワンライナーでおてがるにベンチマークを取るためのPerlモジュールである。 ソースフィルタを実験したくなっただけなので実用性はほぼない。 こんな感じで使える。 perl -MText::Xslate::Util -MVS=1000000 -MURI::Escape -E 'xslate { Text::Xslat…

#chibapm いってきたたたたた

#1も#2も行ったけど#1のレポ牡蠣忘れてたのでついでにかく。 #1 内容は他の方々が既にしっかりまとめてくださってるのでそれに頼らせていただくとして、 Perl初心者な人とある程度がっつり使ってる人の両方がいて、 Perl初心者な人はこういうのやりたい!も…

plenv.elを書いてみた。あるいはflymakeでplenvのperlを使うには

ちょびっと追記したり、書きなおしたりしました。Hachioji.pm #26のハッカソンでなにつくろうかなーと思ってたので、 ちょうど旬だったplenvのemacs lisp拡張でも書いてみようかなと思い至った。 plenv.el (require 'plenv) としておくと、だいたいperlbrew.…