あしあと

今の目標は50記事書くこと。

個人的なディレクトリ・ファイルの命名規則

個人的に決めている、ディレクトリ(フォルダ)やファイルの命名規則です。
割とこういう記事は見つからなかったので、書いてみました。

前提

  • ディレクトリとフォルダは同意義
  • 全てこの規則に合わせてず、状況に応じて変更する

共通事項

言語を統一する

日本語ファイルなら日本語、英語なら英語と、基本的には言語が混ざらないようにしています。
以下がサンプルです。

日本語

f:id:pyo_hei:20190206071556p:plain
japanese

英語

f:id:pyo_hei:20190206071337p:plain
english

無理に英語にしようとしない

ローマ字表記(kakunin, kakeibo などの日本語をローマ字に直した表記)です。
過去、全て英語にすることで、カッコいいと思っていました
しかし、可読性が低く、毎度翻訳をする必要があり、無駄と思えたので断念しました。

既に規則がある場合は、存在する規則に合わせる

大切なことは、最善(オレオレ)な命名規則ではなく一貫性があることです。
なので、既に規則があれば、そちらに合わせます。

例えば、仕事でルールが決まっていたり、プログラミング言語仕様で決まっている場合は、既に存在する規則を優先させます。

ディレクトリ(フォルダ)

命名規則

ハイフン区切りで命名します。
例えば、my-test-tooltest-apiなどのような表記です。

命名方法

以下の順を考慮して命名しています。

  1. プロジェクト名(プロダクト名)があれば、プロジェクト名をつける
  2. プレフィックスをつけ、以降はディレクトリの目的を記載する
  3. 個人的なもの ... my-
  4. 家庭(家族)のもの ... familier-
  5. 特定のプログラミング言語 ... python-

特に、my-をつけるのは個人的にも定着しているので、オススメです。

作成タイミング

  • プロジェクトを始める時
  • ファイルが複数でき、ある程度グループ化できるようになった時 いきなりディレクトリを作るのではなく、まとまりができてから作成しています。

気をつけていること

実際は、プロジェクト名とプロジェクトの中のディレクトリで微妙に変えています。

  • プロジェクト名 ... 何をするのか分かるように書く(my-tweet-analisis
  • プロジェクト内のディレクトリ名 ... 可能な限り一単語で(api/document/test

ファイル

命名規則

アンダースコア区切りで命名
例えば、test_document.txtのような形です。

命名方法

  1. git管理していれば、目的の名前にする 日付などをつけて、同じファイルを複数もたない(バックアップをしない)
  2. 日付を含める場合は、yyyymmdd形式で(20190101のような形)
  3. 日時まで含める場合は、yyyymmddHHMMSS形式で(20190101120101のような形)

未決事項

日付を付ける際、前につけるか、後ろにつけるかは、決めきれていません。

過去に試したこと

以下は過去に使っていたが、良くなかったので辞めたことです。

プレフィックスに数字をつける

  • 01xxxx
  • 02yyyy

のように命名していましたが、

  • ディレクトリを消す時に空き番号ができ、気になる
  • 数字に意味を持たせてしまい、暗黙のルールを作ってしまう

ことがあり、辞めました。

先にディレクトリを作っておく

先に、必要になりそうなディレクトリを作成し、ファイルを作るたびに配置する方法です。
一番初めに体系立てて作れるので、気持ち良いのですが、結局使わないディレクトリがでたり、構成が異なることがあるので、やめました。

その他

my-とかの規則にしておくと、googleドライブで検索するとき、結構楽なのでオススメです。
他に、こういうのやっているとかあれば是非教えてください。

この資料は随時更新を予定しています。

githubのプランをダウングレードしました

プログラムを書く人にはご存知のgithubですが、今月プランをダウングレードしました。
これまではPro(Personal)プラン($7.00/Month)に入っていました。
しかし、今月の新料金プランを見てFreeへ変更しました。

殆どのエンジニアには理由が分かるとは思いますが、忘れないように残しておきます。

何が起きたのか?

githubの料金プランが変更されました。

forest.watch.impress.co.jp

個人向けの利用については、FreeプランでプライベートリポジトリがUnlimitedになったことが最大の変更点です。
以下は本家サイトの比較表です。(2019-01-28時点)

f:id:pyo_hei:20190128171617p:plain

github.com

Pro(Personal)を利用していた理由

2016年11月からPro(旧Personal)を使用していました。
元々、プライベートリポジトリはBitBucketを利用していたのですが、

  1. BitBucketは個人的には機能不足で使いにくい
  2. リポジトリを同じところで管理したい
  3. Travis CIを使うことがあり、プライベートリポジトリでも利用したい
  4. githubを使わせてもらっていることに対する感謝

の点からProを利用していました。

Freeへダウングレードした理由

上記の「2」「3」がFreeプランで実現できたためです。
プライベートリポジトリを無限で作ることができるようになったため、Proである必要性はなくなったためです。

githubを使わせてもらっているので、「3」については継続しても良いかなとは思ったのですが...
機能不足を感じたらすぐにProへ戻そうと思います。

その他

今月は既に料金が支払われているので、PROの状態のままです。

github.com

コンソールでgitの日本語が文字化けする対応

現象

MacのiTerm2でgitを利用すると日本語のファイルが文字化けする。
以下のような感じです。

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   .gitignore
    deleted:    "\345\272\247\345\270\255\350\241\250.pdf

困ったこと

ファイルをFinderから削除した後に、gitに反映しようとしたが、元のファイル名を忘れてしまって、コミットができなくなった。

対応方法

gitconfigにquotepath = falseをつける。

$ grep -B2 quotepath ~/.gitconfig
[core]
    excludesfile = /Users/mukaishohei/.gitignore_global
    quotepath = false

結果

日本語も正しく表示されます。

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   .gitignore
    deleted:    座席表.pdf

その他

そもそも、日本語ファイルを使うなよって話ですが、プログラム以外のファイルを管理したかったので、日本語を使っています。
プログラムなら基本は英語にしましょう。

Rebuild(リビルド)FMで出る、ヤックシェービング(yak shaving)について

Rebuild fmを聞いてて、時々出てくるワード、ヤックシェービングがわからなかったので調べました。

rebuild.fm

意味

ここのサイトにのっている意味で腑に落ちました。

yak shaving で人生の問題の80%が説明できる問題 - bkブログ

簡単に書くと、上記のサイトで書いている

つい最近、 yak shaving (ヤクの毛を刈る)、という言葉を知りました (原典)。これは「一見無関係に見えるけど、真の問題を解くのに必要な問題を解くのに必要な(これが何段階も続く)問題を解くのに必要な活動」という意味の言葉です。

ですべてわかるかと。確かにプライベートや仕事でもヤックシェービングな事象はありますね。。
ちなみに、原典は以下です。

yak shaving

その他

Rebuild fmの検索機能で調べると、やはり時々出てきますね。
(ヤックシェービングで検索すると少ないので、シェービングで検索しました)

Rebuild - Podcast by Tatsuhiko Miyagawa

昔も気になって軽く調べたことがあるのですが、うまく調べれなかったので、このブログでメモ。

ロジクールのマウス(M590)のスクロールが効かない

ブログのリハビリがてらに書きます。
タイトルの通りです。すでに解決済み。

原因

2018-12-28時点の原因です。

Logitech Optionsを使っていたため。 Logitech Optionsの特定のバージョンだと上手く動作しませんでした。
私がハマったのは、7.10.5。

解決策

同じページにLogicool Optionsのインストールがあったので、そちらを使って解決。

ちなみにダウンロードページは以下です。

https://support.logicool.co.jp/ja_jp/product/m590-silent-wireless-mouse/downloads

所感

Logitech OptionsとLogicool Optionsは何が違うのだろうか...
(あまり調べる気もない。)

商品自体はとても使いやすいので、おすすめです。
しばらく使ってみて、時間が有ればレビューを書きます。

www.amazon.co.jp

TripMode2.2がリリースされました(日本語まとめ)

以前、TripModeの紹介について書きました。

pyohei.hatenablog.com

(もうすでに記事を書いた時にはリリースされていたのですが)
新しいバージョン(2.2)がリリースされたので機能をまとめました。
特にMacの機能が充実した様です。

実際のリリースページは以下です。

www.tripmode.ch

追加された機能

リアルタイムでブロックされたアプリを通知

以下の様な通知がアプリ単位で、リアルタイムで通知がきます。
動いているアプリも確認できているので、へぇーってなります。
(今の所、それ以上の使い道がなかったり...)

f:id:pyo_hei:20180920212455p:plain

設定は、以下で「通知を表示」を選択すると出てきます。

f:id:pyo_hei:20180920212503p:plain

Mojave対応

Mojaveにしていないのでまだ分かりませんが、楽しみ。

スケジューラー機能の追加

スケジュールを決めて、自動プロファイルを適応するようになりました。
これもまだ試してないのですが、通勤の電車で自動的に反映させれそうです。
あとは、集中したい時に必要最低限のデータ量にするなど、色々活用できそうです。

以下の様に設定できます。

f:id:pyo_hei:20180920212517p:plain

多言語対応

上記のスクリーンショットでもわかる通り、日本語対応が入りました。
個人的にはどちらでも良いのですが、日本でも広まって欲しいです。

対応し多言語は以下とのこと。

  • Japanese 🇯🇵
  • Dutch 🇳🇱
  • Spanish 🇪🇸
  • Italian 🇮🇹
  • Russian 🇷🇺
  • Portuguese 🇵🇹
  • German 🇩🇪
  • French 🇫🇷
  • Korean 🇰🇷
  • Simplified Chinese 🇨🇳

おそらく自動翻訳な気がするので、日本語は怪しいところがちらほらありました。

最後に

やはり、URL単位でのブロックが欲しいw

デザリングでネットに接続する人は「TripMode」がオススメ

背景

通勤時間が長いので、電車でコードを書いています。
AWSを利用したツールを作ったりすることが多く、ネットワーク接続がどうしても欲しくなります。
そこで、デザリング経由で接続しています。

しかし、モバイルは制限がある契約をしているので、現在どれくらい接続しているかが気になります。
そこで、「TripMode」を利用しています。

Trip Modeとは?

ネットワーク制限ツールです(正式な名称があるかどうか知らないですが)。

www.tripmode.ch

何ができるのか?

自分が把握している範囲では、

  • アプリケーション単位でのネットワークの制限
  • 特定セッション内でのデータ量の制限(日毎・週毎・月毎・手動)
    設定したデータ量を越えると、自動で接続が止まります。

操作画面

現在使っているデータ量は、メニューバーで確認可能です。
電車のアイコンを部分を押すと、現在のデータ量を確認できます。

f:id:pyo_hei:20180910213317p:plain

こんな感じです。

データ量の制限は、以下の様なUIで確認可能です。
私は15MBでワーニング、30MBで使用が自動的に止まる様にしています。

f:id:pyo_hei:20180910213154p:plain

もちろん、制限を解除することも可能です。
これは最近入った機能で、お気に入りです。

あ、ちなみに、ここのリストに出ている、Inkdropもオススメです。
このブログもInkdropを使って書いています。

www.inkdrop.info

価格

  • 7.99$(2018/09/10時点)

多少高いと感じるかもしれないですが、個人的には買って大満足でした。

感想

まず、PCでデザリングする + 容量気にする人は絶対に買いです。

使ってみて感じたこと

ほとんどの人は、データ量(特にPC)は気にせず使っていると思います。
私は思ったよりもデータの通信料が少ないんだなと感じました。

動画とかは一気に容量上がるけど、普段の使い勝手だと、案外データ量は使っていなかったです。
ただ、突然転送量が増えたりするので、驚くことがあります。

詳しく調べてないのですが、特定のサイトに繋げると一気に転送量が増えたりします。
マインニングとかされてないと良いですが...

要望

日本語で書くので届かないと思うのですが、、

  • URL単位での制限

があれば、デザリング以外でも仕様用途が増えるので、助かります。
基本はアプリ単位で、詳細設定でURL単位の設定できると、ブラウザからのSNSをブロックするなどで、プロダクティビティー向上にもなるかなーと思っています。

最後に

UIも分かりやすいし、目的もしっかりしているので、合いそうな人はぜひ試してみください〜。
ちなみに、はてなブログの投稿も結構容量使います(10MBくらい)。