iwiwi 備忘録

学んだことを殴り書きます。自分向けのメモです。

PyCharmを使いこなしたい

  • shift 2回押し:search everywhere
  • alt+enter:警告が出ているところで修復(自動import、initでself.hogeにコピー)
  • command+shift+A:ランチャー的なモノ起動
  • F1:quick documentation
  • Shift+F1:external documentation(ブラウザ)
  • Command+B:定義に飛ぶ
  • Ctrl+Shift+R:実行

https://www.jetbrains.com/help/pycharm/2016.1/keyboard-shortcuts-you-cannot-miss.html


その他

  • live templatew を見ておくとよいかもしれない
  • Python console でスタート時に先に実行するスクリプトをかいとける
  • extraction 便利そう
  • ディレクトリのとこで右クリックして find in path
  • ソースコードを右クリックして find usages

www.youtube.com

www.youtube.com

Python でのデータ処理パイプライン

統計的処理、特徴量抽出、機械学習の訓練・予測のパイプラインを上手く扱いたい。

  • scikit-learn:パイプラインがあるが、キャッシュしたりできない。
  • joblib:scikit learn と仲良し(バンドル)。キャッシュしたりする機能がある。
  • maf:求めているものに近いと思うけど、メンテされているのだろうか

並列・分散処理

  • Celery:古そうに見えたが今も使われているようだ
  • RQ http://python-rq.org/
  • Dask:EC2ともくっついていてよさそう。joblib フロントエンドがあるがこれは使い物になるのか。なったらとても便利かも。
  • mesos:期待していたが、Python のコードがパット見で触れたくない感じだった(Python2だしlowerCamelCaseだし)

リバーストンネル + autossh で ssh 開通

状況

  • マシン A に ssh したい
    • でも,マシン A はネットワークの内側にあって,外から ssh できない
  • マシン B は外から ssh できる
    • マシン B からマシン A に ssh できない
    • マシン A からマシン B に ssh できる

解決法

マシン A の crontab に以下を書いておく

@reboot /usr/bin/autossh -f -N <ほげほげ> -i <ぴよぴよ> -R 10022:localhost:<ふがふが>

これで,マシン B で以下を打てばマシン A に入れる.

ssh -p 10022 localhost

注意

ssh で使う鍵にパスフレーズがかかってると当然ながら失敗する.パスフレーズ無しの鍵を用意することになる.

CTF for ビギナーズ 2015

社長から資料を貸してもらったのでメモだけ取って返す.

バイナリ

書籍など

ネットワーク

  • 問題の種類:キャプチャしたものを渡される場合と,自分でキャプチャする場合があるfilter, follow tcp streams, export object, statistics?のかな?
  • Wireshark
  • filter, follow tcp streams, export object, export selected packet bytes, statistics

書籍

  • マスタリング TCP/IP 入門編
  • 実践パケット解析

Webサイト

Web

調査

攻撃

  • SQL インジェクション
    • ' と --
    • UNION 句で他のテーブルを見る
    • 目は見えない SQL 文を想像する必要ありエスパー
    • 他キーワード:GROUP_CONCAT, LOAD_FILE, Blind SQL Injection, Error Based SQL Injection
  • ディレクトリトラバーサル
    • index.php?id=about -> index.php?id=/etc/passwd
  • Cookie の書き換え

サイト

  • XSS game
  • alert(1) to win
  • prompt(1) to win

書籍

  • 体系的に学ぶ安全な Web アプリケーションの作り方
  • めんどうくさい Web セキュリティ
  • Web Security Testing Cookbook

東海道新幹線を予約したい

どうやって予約するのが良いのだろう?

インターネット予約

何らかのカードが必要らしい.どっちを選択しても,登録後カードが届いてようやく利用できる.カードが届くまで 2~3 週間.今予約したい場合困る.

  • プラスEX
    • UFJ-VISA カードを持っているので,それに年 500 円で機能を付加できる.
    • だが,重大な問題が指摘されている. http://www.tepkode.com/?p=1140
  • エクスプレスカード
    • 年 1000 円,クレカ増やしたくない
  • モバイルSuicaのエクスプレス特約
    • 年 1000 円,これかなあ

窓口・販売機

物理的に行かないといけない.

電話予約サービス

https://www.jr-odekake.net/goyoyaku/phone/
https://www.jr-odekake.net/goyoyaku/phone/purchase.html

「※JR東日本の駅では、東海道新幹線などJR東海エリアを含む予約はお受け取りいただけません。」やめろ

ちなみに:予約開始時刻

新幹線の予約は 1 ヶ月前の日の 10:20 からできるらしい.

追記:えきねっと

えきねっとからインターネット予約可でした

google perftool を使う

リンクする

これが意外と難しい。

https://code.google.com/p/gperftools/wiki/GooglePerformanceTools

これを読むと、-lprofiler をつけてコンパイルするだけで、あとは環境変数でプロファイリングを行えるようになると書かれている。

しかし、実際にはそうならない。これだけでは何も出力されない。

これは、gcc で "--as-needed" というオプションがデフォルトで有効になっているせいである。以下のようにすると解決する。 http://stackoverflow.com/questions/9577627/ubuntu-11-10-linking-perftools-library

g++ main.o -Wl,--no-as-needed -lprofiler -Wl,--as-needed

実行する

CPUPROFILE=hoge.prof ./hoge

表示する

kcachegrind が最高。 http://nu-pan.hatenablog.com/entry/20140410/1397099300

google-pprof --callgrind hoge hoge.prof > hoge.cg
kcachegrind hoge.cg

大塚家具に椅子を見に行った → バロンにしようかな?

話題の大塚家具に行って,椅子を試させてもらった.

アーロン,バロン,コンテッサエルゴヒューマンあたりのよく聞くオフィスチェアを候補として試した.結論から言うとバロンにしようかと思っている.その経緯を思い出せるようにメモ.

アーロン

前提知識として,作業が PC 操作中心の人は後傾姿勢用の椅子,筆記作業などが中心の人は前傾姿勢が良いと言われている.

僕も時間の和で考えれば PC 作業中心になると思う.アーロンは前傾用なので,その点では今回の候補として若干微妙なのである.

というわけで,一応座ってはみたけど,特別なものを感じることもなかったので,候補から最初に除外.

エルゴヒューマン

周りの人からよく名前を聞くので最も気になっていたが,ご自慢のランバーサポートが強すぎて気に入らなかった.

背もたれの上下位置を中心に色々な調整を試したが,ランバーサポートが,どちらかというと邪魔.背中を背もたれに接触させるためには,それなりに強くランバーサポートを押しこむことになる.ランバーサポートが強く当たるのが大変気になるので長くこの姿勢を続けられる気がしない.また,面ではなくいくつかの「点」で腰〜背中が支えられている状態を抜けだせず,あまり快適ではなかった.

もっとも,ランバーサポートは,座り心地を改善するためというよりは,疲労を改善するためのものなのである.「良薬口に苦し」ということで,すわり心地は良くなくても,実は価値があるのかもしれない.ただ,ランバーサポートは浅く腰掛ける人の姿勢を正すものとの噂もある.一方僕は深く腰掛けたいので,そういう理由でちょっと合わないのかも.あるいは単純に体型があっていないのか.

とにかく,強く押されすぎて気になるというのと,背中との接触が「点」になっていて気持よくないということで,エルゴヒューマンは今回はやめる.

バロン

バロンは最初からかなり快適に感じた.背中との接触が「点」になっていたエルゴヒューマンとは対照的に,メッシュが上手くたわんで,背中を「面」でちょうどよく包み込んでくれる.

また,腰の部分が少し出たデザインになっている背もたれが,僕の体にはちょうどフィットする.深く腰掛けるのが好きだからか,ランバーサポートなしで,腰の部分も気持ち良い押され具合.

むしろ,ランバーサポートがあると,せっかく「面」で包み込んでくれていた背もたれが,ランバーサポートばかりの「点」になってしまうように感じられた.ランバーサポートは無しが良い.

コンテッサ

コンテッサとバロンは,同じ岡村製作所が作っていて,僕はコンテッサを 5 年間使ってきた.

コンテッサが上位機種,バロンが下位機種と言われる.僅かなスペック・サイズと操作性のみが違うと書いているサイトが多い.が,それなりに別物であるのではないかと僕には感じられる.写真だけでも,背もたれのデザインは結構違うように思う.腰のやや突き出ている部分から下について,バロンのほうがメッシュが広い.これがすわり心地に影響しているような気がする.

ただ,コンテッサにはランバーサポートの付いたものしか置いていなかったので,ランバーサポート無しのコンテッサにも座ってみたい.少なくとも,ランバーサポートに付いたコンテッサの座り心地(=これまで 5 年間使ってきたもの)より,ランバーサポート無しのバロンのほうが,快適に感じた.


(ちなみに 5 年前は,あまり比較をせず,近場ですぐ手に入るとのことだったコンテッサをすぐに買ってしまったのであった.)

いろいろ

バロン・コンテッサには最近,「スタンダードメッシュ」の他に「グラデーションメッシュ」が発売されている.これは,(オシャレではなく)メッシュの密度を均一にせず負荷をより分散させるというものである.

良さそうなので是非こっちにしてみたいが,グラデーションメッシュにすると,メッシュシートが選べず,強制的にクッションシートになるらしい.なんで!?と思ったけど,メッシュシートは欠陥だという指摘もあり,クッションシートのほうが良いかもしれない.

ヘッドレストは,可動式のものと固定式のものがある.バロンの可動式ヘッドレストは,可動機構がかなりちゃっちい.固定できず簡単に動いてしまうので,せっかく前に出せても荷重をかけるとすぐに後ろに戻っていく.アホらしいのでさっぱりした固定式のほうが良いと思う.

それから,椅子に関しては基本的に腰部分の話が多いが,僕が困っているのは,どちらかというと腰よりも首と肩である.猫背というほどではないが,PC に夢中になっていると首から上を PC に近づけてせり出してしまい,後から首の痛みになる.首を前に出さなくても済むように,フォントを大きくしたり,アームでディスプレイを顔に近づけるといった工夫を別途したい.

こういうことを考えていると,クルーズ&アトラスにも興味が出てくるが,あれは 27 インチディスプレイを 3 枚とか使っていてもいけるサイズなのだろうか?見た感じ,小さそう.

Finding the Hierarchy of Dense Subgraphs using Nucleus Decompositions (WWW'15)

概要

  • たくさんの密グラフの包括的・階層的表現
    • 沢山の密部分グラフが欲しい
    • 密度や大きさの分布が欲しい
    • 構造的関係(入れ子)が知りたい
  • いかした図を出力する
    • グラフを「核の森」で表す (Nucleus Decomposition)

定義 k-(r,s)-nucleus

  • パラメータ k, r, s がある (r < s)
  • 別のグラフを考える
    • 頂点はサイズ r のクリーク
    • サイズ s のクリークを hyperedge だと思う
  • このグラフの k-core を取る

関係

  • r = s-1 なら k-clique community
  • k-(1,2)-nucleus は k-core
  • k-(2,3)-nucleus は k-truss に近いけど違う

性質

  • (r, s)-核は層族 (laminar family)
    • K_r の集合で考えるからである.
    • K_r を共有しない.K_r-1 なら共有するかも(OK).
  • それぞれの k についての核を森で表現

結果

  • いかした図