Lambdaカクテル

京都在住Webエンジニアの日記です

技術

PFコマンド(Packer Filter)のルールの基本を復習する

近年は野生の自宅サーバを見る機会も減ってきましたね.環境の変化によるものなのでしょうか. さて,自宅サーバを運用するにあたって避けられないのがファイアウォール,そしてそれを扱うパケットフィルタリングです.有名どころだとiptablesがLinuxまわり…

開発の悩みとコツ / 目の前の問題を正しく解く

TL;DR 良いソフトウェアは,かっこ良い過程で生まれるのではなく,たいてい地味な過程,地味な戦いから生まれてくると心得よ. はい 開発しているとき,うかうかしていると,大きな問題のほうに目が引き摺られてしまう 自分は,このプロダクトにおける正しい…

ログの前月比を出すSQL

雑なタイトルですがやりたいことはこういうことです 時刻timeとなんかいろいろが記録されたログテーブルlogがある timeは秒単位で記録されている 時間単位で丸めてCOUNT(1)して件数を出したい ここまでだったら SELECT date_trunc('hour', date_parse(time, …

勤怠マックスネオを作る その1(おおまかなガジェット設計編)

こんにちは電子工作をやりたくなってきたid:Windymeltです.ところでみんな,勤怠システムがあったら次にすること,みんなは分かるかな?(声: 結月ゆかり) そうだね,自動化だね! と言いつつ当然の事ながら完全自動化はやりすぎです.タイムカード打刻マ…

最近のソフトウェア開発の暮らしぶり

メモなので雑に書いています. キャパシティプランニングした DB Worker Redash 開発もしている 計画もしている キャパシティプランニングした とある事情があってキャパシティプランニングをやったのだが,経験者(id:hitode909)と一緒にやったので大変参…

XMLにパターンマッチを行って値を取り出せたら便利なのではないか

Webスクレイピングをしていて,「こういう構造にマッチしたときのここの文字列を取り出したい」というのはまあよくある話. こういったXMLからデータを取り出す用途においてはXPathを使うのが一般的なのではないだろうか.HTMLであれば,tidyコマンドを使う…

GoToEats京都の店舗情報を検索・地図に表示するシステムを作ったけど政府には勝てなかった回

供養というわけでメモ. GoToEats京都 この企画自体についてはみんな知ってると思います. 公式サイトが使いづらい 京都の店舗検索サイトが登場したときはきわめて使いづらいものでした.フリーワード検索機能が存在せず,カテゴリによる絞り込みこそあれど…

クラスなど設計するときに分けて考えるべきことのメモ

最近良い設計について考えているので,そのメモです. 分けて考えるべきこと どれを処理するのかという知識と,実際にそれを選別する処理 e.g. どのイベントをハンドルするかと,ハンドルするイベントをフィルタする処理 ハンドラ自体がイベントをフィルタす…

ズボラな生き方と中規模ウェブアプリケーション開発で学んだ,プロジェクトの計画にまつわる諸々の知見

最近,数ヶ月規模のプロジェクトをはじめて担当することになった.で今はそれが佳境にさしかかっていて,同僚の助けを受けながらなんとかやっていけている状態で,うれしく思っている. 片手間にやって数日で終わるようなものではないので,当然ながら計画を…

ソフトウェアエンジニアの大事な仕事は闇を祓うことである

ついに厨二病になったんか?違います. チーム開発や長期的なプロジェクトにまったく触れることなくWebアプリケーションエンジニアになった自分はソフトウェア開発の中で見積りや仕様を詰めていく箇所が一番苦手でした.新卒4年目になっても未だに,プロジェ…

scalatra + twirlでリバースルーティングする

暮らしているとリバースルーティングしたい日があります.例えばテンプレートの中で別のエンドポイントへのリンクを作りたいとき,直にURLを書きたくないですよね.修正に弱いし. いまどきのWebアプリケーションはエンドポイントを渡すと勝手にURLが作られ…

@xtetsuji さんからの出題をやってみる (Common Lispと数学編)

Twitterをやっていたら, id:anatofuz くんがおもしろ問題をやっていた.Perl入学式で出題されたらしい. anatofuz.hatenablog.com 問題はこういうの. 毎週火曜日のペアプロ講習用に作成した問題を昨晩の #Perl入学式 オンラインミーティングで紹介したので…

『テスト駆動開発』読んでTDDとトップダウンな設計との対立について考えた

新版『テスト駆動開発』を読んで考えたことのメモ。 TDDとトップダウンな設計(ペア設計)の対立について TDDと普段の自分の開発の様子とが対立するのか,はたまた対立せずに補完し合う関係なのか分かりかねている。 TDDでは,何か機能を作ろうというとき,…

標準出力をフィルタ・変形する強力なパイプ: teip使ってみた

最近teipというツールをはてブで知った。説明を読んでいるとなかなか面白いしなんかに使えそうだなという印象を受けたので使ってみた。 speakerdeck.com github.com teipとは ひとことでは正確な表現をしにくいが,「フィールドやバイトオフセット,正規表現…

サクサク年表君開発日記(CSRFトークン編)

先日に引き続きサクサク年表君(仮)の開発を進めます。前回はこちら。 blog.3qe.us Webサービスのセキュリティを支える技術としてCSRFトークン(一般的にはワンタイムトークンと言う?)というものがあります。CSRFを対策するためのトークンです。 Webサー…

DockerでNginx動かしてたら全然locationディレクティブが効かない件とその解決

2時間くらいウンウン唸るはめになったのでメモ。 tl;dr DockerでNginxを使う場合はdefault.confを無視するな 大抵の場合において不要なのでincludeディレクティブを削除しろ シチュエーション TypeScript開発のために,Dockerのnginxオフィシャルイメージで…

Yubikeyでファイル暗号化(案)

できたらいいなというメモです。 エンジニアは暗号化ZIPファイルのパスワードをメールで教えるようなしぐさをバカにするわけですが,結局公開鍵暗号を普及させることもできていないわけです。 Yubikeyという便利なトークンがあるので,これとPINがあればファ…

サクサク年表君開発日記(フロントエンド環境構築編)

TypeScriptが動くようになった blog.3qe.us 先日からの作業により,必要最低限のバックエンドの機能が出来た。とはいえ年表の作成UIはデバッグ用途でしかなく,到底実用には堪えない。表示だけがいちおうまともにできるようになった,という状態だ。 そうい…

サクサク年表君開発日記

年表を作るサービスを書いている。 年表作れるツールって無いなと思ったので勉強も兼ねてサクサク年表君を作っています pic.twitter.com/LL44tRALzc— уйндймелт (@windymelt) 2020年5月29日 自分で作っておきながら言うのもなんだけど,めっちゃ便利だな pic…

Scalaで型パラメータ付きクラス(トレイト)と抽象型付きクラス(トレイト)復習したところ全称型と存在型に出会った

だいたい同じことができる(ような気がする)別々の2つの言語機能についてよくわかっていないので書く。 // 筆者は型初心者。 型パラメータ traitには型パラメータを設けることができる。いわゆるジェネリクスというやつである。 trait Plus[A] { def plus(a…

emacsにevil-surround-mode導入した

EmadsのEvilで使えるプラグイン,evil-surround-modeを入れた。 github.com このプラグインは,なにかをカッコなどで括る操作のショートカットを提供する。 基本操作 (normal mode) ys<word object><char> -- 文字列を囲う cs<char1><char2> -- 囲っている文字を書き換える ds<char> -- 囲っている文</char></char2></char1></char></word>…

Common Lispで変数名に使える文字が自由すぎる

おおざっぱなタイトルすぎる。 Common LispやSchemeといったLisp族はきわめて構文の構造が簡素である,といったことはわざわざ説明の必要もないでしょう。リストとして式のASTを表現するわけです。 (defun foo (bar) (+ foo bar)) ; あらゆる構文がリスト 構…

バ美肉した

カスタムキャストを手でパラメータ移行した(エクスポート機能がないので) iPadでカスタムキャストを動かす AirPlayでWindows/Macに転送する(LonelyScreenというソフトで受信できる) OBSで仮想カメラを動かす するとバ美肉できる。これでリモートワーク乗り切…

最近のはてブが怖い

さいきんみんな殺気立っているのか,正しさに敏感になっているのか,ちょっとしたことでプチ炎上みたいになって,びっくりした筆者が記事を消してしまう,というのをよく見ている。 b.hatena.ne.jp インターネット,そのへんの路上で喋っているようなものだ…

WEB+DB PRESS Vol.116『Perl Hackers Hub』に寄稿しました #wdpress #perl

宣伝です。 買おう 2020-04-24 (金) に発売予定となっているWEB+DB PRESS Vol.116に寄稿いたしました!!!!!!!!!! 『Perl Hackers Hub』という連載にて、 『GitHub ActionsとAmazon ECSを使ったDockerアプリケーションの自動デプロイ』という記事で…

その気にさせる / 落ちこぼれ脱出テクニック

先日ネットで、「どうしたら子供の知力が伸びますか」という問いに対して、「子供が選んだ好きな本を読ませてあげてください」という答えがあるのを見た。 記憶が曖昧なので正確な内容ではないかもしれないが、まず好きな本を読むことで文章を読む訓練を積み…

『エラスティックリーダーシップ』読んでコミットメント言語について学んだ

id:hitode909におすすめされたので読んだ。リーダーであるエンジニアのための本だが、リーダーでない自分にも学ぶべき点を見付けることができた。 この本は「チームリーダーの仕事は何か?」を説明する本だ。 大原則として、リーダーの仕事は、「メンバーの…

GraphVizをECSでHTTPサービス化して社内どこからでも使えるようにした話

グラフ作成ツールであるGraphvizを社内でHTTPサービス化し、どこからでも使えるようにした話です。 こういう感じで使えます。 $ curl -X POST http://graphviz.ほげほげ.example.com/ -d 'digraph { foo -> bar -> buzz; }' https://ほげほげふがふが.amazon…

『計画の科学』を読んでPERT図について学んだ / PERT図を出せるツールを作成した

id:hitode909におすすめされてはいたものの読んでなかったので、休日を使って読むことにしたのが『計画の科学』である。技術と読書の贅沢二本立て。 成果物 成果物1 あたまがよくなりました 成果物2 PERT図(をGraphVizで出力するためのDOTドキュメント)を出…

Pull Requestのフォーマットにビジネス文書のフォーマットを採用しようとしたが,失敗した話

かつて,僕が所属しているチームではPull Request(以下PR)のフォーマット,特に「どうして変更するのか」「どう変更したのか」といった経緯などの要素があまり充実していなかった。このためエンジニアのみならずデザイナーやプランナーも含めたチーム内の意…

Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?