タグ

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

  • スケートボードを始めた

    COVID-19の状況の中、9月から格的に長男(1st grade)のリモート授業もはじまり、共働き&子ども2人という我が家はかなり苦しい生活ルーチーンになっている。 1st gradeの授業はまだまだ親のサポートが必要。とくにうちの子の場合はいまのところ英語があまりできないので、そのサポートも必要というのも大きいが。 またそのサポートをしている間もまだまだ一人だけで遊んだりするのが難しい次男(3歳)もいるという。そういう状況だと、日中に満足に仕事をこなすのがかなり難しい。 どうしているかというと、まず、夫婦の仕事をする時間をずらした。昼間は基的に自分が仕事が子どもたちを見る。 夜に自分が子どもたちを寝かせ、がそのあと仕事をする。結果は夜遅くまで仕事をすることになるので朝は遅くまで寝てもらう。朝を作ったり、朝の授業のサポートなどは僕がやる。[1] そんなわけで、夫婦おたがいに

    スケートボードを始めた
  • WSL上のGUIアプリケーションの設定いろいろ、SandSとかキーリピート加速とか

    X410というX Window Serverがかなり便利。X WindowをVNCみたいにまるっと表示するのではなくて、アプリケーション毎にWindowを分けて表示してくれるモードがあり[1]、LinuxGUIアプリを普通のWindowsアプリと同じように扱える。 ただあくまでLinux上で動いているものなので、フォントとか日本語入力とか、キーボード周りの設定とかはもちろんLinux側で設定する必要がある。 日本語入力に関しては、それが必要なアプリは自分の使うアプリではいまのところEmacsしかないが、Emacsはそれ自体で日本語入力が可能なので特に設定する必要がない。 自分がEmacsのためにインストールしたのは以下: # Emacsで使ってるメインフォント yay -S otf-source-han-code-jp # 英数日語以外&絵文字用 yay -S noto-fonts n

    WSL上のGUIアプリケーションの設定いろいろ、SandSとかキーリピート加速とか
  • 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を再起動する

    yuiseki
    yuiseki 2013/07/25
  • Githubの各種イベント通知をPubSubHubbubで受け取るの巻 - unknownplace.org

    tl;dr - 通常のHookではなくPubSubHubbubのほうのHookを使えばGithubのすべてのイベントをひとつのWebHookで受け取ることができる。 Github の WebHook ではレポジトリの更新しか受け取れず、issue とかも受け取れたら便利なのになーと思いつつ API ドキュメントを見てみると Hook を API から登録したりすることができるようになっていた。 だがこれは所詮は Web から登録できる Hook をいじるもので、このリストにあるものしか登録できない。 また、それぞれの Hook について登録できるイベントはリストで定義されている物に制限されているようで、たとえば WebHook だと push イベントしか設定することはできないみたい。(API 経由でも設定できなかった) 一方、それとは別に用意されている PubSubHubbub の Ho

    yuiseki
    yuiseki 2013/04/18
  • 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

  • 無線APによって自動でhostsを変える方法 - unknownplace.org

    OSX の LaunchAgents には特定のパスを監視して更新があったらプログラムを起動すると言うことが出来ます。例えば以下のような設定を書いてみると: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.unknownplace.wifi_switch</string> <key>ProgramArguments</key> <array> <string>/usr/bin/zsh</string> <string>-c</

    yuiseki
    yuiseki 2012/07/11
  • libuv (libev) と Objective-C autorelease のはまりポイント - unknownplace.org

    iOS や Mac アプリで HTTP 以外のネットワーク機能をつけたいといった場合に、libuv や libev を組み込んで使うというのを割とよくする。方法としては以下のような感じでその機能用のスレッドをつくる: -(void)run { NSThread* thread = [[NSThread alloc] initWithTarget:self selector:@selector(loop) object:nil]; self.thread = thread; [thread release]; [thread start]; } スレッドの中身は大体こんな感じ: -(void)loop { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; uv_loop_t* loop = uv_loop_new(); /

  • Objective-C スレッドと libuv スレッドとのやりとり - unknownplace.org

    libuv 専用スレッドと通常の Objective-C スレッドとのやりとりの仕方、ついでに書いておく。 tl;dr - libuv スレッドから Objective-C スレッドに対して何か送るときは Objective-C の作法がそのまま使える。逆は uv_async を使う libuv スレッドから Objective-C スレッド これは Objective-C の世界の作法がそのまま使える。 iOS4+ と OSX 10.6+ であれば GCD で、 dispatch_async(dispatch_get_main_queue(), ^{ // ここはメインスレッド }); のようなのを書くだけでメインスレッドの動作を定義できるから、そこでメソッド呼ぶなり Notification を発行するなりすれば良いので楽ちん。 それ以下の環境だったら performSelector:

  • 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 ルックアップがサ

    yuiseki
    yuiseki 2011/11/11
  • 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

    yuiseki
    yuiseki 2011/02/18
  • OSX で tmpfs 的なことをする方法 - unknownplace.org

    MacBook Air 上で Test::mysqld なテストを走らせていると SSD の寿命縮めそうだなーとおもって tmpfs 的なものが OS X にもないものかと検索したら hdid(8) でできるとのこと。 man の一番下のほうに例が載っている。 $ hdid -nomount ram://128000 /dev/disk1 これでメモリから128000セクタ(1セクタ512バイトなので62.5MB)分とって仮想ディスクをつくり、 $ newfs_hfs /dev/disk1 Initialized /dev/rdisk1 as a 63 MB HFS Plus volume HFSで初期化して、あとは普通に $ mkdir /tmp/mnt $ mount -t hfs /dev/disk1 /tmp/mnt でマウントすればOK。 作ったディスクの破棄には $ hdidu

    yuiseki
    yuiseki 2011/02/03
  • memo - unknownplace.org

    去年は参加できなかったため、2年ぶりのYAPCでした。 僕のセッションの資料もアップしておきました。 FormValidator::AssetsOpen Fastladder with Plagger やっぱり参加するとグッとモチベーションがあがりますね。 2年前うけた衝撃も大きかったですが、今年もいろいろな人からアイデアややる気をもらいました。 ところでこの2年間でひとつ大きく変わったなぁと思うのは、perlハッカーの使っているPCの種類が変わったことです。 2006年時には こんな感じで Thinkpad が幅をきかせまくっていたと思うのですが、今回の hachathon で Thinkpad を使っていたのは僕と mizzy さんだけ! 今年はみんな Macbook。 Hackathon きてた人の9割くらいは macbook だったんじゃなかろうか。。 yusukebeと終電で帰る

    yuiseki
    yuiseki 2010/08/12
  • unknownplace.org - 2009/06/17 - lighttpd だけで多言語サイトを作る方法

    lighttpd 1.4.21 以上では $HTTP["language"] という新しい変数(?)が設定の中で使えるようになり、これを使用するとクライアントの Accept-Language に応じて lighttpd の設定を変えることが可能になります。 これを利用して多言語化しているサイトとしては opensource.kayac.com が有名です。 このサイトは以下のような設定で動作しております。 $HTTP["url"] !~ "^/(?:(?:css|js|img|images?|static|tmp)/|[^/]+\.[^/]+$)" { $HTTP["url"] !~ "^/(en|ja)(?:$|/)" { $HTTP["language"] =~ "(en|ja)" { url.redirect = ( "^/(.*)" => "/%1/$1" ) } $HTTP["

    yuiseki
    yuiseki 2009/06/18
  • 2009/01/08 - memo - unknownplace.org

    git svn clone は svn ログをたどるためでかい svn レポジトリになるととんでもなく時間がかかります。 なのですでに clone 済みの git レポジトリから clone したら簡単じゃんと思って素直に clone してみたのだけど、そのままじゃうまく clone 出来なかったのでメモ。 こんな感じでやればおk # とりあえずレポジトリ作る mkdir test cd test git init # clone git remote add origin http://co-workers-pc/dev/project/.git git config --add remote.origin.fetch '+refs/remotes/*:refs/remotes/*' git fetch git reset --hard trunk # git svn の remote

    yuiseki
    yuiseki 2009/01/12
  • 2008/05/22 - memo - unknownplace.org

    去年は参加できなかったため、2年ぶりのYAPCでした。 僕のセッションの資料もアップしておきました。 FormValidator::AssetsOpen Fastladder with Plagger やっぱり参加するとグッとモチベーションがあがりますね。 2年前うけた衝撃も大きかったですが、今年もいろいろな人からアイデアややる気をもらいました。 ところでこの2年間でひとつ大きく変わったなぁと思うのは、perlハッカーの使っているPCの種類が変わったことです。 2006年時には こんな感じで Thinkpad が幅をきかせまくっていたと思うのですが、今回の hachathon で Thinkpad を使っていたのは僕と mizzy さんだけ! 今年はみんな Macbook。 Hackathon きてた人の9割くらいは macbook だったんじゃなかろうか。。

    yuiseki
    yuiseki 2008/05/22
  • 2008/02/29 - memo - unknownplace.org

    下記camr作った時点での僕のポリシーは アプリ名にかかわらず設定ファイルはconfig.yamlとconfig_local.yamlでも変更することがないほとんどの設定はyamlには書かない。yamlがごちゃっとするときもいForceUTF8系モジュールは使用しない。内部がきちんとutf8で統一されていれば必要ない。MyApp::UtilsとかいうのでいろいろBKなことをまとめてする。uri_forを気に入るように直したり、FillInFormの挙動変えたり なんか抜けてる気がするけどこんな感じ。

    yuiseki
    yuiseki 2008/03/02
  • 2008/02/09 - memo - unknownplace.org

    といっても今まで使ってたyamlに - module: Store::Fastladder の項目を追加しただけだけど。 今までの Store::DBIC (PlaggerLDR) のも残してあるので今はどちらも使える状態。 ちなみに使用感は PlaggerLDR とほとんど同じだなぁ。グリモンなくても使えたりするのが Store::Fastladder のほうがいいところだけど、いますぐ PlaggerLDR から乗り換えるメリットはあまりないのかも。(PlaggerLDR使ってる人はね) PlaggerLDRよくわからんくてつかってないけど、使いたかったというような人にはかなりおすすめだ。動作している OpenFL の環境があれば Store::Fastladder は plagger の yaml にそのデータベース情報を書くだけで動作する。 あと、OpenFL のデータベースは S

    yuiseki
    yuiseki 2008/02/09
  • unknownplace.org - 2008/01/17: 23:44 IRCのログをそのまんま貼り付けるという行為

    sexさんがtokuhiromのログをコピペして貼っているけれども、IRCでの会話をそのままコピペしてブログるということはなんというかあまりよろしくないと思っている。 まぁtokuhiromだからいいという話もあるけどw なんというかIRCでの発言というのはその場の流れだとか雰囲気だとかがあってその中での発言になっているから、自分の言葉で~さんが~といっていた、的に自分の言葉で記事にするのはいいとおもうけど、そのままコピペしちゃうというのは違うと思うのだ。僕だけかもしれないけど。 でも、tokuhirom自身もログ張るときはnick伏字にしてたりしてて、あれは多分こういう考え方してるからなんじゃないかなーと思っている。 IRCのログを収集するサービスが不人気だったのも同じような理由な気がするし。 まぁなんかここのとこ連続してログコピペしてる記事をみたので書いてみた次第です。 いまどきのpe

    yuiseki
    yuiseki 2008/01/18
  • 2007/11/01 - memo - unknownplace.org

    この間ちょっと紹介したirssiのプラグインスクリプトとしてmobircをつかうmobirc.plスクリプトですが、実用に耐えうる段階まできましたので再度紹介しておきます。 画面サンプルはこんな感じ。(スクリーンショットが取れるPSPでの画面です) 素のmobircIRCクライアント機能と、HTTPD機能を両方持ち、tiarraなどのIRCプロクシにつなぐことで使用するものになっていますが、こちらのirssiプラグインではmobircIRCクライアント機能はirssiプラグインとして実装していますので、irssiさえあれは利用することができます。 イメージ的にはirssiがHTTPDを立てている感じになってます。 またキーワード設定などもirssiのハイライト設定を使用していますので、別途mobirc側でキーワード設定をする必要がないのもちょっとうれしいところです。 実際の使い方(イン

    yuiseki
    yuiseki 2007/11/01
  • 2007/10/29 - memo - unknownplace.org

    mobirc 0.01 released - TokuLog 改め だまってコードを書けよハゲ すばらしすぎる! ソース見ると、IRCクライアント部分とHTTPD部分わかれてるから、IRCクライアント部分を丸々irssiプラグインで置き換えるのも簡単にできそう。 irssi使うようになってからtiarraみたいなプロクシを使わなくなったので、irssiプラグインだけでkeitairc見たいの作りたかったんだよなー。tokuhirom++ てわけで日シリーズ見ながら作ってみた。 mobirc.pl こんなんで一応動く。 irssiプラグイン内でPOEセッション(POE::Session::Irssi)作って、その中で Mobirc::HTTPD 動かしてる。 動くことは動くけど、設定決め打ちだし、unloadもできないのでプラグイン再起動イコールirssi再起動で、まだ実用には耐えない。

    yuiseki
    yuiseki 2007/10/29