number09のblog

Pythonとバイクが好きな人のブログ

GitHubに1年間毎日コミットを続けてみた

一年前に、少しずつでも毎日コミットを続ける目標を立てて、
今日でやっと丸一年になりました。
内容はさておき、とりあえず一年間連続コミット(2018/2/27〜2019/2/26)達成です。

f:id:number-09:20190226223337p:plain

書いていたもの

  • 言語処理100本ノック
  • AtCoderの過去問
  • 個人プロジェクトのコード

体感ではAtCoderが6〜7割、言語処理100本ノックが2割、残りが個人プロジェクトです。

取り組んだ時間

  • 朝5時〜7時の時間(暖かい季節)
  • 会社の昼休み or 夜11時以降(寒い季節)

朝早起きして頑張ってる偉そうなエントリを書いていましたが、 寒くなると起きれなくなりました。
最終手段は夜寝る前ですが、大魔神可愛い娘の相手をした後だと大分パワーダウンしてツラいときもあります。
子供が生まれると時間マジで無いです。それまでに頑張っておくのが吉。

一年間やってどうなったか

一年頑張ったところで、特に変わったところはありません。(簡単なAtCoder過去門を1つ解くだけとかザラにあったし)
ただ、当初の目的(コードを書く習慣を付ける)は達成出来たし、その他個人プロジェクト等に取り組む時間も増えた気がします。 そのほか、

  • Pythonの書き方を忘れなくなった
  • 妻がこの活動を認識した(「今日のノルマ」と言えば時間確保を手伝ってくれる)
  • このエントリが書けた
  • 習慣化する方法がわかった
    • わかりやすく可視化する
    • 取り組み状況を(誰かが見ているかもしれない場所へ)公開する

自分の習慣化をする方法がわかったのは良かったです。

これから

自分は毎日コミットしないと布団に入れない感じになっているので、続けられるところまで続けてみるつもりです。
(風邪引いても正月でも旅行中でもコミットしないといけないので大変ですが)

早くコードをガンガン書ける現場仕事に戻りたいですね。

github/personal-websiteを試してみた

GitHub Pages作ってないなーと思っていたところに、以下がTLに流れてきたので試してみた。

github.dev

上記を使って作成してみた私のGithub Pagesは以下。

https://number09.github.io/

f:id:number-09:20190222231844p:plain

(後で作り変えそうなので一応写真も)

ざっくり概要

JekyllというRubyの静的サイトジェネレータを使ってページを生成してくれる。
GitHubAPIを利用してGitHub上の情報を取得して一緒に載せてくれる。

Jekyllって、PythonでいうところのPelicanとかMiyadaikuにあたるもの?
(どちらも使ったことはないけれど)

jekyllrb.com

blog.getpelican.com

miyadaiku.github.io

手順

README通りに。
Rubyの環境構築周りはちゃんと理解できていないので雰囲気でやりました。

  1. GitHub上でプロジェクトをforkして、ローカルにclone
  2. ローカルでJekyllをgem install jekyll bundlerでインストール
  3. ローカルのプロジェクトディレクトリ内でbundle exec jekyll serve
    サイトが生成されると同時に開発サーバが起動するので、http://127.0.0.1:4000で表示して確認。 (サイトを生成するだけならbundle exec jekyll buildでいい)

  4. GitHub上でforkしたリポジトリの名前を(username).github.ioに変更

  5. ローカルで生成したサイトをGitHubへpush
    3 で生成した時点で、_site/index.htmlの内容が、自分のGitHub情報から生成されたものに変わった。
  6. https://(username).github.ioにアクセスすると、GitHub Pagesとして公開されている

メモ

リポジトリ名を(username).github.ioに変更した時点でGitHub Pagesで見れる?と思っていたら404だった。
一度pushすると表示できるようになった。

さよなら2018年

雑だけど今年を振り返ってみます。

概要

年明けに子供が生まれ、時間が取れなくなったのを機に時間を使い方を以前よりかなり強く意識するようになった。
仕事は極力定時に終え、家に帰って家事に参加できるようにした。(最近はTogglを使って各作業時間を記録している)
あと意味のない飲み会は参加しないようにした。

プライベートでは、コードを書く習慣をつける為、何でもいいので1日1コミットするようにした。

number09.hateblo.jp

内容は言語処理100本ノック 2015AtCoder Problemsがほとんどで、一瞬で書けるようなコードも沢山あるが、2月末に開始してから今日まで毎日継続することが出来た。
ただこれ以外の活動は時間が作れず取り組めなかった。時間の使い方については、来年もうひと工夫する必要がありそう。

トピック

娘の誕生(1月)

待望の娘誕生。今年の全てはこれ。
完全に子供中心の生活に変わり、子供可愛いと日々を過ごす一方、自分の学習時間やバイクに乗る時間等が無くなり、
環境の変化によるメンタルのコントロールに苦しみもした。

正直子育てがこんなに大変だったとは思いませんでした。世の中のパパママは本当にすごい。

PyCon mini Osaka(5月)

osaka.pycon.jp

初めてスタッフとして参加してみた。大した役には立てなかったが、イベント運営側の事を色々知ることが出来たのは良かった。
他のスタッフの方々も頼もしい方ばかりで、当日も無事成功で終えることが出来た。

PyCon JP 2018(9月)

pycon.jp

昨年に続き2回目の参加。今年も最高に楽しかった。来年はCommittee Meetingにも行ってみたい。

バイク

今年バイクに乗ったのは半日くらいでした。年末掃除した時に確認すると、セルが回りませんでしたとさ。

仕事

出張や管理業務的な仕事が多くなった。あと割り込み電話が辛かった。早く電話が滅びればいいのにと思っていた。
コードを見るのはトラブル対応時かレビューを少しくらいで、自分で書いたものはあっただろうか。
(仕方ないのでPythonで自分用のツールを書いたりした)
カイゼン・ジャーニー完全SIer脱出マニュアルを両方購入して色々悩んでいた。

まとめ

特に家庭に関して、色々大変だった一年でした。
子育ての大半を担ってもらった妻に感謝です。
来年は娘を愛でつつ、自分のキャリアアップに注力して行きたいと思います。

来年もたくさんのいい事がありますように。

さよなら2001年

さよなら2001年

2018年に買ったものまとめ(本・アプリ編)

今年買った物の続き。

2018/12/31 完全SIer脱出マニュアルを追記

アプリ・サービス関連

GitHub

プライベートなリポジトリをBitbucketから移したのを機に課金した。

IntelliJ IDEA

個人ではPythonばっかりやっているので、PyCharmでも良い気がしたが、どうせRubyとかも触りたくなるだろうと思ってこちらを購入。
それなりのお値段はするが、購入してから毎日使っているので実質タダだと思う(違う)

BetterTouchTool (Mac)

昔買ったライセンスが期限切れだったか何かで再度購入。Lifetime Licenseにした。

Alfred Powerpack(Mac)

Alfredは2系を使っていたのだけれど、Mojaveで非対応になってしまったので、最新の3系Powerpackを購入。

ダンジョンメーカー(iPhone)

ダンジョンメーカー

ダンジョンメーカー

  • GameCoaster
  • ゲーム
  • ¥240

Rebuildで紹介されていた、時間が恐ろしい速度で溶けていくゲーム。入れるな危険。(もうしてない)

rebuild.fm

本関連

今年の本は全て電子書籍で購入。家庭の事情で通勤時間しか読書時間が確保出来ず、全然読めてないのは反省。

読んだ

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

Pythonというよりは業界入門者向け書籍。
入門者でも今はGitだよなーと、自分の職場と比べながら。

エキスパートPythonプログラミング 改訂2版

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

一歩踏み込んだPython知識が欲しくて購入。まさに自分が欲しかった書籍でとても良かった。現在二週目。

完全SIer脱出マニュアル (2018/12/31追記)

booth.pm

色々考えて活動している時期なので参考に購入。自分が今取り組んでいる内容に近いことが書かれていたので、方向性は誤っていないと確認できた。
第一章の冒頭からわかりみが深い。。。

読んでる

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

進捗50%。自分の職場と比較して、悩みながら読んでいる。

Pythonプロフェッショナルプログラミング第3版

Pythonプロフェッショナルプログラミング 第3版

Pythonプロフェッショナルプログラミング 第3版

進捗50%。エキスパートPythonプログラミングが理論編なら、こちらは実践編という感じ。

積読

闘うプログラマー[新装版] ビル・ゲイツの野望を担った男達

セール時に購入。

Vue.js入門 基礎から実践アプリケーション開発まで

Vue.js入門 基礎から実践アプリケーション開発まで

Vue.js入門 基礎から実践アプリケーション開発まで

フロントエンド力を鍛えたいのでVue.jsをちょろちょろ触っていたが、自分の場合は書籍のインプットのほうが向いている感じなのでこちらを購入。
イントロ部分を読んでいて、まだ内容に進めていない。

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発デバッグ技法まで

今年はRubyも気になりだしたので一冊購入。本格的に読み進められるのは年明けの予定。

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

AtCoderの過去問を毎日少しずつ解いているが、もう少しレベルアップしたくなって購入。まだほとんど読めていない。

まとめ

結局今年買って読み切ったのはたったの2冊3冊(!?)だった。
1ヶ月に1冊くらいは読みたい気がするが、、、もう少し時間の使い方を考えないといけない。

2018年に買ったものまとめ(ガジェット編)

今年はなかなか散財した気がするのでまとめてみた

MacBook Pro 2017(13inch)

MacBook Air(2012)のバッテリーが全く駄目になったのを機に購入。メモリ16G、SSDは256GのTouch Bar無しを選択。初めて英字配列モデルにした。
Appleの正月セールで買ったので、18,000円分のクーポンが付いてきた。メイン機として使用中。

Satechi V2 マルチ USB ハブ Type-C

MacBook ProのコネクタはType-CのみなのでUSBハブを購入。
普段MacBook Proクラムシェルモードで使っているので、LAN、HDMI、USB(ディスプレイ出力用)を接続している。
ハブ本体がちょっと熱くなっているけど問題無く使用中。

MacLab. USB 3.1 Type C ( USB C ) 延長 ケーブル

上述のUSBハブのType-C側ケーブルはそんなに長くないので、Type-Cの延長ケーブルを購入。
現在のところLAN、ディスプレイ出力共特に問題なく使用できている。

I-O DATA マルチ画面 USBグラフィック

上述のUSBハブにはHDMIポートが1つなので、Type-Aのポートから2つ目のディスプレイ出力に使用。

PFU Happy Hacking Keyboard Professional BT 英語配列/墨

MacBook Proを英字配列にしたので、外付キーボードも英字配列を選択。憧れのHHKBを購入した。
独特のキー配置に慣れるまで多少時間が掛かったが、今ではこれ無しではいられない体になってしまった。
会社にも持っていき、ノートPCと一緒に持ち歩き使っている。(おそらく社内では変な人と思われている。)

バード電子 キーボードルーフ Pro 墨

通勤の際リュックにHHKBを入れると押されたりして不安になるので購入。
正直割高感はあったけれど、キーボードが壊れないか心配し続けるよりずっと良い。

NEXARY ACアダプタ・ガジェット ケース・ポーチ

今年は泊まりの出張が多かったので、ケーブル類の収納に。

LOGICOOL ウェブカム HD画質 120万画素 C270

LOGICOOL ウェブカム HD画質 120万画素 C270

LOGICOOL ウェブカム HD画質 120万画素 C270

自宅用ではなく、実家のノートPCに設置。
ビデオチャットにappear.inを使い、実家の両親に子供の顔を見せている。

FH-9400DVS

jpn.pioneer

CarPlay/Android Auto対応のカーオーディオ。
iPhoneのマップがナビになり、Siriでの操作も出来る。
カーナビにありがちな地図更新を気にしなくてもいい。ドライブ中にPodcastの消化も捗る。

Apple Watch Series 4

www.apple.com

初売り時のクーポンを使って初のApple Watch購入。 Nike+のGPSモデル、44mm。 iPhoneあれば要らないと(恐らく多くの人が)思うだろうが、実際に使ってみると、
iPhoneを取り出す動作が結構コストの高い動作だったことに気が付く。
Apple Watchに各種通知が届くだけで、iPhoneをより活用出来るようになった。
今ではお風呂の時間以外、ずっと装着している。

Spigen Apple Watch スタンド

デスクの上に充電スタンドを購入。Apple Watchについてきた充電ケーブルをセットしている。
このスタンドからケーブルを外すのは面倒なので、外出時用にApple純正の充電ケーブルは追加で購入している。

Dalinch Apple Watch 44mm ケース Apple Watch ケース

小さい子供がいるため、念の為に保護ケースを購入。これは側面を保護するもの。 家事するときにも安心。 今みてみるとケースとApple Watchの間に埃が入っているので、定期的に掃除したほうがいいかも。

Spigen スマホケース iPhone SE ケース / iPhone5s ケース / iPhone5 ケース 対応

使っていたiPhone SE用ケースがボロボロになったので交換。
手へのフィット感とか、ボタンの操作感とかすごく良い。

富士通 PFU ドキュメントスキャナー ScanSnap iX1500

書類、年賀状、レシート等、紙を溜めてしまいがちだったので、整理してしまおうと思い購入。
試しに使ってみて、スキャンの早さと画質の良さに感動した。現在は読み取りプロファイルの作成に試行錯誤中。

まとめ

Apple製品を除いても10万超えててちょっと買いすぎたかと。 (足すと30万とかになりました)
でも今年買ったものについては特に不満なく使えているし、良いものには積極的にお金を出してでも、ストレスを感じないようにするのが自分にとっては良いことだと思っている。

Railsチュートリアル(4版)第2章

DjangoチュートリアルはBlog Postにしないのに、RailsチュートリアルをPostします。
というわけでRailsチュートリアルをはじめました。
ちなみにRubyは現時点では全然分かってません。

ハマったところ

2.3.3の演習3
なぜかundefined local variable or method email...とエラー表示される。
[:]が足りていなかったのが原因 。[:]付きはシンボルというらしい。

class User < ApplicationRecord
  has_many :microposts
  validates name, presence:true
  validates email, presence:true
end

class User < ApplicationRecord
  has_many :microposts
  validates :name, presence:true
  validates :email, presence:true
end

PyConJP 2018 Day2 参加ログ

帰阪後バタバタして書く時間が取れなかったけれど、とりあえず二日目の感想。

number09.hateblo.jp

Day 2

Keynote / Pythonでやってみた」:広がるプログラミングの愉しみ

磯 蘭水 さん

普段感じているプログラミングの楽しみを言葉にして語って頂いた感じ。
「おもしろそう」「つくってみたい」から始まって、気がついたら色々な知識が身についているサイクルをずっと続けていきたい。

Migrating from Py2 application to Py3: first trial in MonotaRO / Python2 から Python3 への移植: MonotaRO での取り組み

Python2.7から3へ移行する取り組みの話。 リポジトリを1つにして2.7と3両対応にしていくとか、両方のバージョンをデプロイして
リクエストを振り分けている等の工夫をされていた。このあたりはPythonでなくても有用なので参考にしていきたい。
Syntaxの修正の話で、コードを編集してもASTが変わっていなければ安全な変更というのはなるほどという感じ。
外部依存モジュールが少なく殆どフルスクラッチで作られているのは歴史を感じる。

Sphinx-2.0 とドキュメントの未来

Sphinxの概要や歴史、あと2.0の話。
Sphinxは個人的に好きなツールなので、メンテナの方の話を聞けたのは良い機会だった。
issueが600(去年から600あると言っていた気がする)程あるとの事。
OSS活動はやったことが無いけれど、なにか貢献できる方法を考えたい。(まず英語のハードルが。。。)

Pythonでざっくり学ぶUnixプロセス

基礎の話を聞きたかったのと、昨年の並行/非同期の話も良かったので今年も。
ゾンビプロセスと孤児プロセスとか区別なく全部ゾンビプロセスと思っていた。
昔はPerlLinuxの仕事も少しはやっていたけど、
このあたりの話は学ばずにここまで来てしまっているので、とてもありがたい内容だった。
おすすめ参考書籍がたくさん紹介されていたので順に読んでみたい。

Django を Zappaで構築してServerless Python のベストプラクティスを探る

Djangoをサーバーレスで動作させる事例の話。

サーバレスで動かすこと自体はZappaを使えば意外と簡単そうに見えた。 ただサーバレス自体の制限が多く、正直どこで使えばいいんだろう、という印象だった。

LT

個人的にLTではもったいない発表が多数。 特にdiff最小化、asyncioの話あたりは30分枠で聞きたいと思った。 ノベルティのPandasチートシートの方も登壇されていた。謙遜されていたけれど、立派にPandasコミッターだと思います。

クロージング

おわり

今年も非常に楽しい二日間を過ごすことが出来ました。
昨年から規模が大きくなり、スタッフの方は本当に大変だったと思います。ありがとうございました。

関西でもPyCon mini Osaka第二回やりたいですね。