memo.xight.org

日々のメモ

カテゴリ : Memo

2ページ目 / 全25ページ

wget で認証付きサイトをダウンロード / ミラーリングする

Summary

ログインフォームから認証, セッションCookie, Cookieファイル, BASIC認証/DIGEST認証を使った認証付きサイトをミラーリングしたい

ログインフォームから認証 (POST)

wget --save-cookies cookies.txt \
--post-data 'user=USERNAME&password=PASSWORD' \
http://example.com/login

セッションCookie

wget \
--header '_hoge_session_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \
http://example.com


Cookieファイル (SQLite)

CookieをSQLiteのDBとして保存するブラウザのCookieを利用する (Firefoxの場合)
sqlite3 -separator ' ' cookies.sqlite 'select * from moz_cookies' > cookies.txt
wget --load-cookies=path/to/cookies.txt http://example.com


Firefox (Windows) の cookies.sqlite

%APPDATA%\Mozilla\Firefox\Profiles\xxxxxxxx.default\cookies.sqlite

Firefox (Linux) の cookies.sqlite

~/.mozilla/firefox/xxxxxxxx.default/cookies.sqlite

BASIC認証 / DIGEST認証

wget \
--http-user=USERNAME \
--http-password=PASSWORD \
http://example.com


Reference

WebOS Goodies - 2008-01-16 - wget で認証付きサイトをダウンロードする
http://webos-goodies.jp/archives/51277893.html

お笑い五箇条

Summary

「夢で逢えたら」というテレビ番組で
話題に上がった「お笑い五箇条」とのこと

自分のギャグで笑わない
フリはすらすらつっかえない
オチは大きくはっきりと
引き際を大切に
笑いは間

Reference

頭ん中 - 2012-06-11 - 人前でプレゼンをするときに気をつけたい8つのことがら
http://www.msng.info/archives/2012/06/speaking-in-public.php

頭ん中 - 2009-04-29 - お笑い五箇条
http://www.msng.info/archives/2009/04/five_articles_of_comedy.php

トヨタ純正ナビ NDDA-W56 のダイアグモード

Summary

車のバッテリー切れでバックモニタの指示線が表示されなくなってしまった。
ディーラーに聞いたところ、車を持ち込まないと状況がわからないし、有料になる可能性があるとのこと。
そのため、自分でバックモニタの設定を行った。

バックモニタの設定は、検査メニュー (ダイアグモード) から行える。
しかし、ダイアグモードを表示させるには、特殊な操作が必要なのでメモしておく。

ダイアグモードの表示

情報ボタンを押しながら、ライトをオン、オフを3回行う。

VLC media player の字幕の濁点、半濁点問題

Summary

VLC media player の字幕の濁点、半濁点が分離されてしまう。
Unicode正規化の形式 NFC, NFD の扱いがうまくいっていないようだ。
VLC media player (Version 2.2.4 Weatherwax) を利用

テキストレンダリングモジュールで「コアテキスト・フォントレンダラー」を指定

VLC media player - コアテキストフォントレンダラーを指定
VLC media player - Text rendering module - CoreText font renderer

Reference

GitHub - VLC
https://github.com/videolan/vlc

Wikipedia - Unicode正規化

パスワードの定期変更をユーザに求めるべきではない

Summary

NIST(National Institute of Standards and Technology) の部門CSD(Computer Security Division) が発行する
Special Publication 800-63B Digital Authentication Guideline の
5.1.1.2 Memorized Secret Verifiers についての話題。

「システムはパスワードの定期的な変更をユーザーに要求すべきではない」の原文はこのあたり。

Verifiers SHOULD NOT require memorized secrets to be changed arbitrarily (e.g., periodically) unless there is evidence of compromise of the authenticator or a subscriber requests a change.


「秘密の質問を使用するべきではない」の原文はこのあたり。

Memorized secret verifiers SHALL NOT permit the subscriber to store a “hint” that is accessible to an unauthenticated claimant. Verifiers also SHALL NOT prompt subscribers to use specific types of information (e.g., “What was the name of your first pet?”) when choosing memorized secrets.


Reference

DRAFT NIST Special Publication 800-63B Digital Authentication Guideline
https://pages.nist.gov/800-63-3/sp800-63b.html

via

やじうまWatch - 2016-06-27 - 「パスワードの定期変更をユーザーに求めるべきではない」……NISTの文書でついに明示へ
http://internet.watch.impress.co.jp/docs/yajiuma/1007177.html

CUI でタイムゾーン指定

Summary

dpkg-reconfigure tzdata

だとインタラクティブなので、コマンドのみでタイムゾーンを操作したい。

timedatactl を使う

sudo timedatectl set-timezone UTC
sudo timedatectl set-timezone Asia/Tokyo


Reference

How to change time-zone settings from the command line - Ask Ubuntu
http://askubuntu.com/questions/3375/how-to-change-time-zone-settings-from-the-command-line

HTTP API Design - Herokuが実践しているAPIデザインガイド

Summary

Herokuが実践しているAPIデザインガイド

HTTP API design guide extracted from work on the Heroku Platform API


抄訳

SOTA - 2014-06-02 - HerokuのAPIデザイン

Reference

GitHub - interagent/http-api-design: HTTP API design guide extracted from work on the Heroku Platform API
https://github.com/interagent/http-api-design

GitBooks - HTTP API Design
https://geemus.gitbooks.io/http-api-design/content/

via

SOTA - 2014-06-02 - HerokuのAPIデザイン
http://deeeet.com/writing/2014/06/02/heroku-api-design/

/var/log/messages - 2014-06-22 - http api design
http://yamanetoshi.github.io/blog/2014/06/22/http-api-design/

Homebrew / Homebrew Cask で古いバージョンのアプリケーションをインストールする

Summary

Homebrew CaskでインストールしたMacVim-Kaoriyaをバージョンアップしたら、
エラーが発生してしまった。
一時的に古いバージョンを使いたい。

/usr/local/Library/Taps 以下の tap しているディレクトリに移動
git log で戻す先のコミットのハッシュ値を確認しておく。
formula を指定して、 git checkout

macvim-kaoriya の例

% cd /usr/local/Library/Taps/caskroom/homebrew-versions/Casks
% git log
% git checkout 61f2be macvim-kaoriya.rb
% brew cask install macvim-kaoriya --override-system-vim --force

Microsoft Officeが作成する一時ファイルを削除するワンライナー

Summary

"~$" (チルダ ドル) で始まる名前のファイルを大量に発見。
Microsoft Officeが作成する一時ファイルのようだ。

以下のワンライナーでまとめて削除。
スペースを含むディレクトリ、ファイル名も考慮するため、
find の print0 オプションと xargs の null オプションを組み合わせる。

Officeの一時ファイルをまとめて削除するワンライナー

% find $HOME -name '\~\$*' -print0 | xargs --null rm


Officeの一時ファイルをまとめてゴミ箱に移動するワンライナー

% find $HOME -name '\~\$*' -print0 | xargs --null mv -t $HOME/.Trash


homebrew ユーザは…

xargsのnullオプションを利用するには GNU findutils の xargs (gxargs) が必要。
homebrew ユーザは findutils をインストールして、 gxargs が使えるようにする。
alias で xargs=gxargs するか、 ワンライナーの xargs を gxargs に読み替える。

Reference

備忘録 - 2008-07-28 - スペースを含むファイル名をfindとxargsで使う方法
http://sea-otter-factory.blogspot.jp/2008/07/unix-xargs.html

fydroculのメモ - コマンドの使い方 - xargs コマンド (mvに渡す場合は要注意)
https://hydrocul.github.io/wiki/commands/xargs.html#fec7f98

2015年 ネットワークスペシャリスト試験の自分なりの解答

Summary

2015年 ネットワークスペシャリスト試験を受けてきた。
午後Iは問2,3を選択
午後IIは問1を選択
まだ解答がでていないので、自分の解答を一部訂正して書いておく。

午後I 問2

  設問1
  ア 通信帯域 / 通信速度
  イ リクエスト / パケット
  ウ 転送 / リダイレクト

  設問2
  (1) (A) 宛先IPアドレス 機器b
          宛先MACアドレス LBa
      (B) 宛先IPアドレス 機器b
          宛先MACアドレス FW2
  (2) 宛先IPアドレスの書き換えが行えない (18字 / 20字)
  (3) セッションごとに同じFWに振り分ける (18字 / 30字)

  設問3
  (1) 現状の1.4倍以上の処理能力が必要なため (20字 / 20字)
  (2) あ 99
      い 90
  (3) FWだけでなくLBとその経路の障害が検知できる (23字 / 30字)
  (4) セッションタイムアウトを待たずに通信の再開を試行できる (27字 / 30字)

午後I 問3

  設問1
  ア アノマリ
  イ ミラー
  ウ プロミスキャス
  エ IP
  オ unreachable

  設問2
  (1) 範囲 内部LAN <-> インターネット
      SW1 ○
      SW2 ×
      SW3 ○
  (2) IDSで検知した攻撃の送信元アドレスを、自動的にFWの接続拒否リストに追加する (39字 / 40字)
  (3) 攻撃者までの経路にICMPパケットを破棄する機器がある可能性があるから (35字 / 35字)

  設問3
  (1) 一時的な運用中である旨を表示するURLに転送し、その間に脆弱性への対応を行う (38字 / 50字)
  (2) IPSの故障の検知と通知、自動的な再起動 (20字 / 25字)
  (3) IDSとIPSのログを監視して新たな攻撃を検知し、遮断ルールを改善する (35字 / 35字)

午後II 問1

設問1
(1) MAC
(2) LB正
(3) ①
(4) ⑥ (Webサーバの実IPアドレス)

設問2
(1)
う 中継装置
え 通信アダプタ
お リバース
(2) 設備、通信アダプタとその経路の障害が検知できるから (25字/25字)
(3) Tc
(4) 通信アダプタの方が情報取得頻度が高くキャッシュの更新頻度も高くなるから (35字/35字)
(5) ① 設備の機器に障害が発生し、設備からのレスポンスが返らない時 (29字/30字)
    ② 通信アダプタがキャッシュを返し、設備への通信が発生しない時 (29字/30字)
(6) 稼働情報のタイムスタンプの最小間隔が長くなり、例えば1分間隔から2分間隔になる (39字/40字)

設問3
(1) 中継装置
(2) UDPヘッダ (?)
(3) ① CoAPのヘッダが固定長なので高速に処理が行える (25字/30字)
    ② UDPはハンドシェイクを行わないので高速に通信が行える (28字/30字)
設問4
(1) LB
(2) 内部L2SW-0 と L2SW-20
    内部L2SW-0 と L2SW-30
    内部L2SW-1 と L2SW-21
    内部L2SW-1 と L2SW-31
(3) ア 30
    イ 24
    ウ 6
(4) 収集周期が5分間隔になる場合のコネクション数から算出する (28字/30字)
(5) Keep-Alive接続を利用し、セッション終了時には明示的にクローズ接続オプションを指定する (47字/50字)
(6) 単一の設備ではなく、設備を複数またはグループで指定できるようなURL設計とする (39字/50字)

シェルスクリプトで SFTP

Summary

SFTP=/usr/bin/sftp

DATE=/bin/date
DATE_OPTION='+%Y-%m-%d'
DATE_STR=`$DATE $DATE_OPTION`

BACKUP_SOURCE_HOST=example.com
BACKUP_SOURCE_PATH=/var/backups/example.com
BACKUP_SOURCE_SQL_FILE=${BACKUP_SOURCE_PATH}/example.com-FILE-${DATE_STR}.tar.gz
BACKUP_SOURCE_TAR_FILE=${BACKUP_SOURCE_PATH}/example.com-SQL-${DATE_STR}.gz
BACKUP_DEST_PATH=$HOME/Dropbox/backup

$SFTP $BACKUP_SOURCE_HOST << END
lcd $BACKUP_DEST_PATH
get $BACKUP_SOURCE_SQL_FILE
get $BACKUP_SOURCE_TAR_FILE
exit
END
echo "Backup finished"

Docker Machine + DigitalOcean

Docker Machine のインストール

$ brew cask install docker-machine


DigitalOcean の Access Token の取得

Generate new token から Token 作成。
Read / Write にチェック

DigitalOcean のシンガポールリージョンにSSD 512MB のサイズのドロップレットを作成

$ docker-machine create \
    --driver digitalocean \
    --digitalocean-access-token XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \
--digitalocean-region sgp1 \
--digitalocean-size 512mb \
droplet-name


Reference

docker-machine を使って boot2docker から脱却する - Qiita
http://qiita.com/voluntas/items/7bcc9402b51a2ba99096

Docker Machine を使って DigitalOcean に Dockerホストを立てる - Qiita
http://qiita.com/spesnova/items/c1a8b7c1a079834aed2d

mit-license.org - A permalink for your MIT License

Summary

mit-license.org は、自分の MIT License のパーマリンクを提供するサービス。
名前、メール、URL等がカスタマイズ可能。
pull request で修正可能。

作成

% curl -d'{ "copyright": "YOUR NAME" ,"url": "http://example.com"}' http://USERNAME.mit-license.org

Reference

GitHub - remy/mit-license
https://github.com/remy/mit-license

xight - The MIT License
http://xight.mit-license.org/

exercism.io - 相互レビューによるプログラミング学習

Summary

exercism.io は演習問題を解く、コードレビューを受ける、コードを修正するという流れを通して、
プログラミングを学ぶためのWebサイト。
CLIを利用する。

Install

$ brew install exercism
$ exercism configure --key=YOUR_API_KEY --dir=/path/to/exercises

fetch

exercism fetch [LANG] で
dirオプションで指定した先にソースコードがダウンロードされる

% exercism fetch
                     New: 21 problems
            Bob (clojure) /Users/yoshiki/exercism/clojure/bob
       Bob (coffeescript) /Users/yoshiki/exercism/coffeescript/bob
                Bob (cpp) /Users/yoshiki/exercism/cpp/bob
            Leap (csharp) /Users/yoshiki/exercism/csharp/leap
             Bob (elixir) /Users/yoshiki/exercism/elixir/bob
            Leap (erlang) /Users/yoshiki/exercism/erlang/leap
Sum Of Multiples (fsharp) /Users/yoshiki/exercism/fsharp/sum-of-multiples
                Leap (go) /Users/yoshiki/exercism/go/leap
           Leap (haskell) /Users/yoshiki/exercism/haskell/leap
               Etl (java) /Users/yoshiki/exercism/java/etl
         Bob (javascript) /Users/yoshiki/exercism/javascript/bob
   Point Mutations (lisp) /Users/yoshiki/exercism/lisp/point-mutations
            Hamming (lua) /Users/yoshiki/exercism/lua/hamming
        Bob (objective-c) /Users/yoshiki/exercism/objective-c/bob
              Bob (ocaml) /Users/yoshiki/exercism/ocaml/bob
              Bob (perl5) /Users/yoshiki/exercism/perl5/bob
          Hamming (plsql) /Users/yoshiki/exercism/plsql/hamming
             Bob (python) /Users/yoshiki/exercism/python/bob
           Hamming (ruby) /Users/yoshiki/exercism/ruby/hamming
              Bob (scala) /Users/yoshiki/exercism/scala/bob
             Leap (swift) /Users/yoshiki/exercism/swift/leap

unchanged: 0, updated: 0, new: 21

edit, test

README.md が問題文
テストコードも付いてくる

submit

$ exercism submit FILENAME

Reference

exercism.io
http://exercism.io/

Exercism.ioでプログラミングを学ぶ - ninoseki's blog
http://ninoseki.hatenablog.com/entry/2014/10/11/_Exercism.io%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%92%E5%AD%A6%E3%81%B6

ScanSnap iX500, iX100の初期パスワード

Summary

ScanSnap iX500の初期パスワードがわからなくなってしまった。
忘れないようにメモ。

ScanSnap iX500の初期パスワードは、

装置背面 SER.NO. の末尾4ケタの数字

ScanSnap iX100の初期パスワード

装置底面 PASSWORD に記載がある4ケタの数字

Reference

PFU - ScanSnap よくあるご質問 - コンピュータとScanSnapのWi-Fi接続を設定する際...
http://faq.pfu.jp/faq/show/887?site_domain=scansnap

Pteromys (テロミス) - 紙飛行機のデザインシステム

Summary

Pteromys (テロミス) は、空気を直接シミュレーションせずに
機械学習を使って「ちゃんと飛ぶ紙飛行機」を自由にデザインできるシステム。



Reference

Pteromys: Interactive Design and Optimization of Free-formed Free-flight Model Airplanes
http://www-ui.is.s.u-tokyo.ac.jp/~ume/GliderDesign/2014_siggraph_GliderDesign.html

Web Starter Kit - Google によるマルチプラットフォーム・ウェブアプリケーションのテンプレート

Summary

Web Starter Kit は Google によるマルチプラットフォーム・ウェブアプリケーションのテンプレート。
動作には Node, Ruby, Ruby Sass gem, Gulp.js が必要



Reference

Web Starter Kit
https://developers.google.com/web/starter-kit/

via

Google、I/Oカンファレンスを控えてマルチプラットフォーム・ウェブアプリのテンプレート、Web Starter Kitを発表 – Techcrunch
http://jp.techcrunch.com/2014/06/20/20140619google-launches-web-starter-kit-a-boilerplate-for-multi-screen-web-development/