タグ

ブックマーク / blog.64p.org (95)

  • tokuhirom's blog

    Sierra で key のスワップしながら cmd 単体だと英数にしたりする方法 現時点では karabiner が sierra だと使えない。 karabiner elements 使えば、キーのスワップはできるが、cmd 単体押した場合に英数にする、みたいなことは karabiner elements ではできない。 karabiner elements + cmdえいかなでできるかなと思いきや、karabiner elements と cmd えいかなは合せが悪いっぽい。 僕はギョームでは realforce を使っているので、key の swap も必須なのであった。。 というわけで困っていて、ctrl+shift+; と ctrl+shift+j で切り替えていたのだが、karabiner elements の fork 版を使えばお望みの機能は使えるということをバーの常連

    yappo
    yappo 2017/04/26
  • Perl 5.19.9 で実装された signatures の構文をためしてみる - tokuhirom's blog

    use 5.019009; use autodie; use feature 'signatures'; no warnings "experimental::signatures"; package Foo { sub new($class, $n) { bless {n=>$n}, $class; } sub bar($class, $a) { $a+3; } sub baz($self, $a) { $self->{n} * $a; } } sub add($left, $right) { return $left + $right; } say add(1,2); say Foo->bar(4); say Foo->new(5)->baz(4); みたいな感じでつかえる。 【追記】 use 5.019009; use feature 'signatures'; no warning

    yappo
    yappo 2014/02/24
    $a って安心して使えるようになったの? RT @kazuho: ようやく感 / “Perl 5.19.9 で実装された signatures の構文をためしてみる - http://t.co/CB3D0iwEzx
  • Example code for postfix dereference(It'll come with Perl 5.20) - tokuhirom's blog

    #!/usr/bin/env perl use strict; use warnings; use utf8; use 5.019005; use autodie; use LWP::Simple; use JSON::XS; use feature 'postderef'; no warnings 'experimental::postderef'; binmode *STDOUT, ':utf8'; my $json = get('http://c.hatena.com/s/bt847uolrcm3/nearby.json'); my $dat = decode_json($json); for ($dat->{items}->@*) { say join(', ', $_->@{qw(spot_name lat lon)}); } It's useful.

    yappo
    yappo 2013/11/19
    はてなココ
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    yappo
    yappo 2013/09/10
    大体7年前のインターネットの例
  • multiperl は素人がつかう必要がない件について - tokuhirom's blog

    的に Perl5 は下位互換性が非常によく保持されていますから、use 5.10; などによる縛りをかけないかぎり、「過去バージョンでうごくのに最新のバージョンだとうごかないよう」ということはまずありません。 もしあれば、それは perl5 のバグです。(perl5.10.0 はかなり大幅に書きかえられているので、エッジケースでごくまれにこういうバグを踏みぬく可能性があります) 「最新バージョンでうごくのに、過去のバージョンでうごかないよう」というケースもまずありません。use 5.008001; としているモジュールでは、ほぼほぼ互換性が問題になることはありません。 5.8.5 以前で sub import { } の中で @_ を変更してから goto すると SEGV する*バグ*とか、そういう既知バグを踏む可能性があるぐらいです。 そのへんは perl\d+delta にのって

    yappo
    yappo 2013/03/21
    ああ、 import の中だけだったは。。
  • Try::Lite is especially useful in PSGI handler. - tokuhirom's blog

    I guess, Try::Lite is very useful in PSGI handler. use Try::Lite; my $app = sub { try { main_handler(); } "MyApp::Exception::PermissionDenied" => sub { [403, ['Content-Type' => 'text/plain'], ['Forbidden']] }, "MyApp::Exception::NotFound" => sub { [404, ['Content-Type' => 'text/plain'], ['Not Found']] }, };Awesome.

    yappo
    yappo 2013/02/19
    exactly !
  • KEN_ALL.CSV を簡単にパースするためのスクリプトを fatpack でつくったらどうか - tokuhirom's blog

    https://github.com/tokuhirom/KEN_ALL Parse::JapanesePostalCode は依存すくないからこういうかんじで1枚岩のスクリプトにしたら、Perl に慣れてない人もつかえて便利なのでは。

    yappo
    yappo 2012/08/16
    良いね!良いね!良いね!
  • Re: perl 5.16.0 でメモリリーク? - tokuhirom's blog

    http://d.hatena.ne.jp/tagomoris/20120731/1343713558 以下のコードで再現するので、Perl 5.16.0 のバグのようです。もりもりプロセスがふとっていきます。 use strict; my $kan = bless +{}, 'Kan'; my $code = sub { }; for (1..100) { for (1..1000) { for my $f ($code, $kan) { ref $f; } } my @x = split /\s+/, `ps aux|grep leak.pl|grep -v grep| grep -v vim`; print $x[5], $/; }ref のキャッシュ処理とかがバグってるとかですかね。 とりあえず perlbug しておきました。 see http://www.nntp.perl.o

    yappo
    yappo 2012/07/31
    でもなおってなかった
  • MVCは死んだ!!!!!1111 時代は TCTO だ!! - tokuhirom's blog

    モデルとかビューとかウェブアプリケーションの文脈では不適切な抽象化なので T(テンプレートエンジン) C(コントローラ) T(手続き) O(O/R Mapper) とよぶといいです。

    yappo
    yappo 2012/07/04
    Tomohiro CTO ってことですねわかります
  • コミットの粒度を最適化する方法 - tokuhirom's blog

    http://d.hatena.ne.jp/a666666/20110910/1315761292 最近よく issue driven development みたいなことをいわれるけれども、ITS(Issue Tracking System) を積極的に利用するようにして、ITS にチケットを登録し、ticket と commit を関連づけるようにすると、ちょうどいい粒度の感覚が身につくんじゃないかな、とおもった。 ちょうどいい粒度の ticket はちょうどいい粒度の commit にむすびつくのじゃないか。

    yappo
    yappo 2011/09/12
    ちょうどいい粒度の ticket の身につけ方を刺身が書く流れ
  • life - tokuhirom's blog

    I was laid off by last employer at June 2011. I got a new Job from July, 1st, 2011. I'm still writing perl5 code.

    yappo
    yappo 2011/07/29
    へー転職してたんだー / life - TokuLog 改メ tokuhirom’s blog
  • Q4M + Parallel::Prefork + Signal handling + Log::Minimal - tokuhirom's blog

    conditions precedent: use daemontools & multilogPoints: make DB connection after forkdo not trap SIGTERM while calling queue_wait(), so that the process can be shut down while waiting for the response from q4mremove $time and add $PID for log. Because I'm using multilog. It prints the tai64n automatically(and, tai64n is better).package OreOre::Worker::Base; use strict; use warnings; use parent qw/

    yappo
    yappo 2011/04/15
    @lestrrat みつけますた
  • Testing JavaScript with node.js - tokuhirom's blog

    http://d.hatena.ne.jp/gfx/20110206/1296979666 JavaScript のライブラリやアプリケーションなどを JE でテストしたりするのは、筋が悪いとかんじます。創りかけのものを創りかけのものでテストするのは、時間の無駄になりやすいからです。 最近では v8(の一ラッパーとしての node.js)やSpiderMonkey などが用意に手にはいるので、これを利用すればよろしい。CommonJS などというものもでてきており、最近ではサーバーサイドでのテストもかんたんになりつつあるだろうし ということで、mustache.js をテストするスクリプトを以下にあげる。これは node.js でテストする場合です。JavaScript で簡易的な TAP Producer を実装してみたけども、これよりちゃんとしたものを誰か node-test-simp

    yappo
    yappo 2011/02/07
    ここに書く事じゃないけど、jsの場合は生成後のdomをhtmlと比較するのは筋が悪い。ここに書く事じゃないし、今回の件は生成後のhtmlだからいいんだけど、ここにかくことじゃないね。
  • Plack-0.9945 で任意の CGI スクリプトを実行可能になっていた件 - tokuhirom's blog

    http://search.cpan.org/~miyagawa/Plack-0.9945/ これまで Plack には Plack::App::CGIBin というモジュールが付属していたが、これは Perl script の実行しかサポートしていなかった。 しかし、Plack 0.9945 をつかと、任意の CGI script を実行可能となっている。 plackup -MPlack::App::CGIBin -e 'Plack::App::CGIBin->new(root => "./")->to_app' -p 9099 などとすると、 #!/usr/bin/python # -*- coding: utf-8 -*- print "Content-Type: text/plain" print print "hello world." のような、普通の cgi スクリプトを実行

    yappo
    yappo 2010/08/27
    突っ込みどころは「# -*- coding: utf-8 -*-」?
  • Sledge の PSGI 対応についておもいをはせた - tokuhirom's blog

    Sledge のよさのひとつは、非常に枯れているところなのであるが、一方でアクティブなメンテナがおらず、PSGI ブームなどにものっているのかのっていないのかわからないし、テストスイートはたぶん誰もうごかしていない。 で、しょうがないので、テストコードの修正を2箇所いれて、パスするようにするパッチをおいておいた。 http://github.com/tokuhirom/Sledge/commits/master あと、PSGI 対応は、こういう形がいいとおもう(upload まわりとか動作確認すらしてないけど)。 http://github.com/tokuhirom/Sledge/tree/feature-psgi 2010年代に mod_perl1.3 にしか対応してなくて云々というブログエントリーがでてるのは悲しいので、こういう方向で誰か作業してリリースしたらいいとおもう。 つまり、

    yappo
    yappo 2010/08/18
    commented RT @tokuhirom: 朝おきたら Sledge の PSGI サポートをパッチの形で小人さんがつくりあげておいてくれたので、blog にかいておいた
  • Web Application Framework ではなく、コードジェネレータでいいのではないか - tokuhirom's blog

    Web Application を構築するための部品が十分にそろいつつある今日この頃ですから、今となっては Web Application Framework をつかうのではなく、ライブラリの glue 部分を Code Generator で吐いてしまうのも選択肢にはいるのではないでしょうか。 というわけで、サラっとかいてみた。400行程度のジェネレータだけで、質的なコードはない。実はこういうので十分なのではないだろうか。 (なんとなく Path::AttrRouter をつかって Catalyst 風にしてある) 一般的な Web Application の構成要素はすべてふくんでいるが、出力されるコードはおどろくほどみじかいし、実際これで十分だとおもう。 use strict; use warnings; use utf8; use Getopt::Long; use Pod::U

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    yappo
    yappo 2009/09/05
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    yappo
    yappo 2009/07/06
    mooseでattributeしたら負けだと思ってる
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at