ここで触れられてた話がおもしろいかったのでざっくり紹介 discourse.elm-lang.org 文字列比較はcase文のほうが早い(ことがある) これは遅い ensureNonBreakingSpace : Char -> Char ensureNonBreakingSpace char = if char == ' ' then nonBreakingSpace …
Elmにおけるビルダパターンというのは以下のようなインターフェイスを指す。 -- setXxxのような関数をパイプでつないでいく雰囲気のやつ Button.new |> setPadding 10 |> setBackground "blue" |> setLabel "next" |> view このインターフェイスの優れた点は…
自分のチームでは朝会と夕会を両方実施しているので、その話を書きます。 (アジャイルとかスクラムとかは分からないです、念のため) 自分のチームにおける朝会の課題 もともと自分のチームでは「朝会」のみをデイリーのmtgとして実施しており、そこで「今…
elm-firestoreのパス組み立て周りの実装を型安全な設計にしてみたのでその話。 github.com Firestoreにおけるパスの仕様 まず大前提としてFirestoreにはリソースの場所を示すパスという概念があり、ざっくりパスは以下のようなルールに基づいている。 ルート…
引き続きチビチビと作り続けていたelm-firestoreだが、とうとうv10をリリースした。 I finally have just rolled out elm-firestore v10.0.0! It has Query opertion support and fixes interface of transaction-related functions. Plus, integration test…
Acer C720というChromebookが手元にあるのだが、しばらく前にサポートが切れたので気合を入れてUbuntuをクリーンインストールする。 ついでにSSDも換装する。 acer ChromeBook C720 (日本正規品)発売日: 2014/11/13メディア: Personal Computers SeaBIOSを有…
elm-typedというパッケージを作った。詳しくは以下のGithubのREADMEに書いている。 github.com パッケージ自体が根本的に実現したいことはPunie/elm-idとかjoneshf/elm-taggedあたりとほぼほぼ同じ。プリミティブ型をそのまま使わず型エイリアスでもなく、プ…
社内で以下のScalaコードがコンパイルエラーにならないというのが盛り上がっていた。 println(1 == "a") // コンパイル通るし結果はfalseになる 普段ElmとGoばっかり書いている&Scalaのことをとりあえず型に厳しい言語だと思いこんでいたこともあり若干意外…
J:COMから現時点で正式なアナウンスはなにもないが、どうやら千葉県船橋市内一帯で2/17から2/20にかけて通信障害が発生していたらしい。 この障害の影響で、上り速度が1Mbps以下しかでない日が3日間ほど続いた。症状としては上り回線の輻輳状態のような感じ…
Elmアプリケーションで比較的モジュール多めなアプリケーションの機能開発をするときに同僚とトライしている手法について。 言語的なElmのテクニックみたいな話ではなく、どちらかといえばもっと抽象的なハナシ。 1. 画面からざっくりとモジュールを見つけ出…
2020年内はいろいろ忙しくて振り返りとか書けなかったので、代わりに2021の今思っていることを。 ソフトウェア・エンジニアとしてのキャリアについて 去年はマネージャロールへの転向という自分の中での転換点の年であり、対外的な活動よりもいったん自分の…
現代では官僚制というとなんだか政治的でネガティブな面ばかりが取り沙汰されている面があるが、実際には業務の効率化という観点では、近代的な合理性を追求する優れたモデルである。 官僚制にはネガティブな面はあるものの、組織としてスケーラビリティを維…
この記事はElm Advent Calendar 2020の8日目の記事です 今年の春頃からコツコツと個人開発のアプリケーションで使うためのElm用Firestoreライブラリのパッケージを作っていたので、その紹介をします。 github.com できることはREADMEに書いてあるとおりで、…
先日PRを出していたものがマージされた。 github.com GCP DatastoreのDistinctOnは履歴系テーブルを触るときに便利で、例えばチームごとのログイン履歴を保持するLoginHistoryというカインドに対して「全チームの最新のログイン履歴を取得する」というクエリ…
この記事はFringe81 Advent Calendar 1日目の記事です。 Elmでアプリケーション開発をしているとほぼ100%出現するのがエンコーダ・デコーダの実装。 基本的に両方セットで実装することが多いが、データ構造が共通であればCodecと呼ばれる類の機能を提供する…
いろいろやってみた知見が溜まったのでまとめ。 開発 時間給で労働を売る古き良きスタイルの副業。副業として機能開発とかバグ修正とかやったりする。 自分はUIがいい感じだったからという理由でOffersを使って副業を探した。 offers.jp 注意点として、日中…
以下をやるだけ # インストール&初期セットアップ $ brew install rustup rust-analyzer $ rustup-init $ rustup update # プロジェクト作成 $ mkdir your_own_rust_project $ cd your_own_rust_project $ cargo init --vcs git --bin # rust-analyzerを使…
Elm Packagesで公開されているモジュールの中にはTEAでいうところのviewやmodelしか提供されていないものがあったりする。 これがコレクション系モジュールだとか関数単位での機能提供が目的のモジュールであればまだ問題ないが、UIを提供するタイプのモジュ…
今年の夏頃から会社で4-5人チームのリーダーをやっている。 新卒で入社したころはまさか自分がリーダー的存在になるなんて思っても見なかったが、やってみるとこれはこれでおもしろい。来年になる頃には自分がなんでこの選択をしたのか忘れてしまいそうな気…
BtoBなソフトウェアの開発において業務知識なしにシステム設計をすることはほぼ不可能に近い。 これまで、業務支援系のシステム開発はSIer企業たちのお家芸であったが、近年ではWeb系のベンチャー企業やスタートアップであってもこれまでSIerが担っていたよ…
かつてIndiegogoでバックしたGPD Pocket初代をときたま外出のとき持ち歩いたりしていたが、とうとうOneMix3 Proに乗り換えた。 性能も使いやすさも段違いになった。 izumisy.work ONE-NETBOOK OneMix3 Pro ミニパソコン 日本語配列キーボード搭載 ( Intel Co…
iguchi1124とhayashikunとisucon10に出た。一番伸びたスコアは1300くらい。 やったこと 覚えていることベースでやったことを書いてみる。 自分が覚えているのは基本アプリケーションサイドの変更ばっかり。 マシン構成の変更 hayashikunとiguchi1124がAP2台+…
いわゆるコロナ禍で自分も在宅ワークを余儀なくされているが、やはりなんといっても座りっぱなしで問題になるのは腰。腰がイカれてくる。 Fitbitで歩数を見ても腰が壊れるのは自明で、自分はかなり通勤経路が長めの人間だったということもありこれまでは余裕…
Elmは機能を絞った言語であるためScalaやHaskellのような高度な抽象化は言語機能上できないが、使う使わないに関わらず知識として「やれること」「やれないこと」を知っておくと、コード表現に幅が出る。 Extensible Record ざっくり言うとレコードのプロパ…
先日2019年モデルのiMac 21inchをメルカリで売った。 下取りとか買取で調べると6-7万くらいで買い叩かれる&一度発送しての査定なのでかなり不安(送ったら1000円とかにされたりするかもしれないし)だが、メルカリであれば先に値段が決まるので嬉しい。 手数…
インターネットで調べたところ、どうやらUbuntuがサポートするrtl8192cuというチップとして認識させれば動くとのこと。 エレコム Wi-Fi 無線LAN 子機 300Mbps 11n/g/b 2.4GHz専用 USB2.0 コンパクトモデル ブラック WDC-300SU2SBK発売日: 2014/05/11メディア…
よく分からんところがあるので整理した。 SELECT date("2020-7-1T23:59:59+0900", "Asia/Tokyo") as tzDateWithTzString, date("2020-7-1T23:59:59", "Asia/Tokyo") as dateWithTzString, date("2020-7-1T23:59:59+0900") as tzDate, date("2020-7-1T23:59:5…
Elmは純粋関数型プログラミング言語なので基本的にはアプリケーションを構成するすべての関数はテスタブルであるが、唯一Cmd型だけはテストすることができない。 たとえば以下のようなupdate関数においてPersistToStorageのメッセージが渡された際に必ずスト…
Elmアプリケーションにおいて非同期処理の完了待ち実装をいい感じにするelm-multi-waitableというモジュールを公開した github.com 内部的には状態遷移のタイミングでデータを受け取って保持するステートマシンのようなものだが、これを使うことでフロントエ…
ElmCast/elm-vimをやめてvim-lspとasyncompleteを使ってelm-language-serverに対応したVim環境を整えたのでメモ。 github.com プラグイン導入 vim-plugでvim-lspとasyncomplete系のプラグインを一気に導入する。すでに導入していれば不要。 Plug 'prabirshre…