通勤定期というものを初めて買った話

12月は常駐案件に入っていた。ずっとフルリモートで働いていて、通勤は初めて。そこそこ遠くて交通費もけっこうかかるので、定期を買ってみた。その際なにもわからなかったのでみどりの窓口の人にいろいろ聞いてみたのだが、ちょっとググっただけじゃわからないような情報があったので共有。

(少なくともJR西の)通勤定期は、

  • 区間内ならどこから乗ってどこで下りてもOK.
  • 一日一往復に限らず何度でも乗れる。
  • 休日も使っていいしそもそも通勤に限らない。

という感じで、かなり自由に使っていいらしい。「通勤に限らない」あたりは調べたときにそれっぽい感じなのはわかっていたが、公式サイトには少なくともわかりやすい形では出ていない。まあ禁止されてない=使えると判断しろってことなんだろうか。

知ってる人にはなにを今更なんだろうが、知らないとなかなか調べてもわからないので、もうちょっと周知してもいいんじゃないかな。

金額的にも、一ヶ月で買っても15往復くらいで元が取れる感じ(区間によりそう)だし、なかなかお得感あった。

2019年読んだ本

2019年は割と技術書が読めた。といっても9冊。技術書以外のフィクション以外の本が40冊。フィクションが、小説(ラノベ)80冊ちょいに漫画500冊ちょい。技術書と小説は割と読めたけどほかが減ってた感じっぽい。

今年はそこまで「当たり」って本が少なかったような気がする。今読んだ本眺めて、人におすすめしたいの何冊あるかな。

「交雑する人類」、「病の皇帝「がん」に挑む」、「睡眠こそ最強の解決策である」、「1%の富裕層のお金でみんなが幸せになる方法 実現可能な保証所得が社会を変える」あたりはまあ誰にでも文句なしでおすすめかな。

個人的な趣味に合ったのは「血と汗とピクセル」、「ラディカルズ」、「天才たちの日課」、「若い読者のための経済学史」。

技術書では再読だけど何度読んでもいい「ソフトウェア見積り」、読んでもそこまで面白くないけど学ぶべき「テスト駆動開発入門」あたりか。

それなりにいい本読んでるじゃん。

漫画では新規にブルーピリオド読み始めてはまってる。

Laravel Deployerで変な落ち方してロックが残ってしまった場合の対処法

最近とても忙しい。つらい。


とっても便利なDeployerをLaravel向けにさらに手軽にしたLaravel Deployerですが、この間こんなメッセージが出た。

Deploy locked.
Execute "dep deploy:unlock " to unlock.

書いてある通り、ロックされちゃったっぽい。

通信環境の問題で変な落ち方したのでそれが原因っぽいが、指示通り。./vendor/bin/dep deploy:unlockと叩いても動かない。

勘を働かせて、php artisan deploy:run deploy:unlockとしたら動いた。

銭けっと行ってきたので雑な感想を

(多分)第3回の銭けっと行ってきた。IT系の技術書に限らない、実業実学書の即売会とのこと。

銭けっと公式WEBサイト - ホーム

11時半くらいに着いたがまだ人は少なく、じっくり見て周れて楽しかった。以下覚えている限りの感想。

リンクは銭けっと公式ページの参加サークル一覧から。リンクや内容に間違え等あったら教えてください。

つくろか実行委員会

「技術書評」という(プログラミング関係に限らない)技術書の短い書評が載った小冊子を頒布されていた。とりあえず「UNIXという考え方」の書評があったので購入。自分のまったく知らない分野の書評はなかなか読む機会もないので楽しい。こういうのでもっとボリュームある本とかも欲しいな。

秘密結社J.O.J.I.

「作ろっ! デジタルノギス」というデジタルノギスの作り方を詳しく解説している小冊子を頒布されていた。こっち系はさっぱりだが、こうやって詳しく解説されているとその気になれば作れちゃう気もする。電子工作的なの昔は憧れもあったんだし、時間があれば手を出してみたい。

じっさいに完成品も展示されていた。ガワの部分けっこうしっかりして見えたが、あれ3Dプリンタ製だったんだな……。

Atelier ωRabbit

「綿を育てて布を作る」という綿花を栽培する話や、栽培した綿花から綿糸を作る話の本、あとバイクのリストアの本を頒布されていた。

じっさいにワタや綿花の種やらが置いてあったり、スピンドルで糸を紡ぐ体験ができるようになっていた展示がもうすごくて。展示でいちばん興味深かったのがここ。

本を買うと綿花の実と、簡単な栽培方法が載ってる小冊子もおまけについてきた。これ読んでると案外簡単そうだし育ててみたくなってくる。

LODハッカソン関西

「SPARQLでオープンデータ検索!」というSPARQLというオープンデータの検索などに使われているちょっとSQLっぽいクエリ言語の本を頒布されていた。

ここでようやくプログラミング系の本。興味ある分野だし普通によさそうな本なので購入。

silverbirder

「はじめてのWeb Components入門」という、まあ名前の通りの本を頒布されていた。

これは普通に行く前から狙っていた本でもあるし購入。サークル主さんがWeb関係のサークルがあまりなくて肩身が狭い的なことを冗談混じりに話していた。確かにねー。

エイトプラス

「教えて!フリーランスのマネーな話」という本を頒布されていた。グラフィックデザイナー視点の話とのこと。

フリーランスの人がフリーランスの生活を語る系の本はもうそれなりに読んでるんだが、飽きずに買ってしまった。同業者の話はやっぱり気になるよね。

親方Project

委託のものも含めると10種類弱くらい、さらにどれもけっこう厚めの本が頒布されていた。

いろいろ気になるものあったんだけど、予算の都合上、見積りの本と勉強会の本だけ購入。なんかおまけでいろいろつけてもらった。

見積りはかなり気になっている分野なのでとりあえず。勉強会の本は、それこそこんな本なかなかないので。

サークル主の方がほかのサークル見に行っていて留守だったのがウケた。

バラエティエンジニアイカタコグループ

Elmの本を頒布されていた。Slackのメンションに関する本も予定していたが落とした、らしい。同人誌即売会っぽい。

これも元々目当てだった本。紙のサンプルはあるけどダウンロードカードのみだった。まだダウンロードしてない。しないと。

その他

ほかにも謎のロボットを展示してるサークルさんとか、工場のプラント設計の話の本を頒布しているサークルさんとか、いろいろ気になるものだらけだった。

読むこと自体が厳しそうな本は今回は購入を遠慮したが、もうちょっと冒険してもよかったかも。まあすでに十分に予算はオーバーしているのだが。

行く前はプログラミング関係以外の本にどれくらい興味湧くかなと思っていたが、なんだかんだでいちばん気になったの綿花の本ってあたり、……。

今回は本自体が目的ということで、あと遅いと帰るのつらいってのもあるけど、早めに行って14時半からのLTは見ずに、早めに帰ったが、もったいなかった気もする。次行くときはその辺もうちょっと検討したい。

それよりなにより、ほんとは俺も本が書きたい。12月からしばらく忙しくて、書くどころか読む時間さえ厳しそうだけど、書きたいなー。

ということで相変わらず雑な感想、以上。

LaravelでHTTPS対応する正しいやり方

正しいやり方

  1. HTTPSを強制する場合はWebサーバ側で対処する。HTTPから強制リダイレクトしてもいいし、HTTPは閉じてしまってもいい。
  2. HTTPSを強制する場合、もしくはHTTPSをデフォルトにしたい場合はAPP_URLhttps://...にする。
  3. リバースプロキシ下で動かす場合、HTTPSでのアクセスか正しく判別できるようTrustProxiesを設定する。

これだけでいい。

間違ったやり方

よく以下のような方法を見かけるが、これらは必要ない。

  • Laravel側でHTTPSでのアクセスか判別する。
  • Laravel側でhttps://...にリダイレクトする。
  • URL::forceScheme()secure_url(), secure_asset()でURLを強制的にhttps://...にする。

なぜ上記のやり方をする必要がないのか

Laravelは基本的には自動で、リクエストを見てHTTPSでのアクセスか判別し、出力するURLを調整している。

artisanコマンドからの実行などリクエストがない場合は、APP_URLを見てHTTPSにするか決めている。

リバースプロキシ下でHTTPSでのアクセスかの判別が難しい場合は、TrustProxiesで対応できるようになっている。

そのため上記の方法でわざわざアプリケーションをHTTPSでだけ動作するよう強制する必要はない。

じっさい上記の方法を使うと、開発環境で動かすような場合に不便になり、その回避のためにリダイレクトやURL::forceScheme()をproductionでだけ動かすようにするなど追加の変更が必要になってしまう。secure_url(), secure_asset()に至っては、簡単な回避方法はない。

Laravelの設定ファイル(config/*.php)のキャッシュ関係の仕様を簡単に

php artisan config:cacheでデフォルトではbootstrap/cache/config.phpconfig/*.phpから読み込まれた設定のキャッシュが生成される。

config:cacheは最初にconfig:clearするため、再実行した場合はキャッシュが再生成される。

config:clearは単純にbootstrap/cache/config.phpを削除する。

config:cacheを実行していない環境で勝手に設定がキャッシュされ、.envの変更が反映されなくなることは基本的にない。

例外として、php artisan optimizeが内部でconfig:cacheも叩いているので、これを使ってしまった可能性が一つ。

もう一つ、php artisan serveで動かしている場合、バグにより設定のキャッシュとは無関係に.envの変更が反映されない。参考

ということでまとめると、

  • 本番環境・ステージング環境等ではconfig:cacheをデプロイごとに自動で実行する。
  • 開発環境で間違ってconfig:cacheしてしまった場合はconfig:clearするだけでいい。
  • php artisan serveで開発してる場合はあきらめて.envの更新ごとにサーバを再起動する。
    • あるいは、artisanを通さず普通にphp -S 127.0.0.1:8000 server.phpする。

これだけ覚えておけばよさそう。それでも引っかかる場合は、別のキャッシュが効いているのかも。

IE以外のブラウザではもうES2015は十分サポートされているようだ

FRONTEND CONFERENCE 2019のモダンJavaScript再入門で聞いた、"本セッションで紹介した内容は、IE以外のブラウザではネイティブサポートされている"が気になり、以下のようなコードを書いて試してみた。

https://gist.github.com/magai/467c80989769d5f58ad02bdc7d78b4f6

じっさいに使いそうな機能をざっと試してみたが、確かにFirefox, Chromeでは普通にサポートされていた。IEではcosnt, let, getter, setter, forEachあたりはサポートされていて、それはそれで意外だったがやはり全体的には厳しい感じ。EdgeはさすがにIEより多く、上で試した分はほぼ実装されていた。抜けていたのはスプレッドプロパティ。

今までも割とそうしてたけど、普段Firefoxで軽くコードを試すようなときはES2015以降の構文も気にせず使ってよさそう。

とはいえプロダクションコードはまだまだBabel通さないとかな……。