略歴
岩手県盛岡市生まれ、兵庫県在住。 名古屋工業大学工学部 学士課程卒業、奈良先端科学技術大学院大学情報科学研究科 博士前期課程修了。
学部生時代はジェスチャー(動画像)認識、院生時代はARを研究。
大学院修了後、某SI系企業にソフトウェアエンジニアとして就職。 その後某マジシャンのもとで数年働き、今度はウェブ系エンジニアに転向するという自分でもよくわからない経歴。
フロントエンド、バックエンド、データベース、インフラ、なんでもござれのフルスタックエンジニア…を目指して日々修行中。
趣味は手品とプログラミングと音楽。 最近はイベント登壇も半ば趣味と化す。
手品が好きな人(見る/やる問わず)、プログラミングが好きな人、音楽が好きな人、お友達になりましょう!
ポートフォリオ
ブログ
主に技術系の内容です。 たまに全く関係ないことも。
サービス
QiNeel
オンラインブックマークサービスです。 「お気に入り登録はしたけど、整理整頓が面倒」という人のために作りました。
あらかじめ決めておいたルールで自動整理できるので、毎回フォルダ分けする必要がありません。
ライブラリ
ウェブサービスを作るときに必ず必要になるパラメータ処理を、簡単に、可読性高く、宣言的に行えるNode.js用のライブラリです。
宣言的なインターフェースなので「数値かどうかチェックして、数値でない場合は数値化できるかチェックして、数値化した後に値の範囲をチェックして…」といったロジックを実装する必要がありません。 そのため、可読性が高くバグの少ないコードを簡単に書けます。
GitHub Actionsの仮想環境内にSSH鍵を登録します。
SSH, SCP, rsync over SSH等のSSH系コマンドで鍵認証できるようになります。
NASA、JetBrains、PingCAP、MongoDBのような有名な組織・会社・プロジェクト等でも、ウェブサイトの更新やライブラリーのデプロイ等に使われています。
アプリ
年を入力すると、その年の恵方を示してくれるAndroidアプリです。 さらに、節分の日になると通知してくれる神機能もついています。
こんなアプリが完全無料で使えるなんて、全国の恵方マニアから感謝の声が聞こえてきそうな気がします。
LINEbot
恵方くんのLINEbotバージョンです。 「2019年」「今年」「1年前」などに反応して、その年の恵方を教えてくれます。
Androidを持っていない方も、これで備えは万全です。
ブラウザ拡張
ちょっと単語の意味を調べたいときに便利なFirefox検索アドオンです。
デザイン
デザインセンス0の人間がGoogleスライドのテンプレートを作ってみました。 背景とフォントをちょっと工夫するだけで意外とイケるもんです。
ビンテージっぽさを意識して作ったのですが、全然ビンテージになりませんでした。 このへんにデザインセンスの限界を感じます。
手品
手品動画をアップしてみました。 4枚のコインが一箇所に集まる、コインアセンブリーというジャンルの手品です。
せっかくなので、令和元年 天皇陛下御即位記念五百円を使って撮影。
一応これもポートフォリオです。多分。
開発関連の活動
アカウント
GitHub / SpeakerDeck / npm / MDN / Qiita
スキル
- 資格: LPIC-3 Specialty (LPI-303 Security, LPI-304 Virtualization & High Availability)
- 得意分野: 要件定義, アプリケーション設計, データベース設計, パフォーマンスチューニング, 負荷分散, 開発支援
- OS: Ubuntu, CentOS, Amazon Linux 2, Gentoo Linux
- 言語: C, C++, Java, JavaScript, TypeScript, PHP, Python, Go
- ウェブフロントエンド: Vue.js, jQuery, Sass, pug
- ウェブフレームワーク: Express.js, Spring Boot
- ウェブサーバ: Apache, nginx
- データベース: MySQL, memcached, Redis
- 仮想化: VirtualBox, Docker, Kubernetes
- CI/CD: GitHub Actions, Jenkins, Travis CI, AppVeyor
コミュニティ
World Wide Web Kansai
関西のウェブ業界で、特定の技術(言語やフレームワークとか)の勉強会はかなりあるのですが、Web全般を扱った勉強会がないよねーということで知人とコミュニティを立ち上げました。
バックエンド、パフォーマンス、セキュリティ、Web標準(WebGL、Web Components、WebAssembly等々)…他の勉強会では話せないけどぜひ語りたいものがあれば奮ってご参加ください。
もちろん聴講のみもOKです。
関西Node学園
東京で行っている国内最大級のNode.js勉強会「東京Node学園」の関西支部です。 現在運営チームには入っていませんが、立ち上げ時に東京の運営チームと関西メンバーを仲介するなどそれなりに活動しました。
東京・関西問わず時々登壇しています。
OSS活動
コアメンバーとして活動しているわけではありませんが、バグ修正やあったら便利な機能をちょこちょこPull Requestしています。
登壇
ここ数年で技術系の勉強会で発表した資料を公開しています→SpeakerDeck
技術系の勉強会以外での登壇は含まれていません。
大きなカンファレンスでは以下のものに登壇しました。
- iOSDC Japan 2017
- iOSDC Japan 2018 (※採択されたけど用事が入って参加できず)
- 東京Node学園祭2017
- 東京Node学園祭2018
- TSConf JP 2020 (※新型コロナウィルスの影響で中止)
小さなものも含めるといろいろやってます。 技術系以外も含めると月イチペースで登壇しています。
執筆記事
いまさら聞けないNode.js
さくらインターネットの技術ブログ「さくらのナレッジ」に寄稿しました。
Node.jsとは何か、どういう特徴があるのか、何がいいのか、何がよくないのかといった基礎的な内容を、背景にあるC10K問題とOSの仕組みを交えて説明しています。
評判のよかった記事です。
読みやすいコードを書くために
コーディングやレビューの際に個人的に意識していることをまとめた記事です。
意外と反響が大きくてびっくりしました。 こういう記事は需要があるんですかね。
AmazonのAPI設計方針 (The Bezos Mandate)
ジェフ・ベゾスがAmazonの開発チームに通達したAPIの設計方針についての解説記事です。
ベゾスがこれを通達したのは2002年ごろの話ですが、現在でも十分通用するどころかようやく時代がベゾスに追いつきつつあると言ったほうが適切な内容です。
APIを設計する際にはぜひ参考にしてください。
MDN
たまーーに更新します。 ちょっとした翻訳や誤字脱字の修正程度なので「執筆」と呼べるレベルではありませんが。
過去の作品
昔つくった、今は更新していない作品集です。
Cazary
textarea
をWYSIWYGのリッチエディタに変えるjQueryプラグインです。
デモページも用意してあります。
多言語対応しており、ブラウザの言語設定に応じて表示が変わります。 日本語、英語、ポーランド語、ポルトガル語、ブラジルポルトガル語に対応しています。 日本語と英語以外は外国のユーザが翻訳データを送ってくれました。
もっと高機能なリッチエディタはいくらでもあるのですが、メジャーなものばかりを取り上げたら他と差別化できないためかシンプルさゆえか外国のサイトでいろいろ紹介されていたりします。
- Simple Html WYSIWYG Editor Plugin with jQuery - Cazary | Free jQuery Plugins
- 5+ Freemium jQuery WYSIWYG Plugins | FormGet
- 8 jQuery Plugins for Rich Text Editors | jQuery By Example
- Please recommend a good JQuery rich text editor - Stack Overflow
そもそもjQuery自体が下火なので現在は更新していません。
Maxy
Windows用のシンプルなテキストエディタです。 既存のフレームワークを使わず、C++でWindows APIを直に叩いてスクラッチで作成しました。
マルチスレッドモデルを採用しており、複数ウインドウを開いてもとても少ない消費リソースで動作します。 色分けにも対応しています…が、機能的には足りないところが多すぎるので常用には耐えません。
現在はWindowsを使っていないので更新停止しています。
Photo Operator
大昔(メモリ500MB、Windows XP時代)に作ったフォトレタッチソフトです。 当時は無駄に画像加工のアルゴリズムにハマっていました。
家のクッソ古いPCに入っているのを見つけました。 このまま黒歴史として葬るのもアレなので全部公開します。
Mercury::Regex
C++で書いた正規表現ライブラリです。 誰でも、どんな目的にでも、どんな環境でも、どんな文字型でも、どんなデータ構造でも使える自由度の高い正規表現エンジンを作ることを目的としていました。
メタ文字も自分で設定できるほど無駄にカスタマイズ性が高いのですが、自由度に力を入れすぎて遅かったのと、C++11で標準ライブラリstd::regex
が導入されたのでお役御免になりました。
作ったのが昔すぎて、なんでMercuryなのか忘れました。
哲学・行動原理
ブラッシュアップ
- 一度作って満足しない。
- 良くないものを良く、良いものをより良く。
シンプルデザイン
- 完璧なデザインとは、付け加えるものがなくなったものではなく、取り去るものがなくなったもの。
- 空白をデザインする。
再定義
- あらゆるものを見直し、最適な形を模索する。
遊び心
- イノベーションは遊びと余裕から生まれる。
アーティスト
- 芸人が与えてくれるのは、あなたが今まさに欲しいもの。芸術家が与えてくれるのは、あなた自身が欲しいかどうかすらわかっていないもの。
長期的・総合的な利益
- 一時的に生産性を落としてでも、今後の生産性のための準備を。
- コストとは金銭的なものだけではない。
ストレスフリー
- わかりにくい、遅い、面倒、覚えることが多い…あらゆるストレスを取り除く。