あしあと

自分自身のログ(足跡)となります。ソフトウェアエンジニアです。ブログはテック系の内容が少し多めです。

mixiの日記をバックアップするスクリプトをPythonで書いた

タイトルのままなのですが、mixiの日記を一括で保存したいと思い、スクリプトPythonで書きました。
数年前に書いていたものをリフレッシュした感じです。

Python3.6のみで動作は確認してます。細かいことはリポジトリにも書いています。

github.com

必要な作業としては、

  1. サービスの登録
  2. mixiの日記一覧ページのHTMLの取得
  3. ソースコードの準備
  4. アクセストークンの取得
  5. 日記の保存

と、いくつか手順を踏む必要があります。

事前準備

2つの作業が必要です。

サービス登録

サービス管理の手順でサービスを追加する必要があります。
注意としては、リダイレクトURLhttp://localhost:9999/redirectを設定する必要があります。

f:id:pyo_hei:20180705071420p:plain

また、ここで取得できたConsumer KeyConsumer Secretは後々利用します。

mixi日記の一覧ページをダウンロード

日記の一覧を右クリックでダウンロードし、htmlファイルを特定のディレクトリ配下に配置してください。

f:id:pyo_hei:20180705071450p:plain

僕は100件ほどしか日記がなかったので、数回の作業で大丈夫でしたが、いっぱいある人は繰り返し作業が必要です。
これを全て取れるAPIが見つからなかったので知っている人がいれば、教えてください😇

インストール

必要様なスクリプトは以下のコマンドでダウンロードできます。
また、依存ライブラリをインストールする必要があります。

git clone https://github.com/pyohei/extract-mixi-diary.git
cd extract-mixi-diary
pip install -r requirements.txt # virtualenv上の実行がオススメ

使い方

アクセストークン取得用サーバ起動

APIにアクセスするために、アクセストークンを取得する必要があります。
以下のコマンドを実行し、

python server.py -c `Consumer Key` -s `Consumer Secret`

http://localhost:9999 にアクセスすればアクセストークンを取得できます。
以下の画面が出るので、同意してください。

f:id:pyo_hei:20180705071504p:plain

注意点

  • 次のスクリプトで自動的にアクセストークンを取得するので、メモする必要はありません
  • アクセストークンは期限が切れても自動で再取得します

mixi日記取得スクリプトの起動

以下のコマンドで実行し、-dで渡したディレクトリに日記の作成日でファイルが作成されます。

python main.py -o `上記で取得したHTMLを保存しているディレクトリ` -d `保存先ディレクトリ`

ファイルはこんな感じに出力されます。

f:id:pyo_hei:20180705071516p:plain

最後に

結構手順がややこしくて、手動でとったほうが楽だったと感じています...
もともとはmixiを退会するつもりで作ったのですが、自分のPCよりもmixiのサーバーの方が安全だと気付いたので、mixiは継続してます(更新はしてないですが)。

エンジニアじゃない人向けにWebサイトにして、誰でも使える様にすれば良いかなと思ったのですが、需要は極めて低そうなのでこんな感じです。
10人くらいからスターあれば作ろうかな、と。なので、自分もmixiの日記をダウンロードしたいと言う人はスターorコメントください。

参考情報

日本語キーボードのMacでAnkerのキーボードを使った時にCapsLockになってしまった時の対応

一度電源をOFFにしてもう一度電源をつける。

毎度悩むので...

 

 Ankerのキーボードは普段使いできるので便利です。

Pythonのimport先に飛ぶVimプラグインを作成した

タイトルそのままですが、VimPythonのimport文に記載したモジュールにジャンプするプラグインを書きました。
こんな感じで動きます。

https://raw.githubusercontent.com/pyohei/vim-python-jumping/master/demo/demo.gif

(3年くらい前に書いて放置していたので作りきりました)

インストール方法

リポジトリ

github.com

で、pyohei/vim-python-jumping の設定をお好みのvimプラグインに記載してもらえれば使えます。

使い方

import文の上で :PyImportと打てば、対象のファイルに飛びます。
キーマップはお好みのキーマップを指定すれば便利です。
(私はキーマップは設定しない組なので)

仕組・制約

仕組みとしては、PYTHONPATHのパス + 現在のファイルのディレクトリから探します。
なので、実行環境にPYTHONPATHを通しておく必要があります。
そのため、init.pyなどでインポートしている系のモジュールもうまく読め込めない事はありますが...

作った背景

Pythonvimプラグインでシンプルにこの機能を実現するツールが当時はなかったので作りました。
(今あるかは調べれていないですが...)
まぁ、かなりマニア向けなので、興味のある人はぜひどうぞ。

シンプルな画像サーバを作った(Python)

画像一覧をブラウザで見たかったので、Pythonで簡易的なサーバーを書きました。
(実際には数年前に作って放置してたものを作り上げた感じですが)
Pythonで動かす必要があるので、主にエンジニア向けですかね。
 

サンプル

実際には以下のように確認できます。
一覧画面はこんな感じ(写真は著作権フリーのものを利用しています)。

f:id:pyo_hei:20180628070911p:plain

画像を押すと、以下の様にみれます

f:id:pyo_hei:20180628070928p:plain

使い方

インストール

ソースコードはgitで取得可能です。

git cloen https://github.com/pyohei/simple-image-server
cd simple-image-server

pyramidなどの依存ライブラリがあるので、virtualenvを入れることをオススメします。
Python3.6なら、

python -m venv venv
source venv/bin/activate

で仮想環境を作る事が可能です(この手順はスキップしても問題ありません)。

環境が作れたら依存ライブラリをインストールします。

pip install -r requirements.txt

以上で環境の設定は終了です。

起動方法

あとは、画像フォルダがあるディレクトリを指定して実行すればOKです
xxxxの箇所に画像フォルダを指定してください。
(ちなみにsampleディレクトリも用意しているので、簡単に試したい人はどうぞ。)

python server/main.py xxxx

アクセス方法

デフォルトでは http://localhost:8999/login にアクセスするとログイン画面が表示します。
User: user, Password: password でデフォルトはログイン可能です。

ログインするとサンプルに載せた様な一覧画面を見る事ができます。

その他

  • 指定したディレクトリ配下の画像を再帰的に探索しているので、ディレクトリの構成は気にする必要はありません
  • 個人向けに簡易作成したものなので、バグとか要望があればどうぞ
  • リポジトリは以下です

github.com

今ひとつノート型ホワイトボードが自分に向かなかった理由

ノート型ホワイトボード(例えばバタフライボード)を、いくつか試したのですが、今ひとつ合わなかったので、その理由でも書いてみます。

対象読者

  • ノート型ホワイトボードを今後利用したいと検討している人
  • ノート型ホワイトボードを使っているが、しっくりきてない人

自分自身の使用歴史

  • 自作ホワイトボード(気が向いたら作り方書きます)
  • ダイソーのノート型ホワイトボード
  • バタフライボード

などを試した結果です。

なぜ使おうと思ったのか?

使う事で生産性が上がるのではないかと考えたためです。

なぜ、合わなかったのか?

理由はいくつかあるのですが、

  • ホワイトボードマーカーの管理が面倒
    • 蓋を開けっぱなしにしていると、枯れてしまったり
    • ペン先が潰れてくる
    • 物理ノートも使っていると、ペンの切り替えが面倒
  • ペン先が潰れるので、カジュアルに書くことをためらってしまう
  • 時間が経つ(1週間とか)と、消すのが結構大変
  • ページが足りなくなると強制的に消す必要がある
  • (定性的だが)生産性に寄与しないと感じた

と、こんな感じです。

メリットはなかったのか?

そんなことはなく、メリット自体は何個かあり、

  • 書いている途中に間違えると軽く消す事ができる
  • ノートとは異なり、意識的に消す必要があるので、見返す機会が必ず発生する
  • 複数人で考えたりするときには便利
  • (バタフライボードについては)マグネット式で固定しておく事ができる

など、目的に合わせて利用するなら、便利なツールです。

今はどうしているか?

まだ、自分の中でもベストな回答はないのですが、

  • 物理ノート … 一時的に書いたり、考えたりしたい場合
  • 物理付箋 … 忘れないようにすること(一時的)を残すため
  • Todoアプリ(Todoist) … 自分のやることの管理

を使っていて、物理ノートに書いたことを保存したい場合は、dropboxなどを使って、ドキュメントにしている感じです。
今の所、使い勝手としては気にはなっていないです。

最後に

色々書きましたが、気になっている人は試してみるのが一番です。
多分バタフライボードは新しいのが出たら書いますが:)
ちなみに、最近はノートの代わりにエバーラストも試しているのですが、その使い勝手はまた機会があれば。

(2018/05)今聴いているエンジニア系ポッドキャスト

ITエンジニア系のポッドキャストをよく聴いているので、ご紹介。
一人では得られない知識も多くあるので、エンジニアの方はオススメです。
今回の内容は、どちらかというと、自分向けのメモに近いです。

Rebuilfm

rebuild.fm

エンジニアの方なら、ご存知の方が多い、Rebuilfm。
自分自身がポッドキャストにハマるきっかけの一つは、これでした。
技術的な内容や、社会的な事、アニメ、プロダクティビティーなど、ゲストによって、様々な話をされます。
IT系のエンジニアで、ポッドキャスト聞いてみたい人は、まずRebuildfmを聞いてみるのがオススメです。
自分が好きなゲストさんが見つかるはず!

のぼりーさんのクラウドインフラPodcast

cloudinfra.audio

インフラ周り(特にクラウド系)の話が多いです。   普段、がっつりインフラを触ってないので、インフラの技術を聞けるので、重宝しています。
ゲストの方の使っているツールの紹介などもあり、普段の自分のツールへの参考になります。

mosaic.fm

mozaic.fm

フロント系の動向について説明しているPodcast
各ブラウザの動向など、詳しく説明してくださるので、サーバサイドのエンジニアの自分にとっては知らないことを知れる機会なので、重宝して聞いています。
ゲストと特定の話題について話す回もあります。

Turing Complete FM

turingcomplete.fm

システムプログラミング周りについて話すPodcast。低レイヤーの話が多いです。
メインのRuiさんとゲストの方のレベルが高すぎて、回によっては日本語をしゃべっている事以外分からないことも。
でも、その分からなさも面白さで、聞いている途中に調べならがら聞く事が多いです。
個人的には、言語処理系の話は興味深く、楽しく聞いています。

Misreading Chat

misreading.chat

読んできた、論文を紹介するPodcast
機械学習系の話も多く、初心者にもわかるように説明してくださるので、知識の強化に役立っています。
ですが、こちらも内容によってはチンプンカンプンな時も。
文献ベースで話すので、後で軽く見たりできるので、そこは助かります。

backspace.fm

backspace.fm

ガジェットの紹介など。スポットで聞いています。

Changelog

changelog.com

こちらは英語のポッドキャストオープンソースのプロダクトについて話している事が多い印象。  
日本ではあまり聞かないツールの話もあるので、興味のあるものをスポットで聞いています。

ざっと書いたので、時間があれば、好きな回とかも書きます。 この辺の話は、好きな人も多そうなので、他にオススメがあれば教えてください。

マキタの掃除機レビュー(マキタの107)

最近、マキタの掃除機を購入し、利用しているので、簡単にレビューします。
コードレス掃除機は初めてなので、比較にはならないですが。。

どんな人に読んでもらいたいか

  • 比較的安価なコードレス掃除機が欲しい
  • マキタの掃除機の購入検討している

買った商品

買ったのはこれです(「マキタの107」の方)。オプションパーツは購入していない状態でのレビューになります。

率直な感想

率直な感想としては、買ってよかったです。理由は、

  • すごく軽く、ちょっと使いたいときにサクッと使える
  • 適当な所に立てかけて置ける(引っ掛けるところがあれば)
  • 安い(購入時は税込で13480円)

吸引力は業務用に使われていることもあり、フローリングだと問題なく感じています。

デメリット

今気づいた分としては、

  • 充電するときはバッテリーを外して充電する必要があり、充電する機会が少し大きい
  • ホースの接続が若干チープ感があり、ホースの向きを変えるのが少し手間
  • バッテリーが10分程度しか持たないので、広い部屋家には不向き
  • 手の届かない細い隙間を掃除するのが難しい(オプションで買う必要あり?)
  • カラーバリエーションがない

ですが、個人的にあまり気にはなっていません。

どんな人に向いているか

  • コードレスが手っ取り早く欲しい
  • 家はそれほど広くなく(2LDKより狭い)、掃除に時間(コスト)をかけたくない
  • 掃除機のサブとして利用

全体的に満足しているので、購入を検討している人がいて、条件が一致するのなら購入することはオススメですよー。