35歳からの中二病エンジニア

社寺・鉄道・アニメを愛でるウェブ技術者の呟き

技術

LambdaのNode更新でAmazon Linux 2と闘う

AWS Lambdaにおいて、Node.js 8.10のランタイムが2020年2月3日で廃止され更新できなくなるのは既報の通り。 Lambdaのランタイムとしては長らくNode.js 8.10が最新の時代が続いていたので、今回の廃止で慌てている方も多いのではないだろうか。今回はその中で…

技術記事をQiitaから移動した

新年早々だけれども、Qiitaに投稿していた技術系の記事を全てこちらのブログに移動した。Qiitaに置いてある記事はまだ消していないけれども、こちらの記事がある程度検索に引っ掛かるようになったら消して、Qiitaのアカウントも削除しようと思っている。 な…

MacでAuthyよりも楽チンなMFA(多要素認証)

最初に断っておくと、この記事で取り扱う方法はAlfredというツールの有償ライセンスが必要となるので予めご了承いただきたい。 はじめに Google等で利用可能なMFAの仮想デバイスとしては、MacだとAuthyが筆頭候補になるかと思う。ただ、MFAを多用していると…

KINEZOは映画館の係員でもパスワードを覗ける

KINEZOといえば、映画のチケット予約サービスだけれども、セキュリティー界隈では「数字4桁のログインパスワード」でお馴染みの有名所でもある。平成も終わりに差し掛かっているのにこれを貫いていることについては何と申せば良いのやら…。そんなKINEZOだが…

has_many :through時のdependent: :destroyの挙動

RailsのActive Recordで多対多の関連を使う時の話。ここではClubとStudentの関係を例とする。 普通に書くと、こうなると思う。 class Club < ApplicationRecord has_many :club_students, dependent: :destroy has_many :students, through: :club_students …

モバイルSuicaとJR東日本のウェブサービスから退会した話

最初に断っておくと、僕は鉄道クラスターの端くれなので、JR東日本には日頃からお世話になっている。ところが掲題の通り、モバイルSuicaを含めたJR東日本のウェブサービスから全て退会することになった。 ざっくりとした退会理由 管理しなければならないアカ…

ChaliceでAWS CLIのプロファイルを切り替える

Chalice 1.6.0でAWS CLIのプロファイルにデフォルト以外のものを使おうとしたら地味に躓いたので、備忘録がてら記しておく。Chaliceについては以前にも「Chaliceでハマらないために」という記事を書いたので、Chaliceであちこちハマっている方はそちらも参照…

RSS愛好会刷新と日経新聞フィード配信開始

RSS愛好会では、先月からフィードのクローラーを刷新し、URLの移行期間としていたけれども、いよいよサイトの方も書き直すことができたので、デザインを新たにして公開する運びとなった。同時に要望の多かった日経新聞のフィードも配信開始したので、是非と…

feature specで名前付きルートが使えなかった話

Rails 5.0とRSpec 3.6の環境下で、routes.rb のconstraintsでhostを限定した所、一部のfeature specが通らなくなった。 何が起こったのか 以下のようなspecが全部失敗するようになった。 feature 'hoge' do scenario 'fuga' do visit piyo_url expect(page).…

RSS愛好会の今後について

RSS愛好会にて連休前より実施していたアンケートは、お陰様で230名以上の方から回答を頂くことが出来ました。大変多くの方にご協力頂き、誠にありがとうございます。 アンケートの結果と考察 まずは、本サービスの今後について触れる前に、アンケートの結果…

国民民主党のネーミングセンスが素敵すぎたので政党命名サービスを作った

国民民主党。民が連続するのも凄いし、「民主」の「民」は国民の「民」のはずなので(でないとそれはそれで凄い)、どう考えても…。いやいや、聡明な政治家先生方のことなので、きっと僕のような庶民には理解できないような深い意味があるのだろう、そうに違…

20年ぶりに個人サイトを作った

ふと気付いたら、今年の4月でインターネット歴が丁度20年になった。だからという訳では無いけれども、その時以来20年ぶりに個人サイトを作ってみた。 worklover.wor.jp サイトを作った背景 正直な所、今の御時世に個人サイトを作り込むのは悪手だと思ってい…

RailsでDevise使用時にメール認証をスキップする

Deviseでconfirmableを設定していると、管理対象のモデルを保存する際にメール認証が挟まれる。だが、場合によってはメール認証を飛ばしてメールアドレスを保存したい場合があったため、方法を調べてみた。 なお、ここでは便宜上Devise管理対象のモデルをUse…

EIZO EV2785にディスプレイの未来を見た

仕事道具に拘れない職場へ行くとやる気が7割減になるaikawameです。ごきげんよう。 はじめに 今の仕事ではUSB-C搭載のMacBook Proを使っていて、自宅でもリモートワークで使うのだけれども、今までは電源アダプターとHDMIアダプターを毎度持ち運びしていて非…

Chaliceでハマらないために

サーバーレスでAPIを作りたくて、Chaliceを使ってみた。非常にシンプルで、爆速でAPIを開発できそうだけれども、幾つか留意しておきたいポイントがあったので記しておく。なお、Chaliceについては他の記事で詳しく説明されているので、そちらを参照されたい…

ChatWork向けIncoming Webhooks的なものを作った

ウェブサービスでアイコンがデフォルトのアカウントはみんなじゃがいもだと思っているaikawameです。ごきげんよう。 はじめに 僕の勤めている会社では、社内チャットにChatWorkを利用している。「ChatWorkが許されるのは小学生までだよねー」とかSlack派に煽…

キーバインド 復活のKarabiner

JISキーボードを見ると半角/全角キーにセメダインを流し込みたくなるaikawameです。ごきげんよう。 はじめに macOS Sierraになってから、IMEのトグルやEmacsキーバインドを設定していたKarabinerというツールが動かなくなってしまった。当時は暫くEl Capitan…

Mac使い向けのはかどるGUIツール10選

自分の使っているツールが会社のメンバーに意外と知られていなかったので、紹介してみたら好評だった。そこでこちらでも紹介してみることにした。 Alfred マカーな開発者にはお馴染みのイケてるランチャー むしろ使っていない人を知りたい さらにはかどるWor…

OpenShift難民が自分用PaaSを作った話

個人ウェブサービスをOpenShift v2で無料運用していたのだが、残念ながら2017年9月でサービス終了の運びとなった。v3やHerokuではコスト的に複数サービスを回すのが辛いので、これを機会に自前のPaaSを構築することにした。 やりたいこと 小規模な個人サービ…

Ansibleでカーネルチューニング

LinuxのカーネルパラメーターやPAM limitsの設定は、大規模なサービスで抜けが発生すると大変な事になるので、Ansibleで一気に適用してしまいたい。最近のバージョンではどちらも専用のモジュールが用意されているため、備忘録がてら記載しておく。 カーネル…

GDの画像圧縮率と処理速度

よくPHPのGDは重いと言われるが、重い中でも圧縮率の設定次第で大きくパフォーマンスが変わるという落とし穴にハマってしまったので、備忘録がてら綴っておきたい。 何が起こったのか 商用サービスにおいて、アバターの合成・圧縮処理にGDの imagepng() 関数…

JMS Serializerのデバッグ設定でハマる

JMS SerializerはPHP標準のシリアライザーよりも強力なため重宝している。ただ、開発時にデバッグ設定にしたにも関わらずキャッシュが作成されてしまう現象に遭遇したので、備忘録がてら記載しておく。 ダメな例 以下は、キャッシュが作成されてしまう例であ…

Laravelのルーティングをアノテーションで指定する

Laravelのルーティングは、設定ファイル(routes.php)に記述するのが標準のやり方である。だが、僕は個人的にルーティングに関しては「設定より規約」でやりたい質である。そこで、わざわざ設定ファイルを見に行く、或いは作るという事をやらずに済むような…

LaravelのORMとしてDoctrineを使う

新規サービスでLaravelを採用するにあたり、標準のORMであるEloquentを学習しようかとも考えたが、Doctrineに載せ替えればアノテーションでスラスラとスキーマ定義できるし、DDDとの親和性も高いので、うまく導入できる方法を調べてみた。 Laravel Doctrine …

Laravel DebugbarをAPI開発でも使う

Laravelのデバッグツールとしては、Laravel Debugbarがよく使われている。ただ、これは情報をHTML上に描画しているため、API開発でレスポンスがJSONとなる場合などは表示されなくなる。そこで、Chrome/Firefox拡張であるClockworkを導入することによって、レ…