(defprofile lagénorhynque
:id @lagenorhynque
:reading "/laʒenɔʁɛ̃k/"
:aliases ["カマイルカ🐬"]
:languages [Clojure Haskell English français]
:interests [programming language-learning law mathematics]
:commits ["github.com/lagenorhynque/duct.module.pedestal"]
:contributes ["github.com/japan-clojurians/clojure-site-ja"])
技術書典7でClojure本を出します (*> ᴗ •*)ゞ
-
状況
-
選択肢
-
過去
- 内政史
- 外交史
-
現在
-
未来
我々Clojurianは安住の地なき流浪の民
- 活躍の場を求めている
-
a.
非Lisp族の支配を受け入れる😇 -
b. Clojurian国家に移住する 🧭
-
c. Clojurian国家を建設する 👑
-
未開の土地を開拓する 🏜
-
既存の土地を征服する ⚔ 🤝
-
Clojurianによる征服王朝として
"Land of Clojure"を建国しよう!(?)
-
Clojurianは基本的に私しかいない
-
Lisp系言語経験者も少ない
-
関数型プログラミング/言語への理解はある
-
-
Scalaという強敵(ライバル)の領土は広大
-
Scalaは事実上の「国教」
-
静的型付言語を好む傾向も
-
-
日本語資料がとても少ない
-
数年前に盛り上がりの痕跡が……
-
英語ならドキュメントも書籍も記事もたくさん
-
-
Clojurian国家も少ない
- Clojurianが一国に集中しすぎるのもリスク
-
Clojurianは基本的に私しかいない
- → Clojure/Lisp 宣教 活動
-
Scalaという強敵(ライバル)の領土は広大
- → 活躍の場の模索(= 侵略)
-
日本語資料がとても少ない
- → 日本語情報の継続的発信(= プロパガンダ)
-
Clojurian国家も少ない
- → "Land of Clojure" 建国
社内での活動
Clojure REPL botを社内Slackで稼働開始
↓
-
slash commandで任意のClojureのフォームの
read
,eval
結果を返してくれるもの -
Clojureによる征服活動の第一歩(?)
- いつでもどこでもClojure REPLにアクセスできるようになった🉐
オプトのプロダクトADPLAN ver.7のリリース作業を支援するSlack bot "release-reporter"を稼働開始
↓
-
GitHub APIとGoogle Sheets APIなどを用いて直近リリース対象のpull request情報を一覧化するもの
-
開発のきっかけは2016年12月20に開催された社内ハッカソン
- PythonスクリプトだったものをSlack bot化
-
現在までの2年以上ADPLANの開発を陰ながら支え続けている🉐
- ※ 私は2017年1月末でこの開発チームを離れた😅
- 主な利用ライブラリ
-
clj-http: HTTPクライアント
-
clj-slack: Slack APIアクセス
-
Compojure: ルーティング
-
core.async: 並行/非同期処理
-
google-apps-clj: Google APIアクセス
-
Ring: HTTPサーバ抽象
-
社内依頼管理システム"TASK DRIVER"のバッチをClojureで開発開始🎉(自治権獲得?)
- APIをPHP/CodeIgniter、フロントエンドをTypeScript/Angularで開発するWebサービスの片隅でついにClojureが使われ始める
- ただし、コードベースに占める割合はわずか😅
- 主な利用ライブラリ
社内でSICP勉強会を開始(Lisp 宣教 活動?)
-
毎週木曜日夜に1時間開催(次回で第60回🎉)
-
主催者と参加者の負担を最小限にするため、予習は前提とせずその場で本文と演習問題に取り組む
-
Schemeとコンピュータサイエンスに限らず他のLispや関数型言語の話題で雑談しつつ楽しく学ぶ
-
2018年7月18日の第18回から社外にも公開
広告入稿支援ツール"Opt Editor"のリニューアル版で開発メイン言語がClojureに最終決定🎉(独立?)
-
APIをClojure、バッチをScala、フロントエンドをTypeScript/Vue.jsで開発するWebサービス
- 2019年7月25日現在のコードベース構成比
- Clojure : Scala : TypeScript = 35 : 35 : 10
- 2019年7月25日現在のコードベース構成比
-
本格的なREST API開発に向けた技術検証は同年6月から始めていた
- 主な利用ライブラリ
-
Amazonica: AWS APIアクセス
-
clojure.spec: 仕様記述
-
duct.module.pedestal: PedestalのDuct組み込み
-
Honey SQL: SQLビルダー
-
Pedestal: HTTPサーバ抽象/ルーティング
-
struct: バリデーション
-
cf. 『3つのLisp 3つの世界』 Clojure編
-
"Opt Editor"開発メンバー向け技術勉強会を開始(Clojurian化政策?)
-
毎週木曜日昼に1時間開催(半年以上継続中💪)
-
社内でも比較的新規な要素技術を複数採用しているため、メンバーのキャッチアップを支援
-
Clojureについて重点的に講義&ハンズオン
開発合宿で社内共有DBに対するAPI開発💪(領土拡大?)
- 試作とはいえ社内で初のGraphQL API開発事例
- 主な利用ライブラリ
-
clojure.spec: 仕様記述
-
duct.module.pedestal: PedestalのDuct組み込み
-
Honey SQL: SQLビルダー
-
Lacinia / Lacinia-Pedestal: GraphQL実装
-
Pedestal: HTTPサーバ抽象/ルーティング
-
コミュニティでの活動
第十八回 #渋谷javaで初のLT登壇
- JavaからClojureへ
- JavaプログラマをClojureの世界へ勧誘
Clojure公式ドキュメント翻訳プロジェクトに参加
-
本家ドキュメントプロジェクトclojure-siteにフィードバックしたことも
市ヶ谷Geek★Night#14 市ヶ谷java 〜JVM言語の玉手箱〜で初登壇
- Spectacular Future with clojure.spec
- clojure.specの概要紹介
clj-nakano#3 Clojure上映会 Spec-ulationで初登壇
- Situated Program Challenge with Haskell & Clojure
- ClojureとHaskellでのREST API開発について
clj-ebisu #2で初登壇
- Clojure Linters
- Clojureの主要なリントツールの紹介
Shibuya.lisp lispmeetup #62で初登壇
- re-frame à la spec
- clojure.specを駆使したre-frameによるClojureScriptフロントエンド開発について
paren-holicとして技術書典6に初サークル参加
- 『3つのLisp 3つの世界』
- Clojure編はデータ指向なREST API開発について
Fun Fun Functional (1) 関数型言語初心者向けLightning Talks!!で初登壇
- ClojurianからみたElixir
- Clojureと対比したElixirの紹介
(dosync radio)としてPodcast第1回を公開
- "Land of Clojure"がついに成立し安定し始めた
-
着々とClojurianが増えている🉐
-
Scalaの民とも平和共存している(はず😅)
-
-
さらなる勢力拡大へ
-
Clojurianを社内外で一大勢力に💪
-
Clojureを珍しくないありふれた選択肢にしたい
-
-
新たな「征服者」や「開拓者」にも期待👀
-
「移住者」も歓迎😆