タグ

ブックマーク / dsas.blog.klab.org (77)

  • OpenSSH クライアントの proxy -- 踏み台サーバを経由しての ssh : DSAS開発者の部屋

    DSAS のメンテナンスは,基的に ssh を使ったリモートメンテナンスで済んでしまいます.夜中や休日に非常事態が起こったとしても,ネットワーク接続さえ確保できればその場で対応できます.ただ,さすがにインターネットから DSAS に直接 ssh できる様にしておくのは一抹の不安があります.ですので,DSAS への ssh 接続は社内のサーバからのみ許すようにしておいて,外からログインする必要があるときは一旦社内のサーバを経由することにしています. このような形にしている場合,DSAS にログインしようとする際は,一旦社内のサーバに ssh 接続する必要があって,小さなことですが一手間かかってしまいます.できればワンステップで接続できる方法が無いかと思って色々検索してみた(※)ところ,このページで ProxyCommand という設定項目を見つけました(見つけたのがボスの個人サイトなのは

    OpenSSH クライアントの proxy -- 踏み台サーバを経由しての ssh : DSAS開発者の部屋
    hiroomi
    hiroomi 2021/07/11
  • MySQLの新認証方式について : DSAS開発者の部屋

    native_password authentication_string カラムの内容は、 native_password が salt なしの純粋な SHA1(SHA1(password)) の先頭に、 MySQL 4.1 以前の形式と区別するための目印として "*" をつけたものです。 mysql> create user t3 identified with 'mysql_native_password' by 'password'; Query OK, 0 rows affected (0.20 sec) mysql> select Host,User,plugin,authentication_string from mysql.user WHERE User='t3'; +------+------+-----------------------+--------------

    MySQLの新認証方式について : DSAS開発者の部屋
    hiroomi
    hiroomi 2019/01/23
  • 安価な NFC タグで秘密情報を安全に携行する試み : DSAS開発者の部屋

    はじめに 最近 NFC まわりの調査と実験を行っています。切り口が多く奥の深い技術ですが、NFC タグ製品について調べている過程で現在もっとも広く出回っている NXP Semiconductors 製の「NTAG21x」シリーズ (ISO/IEC 14443 Type A: MIFARE Ultralight) に実装されている興味深いアクセス制御機構を知りました。 NTAG213_215_216: NFC Forum Type 2 Tag compliant IC with 144/504/888 bytes user memory - www.nxp.com データシート (PDF) NFC タグの一般的な「手軽さ」とは裏腹に、扱いを誤るとタグがあっさり使用不能になるリスクと背中合わせであるためか今のところこの機構に言及した記事やアプリケーションはあまり見かけません。しかし、仕様を理解

    安価な NFC タグで秘密情報を安全に携行する試み : DSAS開発者の部屋
    hiroomi
    hiroomi 2018/01/27
  • Pythonアプリの起動を高速化する : DSAS開発者の部屋

    pipenv 9.0.2 のリリースでCLIの大幅な高速化をしたというアナウンスを見かけました。 Just released Pipenv v9.0.2, which includes massive CLI speedups! https://t.co/AGD8Hkq1EG — Kenneth Reitz 🐍 (@kennethreitz) 2018年1月16日 興味を持ってすぐに試してみたのですが、あまり速く感じられませんでした。そこで Python 3.7 の新機能を使って速度を調査することにしました。 この記事ではその新機能と実際の使い方を紹介します。 起動時間 ≒ import時間 pipenv -h のようなコマンドの実行時間は、実際にヘルプメッセージを表示するための時間よりもずっと長くなります。 アプリケーションが起動するときには、設定ファイルの読み込みなど一定の処理が必要

    Pythonアプリの起動を高速化する : DSAS開発者の部屋
    hiroomi
    hiroomi 2018/01/24
    “起動時間 ≒ import時間”
  • ログからは見えてこない高負荷サイトのボトルネック : DSAS開発者の部屋

    ちょうど1年前に「高負荷サイトのボトルネックを見つけるには」という記事を掲載していますが、この手のトラブルシューティングって結構大変で悩ましいですよね。はじめまして、新入りの@pandax381です。 ログからは見えてこないもの 「サイトの応答が遅い」という問題が発生した場合、その原因はどこにあるでしょうか。 Webアプリケーションの処理に時間が掛かっている DBサーバに投げたクエリーの応答が遅い サーバの処理能力を超えている などなど、いくつもの可能性があります。通常、上に挙げているような問題は、アプリケーションやサーバのログを調査することで、原因を突き止めることができます。 一方で、こういったログの調査だけでは、その原因にたどり着くことができなかったり、相当な苦労が伴うケースもあります。 あるサイトのある日の出来事 つい先日のことですが、KLabの運営している某ソーシャルゲームにて、サ

    ログからは見えてこない高負荷サイトのボトルネック : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/09/07
    “TCPレイヤで発生した再送を検出するプログラムを作りました。 ・TCPセッションモニタ「tcpeek」”
  • 音を利用する 2 〜Android デバイスでの音波通信:準備編〜 : DSAS開発者の部屋

    音を利用する 1 この記事の内容 前回の記事では音を媒体とする機器間の情報通信が近年ふたたび注目されていることに触れ複数の具体的な事例を挙げました。近距離通信手段としての音波の利用には技術的好奇心をそそられますが、それをどのように形にすればよいのかは案外ピンと来ません。そこで、Android デバイスを題材に手元で行った音波通信の実験と試作の内容をこれから何回かに分けて紹介します。今回は準備編として実装に必要な要素の整理を行います。 準備 1. Andorid での音声入出力処理を覚える 入力:AudioRecord クラス 出力:AudioTrack クラス 試作 処理のイメージ 動作の様子 ソースコード 準備 2. 任意の周波数の音波を生成・出力する サイン波について サンプリングレートについて 試作 動作の様子 ソースコード スプレッドシートを使っての検証 準備 3. 集音したデータ

    音を利用する 2 〜Android デバイスでの音波通信:準備編〜 : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/06/04
  • 最近のPython-dev(2017-04) : DSAS開発者の部屋

    バックナンバー: 3月号 2月号 1月号 NEWS (changelog) の作り方 Mercurial時代からNEWSファイル (changelog) の扱いは面倒だったのですが、Githubに移行したことでよりコンフリクトが起こりやすくなり面倒さに拍車がかかりました。 また、コンフリクトせずに間違った状態でマージされるというかなり致命的な事故も起こってしまっています。 (ワークフローが cherry-pick になったためにマージ時に履歴が考慮されなくなったのか、それともMercurialよりもGitの方がマージがバカなのか、詳細は把握してません。) それで、1つの大きなNEWSファイルにエントリを追記していく代わりに、1つのエントリだけを含む小さいファイルを追加していき、ツールでそれらのファイルからNEWSファイルを生成する仕組みへの移行が急務となり、ツールの選定のためにコンペが行わ

    最近のPython-dev(2017-04) : DSAS開発者の部屋
  • Python2.x/3.0のunicode内部表現について : DSAS開発者の部屋

    イントロ Python2.6/3.0共にRC版がリリースされ、正式リリースが近づいて来ました。Python3.0の大きな変更の一つが、 Python2.xのstrとunicodeがunicode文字列のstrに統合され、従来のstrの代わりにbytesを導入することで、バイト列と文字列が明確に分けられたことです。 現在、Python2.5では、unicode文字列の内部表現がucs2のものとucs4のものがあり、それぞれの間では拡張 モジュールの互換性がなくなっています。Python2.6/3.0でこの状況がどう変化するのか調べてみました。 Python2.xのunicode内部表現について Python2.5/2.6では、configureオプションに、--enable-unicode=ucs[24] というものがあり、デフォルトでは2になっています。 また、FedoraやUbuntuの

    Python2.x/3.0のunicode内部表現について : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/04/17
    “Python2.5も同じくサロゲートペアに対応しています。”テスト書きましょう。
  • MegaRAID上でのSSDのSecure Erase : DSAS開発者の部屋

    はじめに KLabさんの協力会社として一緒にお仕事をさせて頂いておりますクラスターコンピューティングと申します。今回はMegaRAID上でSSDに対してATA Security Eraseを実行する方法について調べてみました。 サーバの廃棄や転用時にディスクドライブの内容を消去し回復不可能な状態する手段としてはShredコマンド等よるディスク全体を(複数回)上書きする方法があります。しかしSSDの場合、その仕組みがHDDと大きく異なるためでこの方法では搭載されているNANDメモリ上のデータを全て消去できない可能性が指摘されています(参考文献)。また転用する場合は、上書き処理によりSSDの寿命を縮めてしまうことも問題です。 SSDのNANDメモリ上のデータを完全に消去し、かつ寿命にも影響をあたえない手段としてATAコマンドのSecurity Eraseを利用する方法があります。今回はMega

    MegaRAID上でのSSDのSecure Erase : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/03/16
  • 最近の Python-dev (2017-03) : DSAS開発者の部屋

    バックナンバー: 2月号 1月号 Python 3.6.1rc1 Python 3.6.1rc1 がリリースされました。大きな問題がなければ 3.6.1 は 3/20 にリリースされる予定です。 3.6.1 は Github に移行してから初めてのリリースになります。なにか問題がないか確認するために、いつものRC版以上にソース形式・バイナリ形式両方の配布物のテストが必要なので、可能な方は協力をお願いします。 Github 移行後日談 以降から1ヶ月が経ちました。開発者からのフィードバックはおおむね好評です。私は、気軽にプルリクエストをくれた人がCLAにサインしないまま放置して大量のマージできないプルリクエストが貯まることを懸念していたのですが、今までののところそれも大丈夫そうです。 一方で Misc/NEWS といういわゆる changelog にあたるファイルが頻繁にコンフリクトを起こし

    最近の Python-dev (2017-03) : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/03/16
  • 最近の Python-dev (2017-02) : DSAS開発者の部屋

    バックナンバー: 最近の Python-dev (2017-01) 新しいコア開発者 主にドキュメントの改善について継続的に活動されていることが評価されて、 Mariatta さんがコア開発者に加わりました。 僕は大きなパッチで目立ってコア開発者になってしまったので、このBlogの読者に間違った印象を与えてしまわないように強調しておきたいのですが、コア開発者に重要なのは他のコア開発者と協調してルールを守って貢献することです。 小さい簡単な修正や他人の pull request のレビューなどでも、継続的にコア開発者とやりとりする機会があれば、結構簡単にコア開発者になれるはずです。 後述する Github 移行によって敷居が下がったはずなので、この記事を読んでくださっている方もぜひ狙ってみてください。 Github 移行 2/11 (アメリカ時間なので日では2/12)に、Python のリ

    最近の Python-dev (2017-02) : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/02/16
  • Consulのおもしろそうな仕組みについて調べてみました : DSAS開発者の部屋

    はじめに KLabさんの協力会社として一緒にお仕事をさせて頂いておりますクラスターコンピューティングと申します。今回はSerfの同様にHashiCorpより提供されているConsulを試してみました。 コンテナによるクラスタなど随時サービスが追加削除されるような環境ではそのアドレスはDHCPなどにより動的に決定されます。コンテナ名などでそのサービスにアクセスできれば便利ですが、動的なアドレスとコンテナ名の関係をどのように解決するかという点が問題になります。クラスタ内でロードバランサやリバースプロキシ等を利用している場合、サービスの追加に応じてその設定ファイルも動的に更新しなくてはなりません。また、構成が随時変化するなかで、現在どのサービスがどのホストで実行されているかということを把握する必要もでてきます。 Consulを利用することによりこれらの問題を解決することができます。今回はそのため

    Consulのおもしろそうな仕組みについて調べてみました : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/02/13
  • 最近の Python-dev (2017-01) : DSAS開発者の部屋

    @methane です。 compact dict が Python 3.6 が9月(ベータになる直前)にマージされ、それのおかげで推薦をもらい 10月ごろから Python の Core Developer になりました。 「PythonのフルタイムコミッタとしてKLabに雇われている」という訳ではないのですが、 もともと自己裁量で業務時間の大半をOSSへの貢献やコードを読むことに費やし、特にこの3ヶ月位は Python ばかり触っていたので、実質的には近い状態です。 そちらでの活動をあまり日で共有する機会がないので、 Money Forward の卜部さんが書かれている 最近の ruby-core という記事をリスペクトして、 最近の Python の開発状況を紹介する記事を書いてみたいと思います。 Python 3.6 リリース 12/23 に Python 3.6 がリリースされ

    最近の Python-dev (2017-01) : DSAS開発者の部屋
  • さよなら Parse : DSAS開発者の部屋

    はじめに 世界中の利用者の指先と視線を凝固させた突然の発表からまもなく 1年、Parse.com の全サービスが いよいよ 2017年1月28日(土)に終了します。拡張性が高く高機能でありながら使い勝手の良い優れたサービスだったので終息が惜しまれます。 https://parse.com/ 手元では 2年ほど前に IoT の実験として試作した以下のしくみ「Anpi」で Parse.com を採り入れました。 mbed と Parse で作る高齢者世帯安否確認システム - 当ブログ 一般に BaaS の主な目的はアプリケーションの対向サーバ側機能を代替・補完することにあり、サーバの管理運用やサーバ側コード開発に踏み込むコストを抑制しアプリ体の開発に注力可能となることが利用者にとってのメリットですが、Parse にはサーバ上でユーザコードを実行することのできる「Cloud Code」というし

    さよなら Parse : DSAS開発者の部屋
    hiroomi
    hiroomi 2017/01/20
  • 新しい Amazon Dash Button に「マイク」が残されている理由 : DSAS開発者の部屋

    昨年以下の記事でピックアップした「Amazon Dash Button」が 2016年12月5日に日国内でもリリースされ話題を集めています。 今、ワンボタンの IoT デバイスが面白い (2015-11-06) - dsas.blog.klab.org Amazon.co.jp での販売開始からほどなく Button の多くが品切れとなり 12月22日現在も入荷待ちの状態が続いています。 このデバイスを実質無料で配布する巨大多国籍企業 Amazon のパワーは凄まじいですね。 新旧 Dash Button の違い 現在提供されている Dash Button は 2015年に米国でデビューしたオリジナルとは異なるものです。上のブログ記事でも触れた Matthew Petroff 氏のサイトには新旧 Button それぞれについて詳細かつ網羅的な興味ぶかい記事が掲載されています。 (旧) A

    新しい Amazon Dash Button に「マイク」が残されている理由 : DSAS開発者の部屋
    hiroomi
    hiroomi 2016/12/22
  • Linuxの断末魔の叫び(kernel oops)をリモートホストで採取する方法 : DSAS開発者の部屋

    Linuxには、kernl oopsが出た場合に自動的にrebootできる仕組みがあります。 この機能を使えば、OSが不意に停止してしまった場合に自動的にrebootしてサービスを再開することができます。 ただ、kernelメッセージは障害原因特定のヒントになりうるので採取できた方が好ましいのですが、自動rebootの場合はコンソールなどに出力されているかもしれないkernelメッセージを採取することができません。 というわけで、今回はkernel 2.6で実装されたnetconsoleを使い、kernel oops発生時にそれを記録しつつ自動rebootする方法を紹介したいと思います。 まずは、kernel oopsが発生した場合、動作を継続するのではなくkernel panicになるようにするのと、kernel panicが発生したらrebootするように設定します。 この設定は/pr

    Linuxの断末魔の叫び(kernel oops)をリモートホストで採取する方法 : DSAS開発者の部屋
    hiroomi
    hiroomi 2016/10/19
    "シリアルコンソールが役に立たないような問題をデバッグできるように、UDP 経由でカーネル printk メッセージを記録します。"
  • ラズパイで作るネットワークエミュレータ(後編) : DSAS開発者の部屋

    前編で紹介したネットワークエミュレータ「PackDrop」のプロトタイプですが、雑に作ったわりに評判が良く予想外に需要が出てきてしまったので、ちゃんと業務での利用に耐えられる「量産型」を製作しました。 前回の記事がややウケで気を良くしています。@pandax381です。 機能追加 プロトタイプを作成してから暫くのあいだ試験運用してみたのですが、実際に使った方々からいつくか要望を受けました。 パケットをバーストロスさせるためのスイッチが欲しい 一定時間、連続的にパケットが消失するバーストロスを再現するときに「パケロスのボリュームを100%まで回してまた戻す」という作業が面倒なので、専用のスイッチを設けて欲しい。 稼働状況がわかるようにLEDをつけて欲しい 試験用のパラメータを設定したまま元に戻すのを忘れてしまい「あれ、なんか今日ネット遅くね?」という事案が多発したので、遅延・パケロスが設定さ

    ラズパイで作るネットワークエミュレータ(後編) : DSAS開発者の部屋
  • ラズパイで作るネットワークエミュレータ(前編) : DSAS開発者の部屋

    ネットワークが絡んだ通信プログラムを開発していると、テストのために遅延やパケロスを意図的に発生させたくなることがあります。いまどきは IDE にネットワークエミュレーション機能が組み込まれていたり、仮想環境で容易に再現できたりもしますが、箱物のネットワークエミュレータがあるとネットワークの構成を気にせずカンタンに設置できるのですごく便利だったりします。世の中にはそういった製品が沢山あるので安価なものを買ってもいいのですが、新たにラズパイが届いたばかりだったので、これを使って超小型のネットワークエミュレータを自作してみました。前編と後編の二回に分けて紹介します。 最近、社内で「ラズパイおじさん」と呼ばれるようになりました。@pandax381 です。 ラズパイ + Linux = ネットワークエミュレータ 「ネットワークエミュレータを自作」と言うとなんだか凄そうな感じがしますが、実はものすご

    ラズパイで作るネットワークエミュレータ(前編) : DSAS開発者の部屋
    hiroomi
    hiroomi 2016/04/06
    “社内で「ラズパイおじさん」と呼ばれるようになりました”
  • ネットワーク対応の光通知デバイスを自作してみる : DSAS開発者の部屋

    blink(1)」のこと コードネームのような製品名ですが、「blink(1)」は KickStarter 発のカスタマイズ可能な USB デバイスです。接続先の機器やネットワークから所定の情報を受けとると LED 光の色や明滅により人間への通知を行うもので、2012年に製品化され 2013年には IFTTT との連携機能を強化した blink(1) mk2 がリリースされています。 文字の情報は人間が意識的にそこに向き合わなければ伝わらず、音の情報は状況により場の環境を乱す可能性があります。一方、「光」による情報はそれが適度な明るさであれば他の何かを妨げることなく人間の視界へ届き自然に認識され得ます。そのことを応用した例は他にも見られますが、blink(1) もまた光の特性を活かした機器のひとつです。 ※詳細なレポートが GIGAZINE 様の以下の一連の記事に掲載されています。 新着

    ネットワーク対応の光通知デバイスを自作してみる : DSAS開発者の部屋
    hiroomi
    hiroomi 2016/01/03
  • 今、ワンボタンの IoT デバイスが面白い : DSAS開発者の部屋

    米アマゾンが 2015年3月31日に発表した「Amazon Dash Button」はボタンを押すだけで所定の日用品のオーダーを可能とする小さなデバイスです。電池交換は不可。アイテムごとに専用のデバイスが用意されています。 アマゾンの「ダッシュ・ボタン」、エイプリル・フールではない(2015-04-01) - jp.wsj.com Amazon.com、日用品をボタン1つで注文できる小型機器「Dash Button」(2015-04-01) - itpro.nikkeibp.co.jp 当初 Dash Button の利用は招待制でデバイスは無料で配布されていました。その後$4.99 での販売に変更され、2015年9月に米アマゾンは Dash Button ビジネスの拡大方針を決定しています。好調のようです。 Amazon.com、ボタン1つで商品購入できる「Dash Button」を実質

    今、ワンボタンの IoT デバイスが面白い : DSAS開発者の部屋
    hiroomi
    hiroomi 2015/11/06