タグ

ブックマーク / unknownplace.org (13)

  • コーヒーを1ヶ月半ほど止めてみた

    若い頃からコーヒーが好きで、おそらく高校生(もしかしたら中学生かも)くらいから習慣的に飲んでいて、20代のころはそれこそ一日中コーヒーを飲んでいた。 僕と一緒に仕事をしたことがある人は、職場にコーヒー道具一式を持ち込んでいたから、どのくらいコーヒー狂いか知っているだろう😅 それでも、効果的な睡眠を模索していると午後のカフェイン摂取は厳禁、みたいな話があったり、そもそもカフェインのとりすぎはよくないという風潮なので、ここ5年ほどは朝一のコーヒー+仕事始めのコーヒーの2回だけ淹れる、という感じになっていた。 ただ、1回につき2杯分淹れ、奥さんが欲しいといったら半分あげる、みたいな感じなので、日によってかなり摂取量にバラつきがあった。全部一人で飲んだ日は4杯分、600ml以上摂取してることになる。[1] 特に健康に影響があるのは感じでいなかったのだけど、最近またいろんなところでカフェイン摂取を

    gfx
    gfx 2021/02/19
    ふーむ。おなじく(本物の)コーヒーを控えるようになって半年くらい。普段はデカフェで、たまに飲む本物のコーヒーがメチャウマなのはおなじく。でも急に断ったときの禁断症状はなかったなー。
  • GoでCocoa APIを使う、もしくは他のイベントループをGoに混ぜる方法 - unknownplace.org

    Gocgo という機能を使うと、GoからCの世界のコードを呼んだり、呼ばれたりすることができる。 Perlで言うところのXSというやつだ。 このcgoを使ったGoプログラムは、昔はMakefileを利用してビルドしていたそうだが、 1.0からは go get や go build と言った、go toolがcgoに対応したのでそういうことも必要なくなっている。 cgoの基的な使い方 まずは import "C" として、Cという疑似パッケージをimportする。 このパッケージを使うと、 C.fprintf(...) というような感じでCの世界にアクセスできるようになる。 また、このimport文の直前のコメントはCのコードとして解釈される。 なので、 package main /* #include <stdio.h> void hello() { fprintf(stderr,

    gfx
    gfx 2013/12/15
  • Go言語のOS X上でのGDBデバッグ環境構築 - unknownplace.org

    Go言語は gdbでのデバッグがサポートされている のだが、OS X でそれを使おうとしたらいろいろ罠にはまったのでここに記しておく。 (このエントリ執筆時の手元の環境は OS X 10.9(.0) Mavericks + Xcode 5.0.1) 罠一覧 OS X 付属のgdbが古い Xcode 5.0.1のclangだとgdbのビルドがこける ビルドするgdbpython2にリンクさせないとGo付属のruntime-gdb.pyが動かない[1] ビルドしたgdbにコード署名をしないと他プロセスをアタッチできない OS X 付属のgdbが古い Goのコードをgdbでデバッグするには、gdb 7.1以上が必要ということだが、OS X (Xcode?) 付属のgdbは古くて使えない。 手元のバージョンは GNU gdb 6.3.50-20050815 (Apple version gdb-

    gfx
    gfx 2013/10/29
  • 独立しました - unknownplace.org

    2013年8月末で面白法人カヤックを退職し、新しく会社を設立しました。 カヤックには約9年間お世話になり、とても多くのことを学ばせてもらいました。 とくにクリエーターとしての自分の考え方は、ほぼカヤックで養われたと言っても過言ではないでしょう。 そういう意味でカヤックは僕の第二の親のような存在であり、鎌倉方面には足を向けて寝られません。 当にありがとうございました。 カヤックは面白法人とか名乗っていますが、実は非常にまじめな集団です。 たとえば、経営理念についても、とても真摯に向かいあっています。 経営理念とはただの飾りではなく、まさに会社の存在意義であり、社員全員がそれを意識して仕事をしなければ意味がない。 そんなことから半年に一度、全社員で経営理念について考えるための全員社長合宿、というものをやっていたりします。 そんな環境で、自分も個人としての理念を磨いてきました。 昔のカヤックス

    gfx
    gfx 2013/10/01
  • Any::Moose とか幻想やったんや - unknownplace.org

    Any::Moose は Moose と Mouse のラッパーで、バックエンドがどちらになるかは use Any::Moose した時点で Moose or Mouse がロードされているかによって変わる。 どこかで use Moose していたら use Any::Moose は use Moose としてうごくし、 そうじゃない場合は use Mouse としてうごく。 これはなんのためにあるかというと、MouseとMooseの両方のモジュールを混ぜて使うと壊れるからなんだけど、 そもそも混ぜて使って問題になるのは Mouse のクラスを Moose で extends したりとか、そういう Moose 周りの機能を相互に使おうとした場合だけであって、混ぜて使っていてもそれぞれのクラスを普通に使い合う分にはなんの問題もない。 また、昔はruntimeの速度にそこまで性能差はなかったと

    gfx
    gfx 2012/12/25
    +1
  • Redis布教活動報告 ISUCON 編 - unknownplace.org

    最近 Test::RedisServer とかもろもろつくっててばれてるかもしれませんが、だいぶ Redis 期にありまして、最近の趣味は?っていう問いにはだいたいRedisのソースを読むことですってなくらいなのですが、 memcached とかシンプルな KVS と比べるとだいぶ機能が豊富なので使い方を迷ったりとかそういう事例もあり、周りにもう少し使える人を増やさなければ僕の書いたコードが属人化しててつらい感じになるなーっていうわけで、 布教活動をおこなっておりまして、その一環として ISUCON2 に参加してきましたのでその報告です。 livedoor Techブログ : #isucon2 リアルタイムフォトレポート 更新終了 前回の優勝チームに混ぜてもらった感じでだいぶついてる感じもしますが、見事連覇を果たせ、懇親会でも redis redis と連呼してきたのでだいぶ興味持った方も

  • 最近の Module::Install で Travis るときの注意ポイント - unknownplace.org

    Travis は Github 連携の CI サービスで、結構前に Perl にも対応しているので最近更新したレポジトリには基的に .travis.yml を置いて便利に使わせていただいていたのですが、 いままで使っていた設定だとtravis上でうまくテストが通らなくなってしまった。 今まで使っていた方法は、まず gfx 考案の Makefile.PL をベースに Makefile.PL をこんなかんじで書く: use strict; use warnings; BEGIN { my @devmods = qw( Module::Install::AuthorTests Module::Install::ReadmeFromPod Module::Install::Repository ); my @not_available; eval qq{use inc::Module::Inst

  • OSX のコマンドラインから、wi-fi の情報をつかって位置情報を得る - unknownplace.org

    linux のコマンドラインから、wi-fi の情報をつかって位置情報を得る - tokuhirom's blog. を見て、面白そうだと思ったのでそのMac版。MacでコマンドラインからWiFiスポットをスキャンするのは、 /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s でいけます。ってことで、 use strict; use warnings; use utf8; use 5.012; use JSON; use LWP::UserAgent; my @addresses = do { my @lines = split /\n/, qx{/System/Library/PrivateFrameworks/Apple80211.framework/Version

    gfx
    gfx 2012/07/21
    とれた!すごい!!
  • Objective-C で AUTOLOAD (あるいは method_missing ) - unknownplace.org

    forwardInvocation とかを使えば出来るみたい。 #import <Foundation/Foundation.h> @interface Foo : NSObject; -(void)call:(NSString*)sel; @end @implementation Foo -(void)call:(NSString*)sel { NSLog(@"call: %@", sel); } -(void)forwardInvocation:(NSInvocation *)invocation { [self call:NSStringFromSelector([invocation selector])]; } -(NSMethodSignature*)methodSignatureForSelector:(SEL)sel { NSMethodSignature* sig = [

    gfx
    gfx 2011/12/05
    うはw たしかに動的ディスパッチならできるはずだけど。
  • libuv を iOS 対応した件 - unknownplace.org

    だいぶ前から iPhone アプリ作成でネットワーク系の機能を作るときには libev を愛用してるのだが、今日 node をいじっていたら libuv がなかなかよさそうに感じた。 libuv は libev が Windows で動かないからっていう理由で始まったプロジェクトだとおもうけど、Linux などの環境においても libev をラップしつつ、より便利な機能が追加されていていわば C でネットワークプログラミングするためのフレームワークといえるくらいになってる、みたい。(まだ詳しく見たわけじゃないけど) libev は基的に io 監視と timer のみで、socket の生成などは基的に自分で syscall 呼んでつくる必要があるけど、libuv は uv_tcp_* とか uv_udp_* といったAPI郡をもってて便利そう。 あと、非同期 DNS ルックアップがサ

    gfx
    gfx 2011/11/11
    typester++
  • node.js C/C++ addons 入門 - unknownplace.org

    node.js のドキュメントを見ていたら C/C++ で簡単に拡張が書けそうだったので試してみた。 addons - Node.js Manual & Documentation ドキュメントに載っている hello.cc をみてみると: #include <v8.h> using namespace v8; extern "C" void init (Handle<Object> target) { HandleScope scope; target->Set(String::New("hello"), String::New("world")); } この extern "C" void init (Handle<Object> target) というやつが、jsで require("hello") したときに呼ばれる感じらしい。この関数だけは必ず実装する必要がある。 この中の Ha

  • Text::MicroTemplate::DataSection - unknownplace.org

    __DATA__ に __DATA__ @@ index.mt <html> <body>Hello</body> </html> @@ bar.mt ? if ($true) { Foo ? } こう言うのが書いてあるとき、Data::Section::Simple を使うと get_data_section('index.mt'); とすることで該当セクションだけのデータを簡単に取得することができます。 なので普通の Text::MicroTemplate と組み合わせても render_mt(get_data_section('index.mt')); って感じで使えてそんなに苦じゃないわけですが、どうせなら中で include とか extends とかで他のセクションのデータとも連携できるようにしたら便利だなーと思い3分クッキングして Text::MicroTemplate::D

    gfx
    gfx 2010/07/03
  • PerlエンジニアのためのObjective-C Blocks入門 - unknownplace.org

    OS X 10.6 以降の xcode では Objective-C に Blocks というシンタックスが追加されている。 Blocks Programming Topics: Introduction Perl でいうところの無名関数(コードブロック)を作ることができる機能で、Perlでいうところの my $f = sub { ... }; $f->(); は void (^f)() = ^{ ... }; f(); のように書ける。書式がきもいのはObjective-Cの定めなのであきらめましょう。 より詳しい書式については上記ドキュメントを見ると良い。 しかしデフォルトではPerlのコードブロックとはレキシカル変数の扱いが異なる。 my $i = 0; my $f = sub { return $i + 1 }; $i++; $f->(); # 2 を返す perlではこのようにレ

  • 1