あしあと

まずは残していくことから

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

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

対象読者

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

自分自身の使用歴史

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

などを試した結果です。

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

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

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

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

  • ホワイトボードマーカーの管理が面倒
    • 蓋を開けっぱなしにしていると、枯れてしまったり
    • ペン先が潰れてくる
    • 物理ノートも使っていると、ペンの切り替えが面倒
  • ペン先が潰れるので、カジュアルに書くことをためらってしまう
  • 時間が経つ(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」の方)。オプションパーツは購入していない状態でのレビューになります。

www.cataloghouse.co.jp

率直な感想

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

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

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

デメリット

今気づいた分としては、

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

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

どんな人に向いているか

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

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

はてなブックマークから自分の好きそうなURLを抽出するスクリプトを書いた(Python)

こんなスクリプトを書きました。(結構前にですが。。)

  • 自分のはてなブックマークを抽出
  • そのブックマークしているユーザーの一覧を取得
  • そのユーザーがブックマークしているURLを取得
  • URLを取得できた回数が多い5件を抽出し、ファイル出力

その心は?

元は、

overlap.hatenablog.jp

を読んだ時、もう少し汎用的に使えるものを作りたいと思い、作成しました。
自分と近い志向の人のブックマークから、自分向けのレコメンドができるのは面白そうだなと思ったので。

使い方

詳細は、githubのREADME.md 読めばわかるようにしています。

github.com

技術的には、Pythonが使える環境があれば、大丈夫です。
データは内部にsqliteのファイルを作り、保持するような仕組みにしています。

スクリプトを実行するとレコメンドデータをrecommend.txtというファイルで出力するようにしています。

僕の使い方

僕はRaspberry Piにcronを仕込んで動かして、出力したファイルをiftttのトリガーに送り、メールを送信するようにしています。
(この辺の仕組みは、気が向いたら書きます)
ちなみにこんな感じにメール通知が1日に1回届くようにしています。

注意点&その他

ブックマークが多い人は、最初にデータを取得するの時間がかかります。
理由は、はてなAPIをのんびり叩いているので、ゆっくりペースになります。
ソースコードgithubに載せているので好きに触ってもらえれば自分風のレコメンドに変えることもできます。

Pythonのos.path.joinの仕様にちょっとハマった

Pythonでパスを結合しようと思って、こんな感じでコードを書いていたのですが、どうにも思った通りに動かない…

Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from os.path import join
>>> a = 'a'
>>> b = '/b'
>>> print(join(a, b))
/b

なんでaは結合されないのだろー、と悩みました。

で、実際にPythonのos.py(厳密にはos.pathはposixpath.py)を見ると、以下のようなコードでした。 (必要な箇所のみ抜粋)

import os

def get_sep(path):
    if isinstance(path, bytes):
        return b'/'
    else:
        return '/'

def join(a, *p):
    """Join two or more pathname components, inserting '/' as needed.
    If any component is an absolute path, all previous path components
    will be discarded.  An empty last part will result in a path that
    ends with a separator."""
    a = os.fspath(a)
    sep = get_sep(a)
    path = a
    try:
        if not p:
            path[:0] + sep  #23780: Ensure compatible data type even if p is null.
        for b in map(os.fspath, p):
            if b.startswith(sep):
                path = b
            elif not path or path.endswith(sep):
                path += b
            else:
                path += sep + b
    except (TypeError, AttributeError, BytesWarning):
        genericpath._check_arg_types('join', a, *p)
        raise
    return path

細かく読むと if b.startswith(sep)で、セパレータ(posixでは/)で始まっていると先頭は無視する模様…. 確かにdocstringにも書いているが、この仕様はなんなのだろうか...

ちなみにPythonのドキュメントにもちゃんと書いていましたね。

11.2. os.path — 共通のパス名操作 — Python 3.6.5 ドキュメント

そして、Pythonをもう数年書いているのに知らない自分もちょっと情けないですが...

アビステラコーヒーさんのコーヒーアソートはオススメ

1ヶ月ほど前にアビステラコーヒーさん(@abystellaxoffee)のシングルオリジン豆アソートセットを購入しました。アビステラコーヒーさんのサイトは以下です。

www.abystella.com

「飲むたびに産地を想う珈琲」というコンセプトにも惹かれました!

初めてでしたので、今回買った豆はアビステラコーヒー スペシャルティコーヒーアソートです。
ですので、簡単にレビューをします。

パッケージ

こんな感じで届きました。20gの豆が10種類ありました。

f:id:pyo_hei:20180512133810j:plain

感想

普段から豆を買って淹れているので、いろんな豆や焙煎具合を試しているのですが、それでも出会ったことのない味がたくさんあり、飲むたびに楽しかったです。

種類も多種多様で、スペシャリティーコーヒーを試したい人には絶対オススメです。

香りが良いコーヒが多く、淹れるのも楽しかったです(・∀・)

個人的なお気に入りは、

でした。

ただ、20gは個人的には少し多いので、15gぐらいでドリップして、5gは残しておいて、残りの豆と勝手にブレンドをして飲んでいます。
ちなみに、私は平日はコーヒーを飲むことが少ないので、到着してすぐに冷凍庫に淹れて、必要な時に開封して淹れました。

どんな人にオススメか?

  • (もちろん)自分でドリップして淹れる人
  • 本格的なスペシャリティーを飲みたい人
  • 新しい味を開拓してみたい人

今回はアソートを購入したのですが、次は通常の豆を購入したいなと思います。
アビステラコーヒーさん、ありがとうございました。

PyPIの登録にMarkdownが使えるようになった!

PyPIPythonサードパーティー用ライブラリ)に登録する際、マークダウンが対応したみたいです。
今までは、reStructuredTextしか対応していなかったので、マークダウンで書いてコンバートしたり、ドキュメントを見ながらreStructuredTextで書いていたりしていたのですが、今回からマークダウンでよいので、かなり嬉しい。

ちなみに、たまたま、このstackoverflowを見ていたら気づきました。

stackoverflow.com

そのうち、いろんな人が手順を書きそうですが、簡単にメモ。(2018-04-30時点)
以下がPEPでの規定なので、そちらを読む方が手堅いです。

www.python.org

必要な環境

  • setuptoolsのバージョンが 38.6.0 以上
    大抵の人が古いので、バージョンアップが必要です
  • twine のバージョンが1.11.0 以上
    自分は入ってなかったので、pip install twine でインストールしました。

上記の環境が揃ってないと、マークダウンで書いても反映されないので、ご注意ください。

マークダウンで記載する方法

要点は3つで、

  1. マークダウン(*.md)で書く(当たり前)
  2. setup.py の long_description_content_type に 'text/markdown' と指定する
  3. アップロードするときは、 twine upload dist/* コマンドでアップロードする
    (厳密には python setup.py sdist でアーカイブを作成する必要もあります)

実際にアップしたサンプル(ライブラリ)は以下です。
これはファイル名を暗号化する自分用の簡易なライブラリです。

github(setup.py)

github.com

pypi

pypi.org

最後に

ほぼ自分用のメモに近い形で書いたので、何か補足とか質問があればどうぞ。
気が向いたら、もう少しちゃんと清書します。