こんにちは、モノタロウ コアシステムエンジニアリング部門 配送ドメイングループの安見です。 この記事では私が関わっていた社内システムを仮想サーバ(AWS EC2)からコンテナに移行した後にコンテナをやめて仮想サーバに戻した話をご紹介します。 諸説明 コンテナ移行について コンテナ化対象システムについて 直面した様々な問題 リリース後の多数の残課題 展開する機能の数が多すぎる コンテナ化のメリットが薄かった なぜこうなったか よかったこと まとめ 追記: 現在なら... 諸説明 コンテナ移行につい…
アジャイル型でアプリ開発を進めたところ、完成に至らなかったことについて、ベンダの不完全履行、プロジェクトマネジメント義務違反等が主張されたが、いずれも否定された事例。
◆まとめ◆ プログラミング言語では「型」がドメインモデルを表現する重要ツールである。一方、モデリング観点からはデータ値に対する制約こそがある意味本質で、(主にNominal Subtypingが想定されるところの)型も制約の一手段なのだと気付く。 制約一般を型として扱う上でのツールとしては、Nominal Subtypingに限られること無く、依存型やStructural Subtypingを用いることができる。もう少しカジュアルには(=動的評価でよいなら)、型にDbC不変条件を常にセットしたも…
来週で40歳にあるので30代の振り返りとしてこれを書く。 そんな30代を全力で走ってきた中で、これは30代でやってよかったな。 もっと早くやってもよかったな。というようなことを書く。 最初に行っとくと一般的にやったほうが良いということは基本的にやったほうがいい。 そういうのも含めて実際にやってみた経験も書く。 習慣を作れるようになる これは本当にやったほうがいい。 身につけるのであれば、早ければ早いほどほどいい。 もう少し具体的に話すと自分がやりたいことを実現していくためには習慣にできるとよい。…
今まで id:mizdra はターミナルで Git ブランチを切り替えるときに、zsh + peco を使った Git ブランチ検索用のキーバインドを使用していた。 # .zshrc function select-git-branch() { selected_branch=$(git branch | cut -c 3- | peco) BUFFER="${LBUFFER}${selected_branch}${RBUFFER}" CURSOR=$#LBUFFER+$#selected_br…
ROUTE06 では GitHub の管理に Terraform を導入しました。今回はその導入の背景、実際に導入してどう変わったのか、導入方法について紹介したいと思います。 Terraform とは Terraform は、IaC(Infrastructure as Code)ツールの一種です。 インフラの設定をコードとして管理することで、設定の変更履歴が明確になり、誤った設定によるトラブルを防ぐことができます。 なぜ GitHub を Terraform で管理するのか ROUTE06 では…
擬似乱数と言えば、かのカルドセプトサーガの悲劇が有名です。 ダイスの出目が必ず奇数と偶数の繰り返しになるという、地味ながらゲームバランスの根幹を破壊するバグが話題となりました。しかしその話題から得るべき教訓は、 その論調は一様に、サイコロすらまともに作れないなんて馬鹿すぎる、担当プログラマが低脳すぎて笑える、といったような物だった。やがてそのような書き込みの中に、Cコードを示して「サイコロなんかたったこれだけで作れるのに」と発言する者が何人か現れた。そしてこれが最も重要な点だが、そのようにして示…
アイキャッチ画像は【松尾研LLMコミュニティ】面倒なことはLLMにやらせよう "Beginning LLM"より引用 松尾研 LLM コミュニティ"Beginning LLM"で登壇しました 松尾研究室のLLMコミュニティで登壇しました。 面倒なことをChatGPTだけでなく、色々なLLMにやらせようというテーマで、お話させていただきました。 座学とハンズオンでの実践で、質問を挟みながら1時間半程度実施しました。Connpassの参加者登録数 900人で、実際の参加者は最大487人だったそうです…
バージョンアップが来ました。 Obsidian Obsidian - Connected Notes 1.7.4分類: 仕事効率化,辞書/辞典/その他価格: 無料 (Dynalist Inc.) ver1.7.4になって起動が早くなりました。 あと、外付けキーボードで書いているときTemplaterスクリプト後にカーソルが消える不具合があったのですが、それが修正されています。 ありがたいわあ。 将来的にAndroidのタブレットを使うにしてもパソコンに戻るにしても、Obsidianがあるというの…
コンテンツマーケティング施策の手段として挙げられることの多い「オウンドメディア」。オウンドメディアを運営する目的は自社商品やサービスの認知度向上、見込み客の獲得、採用広報や企業ブランディングなど企業によってさまざまですが、適切な構築と運用を行うことで大きな成果が期待できる手法です。一方で、いざオウンドメディアの立ち上げや運用を行う際には、さまざまな課題が発生します。はてなが主催するオウンドメディアに関するセミナーなどでも、「オウンドメディアを立ち上げることになったけれど、何から始めればいいんだろ…
Money Foward Tech Day 2024 こんにちは、@nov です。 先日 2024/09/20、Money Foward Tech Day 2024 というイベントで Passkey Autofill に賭けるマネーフォワード ID というお話をさせていただきました。 その時に使ったスライドはこちらに公開してあるのですが、スライド内の文章は日英併記が必要で、スライドレイアウトの調整が難しかったため、このスライドにはほとんど文章を入れていません。 結果として、このスライドだけでは、…
エンジニア採用の状況は地域によって大きく異なる 最近視聴した2つのコンテンツが、同じソフトウェアエンジニア採用の話題を取り扱っているにもかかわらず、その内容が両極端で非常に興味深かった。 ひとつは「エンジニア採用必勝法・これだけでわかるDevRel入門」という動画で、もうひとつは「最近カナダで就職したエンジニアと一緒に北米就活の攻略法を語る」というポッドキャストのエピソードだ。 エンジニア市場と企業の採用戦略は地域や業界によって異なるが、ここで話されている東京と北米(バンクーバー)では顕著…
Yu Gothic UIに text-spacing-trim を適用するとバグる を読んでいて、気になってしまったので、実際にYu Gothic UIのファイルの中身を開いて調べてみました。 発生している問題 回避策 原因 Yu Gothic UI 特有の問題? まとめ 発生している問題 Yu Gothic UIは、Windows 10からプリインストールされているUI表示用フォントです。 手元の環境で確認したところ、Windows 11 23H2 (ビルド 22631.4317) 時点では、…
よく聞かれるのでタイトル通りのことを書こうと思ったわけですが、さて実際のところどうだったかとなると、なかなか思い出すのが難しいです。少なくとも「最初からできた」ではなかったです。そして「俺は全然駄目だ」な状態から「いける」という状態に、あるときを境にフラグが立ってそうなるというようなものでもなかったです。いくつかの出来事によって、ようやくそう思えたと感じたと記憶しています。本記事ではこれらの出来事について紹介いたします。 本記事の主な対象読者は、社会人一年生を含む経験が浅いソフトウェア技術者で、…
数日前に𝕏上で「日本のDevRelって何なんだ?」という議論が巻き起こり、エンジニアや今DevRelを名乗っている人たち周辺で大きな話題となりました。わたしもかつてDevRelという名前のチームで働き、その活動に意義があると思っているので話題を整理してみたいと思います。今や様々な役割を内包する名称としてIT・WEB業界で一定の認知度を得ているDevRelとは何をする人なんでしょうか。 ここに書いたものはあくまでも個人的な視点と意見ですが、関連する皆さんは一緒に考えてみてもらえると嬉しいです。𝕏で…
TypeScriptが仕事で使えるレベルになるためには、単に基本的な文法や構文を理解するだけでなく、実際のプロジェクトやチーム開発でどのように活用するか、スケーラビリティや保守性を考慮しながらコードを書く能力が求められます。この記事では、TypeScriptを実務で使うために必要な基本から、少し踏み込んだ中級レベルの知識を、コード例を交えながら丁寧に解説します。 TypeScriptとは TypeScriptは、JavaScriptのスーパーセットで、JavaScriptに静的な型を追加した言語…
Cloudflareが@opennextjs/cloudflareを発表 2024年9月末に開催された「Builder Day 2024」でNext.jsアプリをCloudflare Workersにデプロイする新たな方法が公開された。 この方法は、@opennextjs/cloudflareを使ってビルドする。既存の@cloudflare/next-on-pages方式を置き換える可能性があり、現在は実験的な段階だ。 以下に新旧の開発手順のドキュメントがある。 新(opennextjs): N…
こんにちは。MySQLは秋の季語とする一派が世に存在していることを知り、私もMySQLに関わる記事を書いてみようと筆を取ることにしました。 さて、リレーショナルデータベースをバックエンドとするWebアプリケーション開発において、特定の条件に合致するレコードがN件だけ存在するかどうかを確認するロジックは頻出といえます。プログラマとして一度は書いたことがあるのではないでしょうか? この記事ではそのような件数カウントを行うためのクエリが引き起こした性能劣化と、その改善アプローチについて紹介していきます…
はじめに こんにちは。MonotaROで機械学習エンジニア兼、Tシャツのモデルを務めている新卒3年目の長澤です! 最近は健康のためにスポーツをしているのですが、そのスポーツの疲れで日々が辛くなってきました。観戦と自分で身体を動かす方の割合(重み)をバンディットを使ってうまく最適化していきたいこの頃です。 今回は、自分がここ1,2年(2023~2024)で取り組んできたMonotaROにおけるMLOpsの取り組みについて、実例を交えながら紹介します。MLOpsの実例はあまり世の中に出回っていないの…
こんにちは。LegalOn Technologies 検索・推薦チームの浅野(@takuya_b / @takuya_a)です。 先日、社内のプロダクトマネージャー(以下、PdM)を主な対象として、検索推薦技術の入門講座を開催しました。このたび、その資料を公開します。
こんにちは、レシピ事業部プロダクト開発グループの赤松(@ukstudio)です。 昨年の10月頃からレシピ事業部ではひとつの大きなプロジェクトに取り組んでいました。このプロジェクトは社内ではOne experienceと呼ばれています。本記事ではこのOne experienceについてご紹介します。 One experienceとはなにか クックパッドではレシピサービスを日本を含めた71ヶ国、29言語で展開しています。これまでは日本のサービスと海外のサービスは独立した別のシステムで別のサービスと…
はじめに ソーシャル経済メディア「NewsPicks」SREチーム・新卒エンジニアの樋渡です。今回は、AWSサービスである「Lambda」「CloudFront」「S3」を用いて、弊社で使用している社内向けシステムの基盤を再構築し、開発者体験の向上やセキュリティ対策を行なったお話です。 お話の内容 弊社で使用している社内向けシステムの一つに「Watson」というシステムがあります。「Watson」とは簡単にいうと「NewsPicks」のユーザーIDをもとにユーザーごとの情報を検索・閲覧できるシス…
はじめに ドワンゴ教育事業でデータサイエンティストとして働いている中井です。 この記事では、PythonのパイプラインパッケージであるLuigiで構築したパイプラインにおいて、それを構成するタスク間の依存関係・タスクのグループ間(task_namespace で分けられる)の依存関係を良い感じに出力する方法についてお話しします。想定する読者はある程度Luigiを使ったことのある方としています。 Luigiではタスク全体の依存関係を出力できますが、大規模なタスクだともう少し荒い粒度であったり、全体…
あらゆるソフトウェアに存在する「サポート期限(End Of Service Life、EOSL)」。EOSLを迎えたソフトウェアにはパッチなども提供されなくなるため、安定した運用が困難になります。メーカーからのアナウンスがあれば、より新しいソフトウェアへの移行計画を作成し、これまで動作してきたアプリケーションプログラムの稼働に影響がないかを確認し、場合によっては改修を加えるといった一連の対応が求められますが、それには多くの労力が必要です。1つのシステムですらこれほど大変なEOSL対応ですが、賃貸…
こんにちは、佐々木です。 けっこう前のことですが、2024年9月3日のJAWS-UG横浜 #73 AWS Management Services回に登壇してきました。 テーマはマネージドサービスということでAWS Organizationsですが、どちらかというと、それを扱う組織・人をテーマに話しています。 発表資料と当日のアーカイブ動画 speakerdeck.com www.youtube.com お伝えしたかった事 当日の話は動画を見て頂けると幸いですが、全体的な流れとしては次のようになっ…
バックエンドエンジニア兼万年ダイエッターの taisa です。毎朝子どもの幼稚園バス送りのついでに短距離ダッシュして運動してます。はたから見ると変な人ですが、バスを追っかけるようにダッシュすると幼稚園バスの子どもたちは喜んでくれます。 テックタッチは以前、マイクロサービスの切り直し後に DB 統合を実施しました。本記事では、テックタッチがどういったプロセスで DB 統合を実施したかを紹介します。また、AWS DMS を利用する際に気をつけるポイントについても合わせて紹介します。 マイクロサービス…
先日,深夜に友人と話している際に「スライドのフォントに結局 Noto Sans(≒ 源ノ角ゴシック)を選んでしまう」という話題が出ました*1.Noto Sans がオープンソースであり,Google スライド等のアプリケーションで最初から使用できるという理由も勿論あるのですが,個人的にはそれだけが理由でないように感じます.ときに,プレゼンテーション用のスライドにはどのような書体が適しているのでしょうか? 遠くから見えるように,視認性が高いフォントを使いましょう! ――という教科書的な回答はさてお…
111個の1ボタンゲームを11秒で次々に遊ぶ 1x111(ワン タイムズ ワン-ワン-ワン)です。PCやスマホのブラウザで遊べます。1ゲーム1分で終わるのでお気軽に試してみて https://t.co/nWai2HT5TN pic.twitter.com/2Ski8E1hGM— ABA (@abagames) 2024年10月6日 いわゆるメイドインワリオ的な、短い時間で次々にワンボタンアクションミニゲームを遊ぶゲーム。成功数に応じて星がもらえて、新しいゲームをアンロックできる。HardやExp…
はじめに 10月に入り、やっと秋らしい感じになってきました。 データ分析エンジニアの木介です。 先日、AWS Chatbotの新機能を利用して、BedrockがTeamsやSlackと簡単に連携できるようになったと発表がありました。 今回は、その内容を確認して、BedrockとTeamsを連携する方法について、説明していきます。aws.amazon.com はじめに 概要 Amazon Bedrockとは? 今回のゴール TeamsへのBedrockを使ったアプリの導入 構築環境 1. Agen…
YAPC::Hakodate 2024に参加してきました。近年のYAPCでは参加するだけで登壇していなかったのですが、今回はゲストとして呼んでいただいたので、40分枠で自分の仕事に少し関係ありそうな技術ネタみたいなものを話させてもらいました。 speakerdeck.com スライドを作る上で、めんどうくさいWebセキュリティを久々に読み直したのですが、2012初版と古い部分はあるのですが(IEの話とか)、基本的な部分は今でも変わらないので、たしかにそうだったなといった発見もあって面白かったです…
Insight Edgeのデータサイエンティストのki_ieです。 数理最適化の専門家として、これまでさまざまな課題を数理最適化問題としてモデリングしてきました。 モデリングはアルゴリズム設計と比べて注目を集めることが少ないようですが、 実際には技術的な知見・調査を要求する骨の折れるタスクです。 このタスクを簡単にしたいとは日々思っていたところですが、最近 OpenAI o1 というモデルの論理的推論能力が高いらしいという聞きました。この賢いLLMがモデリングのお手伝いをしてくれたら嬉しいですね…
この前上司の PR を読んでいたら「理解できるけどどうすればこんなこと思いつくんだ」と思ったコードがあり、聞いたら出典を教えてくれたので紹介する。 というわけでこちら。 strechr/testify のコードにそれはある。 github.com 私が感動したコードはこの getLen() 関数。 // getLen tries to get the length of an object. // It returns (0, false) if impossible. func getLen(…
「TypeScriptではじめる型システム」という記事をn月刊ラムダノートに寄稿しました。 新刊を発売しました "『n月刊ラムダノート』Vol.4 No.3(2024)発行のお知らせ https://t.co/PGppk1aRRA— lambdanote (@lambdanote) 2024年10月4日 どんな内容? TypeScriptの極小サブセットに対する型検査器を書き、それを通して型システムを体感してみよう、という内容です。 詳しく言うと、boolean型とnumber型と関数型しかない…
www.cio.com先月末にこの記事を見たときは、これは日本の技術系ニュースサイトでも取り上げられるだろうなと思ったのだが、観測範囲が狭いのかそういうのを見かけなかったので、一応紹介しておく。コーディングアシスタントは、生成 AI のユースケースとして有望視されているが、期待される生産性の向上はほとんどないという話である。多くの開発者が AI のコーディングアシスタントで生産性が向上すると言っているが、Uplevel 社の研究によると有意な利益は見られず、それどころか GitHub Copil…
こんにちは。こんばんは。 開発生産性の可視化・分析をサポートする Findy Team+ 開発のフロントエンド リードをしている @shoota です。 先日、END が 【フルスタックエンジニアへの道!】React と TypeScript の修行をした話 というタイトルで、フルスタックエンジニアを目指すためのフロントエンドの修行の記事を投稿いたしました。 こちらの記事では React / TypeScript において個人学習程度のレベルにあった END が、機能開発を自走可能になるまでの内…
何らかの問題を解決しなくてはならなくなった時に、解決よりも深掘りを優先してしまう特性の人がいます。 たとえば問題に対する短期的な対策を考えることをおろそかにして、根本原因究明と根本対策方法をじっくり考え込んでしまうような人が該当します。他人事のように言ってますが、筆者もそうです。本記事は、そういう筆者が過去に仕事で困っていたこと、ある時から状況によって取り組み方を変えられるようになったという話をします。 上記のような特性の人は、調査のたびに深い知識が得られ、血肉となっていきます。それゆえ技術に明…
はじめに ついにLoggol(ロゴル)の正式版をリリースすることが出来ました。それに合わせてLoggolブログも開始です。まず最初の記事として、そもそも何故このサービスを作ったのかについて書いてみようと思います。理由は複数あり、それらが複合的に混ざることで実際のサービス化を決心しました。 1. WAFの技術を活かせる 私はLoggolの開発以前より、継続して2つのクラウド型のセキュリティサービスの開発・運用に携わってきました。1つはWAFであるScutum、もう1つは脆弱性検査ツールであるVAd…
先に書いておくと,職場の人にも辞めます宣言をして,オープンに転職活動を開始することにしました.という記事です.2025 年 2 月には現在の所属を去る予定で,諸々を進めて行こうとしています.何らかご縁ありましたらよろしくお願い申しあげます. さて,かつて 2014 年 1 月,自分が学部 4 年生で強いうつ状態かつ"無い内定"の憂目にあっているときに書いた記事を読み直しました.はじめての就職を前にして,就職というのは何なのかを偉そうに書いています. 昔とブログデザインを変えた関係でめちゃくちゃ読…
こんにちは。 Findy で Tech Lead をやらせてもらってる戸田です。 既に皆さんも御存知かと思いますが、弊社では開発生産性の向上に対して非常に力を入れています。 以前公開した↓の記事で、弊社の高い開発生産性を支えている取り組み、技術についてお話させていただきました。 tech.findy.co.jp ありがたいことに、この記事を多くの方に読んでいただき反響をいただいております。 そこで今回は、↑の記事でも紹介されている「Pull requestの粒度」について更に深堀りしてお話しよう…
ようやく涼しくなってきましたね。もう少し漸進的に気温が下がってほしい。プロダクト開発部部長の塚本@hihats です。 前置き この二、三年くらいは個人的にシステム思考への傾倒があり、以前ここに書いた変化に適応するソフトウェアアーキテクチャと組織構造への道程も、Qiitaに書いたソシオテクニカルアーキテクチャ概要もその系譜の記事だった。今回は、エレガントパズルという書籍を読んでいて、そこかしこにドネラ・メドウズ公の話が出てくるので改めて私もシステム思考について記事を書こうと考えていた。 そんな折…
先日のことですが、Querie.meでこんな質疑がありました。これは非常にご尤もなご意見であり、実際この問題提起に近いシチュエーションを見かけたことは五本の指では数え切れないくらいあります。ということで、今回の記事では元々の問題意識ともいえる「見せかけの回帰」について、久しぶりにちょっと復習を兼ねて書いてみようと思います。
GitHub Actions で CI している皆様、こんにちは。 GitHub Actions 便利ですよね。使わない日がないというくらい毎日お世話になっています。 さて、CI といえば良く問題になるのが実行時間。 長い待ち時間は開発効率を下げますし、プライベートリポジトリだと Runner の費用も嵩んでしまいます。 時間を短縮する方法は色々ありますが、一手目によく行われるのが依存パッケージのキャッシュじゃないかなと思います。 例えば Go で開発していると、依存パッケージは ~/go/pk…
こんにちは。AI・機械学習チームの氏家(@mowmow1259)です。 エムスリー福岡オフィスの一人目のエンジニアとして福岡で働いています。 マクドナルドの月見バーガーが好きで、今年も発売開始当日に食べに行きました。 私が所属するAI・機械学習チームでは基本的に2週間から1ヶ月程度で新規プロダクトをリリースするなど、高速にプロダクトを開発しています。 その過程で、「この書き方は落とし穴があるから使わない方がいい」といった開発に際したベストプラクティスが溜まっていきます。 そういったベストプラクテ…
こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 本日はRuby・Railsの話に限定せず、Amazon CloudFront を利用している方に役立つ情報をご提供します。 目次 はじめに 「X-Forwarded-For」を活用する方法 「CloudFront-Viewer-Address」を活用する方法 Railsエンジニアへ 注意点 おまけ 参考資料 はじめに 弊社は基本的にAWS上にRailsアプリケーションを構築しているため、CDNが必要になるとまず選択肢とし…
はじめに GuardDuty Malware Protection for Amazon S3は何が嬉しいのか GuardDuty Malware Protection for Amazon S3のコスト GuardDuty Malware Protection for Amazon S3によるスキャンコスト オブジェクトタグの使用コスト S3 API コールのコスト GuardDuty Malware Protection for Amazon S3の運用する上で直面した課題と解決策 AWS …
どうも Security Engineering の西川です。好きなポケモンはクワッスです。カミナシ社内に遂にポケモンカード部ができまして、部員同士切磋琢磨し始めています。いつか企業対抗ポケモンカード大会をするのが夢です。 さてさて、皆さんは AWS WAF(Web Application Firewall、以下 WAF)を使っていますか?サービスに WAF を導入する際は一定期間 COUNT モードで運用することがセオリーとされています。では、COUNT モードから BLOCK モードに切り替…