lodash みたいな便利関数のライブラリ Ramda はちょっと変わり種だけどけっこう便利。 特徴としては、 関数型の思想に基づいている なので関数に副作用がない ほとんどの関数が配列とオブジェクトの両方に適用できる というのがある。 JavaScript は配列の操…
Chromeでアドレスバーにフォーカスするショートカットは Cmd + L 。 っていうだけの小ネタ。 マウスを使わずにキーボードだけでChromeのアドレスバーにフォーカスできたら便利だなと思って調べたら出てきた。
mapとflatMapという便利メソッドを理解する - Qiita によると flatMap() を使うとのことだが、Swift 4 から deprecation warning になる場合があるので、その時には compactMap で置き換える。 [1, 2, 3, nil].flatMap { $0 } // → [1, 2, 3]
やりたいこと ローカル・ループバック・アドレス(127.0.0.1)に localhost 以外のホスト名をつけたい。でも /etc/hosts は編集したくない。 方法 lvh.me というドメインがあり、開発用に 127.0.0.1 で DNS 登録されている。 lvh.meというループバックドメイ…
何回聞いても忘れるので。 frame は親ビューから見た相対座標 bounds はビュー自身の座標系から見た座標 子ビューには bounds を渡す。 let child = UIView() child.frame = self.bounds
こんな感じで行けるようだ。 $ ffmpeg -i input.mp4 -f matroska - | ffplay -i - ffmpeg の出力を標準出力にして、 ffplay がパイプで標準入力を受け取って表示する。 参考: bash - How can I pipe output of ffmpeg to ffplay? - Super User 出力の - は …
知らなかった。Linux の top コマンドと違うなあくらいしか思っていなかった。 MacOSのtopコマンドでCPU使用順にソート - ex1-lab $ top -o cpu こうしたら確かに CPU 使用率順になった。
とにかく機械学習を練習してみようと思って、『Python 機械学習プログラミング』を読みながら、見よう見まねで kaggle の練習問題 Titanic: Machine Learning from Disaster | Kaggle をやったので記録を残す。 [第2版]Python 機械学習プログラミング 達人デ…
HOC(高階関数)は便利なんだけど、型と一緒に使おうとするとどうもうまくいかなくて、試行錯誤の結果やっと最小構成の例が作れたので書いておく。まあジェネリクスの練習ですね。これでそこそこの規模のものを作ろうとしたら消耗する予感しかしない。 Examp…
サーバーサイドを TypeScript で書くなら decorator を活用するとシンプルに書ける。 decorator はむやみに使うと可読性・保守性が下がるけど、汎用性の高いケースに活用すればビジネスロジックに集中した快適コーディングができる、と思う。 decorator ベー…
静的サイトを公開するには GitHub で管理しているリポジトリなら GitHub pages を使えばいいが、そうでない場合に最速で公開したいなら、 Surge が手軽だったのでメモ。 surge.sh # surge コマンドをインストール $ npm install -g surge # これだけでアカウ…
UIApplicationOpenSettingsURLString を使えばよい。 func goToAppSetting () { guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else { return } if UIApplication.shared.canOpenURL(settingsUrl) { UIApplication.shared.open(…
TypeScript を使う時に検索してうっかり古い情報で行うといけないので忘備録。 TypeScript のコンパイラ tsc は DEPRECATED になっているので、 npm install -g tsc とかしてはいけない。 単に npm add typescript すれば node_modules/.bin/tsc が入るので…
history コマンドでコマンドの履歴を確認することができる。 $ history 1 echo foo 2 echo bar 3 history 一覧表示された履歴の中で、過去のコマンドを番号指定して実行することができる。!n を実行すると、番号 n のコマンドが実行される。 $ !1 echo foo f…
詳しく調べていないのでわからないけど、なぜか以下のように普通にテスト動画を作ると、Quick Player で再生できなかった。互換性がないとか言われる。 $ ffmpeg -f lavfi -i testsrc=duration=10:size=640x360:rate=30 -vcodec libx264 test.mp4 ピクセルフ…
忘備録。 動画に適用するフィルタは-vf で指定する。 動画の再生速度を2倍にするなどができる。 $ ffmpeg -i in.mp4 -vf setpts=PTS/2.0 out.mp4 明るさ、彩度も調整できる。 $ ffmpeg -i in.mp4 -vf eq=brightness=0.06:saturation=2 out.mp4 イコールがつ…
何をしたか React で HOC (Higher Order Component) が肥大化するとレンダリングのコストが増大するはずだと思って調べた。 もっと詳しく HOC は要するに高階関数であり、高階関数はロジックを抽象化するために優れたデザインパターンだが、パフォーマンス面…
MediaRecorder API と Canvas の captureStream() を使えば、ブラウザの Canvas 上でお絵描きしている様子を録画できる。 デモサイト 実装は出来心から preact で行ったが、普通に React 使っとけばよかった。やはり細かいところでつまずいたりした。 録画の…
$ pwd /usr/hoge/fuga であるとき文字列 fuga を取得したければ basename コマンドを使う。 $ basename `pwd` fuga pwd コマンドは変数 $PWD で代用できるので $ basename $PWD fuga でもよい。これなら別のコマンドの引数として使いたい時にも $ some_comma…
npm パッケージで作ったので、 npm install -g ejdict ですぐに始められる。 ejdict オフラインで使える英和辞書のコマンドラインツール、探してみたけどなかなかない。いちおう、Linux のコマンドラインでオフライン英和辞書 という記事で、辞書テキストフ…
React よりもファイルサイズが小さいと謳っている Preact。 Fast 3kb React alternative with the same ES6 API. Components & Virtual DOM. React と同じ ES6 の API で 3kb と軽量だし高速だぜ! とのこと。 で、本家 React と何が違うのか。Preact のドキ…
React v15.3 で追加された PureComponent は便利だけど、少し間違えるとパフォーマンス上がりませんよという話。 記事を書こうと思い立ったあとで調べたら先人がいらっしゃった。 React.js pure render performance anti-pattern 二番煎じだが、自戒のために…
オブジェクト指向の言語でモナドっぽいことをするなら、メソッドチェーンできるように実装すると自然になるかなと思った。 JavaScript では Promise がモナドなのだけど、 bind 的なことをしているのは then なわけです。 // doSomethingAsync の型が number…
ヘッドレス Chrome でスクレイピング。かなり手軽にやれることがわかった。 簡単な例をいくつか書いてみた。 準備は npm install chromy するだけ。 Google 検索して、タイトルとURLを取ってくる Amazon 検索して、本のタイトルを取ってくる Instagram ハッ…
コレクションの配列をオブジェクトにしようとして、こんな感じのコードをよく書くのだけど、 const users = [{ id: 1, name: 'suzuki' }, { id: 2, name: 'sato' }] const usersById = users .map((user) => ({[user.id]: user})) .reduce((obj, userObj) =>…
JavaScript の話題です。配列の reduce 関数、書きやすいけど可読性が低いですよね。 たとえば以下のようにコレクションを変換して id をキーとしたオブジェクトにするという操作。慣れてくれば普通に読めますけど、なんとなく読みにくいんですよね。 const …
この記事の目標は、「配列の map 関数は関手である」とドヤ顔で言えるようになることです。 初回の記事はこちら。 Webエンジニアでも圏論したい! 配列の map 関数を観察する まずは配列の map 関数をよく観察してみます。 map 関数はこんなやつですね。(コ…
結論としては、これだけ。 awkはテキストの各行に対して pattern { action } を実行する。 これだけ覚えれば間違えずに使える。 awk コマンドはテキスト整形に便利だが、使い方をよく忘れるのでいつもググっている。 使い勝手が悪いわけではないけど、多機能…
Rustの練習がしたかった。新しくプログラミング言語を学ぶときにはテンプレートエンジンを作るのが手頃な難易度で良いと誰かが言っていたので、envsubst みたいなやつを作ろうと思った。 envsubstはテキスト中の$FOOのような文字列を環境変数の値に置き換え…
npm でマルウェアが発見されました。プロセスの環境変数を勝手に外部サーバーに送るそうです。 npmjs.com で著名ソフトウェアによく似た名前のマルウェアが大量に発見された 環境変数でパスワードや API Key などの機密情報を管理しているとやばい。対策とし…