タグ DSAS開発者
人気順 10 users 50 users 100 users 500 users 1000 usersDSAS開発者の部屋:生活を「不自由」にするためのソリューション
自分の自由を拘束してみることの価値 生活をより便利にするための製品やサービスの開発と普及が加速しています。新しいものは大いに活用したいところですが、一方で利便性への過剰な没入はしばしば怠惰・依存・不健康といった負の要素と背中合わせであることにも注意しておきたいものです。 近年、スマートホーム等のキ... 続きを読む
DSAS開発者の部屋:MySQLの新認証方式について
MySQL 5.6 で新たな認証方式 sha256_password が追加され、 MySQL 8 ではその改良版となる caching_sha2_password が追加されました。詳しくは MySQL 8.0.4 : New Default Authentication Plugin : caching_sha2_password を参照してください。 これらは従来の native_password 方式よりも安全とされています。 3つの認... 続きを読む
DSAS開発者の部屋:Go のライトバリアに関するバグを修正した話
Goのランタイムのバグを踏んで解決しました。解決までの過程を記事にします。 同じようなランタイムのバグを踏んで、小さい再現コードを作れない場合の参考にしてください。 自分のプログラムを疑う あるSlackチャンネルで Go で書かれたサーバーのクラッシュが話題になっているのを見つけました。その時に共有してもら... 続きを読む
DSAS開発者の部屋:ISUCON 8 予選で惨敗しました(リュウグウ)
@methane です。とうとうISUCON予選敗退を経験してしまいました。 めちゃんこ悔しいです。 16:20には6万点台を出し、そこからはトップ争いを続けて17:47には10万点台を叩き出したものの、その後は2万点台しか出なくなり終了してしまいました。 それまでは調子の悪いときでも数回ベンチをしていれば少なくとも4万点台には... 続きを読む
DSAS開発者の部屋:最近のPython-dev(2018-06)
バックナンバー: 2018: 1月 | 4月 2017: 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 8月 | 9月 | 12月 Python 3.7 日本時間の6/28に Python 3.7 がリリースされました。 終盤に駆け込みで2つ大き目の変更が入りました。 Unicode 11 対応 ASTの変更の revert Unicode 11 はデータの更新だけなので危険が少ないし、1.5年後の3.8... 続きを読む
DSAS開発者の部屋:Re: Configuring sql.DB for Better Performance
Configuring sql.DB for Better Performance という記事を知りました。 コネクションプールの大きさを制御する3つの設定を丁寧に解説されたとても良い記事です。 しかし、この記事で推奨されている設定については同意することができません。私が推奨する設定とその理由を解説していきたいと思います。 Limit ConnMaxLifetime instead of MaxI... 続きを読む
DSAS開発者の部屋:Pythonアプリの起動を高速化する
pipenv 9.0.2 のリリースでCLIの大幅な高速化をしたというアナウンスを見かけました。 Just released Pipenv v9.0.2, which includes massive CLI speedups! https://t.co/AGD8Hkq1EG — Kenneth Reitz 続きを読む
DSAS開発者の部屋:mruby を Linux カーネル内で動作させる(2017 ver)
このエントリは KLab Advent Calendar 2017 (兼 mruby Advent Calendar 2017 )の 12 日目の記事です。 今年は(前半は)Keepalived にフルタイムでコントリビュートしていたり(後半は)ひたすら mruby をいじっていたりと、実に OSS 充な一年だった @pandax381 です。 タイトルにある試みについては、2015 年の時点で東... 続きを読む
DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
「推測するな計測せよ」という格言がよく知られています。この格言は(ISUCONに優勝した)Goの作者の一人でもある、 Rob Pike 氏の言葉が元になっています。 ルール1: プログラムがどこで時間を消費することになるか知ることはできない。ボトルネックは驚くべき箇所で起こるものである。したがって、どこがボトルネックなのかをはっきりさせるまでは、推測を行ったり、スピードハックをしてはならない。 ル... 続きを読む
DSAS開発者の部屋:LVSの高負荷対策 その2 ~障害の再現とその原因~
こんにちは。インフラ担当の岡村です。 「 LVSの高負荷対策 その1 ~障害発生~ 」の記事で、大量のSYNパケットを受信した際にロードバランサの再起動が発生したことと、その緊急の対策についてご紹介しました。 今回は、再現確認を行い判明した再起動の原因と、LVSに備わっている高負荷対策の機能についてご紹介します。 検証 前回ご紹介した通り、障害発生時のログからメモリ周りが怪しそうでした。 そこで、... 続きを読む
DSAS開発者の部屋:最近のPython-dev(2017-04)
バックナンバー: 3月号 2月号 1月号 NEWS (changelog) の作り方 Mercurial時代からNEWSファイル (changelog) の扱いは面倒だったのですが、Githubに移行したことでよりコンフリクトが起こりやすくなり面倒さに拍車がかかりました。 また、コンフリクトせずに間違った状態でマージされるというかなり致命的な事故も起こってしまっています。 (ワークフローが che... 続きを読む
DSAS開発者の部屋:Consulを試してみました
はじめに KLabさんの協力会社として一緒にお仕事をさせて頂いておりますクラスターコンピューティングと申します。今回はSerfの同様にHashiCorpより提供されているConsulを試してみました。 コンテナなどによるクラスタ環境ではそのホスト名やIPアドレスはDHCPなど利用して動的に決められることが多いと思います。その結果、そのコンテナ上で動作するサービスの設定ファイルなども動的に作成する必... 続きを読む
DSAS開発者の部屋:最近の Python-dev (2017-01)
@methane です。 compact dict が Python 3.6 が9月(ベータになる直前)にマージされ、それのおかげで推薦をもらい 10月ごろから Python の Core Developer になりました 。 「PythonのフルタイムコミッタとしてKLabに雇われている」という訳ではないのですが、 もともと自己裁量で業務時間の大半をOSSへの貢献やコードを読むことに費やし、特に... 続きを読む
DSAS開発者の部屋:さよなら Parse
はじめに 世界中の利用者の指先と視線を凝固させた突然の発表からまもなく 1年、 Parse.com の全サービスが いよいよ 2017年1月28日(土)に 終了 します。拡張性が高く高機能でありながら使い勝手の良い優れたサービスだったので終息が惜しまれます。 https://parse.com/ 手元では 2年ほど前に IoT の実験として試作した以下のしくみ「Anpi」で Parse.com を... 続きを読む
DSAS開発者の部屋:ラズパイで作るネットワークエミュレータ(前編)
ネットワークが絡んだ通信プログラムを開発していると、テストのために遅延やパケロスを意図的に発生させたくなることがあります。いまどきは IDE にネットワークエミュレーション機能が組み込まれていたり、仮想環境で容易に再現できたりもしますが、箱物のネットワークエミュレータがあるとネットワークの構成を気にせずカンタンに設置できるのですごく便利だったりします。世の中にはそういった製品が沢山あるので安価なも... 続きを読む
DSAS開発者の部屋:ネットワーク対応の光通知デバイスを自作してみる
「blink(1)」のこと コードネームのような製品名ですが、「 blink(1) 」は KickStarter 発 のカスタマイズ可能な USB デバイスです。接続先の機器やネットワークから所定の情報を受けとると LED 光の色や明滅により人間への通知を行うもので、2012年に製品化され 2013年には IFTTT との連携機能を強化した blink(1) mk2 がリリースされています。 文字... 続きを読む
DSAS開発者の部屋:今、ワンボタンの IoT デバイスが面白い
米アマゾンが 2015年3月31日に発表した「Amazon Dash Button」はボタンを押すだけで所定の日用品のオーダーを可能とする小さなデバイスです。電池交換は不可。アイテムごとに専用のデバイスが用意されています。 アマゾンの「ダッシュ・ボタン」、エイプリル・フールではない(2015-04-01) - jp.wsj.com Amazon.com、日用品をボタン1つで注文できる小型機器「Da... 続きを読む
DSAS開発者の部屋:VirtualBoxのファイルシステムを10倍速くする 〜 page cache編 〜
vboxsfを速くするために頑張る記事の2本目です。 前回は、findコマンドが遅いことを調べ、速くすることができました。 今回は、VirtualBoxのファイルシステムvboxsfと、VMWareのファイルシステムvmhgfsの違いをもっと調べていきます。 vboxsfとvmhgfsの速度を比較している記事としては、Comparing Filesystem Performance in Virt... 続きを読む
DSAS開発者の部屋:VirtualBoxのファイルシステムを10倍速くする ~ find編 ~
もう、あって当たり前というところまで浸透してきた仮想環境、みなさまは何をお使いでしょうか? 私の周辺ではVirtualBoxがよく使われています。 典型的な使い方としては、 以下のような感じです。 ホストOSには、mac/windowsをつかう ゲストOSには、Linuxを使う 共有フォルダを使って、ホストとゲストでファイルを共有する その中でも地味に重要なのが共有フォルダ。 共有フォルダとは、ホ... 続きを読む
DSAS開発者の部屋:ISUCON5 予選通過しました (@methane編)
9/27 の ISUCON 予選2日目に参戦してきました。 KLab から参加した6チームのうち予選通過できたのは私が率いる lily white だけ、それも通過組の中で下から3位とかなり厳しい結果になってしまいました。 本格的な練習は新人が予選で ISUCON の難しさを実感してからにしようと思っていたのですが、今年は予選のレベルが想像以上に上がっていて、 お題のアプリも本戦さながらの規模、複... 続きを読む
DSAS開発者の部屋:Go ではエラーを文字列比較する?という話について
Go で関数の戻り値のエラーを判別するときに、エラーメッセージの文字列をチェックするコードが存在します。 (例) これは、 Go が言語設計としてエラー処理が貧弱だったり、標準ライブラリがエラー処理を軽視しているからでしょうか? 言語設計や標準ライブラリのAPIの設計をみて行きましょう。 TL;DR 言語設計としては、Java的例外機構と同等以上の(文字列比較によらない)エラー検査が可能 ただし ... 続きを読む
DSAS開発者の部屋:Goでアロケーションに気をつけたコードを書く方法
GoはPythonのようなLLと比べると実行速度は速いのですが、GCは特別速いわけではないので、相対的にGCがパフォーマンスに与える影響は大きくなります。 また、Java に比べると、一時オブジェクトなどのために頻繁にヒープアロケーションを行うとGCの停止時間が長くなりがちですが、一方でヒープアロケーションを避けたプログラミングがしやすい言語でもあります。 MySQL ドライバのような低レイヤーの... 続きを読む
DSAS開発者の部屋:Goのdatabase/sql.Stmtのスケーラビリティを改善しました
先日、 Goに初めて私のパッチが取り込まれ 、コントリビュータに仲間入りしました。 このパッチは、 database/sql.Stmt をヘビーに使った時に性能がだいたい16コア以上のコア数にスケールしないという問題を解決するものです。 こういった問題をどうやって調査するのかと、Goにパッチが取り込まれるまでの手順を紹介します。 背景 私は TechEmpower の FrameworkBench... 続きを読む
DSAS開発者の部屋:Dropbox アカウントひとつで利用できるプッシュ通知機構
Dropbox 社は広く知られるファイル系のサービスとは別に 2013年より非ファイル形式の構造化データの保存・読み出しに対応するデータストアサービスを公開しており、Dropbox アカウントを持っていれば Dropbox Datastore API 経由でこのサービスを利用できます。同 API は全体的にシンプルで SDK のサポート範囲も広いため自作のソフトウェアへ手軽に組み込むことが可能です... 続きを読む
DSAS開発者の部屋:ISUCON4 予選で workload=5 で 88000点出す方法 (lily white 参戦記)
ISUCON4 予選1日目に、 lily white というチームで参戦してきました。 試合中に 62000 点は出していたのですが、最終的に提出したスコアは 60344 点でした。 以降、予選終了までと、その後に気づいたさらにスコアを上げる方法について書いていきます。 実際の提出時のコードは methane/isucon4q-go リポジトリの "final" タグを見てください。 準備 (~前... 続きを読む