サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
blog.hidekiy.com
チーム名 hidekiy で、@kotaroy と ISUCON10 予選に参加して、何とか通過しました。ブログ記事の募集期間が終わらないうちに、当日の行動について記録しておきます。タイムライン 12:20予選開始仕様把握、なぞって検索が本丸っぽい予想。不要そうな node_modules, target を抜いて、コードを Git 管理する。SSH のエージェント転送で連れてきた鍵を使って、サーバーから直接 GitHub にアクセスしてデプロイとかやる事にする。サンプルの SSH の設定ファイルに、8081~8083 でそれぞれのサーバーのポート80を開けるようにする設定を入れた LocalForward を追加してチーム内に共有した。 14:00去年のISUCON予選1位チームのありがたい記事 ISUCON9 予選を全体1位で突破しました で学んだ Cloud Trace, Cloud
今回はついに予選通過しました。チーム名は円山町です。17日土曜日の予選当日にやったことをメモしておきます。 予選当日のタイムライン 10時 出社 (会社のオフィスから参加させてもらいました。大変感謝) 前の日の晩に作った無料試用アカウントでデプロイ Go 実装に変更、動作確認 記事を削除したら /initialize しても復活しなくて、初期データを壊してしまったので復旧方法を調査 /var/log/cloud-init-output.log を見て展開イメージの tar.gz を発見したので、中に入っている SQL ダンプでデータを復元 11時 Go 実装に切り替えたところ、スターが付かない不具合があったので、コードを検査、ngrep で調査して原因を特定 ローカルでコードいじるためにホームディレクトリで git init、必要そうなものを add/commit して push ローカル
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 ブログの静的ファイルの配信を Amazon S3 + CloudFront の構成から、Google Cloud Storage へ移行してみました。Google Cloud Storage の方は単体で CDN 付なのでオブジェクトの ACL を一般公開設定にするだけで CDN 部分の設定が不要なのが便利です。 具体的には、Cloud Storage のコンソールで配信したいドメイン名でバケットを作成し、CNAME を c.storage.googleapis.com に向ければよいです。ドットを含む名前でバケットを作成する際は、それがドメインの所有権の確認が済んでいるドメイン以下である
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 DHCP が有効になっている Raspberry Pi は、とりあえずイーサーネットケーブルで繋げば動き始めるという素晴らしい利点がありますが、ディスプレイを繋がないと IP アドレスが分からないのはリモートから操作する際に大変不便です。そこで、マルチキャスト DNS (や類似する NBT: NetBIOS over TCP/IP の名前解決) を使えばこの状況を著しく改善でき、アドレスをどこにもハードコードすることなく名前で機器を管理できるようになりとても良いと思います。 例えば Raspberry Pi のホスト名が raspberrypi のとき、Raspbian を使っているなら、
Windows 8.1 でネットワーク設定をプライベート (同一ネットワークの機器を信頼する設定) にする方法はモダン UI の PC 設定 > ネットワーク で、「デバイスとコンテンツの検索」オプションを有効に設定します。 このオプションが見当たらない方は、ユーザー種別が管理権限を持たない標準ユーザーであるか、ユーザーアカウント制御 (UAC) 設定が「常に通知する」の設定になっている可能性があります。この何れかに当てはまると「デバイスとコンテンツの検索」オプションが表示されなくなるようです。 参考画像 モダン UI はセキュリティ強化により UAC プロンプトを経由した管理者権限の取得が出来ないことは了承できますが、理由を説明することなく設定項目を隠すのは良くないと思います。PC のリフレッシュと再インストール機能も UAC が最高レベルになっていると同じ理由で使用できなくなりますが、
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 ping による疎通は確認できるのに、いざ ssh などで繋ごうとすると No route to host というエラーで即座に接続失敗し途方に暮れる場合、おそらく原因は接続先のホストの iptables によりパケットがブロックされ、到達不能を意味する ICMP パケットが返ってきたことによります。 以下のコマンドで INPUT ポリシーをチェックします。上から順にマッチさせていき、マッチし次第ジャンプして終わるので、デフォルト条件の設定されていそうな一番下の行が肝心です。 # /sbin/iptables -L --verbose を追加してブロックしているポリシーのカウンタを見ながら
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 Facebook Graph API など REST で OAuth 2.0 な API にアクセスする際は素朴な HTTP クライアントがあれば十分と思うので Node.js では最近は request を使っています。 このクライアントを使うにあたり中間者攻撃などを防ぐためオプション strictSSL を true として SSL の証明書の検証を行うことを有効にすることが大切だと思います。しかし残念なことに Node.js v0.8.14 では graph.facebook.com の wildcard 証明書について壊れていますw (#4255) Node.js v0.8.16
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 MS ゴシック, MS Pゴシック などシステムのフォントが利用不能になった場合、本来とは違うフォントにフォールバックされることで IE の設定ダイアログが文字が大きくなって画面からはみ出す感じになったり、Yahoo Japan のページが明朝体になったりするなど、MS ゴシック系のフォント名がハードコードされている画面がことごとくヘンになるようです。この状況では例えば wordpad でもフォント一覧から MS ゴシックが消滅するので、このことを手掛かりにできます。 そのような症状が出ている場合は以下の手順を順にお試しください。 1. スキャンディスクでファイルシステムを修復する そもそ
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 日本年金機構ねんきんネットは現時点ではどういうことかメールアドレスとしてフリーメールが使えません。フリーメールの方がプロバイダのメールや携帯メールのアドレスよりも永続性が高いので、機構側から見ても設定させて不利はない(メールアドレスから身元を割るのが面倒になる?)と思います。また指示通りプロバイダメールなどを入れるとこちらがメールアドレスをアップデートするメンテナンスコストを払うことになるのが面倒です。 そこで良く調べたところドメインのブラックリスト判定が Case-sensitive matching (大文字小文字を区別するマッチング) になっているようなので、うっかりして @gmai
Facebook でメールアドレスで検索される機能をほぼ停止できる待望の新機能が実装されていました。Facebook はこれまでずっと設定項目自体を作らず、検索されることから逃れられない驚嘆の仕様だったのでこれは進歩だと思います。 設定項目は、右上歯車 > アカウント設定 > 共有設定 > メールアドレスまたは電話番号であなたを検索できる人 です。 これは自分をメールアドレスや電話番号で検索可能な人を選べという意味で、デフォルト値は「すべてのユーザー」です。完全に検索不可能にする選択肢は無いようですが、「友達」にしておけば既に友達になっている人を除き検索できなくなるので十分と思います。 ご参考までに、Facebook でメールアドレスからアカウントを検索する機能を使うにはアドレス帳インポート機能を使わずとも、上にある検索窓にメールアドレスを入れれば良いです。 補足 @bulkneets さ
ping による疎通は確認できるのに、いざ ssh などで繋ごうとすると No route to host というエラーで即座に接続失敗し途方に暮れる場合、おそらく原因は接続先のホストの iptables によりパケットがブロックされ、到達不能を意味する ICMP パケットが返ってきたことによります。 以下のコマンドで INPUT ポリシーをチェックします。上から順にマッチさせていき、マッチし次第ジャンプして終わるので、デフォルト条件の設定されていそうな一番下の行が肝心です。 # /sbin/iptables -L --verbose を追加してブロックしているポリシーのカウンタを見ながらブロック状況を観察できます。 # /sbin/iptables -L --verbose おそらく問題となっているのは INPUT ポリシー最下行で全てのパケットにマッチするこういう行です ... -j
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 ポータブル Wi-Fi ルーターに Android 端末を繋いで使っていると、頻繁に自宅に連れ戻される症状に大変困っていました。これは周辺に他のアクセスポイントがない場合に、Wi-Fi 位置情報によりポータブルルーターの位置を引いてしまい、普段ずっと使っている自宅を現在位置と認識するためのようです。 2011/11 に Google により発表された Wi-Fi位置情報システムからのオプトアウト方法 に従って、SSID の変更を 2011/11/16 に行い、オプトアウトの完了を 2012/1/8 に確認しました。位置情報データのアップデートは月に1回程度行われるようです。 SSID の末
先日メモリを増設したら、Memtest86+ は一晩中回してもパスするものの、実用するとランダムなプロセス (主な用途はネット閲覧用なので、Chrome のプロセスが多い) がクラッシュし、30分ほどで STOP エラー(ブルースクリーン) PAGE_FAULT_IN_NONPAGED_AREA, IRQL_NOT_LESS_OR_EQUAL などが出る不安定なマシンになりました。 状況から推測するにメモリの欠陥の可能性が大なのですが、Memtest86+ によるメモリのテストにパスすることで大いに困惑しました。Memtest86+ がよくテストしてくれるのは落ち着いたメモリアクセスでも発覚するメモリの物理構造上の欠陥であって、負荷がかかったときのアクセスタイミングの誤差のような微妙なところはカバーしないテストのようです(?) 結局のところオーバークロッカー御用達のメルセンヌ素数を
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 必要になったので調べていたのですが、himazu blog さんの、STDOUTとSTDERRをファイルにも出力するようにする では、解決していないようなので自分で考えてみました。 これにより、本文中の print 文には一切触れずに、STDOUT (標準出力) と STDERR (標準エラー出力) をこっそりロギングする仕組みを追加でき、STDERR に出る warning も捕捉できるので、とても便利だと思います。 この機能の実現に必要な、ファイルハンドルを多重化するしくみは、CPAN モジュールで、IO::Tee と File::Tee が見つかったのですが、どうやら、File::T
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 最近は新進気鋭の Web Application Framework: Amon2 にも倣って、設定ファイルはPerlでハッシュリファレンスを返すように書いて、それをdoするようにしていて、シンプルで良いなと思っています。 AE_PerlIsm では、さらにブラックリスト追加などをTwitterへのStreming APIの接続を切らずに対応できるように、以下のようにシグナルにコールバック関数を登録する AE::signal 'HUP', \&callback を使って好きな時点で読み込めるようにしてみました。 この変更により、たとえば無名関数で書いたスパム判定ロジックを本体が動作したまま
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 Pyrit などによる総当たり攻撃から、個人用無線LANネットワークを守る方法についての記事です。 GIGAZINE さんの記事 無線LANの WPA / WPA2-PSK を GPU で超高速解析してパスワードを見つけるフリーのオープンソースソフト「Pyrit」 では対策の指針が示されていないので補足してみます。 簡単な対策法 暗号化方式として、WPA2-PSK (AES) を選択し、事前共有鍵 (PSK) として 63文字の鍵を設定します。鍵は安全な場所で管理してください。記憶する必要はありません。 詳細 SSID ステルス機能や、MAC アドレス限定接続機能、プライバシーセパレータな
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 PerlからPayPalのExpressCheckoutを使う方法についての記事です。これからはPayPalの時代が来るという記事を読んで自分でもやってみたくなったので、Sandboxアカウントで実際にやってみました。まだ実際にお金を動かしたりはしていないので、至らない点が多々あると思います。 ExpressCheckoutとは、決済手続きの途中でPayPalにリダイレクトして、その後こちら側のサイトに戻ってから最終決断のボタンを押してもらう方式で、決済完了の情報がきちんと伝わらないみたいな中途半端な状態にはならない方式です。 モジュールの選定 PayPal APIは二種類の形式で使うこと
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 Node.js の本体の API にある、http.createServer を使って、ファイルの内容 (Readable Stream) を Class: http.ServerResponse (Writable Stream) に対して随時書き込んで、/dev/urandom から湧き出てくるランダムバイナリをストリーミング出力するとても有意義なサーバーを作ってみました。 以下のコードを node hogehoge.js という感じで実行して、適当に http://localhost:10001/ みたいなアドレスに対して HTTP でアクセスすると、バイナリデータを延々と返してくれ
今更ながらjQuery 1.4からの新機能のプロパティ指定つきDOMエレメント生成は、こんな風に使えて便利です。 $('<p />', { id: 'sample123', 'class': 'sample-class', text: '内容はないよう(>_<)', css: { color: 'black', background: '#ccf' }, click: function () { alert('clicked'); } }).appendTo('body'); 解説 特別な意味を持つプロパティ、上記の場合 text, html, css, click以外のid, classはattrとして扱われます。 classは予約語なのでクオートが必要です。 この機能を使わないで書くなら: $('<p />') .attr({ id: 'sample123', 'class': 'sa
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 現状 Windowsに付属している唯一のDNSトラブルシューティングツールnslookup.exeは、ドキュメントが不足しているせいで、本来あるべき姿に比べてあまりにも活用されていない状況です。 この記事では、いちいちうざったい対話的インターフェースじゃなくて、コマンドラインインターフェイスの方について使用例を書きます。 基本編 8.8.8.8はGoogleの提供するDNSサーバーなので、必要に応じてISPのDNSサーバーや、DNSコンテンツサーバー(権威サーバー)などに読み替えてください。 nslookup example.com サーバーを指定しなければ、既定のDNSサーバーに問い合わ
Coro とは、AnyEvent、JSON::XS で有名な Marc Lehmann 作の、Perlにおいて、協調型スレッド(簡単な方のスレッド) を実現して、背後で AnyEvent が仕事をしながら、プログラマ側からは今までのブロッキング方式と思って書けるようにするためのモジュールです。 本体に同梱されている Coro::Specific というモジュールを使うと、今まで fork システムコールで多重化していた Net::Server のような、サーバーのインスタンスが1つで、それぞれのクライアントがプロパティをちょこっと書き換える型のサーバーを Coro 化するのに役に立ちます。 実際に、Coro における PSGI サーバー実装である Corona で使っている、Net::Server::Coro では、以下のようにして特定のプロパティをコルーチンごとに別々に設定できるようにし
インターネット、Go、JavaScript、Python、Perl によるプログラミング、ISUCON、Windows、Raspberry Pi など、興味のある事について気まぐれに記事を書いています。 Perl関係のツイートをリツイートするうざいボット @AE_PerlIsm を動かして得られた知見についての記事です。 キーワードを含んだツイートは、Twitter Streaming API を AnyEvent からいい感じで取得できる AnyEvent::Twitter::Stream で取得しているのですが、この接続が12~24時間に1回くらい切られるようなので、再接続処理が必要だと思います。 そのコードは以下のような感じでやっています。 注意点は、 接続状態から切れた時は wait なしで再接続する。 接続成功は、30秒おきに届く on_keepalive で判明する場合もある。
目的DateTime が便利なので、DateTime::Format::* で、Streaming API で流れてくる、こういう表記 "Fri Jan 22 13:52:17 +0000 2010" を上手くパースしたい。 この表記方法は、古き良き時代を感じさせるC言語の ctime() に由来するものであるとのこと。日付の表記に関するノート 現状DateTime::Format::HTTP, DateTime::Format::Mail は失敗。 ただし、+0000をUTCとかGMTに置換すればDateTime::Format::HTTPでOK DateTime::Format::DateParse は成功。これを使うべき。 DateTime::Format::Strptime で自作しても可 (DIY派専用) コード use DateTime::Format::DateParse;
次のページ
このページを最初にブックマークしてみませんか?
『hidekiy blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く