Lambdaカクテル

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

技術

朝日新聞社の長文要約生成APIを使ってブログの要約を自動生成する仕組みを構築した

先日朝日新聞社によって長文要約APIがリリースされました。要約をAPIで取得できるという点が面白いと感じたので、このブログ(blog.3qe.us)の記事を閲覧したときに自動的に要約を見られるような仕組みを作ってみようと思い、1週間ちょっとかかってしまいま…

付帯的な処理を構造に畳み込む

ある処理を記述しているとき,80%くらいの処理は一瞬で書けるんだけど,付帯する処理があって,そのときはなにやら複雑なことをしなければならない,ということがままある. たとえばファイルを加工するソフトウェアを書くとき,加工自体は一瞬で正規表現と…

テストでつまづきがちなのでどうすると良いか考える

症状 あれコレ俺ハマってるじゃん,と気付いたとき,だいたいテスト書いている 実装する→テスト書く→ぜんぜん通らんなんで??→ヴァルハラ(永遠の戦い) というのがよくあるパターン 通らない原因 別に準備しないといけないレコードがあった DBがデカい1つのス…

エラー検知したいけど全部処理は通したいみたいなやつ

オチはないです 話題 いくつかのエラーチェックしてひとつでもエラーがあれば処理止めたいんだけど、フラグ作って毎回if文でエラーがあればフラグを立てて…ってする方法以外になんかいい感じの方法ないかしら?— *͙覚醒*͙むったんたん (@precure_______) 202…

事前条件と事後条件、不変条件をタスク分解に応用すると便利そう

最近の仕事で試してみているのが、タスクを実行可能なレベルに分解するときに、事前条件と事後条件とをヘッダとフッタのようにして、それで1つのタスクという形に分解する、というもの。 例えば「味噌汁作る」タスクを分解したいときは突然「豆腐を鍋に入れ…

インターネットくす玉作った

ステイホームでもくす玉を割りたいということでインターネットくす玉を作った. オフィスにあつまってくす玉を割ることがなくなってしまったのでインターネットくす玉を作ったhttps://t.co/V4HkBC1LWX https://t.co/RrjWLuhfpR pic.twitter.com/YgQhWSugsY— …

ScalaアプリケーションでScalikeJDBCを使えるようにする + MySQLのセットアップ

サクサク年表君というソフトを趣味でやっている.これは年表をみんなで作れるようにするというプロジェクトで,プロジェクトといいつつ自分しかやっていないのだけれど,一人でチマチマ作っている.今回はScalikeJDBCでDBにつなげるようにしたので,備忘録的…

Bluetoothヘッドホンの調子悪かったけど2.4GHz帯域が干渉していたっぽい

自宅ではリモートワークのためにBoseのQuietComfort 35(QC35)を使っていて,MTGするときは有線のほうが良いのでそっちに切り替えているけれど,MTGしなくてよいときはQC35で音楽を聞いたりしている. で,自宅で作業しているとめちゃくちゃ音が途切れたり,…

チルダ(~)はどうしてホームディレクトリになるのか

たまに忘れてコケたり,周りでも困っている人がいるようだったのでメモ. 追記(2020-09-06T11:25+09:00) この記事では仕組みのほうについて記述しており,由来については書いてなかったのですが,ブコメでホームディレクトリがチルダで表記されるようになっ…

bhyveで動作させているUbuntuのディスクイメージを拡張する

truncateでイメージを拡張し,rescue modeでubuntuを起動した後,growpartとresize2fsを使いました. truncate truncateを使ってディスクイメージ自体をまず大きくする.+100gを間違えて100gにすると悲惨なことになる(100GBに切り詰められる)ので必ずバッ…

RustでDouble-Array Trieの練習した

生きていると,ダブル配列からは逃れられない.ダブル配列作りたいことがあるかもしれない.無人島に漂着したときに正気を保つのに必要かもしれないし,飛行機の中で急に体調を崩した乗客のために,高速検索が必要になるかもしれない. Semper Paratusだ. …

設計の作戦を立てることは枠組みを作ること

とあるプロジェクトの設計と実装とを任されている. こちらもまた数ヶ月規模のPJTなので,まずやらなければならないことは枠組みを作ることである. 数週間・数P-Rで終わるような小さなPJTと,数ヶ月・数十P-Rを要する比較的大きなPJTとではアプローチが異な…

Webアプリケーションエンジニアが自動広告とads.txtについて調べたメモ

最近仕事でads.txtをいじる機会がありました.折角なのでちゃんと調べるかと思い調べたところそこそこの分量になったのでブログに公開することにします. 調べたメモなので誤解や間違った記述があるかもしれません.違っていたらご指摘いただけると幸いです…

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があればファ…

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