number09のblog

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

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第二回やりたいですね。

PyConJP 2018 Day1 参加ログ

昨年に引き続き、PyConJPに参加してきました。自分が参加してきた範囲の感想を書きます。

Day 1

Keynote / Argentina in Python: community, dreams, travels and learning

Kaufmann Manuel さん
とにかくPythonへの愛と情熱に溢れていた。聞いていてエネルギーを注入されるよう。
彼がPythonの学習を始めた時に、『何でも質問して良い』と言ったPythonコミュニティの対応が印象的。 開幕にピッタリのKeynoteだったと思う。

※日本も以下のサイトにDiscordサーバやコミュニティが紹介されています。
日本のPythonコミュニティ - python.jp

ちなみに今年は通訳レシーバを借りました。同時通訳素晴らしかったです。

招待講演 / 東大松尾研流 実践的AI人材育成法

中山 浩太郎 さん
割とPython成分薄め?のお話。AIやデータ解析方面は追いかけてなかったので、
もうすこしPython多めで話をして頂けたら(個人的に)ありがたかったかな。
紹介されていた松尾研のDeepLearning講座を非エンジニアの方も受講されているらしく、刺激というか(一応エンジニアとして)危機感を感じた。

Webアプリケーションの仕組み

シンプルなWebアプリケーションが出来ていく様子を、コード例を交えながら説明されていた。
丁度最近流行りの『例の質問』を受けて十分な回答が出来ず、もっと基礎を見直さないと、と考えていた所だったのでありがたかった。
わかりやすく、「自分でも試してみよう」と思える発表だった。私も自分で手を動かして復習します。

Django REST Framework におけるAPI実装プラクティス

Django REST Frameworkでのプラクティスの紹介。

APIのページングは、相対位置指定の抱える問題についてなんとかならないかと
自分でも考えたことがあったが、そのまま放置していた。
発表を聞いて絶対位置指定が可能であることを知った。
又、相対位置指定の場合のパフォーマンス問題を聞いてなるほどと思った。

Jupyterで広がるPythonの可能性

部屋を間違えたせいで遅れて入室することになったけど、個人的に1日目で一番印象に残った発表。
内容盛りだくさんで追いきれなかったけど、発表を聞いてJupyterを見る目が変わった。

  • OSのコマンドも実行できる
  • プロファイルもできる
  • JavaScriptPerlとかのコードも書ける
  • コード整形もできる
  • スライドショーも作れる
  • 発表のためにtsumikiを作った

Rust と Python

Pythonの拡張をRustで作る話。 Rustについては全く分からないけど、エキスパートPythonプログラミングを最近読んでいて、C拡張を作る時の難しさについて書かれていたのを思い出した。
Rust注目されているけど、自分はとりあえずPython中心に頑張ろうと思う。

LT

どの発表も楽しんで聞いていた。私もPythonで仕事したい。

パーティ

東京に知り合いもいないので、関西の方と一緒に居たけど、それでも数名の方とお話出来た。Pythonという共通の話題があるおかげです。
関西はあんまりPythonコミュニティ活動が長続きしていない感じなので、頑張っていきたい、みたいな話をしていた。

二日目については後日書く予定。

カーナビの代わりとしてPioneer FH-9400DVSを購入した

FH-9400DVSという、CarPlay/Android Auto対応カーオーディオを購入しました。 f:id:number-09:20180716110638j:plain

jpn.pioneer

選んだポイント

良い点

  • ナビは使いたいけど、ナビ地図更新にお金はかけたくない
  • バックカメラは欲しいので、ディスプレイはあったほうがいい
  • PodCastも頻繁に使う

    気になる点

  • iPhone(CarPlay)だと、使える地図がAppleのマップ固定

といった感じだったのですが、WWDCで時期iOSでのサードパーティアプリ解禁情報が出てきた為、購入を決意しました。
Appleのマップが不満でも、きっとYahooカーナビがなんとかしてくれると期待)

購入

というわけで近所のオートバックスで購入&取り付けをしてもらいました。
車の方はホンダのフリード(現行) + ナビスペシャルパッケージです。
ナビスペシャルパッケージをつけると、ステアリングにナビ操作ボタンがあります。

設定

FH-9400DVSをステアリングコントローラから操作する為には画面からの設定が必要です。説明書を読みましょう。
(最初は初期不良かと思って焦った)
物理ボタンに対して割り当てたい機能を選択する形式です。
また、一度設定した後に割り当てを修正したい場合、本体の設定を初期化する必要があります。 バックカメラの駐車ガイド線などを設定している場合はクリアされてしまうので、必要な設定は事前にバックアップをおすすめします。

ステアリングとの接続ケーブルについて

私の車の場合、ステアリングとの接続ケーブルにKJ-H101SCを使用すると、 「SOURCE」「ボリュームアップ」「ボリュームダウン」「トラックアップ」「トラックダウン」
のボタンには機能割り当てを設定できたのですが、
「ON HOOK」「OFF HOOK」「発話」「ファンクション」「ショートカット」
のボタンには設定が出来ませんでした。

メーカーに問い合わせると、KJ-H102SCのケーブルを使えば、
「ON HOOK」「OFF HOOK」「発話」「ファンクション」「ショートカット」
のボタンも使えるとの回答を頂けたので、交換して全ボタン使用可能になりました。

これから購入を考える方は、ぜひケーブルについて事前確認してください。

使ってみた

先日九州へ旅行に行ってきたので、ナビとして使用しました。
基本ナビ表示+PodCastを流しています。

f:id:number-09:20180730224848j:plain

基本都市部を走っている場合は特に問題なく使用できました。
ただ田舎のローカルな地名についてはGoogle or Yahooの地図なら検索できるけど、Appleの地図は検索できないケースがありました。
また、新しい道の更新もAppleの地図は対応が遅い感じです。

結論

思ったよりAppleマップが使えて、結構満足しています。
タッチパネルも普通に使えるし、ナビ地図更新にお金を使うよりは全然いいと思います。
これから使い倒していこうと思います。
※これまで車やナビを使ってこなかった人間の感想です

写経を楽にするためのAppleScriptを書いてみた

発端

家にいるときは外部ディスプレイに繋いでて、一画面で左半分をエディタ、右半分をKindle for Macにして 写経している。 めんどくさいなーと思ってたけどAppleScriptで出来そうな気がしたので、とりあえず書いてみた

github.com

とりあえず今はVolume Upで次ページ、Volume Downで前ページに移動するようにしている。 (HHKBを使っているので実際はfn+sで次ページ、fn+aで前ページ)

これで基本ずっとエディタだけをアクティブにしておけばいいので楽。

参考にしたサイト

kindle for mac で自動ページめくり(AppleScript)

最前面のアプリケーションに命令する : 観測所雑記帳

GitHubに毎日草を生やす活動を始めたらいいことがたくさんあった

GitHubに毎日草を生やす(コミットする)活動をはじめました。
飽きっぽい自分が一ヶ月以上継続できた事に自分でも驚いているのですが、
これをきっかけに色々いいことがあったので書いてみます。

きっかけ

年明け早々に娘が産まれました。 早速夫婦で親バカになったまでは良かったのですが、娘の世話で帰宅後や週末の自由時間が無制限に奪われていくようになりました。
仕事でも余計な作業でコードを書く機会を減らされている上に、自宅での時間もないとストレスが溜まります。
ちょうど私も誕生日を迎えたのをきっかけに、ネット上で見かけた「毎日GitHubに草を生やす(コミットする)」活動にトライしてみることにしました。*1

開始1週間位まで

丁度業務も多忙な時期だったこともあり、帰宅後にPCに向かう体力がない日が続いていました。 さすがに開始一週間でギブアップするわけにもいかず、眠たいながらなんとか1コミットを送っていたのですが、
このままでは絶対に続けられないと思い、夜ではなく朝に取り組む方針に変更しました。

開始2週間以降

朝に取り組むと決めてから、毎朝朝8時起床の私が、5時半〜6時の間に目が覚めるようになりました。
このあたりから生活が改善され始めました*2

  • 朝に(コミットするという)ノルマをクリアしておくことで、夕方や帰宅後にプレッシャーを感じることがなくなった。
  • 仕事も朝イチに頭が動きやすくなった(気がする)
  • 朝早いとお腹が空くので、自然と朝食もちゃんと食べるようになった
  • 家事をする時間も出来たので、妻の家事負担を(少しだけど)軽減できるようになった*3

正直ダメ人間が一般人になっただけじゃん!というツッコミはその通りですが。

なぜ継続できたのか

タイトルの通り、GitHubに草を生やすという形で、
自分がコミットを送った = 目標を達成できたことが可視化されるので、 それがモチベーションの維持につながっています。

最初の一ヶ月でやったこと

簡単なことしかやっていませんが、それでもまず習慣化できたことは良かったです。

今後やりたいこと

  • 100本ノックが終わったら、AtCoderの問題をやる
  • 英語の学習をする*5

おしまい

今年は娘のためにがんばります

*1:プライベートリポジトリですが

*2:以前は起きて朝食も食べず出勤というダメな生活でした

*3:洗濯、風呂掃除位ですが、妻にはとても助かると言ってもらえました

*4:一日一問ペース

*5:成果を可視化できる学習法があったら教えて欲しい

完全ワイヤレスイヤホンのZOLO Libertyを買いました

流行りの完全ワイヤレスイヤホンを検討していた所、 12/24の朝にRebuild.fmで紹介されていたZOLOの完全ワイヤレスイヤホンが 日本で発売開始になったとの情報が入ってきました。

Liberty – Zolo Audio Japan

rebuild.fm

上位機種が1月発売らしいけど、 先着500台1000円オフになっていたので、そのままAmazonで注文し、 今日届いたので開封してみます。

外箱 f:id:number-09:20171226230447j:plain 開けてみる f:id:number-09:20171226230601j:plain 最初に充電してと書かれていたので、とりあえずケースに収納。 ケースの正面には充電具合を表すランプがあり、 右側面にmicroUSBの差込口があります。 f:id:number-09:20171226230913j:plain

充電ケースの重さはキッチンスケールで量ると90グラム。 イヤホン本体は2つで12グラムでした。 ちなみに手元のiPhone SEがケース込みで127グラム。 f:id:number-09:20171226231004j:plain

部屋で装着して見た感想

  • 音は結構よさげな気がする(手持ちの有線イヤホンと同じくらい)
  • 最初ついてたイヤーチップは中サイズ。自分は小サイズに交換して丁度いい。
  • イヤージャケットはなくても結構フィットしてる感がある。
  • 音量調整はSiriにお願いするか接続デバイス側で行う。イヤホンでできればなお良かった。

今後は通勤時やジョギング時に使ってみる予定。