タグ

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

  • LinuxホストでのChrome Remote Desktopはとても快適

    E この1年ほどメイン開発環境をWindowsにしてみる、というのをやってみていたが、1年たってもしっくりこないままなので、結局Linuxに戻してしまった。 ただ、Windowsの良かった点もいくつかあって、一番はリモートデスクトップがとても良くできているところ。 自分の普段使いのマシン構成は、高スペックデスクトップPC + Surface Go 2 で、Surface Goはかなり非力なのでそれ単体で仕事をしたりするのはかなり厳しい。 しかし、Windowsのリモートデスクトップを使えば、Surface Goから違和感なくデスクトップPCを操作することができ、安定したネット環境さえあればどこでもそれで十分作業ができる。これはなかなか良い体験だった。 リモートデスクトップが実用的に使えると、Surface Goはサブマシンとしてかなり良い。iPadの代わりのタブレットとしての用途だけでなく

    LinuxホストでのChrome Remote Desktopはとても快適
    dann
    dann 2021/09/01
  • Dockerを使ったGolang開発環境 - unknownplace.org

    しばらくiOSアプリのクライアントサイドばかり開発していてサーバサイドプログラムにご無沙汰だったのだけど、 最近またGoでアプリのサーバサイドを書くようになった。 ちょうど xhyve が話題になっているのもあって、OS X の仮想環境がアツい感じだったので、 ひさしぶりに Docker で開発してみよう、と思いたち、Dockerを使ったアプリ開発をやってみている。 docker-compose を使って依存ミドルウェアも一緒に立ち上げる docker-compose [1] というのを使うと、複数のコンテナを同時に立てられ、それぞれにリンクも良い感じにやってくれる。 開発環境を作るにはもってこいのツールだ。 GoのWebアプリ サンプルとして以下のようなアプリを考える。 // main.go package main import ( "fmt" "log" "net/http" "gi

    dann
    dann 2015/06/18
  • Google認証なリバースプロクシ&静的コンテンツ配信サーバー「gate」 - unknownplace.org

    Kibana や Grafana を使う時に、これらはjsのツールなので、 Erasticsearch や InfluxDB といったバックエンドサービスにjsからアクセスできるようにする必要がある。 そのためには、 普通にバックエンドサービスのportを開放 nginxとかでリバースプロクシ とかする必要があり、めんどくさい。 さらにセキュリティのことを考えると、2の方法のうえに、nginxでSSL+Basic認証なんかにする必要があってよりめんどくさい。 さらに、僕はBasic認証が嫌いだ。 昔は Firefox + 1Password で良い感じにBasic認証の入力が行えたが、いまはだめになってしまったし、 Basic認証だとアカウントの管理もめんどくさい。 なので、Google認証なhttpdでリバースプロクシもできる、gateというツールを作った。 https://github

    dann
    dann 2014/08/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-

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

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

    dann
    dann 2013/10/01
    cool!
  • TwilioのRedisによる決済サービスの障害、2つの原因 - unknownplace.org

    Twilio というサービスで決済サービスの障害があったらしいが、恐しいことにこのサービス、 決済情報をRedisで管理していたらしい、というのをRedis作者、antirez氏のblogで知った。 Twilio incident and Redis - Antirez weblog この件に関しては、Twilio自体も 調査報告 を出している。簡単にまとめるとこういう感じだ: TwilioではRedisを single-master, multi-slave なレプリケーション環境で使用している ネットワーク障害で一時的に master-slave 間の接続が切れたことにより、master-slave間のデータの再同期が発生 この再同期がすべてのslaveに対して同時に発生したため、masterの負荷が高くなり、結果決済サービスの障害が発生 この負荷を解決するためmasterを再起動する

    dann
    dann 2013/07/25
  • データベースエンジニア養成読本に寄稿 - unknownplace.org

    技術評論社さんの 「データベースエンジニア養成読」 に、Redisの紹介記事を書かせていただいた。 データベースエンジニア養成読 [DBを自由自在に活用するための知識とノウハウ満載!] (Software Design plus)posted with amazlet at 13.06.24 技術評論社 売り上げランキング: 857 Amazon.co.jpで詳細を見る 最近、僕自身があまり「Redis Redis」言わなくなったせいか、周りからよく「Redisもう飽きたんですか?」とか言われることが多いのだけど、 全然そんなことはなくて、むしろあって当たり前の、空気のような存在になっているから特に話題にしなくなったんだと思う。 Redisを使う前と後では明らかにアプリケーションの作り方が変わったので、 2012年マイイノベーション として紹介したくらいだ。 あとはもはや僕自身が騒がず

    dann
    dann 2013/06/24
  • Goはクロスコンパイルが簡単 - unknownplace.org

    homebrew の Go用のレシピ を見た人は、その中にこんなオプションが定義されているのに気がついたかもしれない: option 'cross-compile-all', "Build the cross-compilers and runtime support for all supported platforms" option 'cross-compile-common', "Build the cross-compilers and runtime support for darwin, linux and windows" Goはクロスコンパイルが可能なようにビルドしておけば、簡単に他の環境で動くバイナリを作ることができるようになっているらしい。 Goがダイナミックライブラリに依存しない実行バイナリを作るという特徴と併せて考えると非常におもしろい(そして、使える)機能だと思

    dann
    dann 2013/06/13
  • Redis布教活動報告 ISUCON 編 - unknownplace.org

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

    dann
    dann 2012/12/16
  • YAPC::Asia 2012 - unknownplace.org

    今回は前夜祭でも話すことになって、始めて前夜祭からの参加になったけど、なかなかおもしろかった。 トークは二つってのはかなり久しぶりだけど、どちらも20分だし、YAPC向けになにか特別ネタを用意したというわけではなく、普段やってることや考えていることを話しただけでだいぶがんばってない感じのトークです UV - libuv binding for Perl Perlハッカーは息をするようにCPANモジュールを書く というようなトークたちです。 今回は基的にホールで電源ある席を陣取り、コード書きつつトークを見る、というスタイルで参加。 Padre の話は聞けなかったんだけど、Adam Kennedy さんはなんというか堂々としていて自信に満ちていてかっこよかった。あう言う大人になりたい。 Cocoa ネイティブ対応はなんか気が向いたら見てみようかなーって言う感じ。 Ingy はなんかすごいおじ

  • 最近の 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

    dann
    dann 2012/08/31
  • Test::RedisServer ってのを書いた - unknownplace.org

    最近 Redis ずいてるわけですが、redis-server は $ redis-server /path/to/redis.conf or $ cat redis.conf | redis-server - みたいな形式でしか起動できず、これをがんばって exec してテスト用とかに使うコードを3回くらい書いたところで面倒になってモジュール化しました。 Daisuke Murase / Test-RedisServer - search.cpan.org 基的に Test::mysqld のパクりなのでサクッとかけました。kazuho++

    dann
    dann 2012/07/31
  • 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

    dann
    dann 2012/07/21
  • AnyEvent でバックエンドに EV を使う時の注意 - unknownplace.org

    AnyEvent を利用する際に注意する必要があることに、コールバック中で発生した例外の処理方法がバックエンドに任されている(=例外処理の方法がバックエンドによってちがう)、というのが挙げられる。 Impl::Perl では例外は単純に rethrow されるため、プログラム中で例外が発生したり die したりすると普通にプロセスは終了する。 しかし、Impl::EV の場合、デフォルトでは例外はキャッチされ標準エラーに出力されるものの、そのまま処理は続行されてしまう。 以下のような1秒タイマーをまわしてタイマーが発火したらアプリを終了する、というようなコードがあったとき、 use strict; use warnings; use AnyEvent; my $cv = AnyEvent->condvar; my $t; $t = AnyEvent->timer( after => 1,

  • 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

    dann
    dann 2012/05/04
  • tmux で pbcopy - unknownplace.org

    デフォルトだと動かないのでなんか変なラッパーを挟むのがスタンダードな方法みたいですが、たまにしか使わないのにそんな無駄なことしたくないと、 # tmux if [[ "$TMUX" != "" ]] then alias pbcopy="ssh 127.0.0.1 pbcopy" alias pbpaste="ssh 127.0.0.1 pbpaste" fi としてしのいでいる。僕の使用頻度だとこれで十分ぽい。

    dann
    dann 2012/03/27
  • tmux + irssi + canything で Anything 風チャンネル切り替えする - unknownplace.org

    irssi 環境を prgmr.com からさくら VPS に移行したついでに irssi のプラグインを見直していて、そのときに nicklist.pl というのをいれたわけですが、これがなかなか hackish な実装になっており(笑)、named pipe なファイルつくってそれを cat しておくと irssi がそこに nicklist を書き込むというような感じになってて、基的に GNU screen などの縦分割と一緒に使うように設計されている。 で、僕はリモートサーバー上の GNU screen 上で irssi を動かしているので、それをつかうために縦分割をためしてみたわけですが、window 分割したときにでる caption を GNU screen では消すことができず、ローカルで使っている screen の hardstatus の上に、リモート screen

    dann
    dann 2012/03/26
    awesome!
  • 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 ルックアップがサ

  • YAPC::Asia 2011 - unknownplace.org

    なんだか今年は身内の訃報がかさなったりして、フル参戦できなかったのですが、少しでも行くとモチベーションが上がるのが YAPC ですね。 Hacking Mac OS X Cocoa API from Perl っていうニッチな発表をしました。補足エントリーは別でかきます。 あと、発表中に似非XSっていう言葉を使ってたんだけど、以外とこの方法で XS 入門するってのはあるなーっておもっているのでいつか(Advent Calendarとか?)まとめたいところ。 感想 見たかったトークの大部分を見ることができず、懇親会にも出られず、だいぶ不完全燃焼ではあるのですが、見ることができた gdb のトークや、組み込みPerlの話、あとたまたま通りがかったmotemenのトークがとてもおもしろかったです! motemen さんのは普通にメインであってもだいぶおもしろかったとおもうけど、たぶんこれはトーク

  • Lion の /usr/bin/perl とその設定 - unknownplace.org

    http://twitter.com/kazuho/status/96099885094412288 @kazuho: /usr/bin/perl は defaults を見て設定されたバージョンの perl を exec するラッパーじゃないかな ということで、man 引いてみたらそう言うようなことが書いてありました。kazuho++ これはじめてしったんですが、 OSXperl コマンドは defaults や環境変数によって実行バージョンやアーキテクチャを変更できるらしい。 $ defaults write com.apple.versioner.perl Version 5.10 とすれば 5.10 がデフォルトになったり、 $ defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes とかすればさっき意味

    dann
    dann 2011/07/27