タグ

ブックマーク / syohex.hatenablog.com (28)

  • DeNAに入社しました - Shohei Yoshida's Diary

    7月 1日から DeNAで働くことになりました. オフィスは渋谷オフィスです. きっかけは私がストレス溜まりまくっていた時期に Twitterの名前欄に「求職中」と書いていた(非常識な行為で, 前の会社には申し訳なく思います)ときにお声がけをいただいたことです. 働いてみたいと思った理由は尊敬するエンジニアも多く, 多くの刺激を受けられ, 今の自分にとって非常に良い環境だと思ったからです. (もちろん環境はあくまで環境なので伸びるかどうかは自分次第だと思っていますが) その他の理由としては お金がある会社での働き方を知りたかった マネージメントの行われ方を知りたかった 前の会社ではお金がないということで従業員一同様々なことで苦労しました. 一人あたりの仕事の量であったり, 携わる仕事の内容であったり. 結局お金がないとそこまでやりたくない仕事も(少ないお金で)やらないといけないし, 新しい

    DeNAに入社しました - Shohei Yoshida's Diary
  • 退職しました - Shohei Yoshida's Diary

    日付で 8年と 3ヶ月勤務した組込み系の会社を退職しました. 退職理由 しんどかった 今のままではこの先やっていけないと思った 一番大きな理由はしんどくて自分のための自由な時間が確保しづらかったこと. 経営的な問題から少人数で多くの仕事をやらざるを得ない状況になってしまって, ほとんどの人は 2つ以上の仕事を掛け持ちだったんですがそれが辛かった. ひどい時は午前中と昼は Aの仕事して, そこから夕方まで Bの仕事して, そこから終電まで Cの仕事してとかそんな感じで数カ月間働いていました. そうなると体力的な面もそうなんですけど, 勉強もできなくなってしまい(土日など時間があるといえばあるけど限界まで働くと休日でもやる気が出ない), 精神面でもどんどん疲弊するようになってしまいました. 仕事自体は楽しかったし, やりがいもありましたけど, そちらよりも辛いという方が大きくなってしまいまし

    退職しました - Shohei Yoshida's Diary
  • Perl::Lintと Perl::Criticを性能評価してみた - Shohei Yoshida's Diary

    Released Perl::Lint as underdevelopment - その手の平は尻もつかめるさ 環境 さくら VPS 1G Ubuntu 14.04 64bit GCC 4.8.2 Perl 5.20.0 モジュールのバージョン Perl::Lint 0.01_01 Perl::Critic 1.121 ベンチマークコード #!perl use strict; use warnings; use Benchmark qw/cmpthese/; use Perl::Critic; use Perl::Lint qw/lint/; my $file = shift; my $critic = Perl::Critic->new; my $lint_arg = [$file]; cmpthese(-10, { 'Perl::Lint' => sub { lint($lint_ar

    Perl::Lintと Perl::Criticを性能評価してみた - Shohei Yoshida's Diary
  • 関数の中で pecoを複数回使う - Shohei Yoshida's Diary

    pecoでlaunchctl start/stopを呼びやすくする - NullPointer's Blog 使い手の自由なんですが, 別にコマンドを分けなくてもいいかなと思った. あと pecoや percolって 1関数内で 1回しか使われていないケースが 多いけど, 何回使ってもよいと思います. サンプルコード function peco-service() { local SERVICE_NAME SERVICE_NAME=$(service --status-all 2>&1 \ | awk -F ' ' '{print $2}' | peco --prompt='Service>') ACTION=$(printf "start\nstop\nrestart\nreload"| peco --prompt='Action>') if [ -n "$SERVICE_NAME" -

    関数の中で pecoを複数回使う - Shohei Yoshida's Diary
  • Minillaの zsh補完関数を作りました - Shohei Yoshida's Diary

    Minillaの minilコマンドの zsh補完関数を作ってみました。 リポジトリ https://github.com/syohex/zsh-perl-completions 最新版はこちらで管理しています。問題があれば上記のリポジトリの issuesを 利用してください 使い方 下記のコードを _minilとして適当なディレクトリにほ置き、そこに fpathを通します。 (ここでは ~/.zsh/mycompに置いたこととします). .zshrcに下記を 追加します。 fpath=(~/.zsh/mycomp $fpath)そして zshのキャッシュファイルを削除します % rm ~/.zcompdump コード gist版はこちら #compdef minil typeset -A opt_args local context state line local -a _minil_

    Minillaの zsh補完関数を作りました - Shohei Yoshida's Diary
    hisaichi5518
    hisaichi5518 2013/11/18
    便利
  • 「Perl One-Liners」 を読んだ - Shohei Yoshida's Diary

    http://shop.oreilly.com/product/9781593275204.do 来月 Oreillyから出るのかと思ってググって見たら, 電子書籍として 4年前に出たものの紙バージョンでした. 紙で読むのもあれなので, 電子書籍版を読みました. $10なんで安いと思います. 電子書籍版 http://www.catonmat.net/blog/introduction-to-perl-one-liners/ 内容 言うなれば, One linerクックブックです. ファイルの内容の加工, 計算, 文字列生成, 文字列変換, 置換, テキストマッチング等の 内容です. それぞれ 10-20弱のレシピがあります. 事細かな説明があるわけではないので、全くの初心者には向かないと 思います。One Linerのスイッチの意味ぐらいは知っているという人 向けでしょうか. そんな複雑

    「Perl One-Liners」 を読んだ - Shohei Yoshida's Diary
  • POSIX::Socketのテストがこける理由 - Shohei Yoshida's Diary

    Monoceros等で利用される POSIX::Socketのテストが こける理由のメモ. RTに登録すべきなんだろうけど、手元の環境ではうまくいかないので ここにメモっておきます(サーバサイドの問題??). 問題となるテスト t/10send.tの 2つめのテストが通りません(#2となっているテスト) sub setsockopt_test($) { my ($buflen) = @_; my $sock; my $ret; $sock = _socket(AF_INET, SOCK_DGRAM, 0) or die "socket: $!\n"; my $rv1 = _setsockopt($sock, SOL_SOCKET, SO_RCVBUF, pack("L", $buflen)); my $rv2 = _getsockopt($sock, SOL_SOCKET, SO_RCVB

    POSIX::Socketのテストがこける理由 - Shohei Yoshida's Diary
  • perl-5.18で splitの挙動が変わっていた - Shohei Yoshida's Diary

    http://perldoc.jp/docs/perl/5.18.0/perl5180delta.pod#splits32first32argument32is32more32consistently32interpreted 知らなかったのでメモ。Templateのテストが Perl 5.18でこけていたのは これが原因のようです。なおリリースはされていないようですが、すでに修正は マージされているようです. Fix split for Perl 5.18.0 by jonjensen · Pull Request #19 · abw/Template2 · GitHub 変更点 splitの第一引数に空白一つの文字列リテラルを与えたときと 空白一つが代入された変数を指定したときの挙動が今まで違って いたのが同じになったようです。 #!perl use strict; use warni

    perl-5.18で splitの挙動が変わっていた - Shohei Yoshida's Diary
  • milla(Dist::Milla)の zsh補完を書きました - Shohei Yoshida's Diary

    https://metacpan.org/module/Milla リポジトリ https://github.com/syohex/zsh-perl-completions コード #compdef milla typeset -A opt_args local context state line local -a _milla_subcommands _milla_subcommands=( "commands:list the application's commands" "help:display a command's help screen" "add:add modules to an existing dist" "authordeps:list your distribution's author dependencies" "build:build your dist

    milla(Dist::Milla)の zsh補完を書きました - Shohei Yoshida's Diary
  • WebService::DMMを書いてみた - Shohei Yoshida's Diary

    DMMがようやく WebAPIを提供ということで書いてみました。 Perlのコードを久しく書いていなかったのでリハビリも兼ねてます。 リポジトリ syohex/p5-WebService-DMM · GitHub サンプルコード #!perl use strict; use warnings; use lib '../lib'; use WebService::DMM; use Config::Pit; use utf8; binmode STDOUT, ":utf8"; my $config = pit_get('dmm.co.jp', require => { affiliate_id => 'DMM Affiliate ID', api_id => 'DMM API ID', }); my $dmm = WebService::DMM->new( affiliate_id => $c

    WebService::DMMを書いてみた - Shohei Yoshida's Diary
  • App::triggerというモジュールを書いています。 - Shohei Yoshida's Diary

    Mac - iTerm2で特定文字列をハイライトやGrowl通知する - Qiita を汎用的にできないかなって思って書いてみました。 まだまだ書き始めなので、気になる部分がありますが、とりあえず紹介。 リポジトリ syohex/p5-App-trigger · GitHub 使い方 モジュールをインストールすると ptriggerというコマンドが インストールされます。ptriggerは設定ファイルを元に、 色付け、アクションを定義します。設定ファイルはコマンドライン オプションから指定できます。指定しない場合はホームディレクトリの .ptriggerファイルを読み込みます。 使い方は以下のようになります。 % ptrigger --config=myptrigger filenamefilenameを省略した場合は標準入力から読み込みます。 "--tail"オプションで tail -f

    App::triggerというモジュールを書いています。 - Shohei Yoshida's Diary
  • Perlで書き初め - Shohei Yoshida's Diary

    あけましておめでとうございます。 今年も何卒よろしくお願いします。 新年の初めなので書き初めをしたいと思います。 元ネタ 週記くらい | Common Lispで書き初め vallog: 2012年が明けたので書き初めしました。lispで。 ソース 試行錯誤して微調整した感じですが。 #!/usr/bin/env perl package App::Kakizome; use strict; use warnings; use GD; use Encode; use Encode::Locale; sub new { my $class = shift; bless {}, $class; } my $mainfont = $ENV{HOME} . '/.fonts/aoyagireisyosimo.ttf'; my $subfont = '/usr/share/fonts/truetyp

    Perlで書き初め - Shohei Yoshida's Diary
  • system関数を大量に使うスクリプトのデバッグ - Shohei Yoshida's Diary

    system関数を大量に使うスクリプトを書いたとき、ディレクトリを消すというような 処理がある場合に、実行するのが怖い。コメントアウトして、実行するコマンドを 表示するというのも面倒。なんで環境変数により, system関数を一時的に置き換える ようにしてみた。当に怖い場合は、明示的に指定した場合にのみ実行、そうでない 場合は表示のみにする方が良いかもしれません。 コード #!perl use strict; use warnings; BEGIN { if ($ENV{DEBUG}) { no warnings 'redefine', 'once'; my $count = 0; *CORE::GLOBAL::system = sub { print "[$count] ", "@_", "\n"; $count++; }; } }; system "du", "-s", "-h";

    system関数を大量に使うスクリプトのデバッグ - Shohei Yoshida's Diary
    hisaichi5518
    hisaichi5518 2011/11/18
    なるほど。設定とかでやったら便利そう。
  • Simple Scheme interpreter in Perl - Shohei Yoshida's Diary

    昨日 Brainfuckを書いてみたので、今日は Scheme(Lisp)の処理系を書いてみました。 当然格的なものではなく、簡単なものです。 Lispy: Scheme Interpreter in PythonPerl版になります。 kidd/hascheme · GitHub に lis.pyにインスパイアされて書いたという Scheme in Perlがあったの ですが、格的な感じだし、いろいろモジュール使いまくっていたので、 とりあえず元のものに忠実に作ってみました。 コード 実行 ファイルを標準入力にリダイレクトした場合、元の式と結果を表示するように してみました。Schemeとは若干挙動が違うものがあるようにも思えますが、 lis.pyと同じように動作していると思われます。 % perl lis.pl < test.txt 12345678 => 12345678

    Simple Scheme interpreter in Perl - Shohei Yoshida's Diary
  • 日本Perl改造計画 とほほの Perl編 その1 - Shohei Yoshida's Diary

    みなさんは Perlを勉強し始めた人のブログエントリーを見てこんなことを 思ったことはないでしょうか ? 「なんでこんな古臭いコードを書いているんだ」 私は結構有ります。3引数の openでなかったり、ベアワードが大量に 使われていたり、myが使われていなかったり。なんでそういうコードを 書くのかはその人達に聞いてみないとわからないですが、以下のことが 考えられます。 古い書籍を見ている 古い内容のサイトを見て書いている 1については時間が解決してくれるかもしれないですが、そのようなを すべて抹消するというのは現実的ではない。なんで 2をなんとかできないか 考えてみました。 google.co.jpで「perl」でググった結果(2011年11月11日現在) Perl - Wikipedia とほほのperl入門 The Perl Programming Language - www.pe

    日本Perl改造計画 とほほの Perl編 その1 - Shohei Yoshida's Diary
  • Image::Term256Colorで遊んでみた - Shohei Yoshida's Diary

    Colin Kennedy / Image-Term256Color - search.cpan.org moshen/Image-Term256Color · GitHub githubにあるデモがクールだったので何か面白いことができない かなと思って試してみた。 コード モジュールを使ったのではなく、付属のアプリの img2termというのを 使っているだけですが・・・。 #!perl use strict; use warnings; use Web::Scraper; use URI; use Furl; popular_actresses_to_term(); sub popular_actresses_to_term { my $limit = shift; $limit ||= 3; my $url = 'http://www.dmm.co.jp/digital/videoa

    Image::Term256Colorで遊んでみた - Shohei Yoshida's Diary
  • /dev/keikyuで "ダァ!!シエリイェッス!!" - Shohei Yoshida's Diary

    Linuxデバイスドライバを書く練習。/dev/fizzbuzzにしようかと思ったけど、 なんかあれだったので。まあ中身は fizzbuzzなんですが・・・。 ソース C言語をスクラッチから書くのは慣れない・・・. #include <linux/init.h> #include <linux/module.h> #include <linux/types.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/cdev.h> #include <linux/device.h> #include <asm/uaccess.h> #include <asm/string.h> MODULE_LICENSE("Dual BSD/GPL"); static int keikyu_open(struct inode *i

    /dev/keikyuで "ダァ!!シエリイェッス!!" - Shohei Yoshida's Diary
  • なぜ Data::MessagePackのテストが ARM環境でパスしなかったのか ? - Shohei Yoshida's Diary

    Data::MessagePackのテストが ARM環境でテストをパスしていませんでした. これはバージョン 0.38では解決された問題です. @__gfx__さんが msgpack体の問題を修正し, 私が PP版の 修正を行いました. 結論から言うと, ABIの問題です. ARMには OABIと EABIがあり, OABIの環境でテストをパスしていませんでした. それについて 示していきます. エンディアン ビッグエンディアン, リトルエンディアンという言葉はコンピュータに ついて勉強をしたことがある人であれば聞いたことがあると思います. 当然 msgpackもその 2つのエンディアンを考慮していました. でも ARM OABI環境ではそれだけでは対応できていませんでした. 具体例を示します. 以下のようなプログラムを用意します. #include <stdio.h> int main

    なぜ Data::MessagePackのテストが ARM環境でパスしなかったのか ? - Shohei Yoshida's Diary
  • Light weight callback APIを使う場合とそうでない場合の差 - Shohei Yoshida's Diary

    List::UtilsBy::XSを書いてます。 - Life is very short のようなことを今やっています。詳しく Perl APIを理解できている わけではないので、List::Util、List::MoreUtilsを参考にしています。 それらのモジュールでは Light weight callback API(MULTICALL等)が 使われているのですが、'perldoc perlcall'を見ると zip_byとか bundle_byはそれらを使って実装できなさそうです。 そこでリストの処理を XS化する場合のキーポイントと思われる Light weight callback PAIを用いた場合とそうでない場合の比較を 行なってみました。 ソース コールバック関数に配列要素を $_として与え、各結果を戻り値として 返すというものを実装しました。 (私の知識不足で問題

    Light weight callback APIを使う場合とそうでない場合の差 - Shohei Yoshida's Diary
  • List::UtilsBy::XSが書けました。 - Shohei Yoshida's Diary

    List::UtilsBy::XSを書いてます。 - Life is very short の作業がとりあえずひと通り終わりました。 List::UtilsByのテストユーティリティがなぜか無限ループして しまうことや、Lightweight Callback APIの制限があったり しますが、List::UtilsByから持ってきたテストは概ね通っています。 リポジトリ syohex/p5-List-Utils-By · GitHub ベンチマーク Perl 5.14.1の結果は以下のようになりました。 Benchmarking List::Util and List::UtilsBy::XS Bench: sort_by Rate pp xs pp 7729/s -- -37% xs 12217/s 58% -- Bench: nsort_by Rate pp xs pp 9050/s

    List::UtilsBy::XSが書けました。 - Shohei Yoshida's Diary