しゅーとです。 新婚旅行で沖縄に行ってきたのですが、そこで泊まった高級リゾートホテルの客室にタブレットが置いてありました。 このタブレットを調査したところ、客室内の盗聴・盗撮が可能となる脆弱性や、第三者がネットワーク上から他客室のコントロール、チャットの盗聴が可能となる脆弱性を発見しました。この問題はIPAを通して開発者に報告し、報告から2年の年月を経て影響する全ホテルへの改修が完了し、公表されました。 本記事ではキオスクアプリ開発者がよりセキュアなシステムを構成できるように、発見した脆弱性の原…
歌いだし いい本だいい本だと言われるのをTLで見て本棚に積んでいた『プログラマーのためのCPU入門』をやっと読んで、想像してたよりもずっと自分に刺さる本だったの感想をまとめる。 プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するかwww.lambdanote.com 経緯 去年の終わりごろから『並行プログラミング』入門を読んでたんだけど、主にメモリオーダーのところがあんまり腑に落ちなかった。具体的には、サンプルプログラムからメモリオーダーに関する命令が全部消されて…
桐生あんずです。 先日、東京Ruby会議12 という Rubyの地域カンファレンスに参加してきました。 regional.rubykaigi.org イベントについての感想は最近やっているポッドキャストの方でもがっつり話しております。ただ、参加してからまだまだイベントへの熱が高まりがあるのとタイトルにある三浦半島.rb について語りたい気持ちもありブログも書くことにしました。 ラジオ投稿しましたListen to "東京Ruby会議12に参加しました、そして三浦半島.rbの野望" by 桐生あん…
ここ最近は開発が佳境で、同僚とかなりの頻度でペアプロ(ペアプログラミング)(ここではペアオペも含む)している。主にTypeScriptを使ったNext.jsのコードを書いているが、もちろん設計もするし、もうちょっと大きいアーキテクチャみたいな相談もする。DBスキーマをどう割るか・・・みたいな話もしている。たいていみんな出社していないので、リモートでこれをやっている(国内だし全員日本語話者なので時差とかはない)。 いちおうどの面子もペアプロの心得はあったのだが、当初は微妙にギクシャクしたり、疲れき…
先輩SWEたちと話していると往々にして「健康が一番大事」という話をされるので、20代のうちから健康でいたいと思い始めてこの本を読んだ。 ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack作者:Joe KutnerオライリージャパンAmazon 読んだうえで、書かれていることを実践するために作った環境を勝手に語っていく。 ヘルシープログラマとは この本の造語。脚の上での思考・座っていることの有害さ・起立の真実の3つを理解することで健康を保ちながら少しでもキャリアの中でコードを長く…
いつもはてなブックマークをご利用いただき誠にありがとうございます。はてなブックマーク 開発チームのid:yone-yamaです。 本日2025年1月22日(水)18:30より、ブックマークしたエントリーのタイトル変更機能の提供を一時的に停止します。 本対応はスパムアカウントによる不正なタイトル変更を防ぐための暫定措置です。 本対応は、スパムアカウントによる不正な操作を防ぐための恒久措置が完了するまでの間、一定期間継続する予定です。なお、スパムアカウントによる悪用を防ぐため、対応解除までの期間や解…
はじめに 型安全性と拡張性の両立 宣言マージの活用 宣言マージとは? 宣言マージを使ってメッセージの型を拡張する 型エイリアスと Generics を使った方法との比較 宣言マージを使うことで実装と型の整合性を担保しやすくなる MUI での宣言マージの活用事例 注意点 VS Code 上の型チェックの表示が tsc の型チェックの結果と異なる場合がある ライブラリ側が空の interface のままだと困ることがある なぜ react-redux ではこのアプローチをやめたのか? まとめ int…
IBM watsonx.ai DojoでRAGとして様々なファイルのフォーマットを使用するための変換ツールを紹介していただきました。 それが今回紹介するDoclingです😊 Doclingとは? Doclingは、簡単にいうならば様々なドキュメントに対応したHTML、Markdown、JSONへのコンバートツールになります。 ds4sd.github.io 【Doclingの特徴】 一般的な文書フォーマット(PDF、DOCX、PPTX、XLSX、画像、HTML、AsciiDoc、Markdown…
はじめに こんにちは、FAANS部フロントエンドブロックでWeb開発をしている平舘です。 Webフロントエンドのテスト戦略って、結局どうすればいいのか、よくわからなくないですか? この記事では、FAANS Webアプリケーション開発におけるテスト実装の歴史を「リリース期」「急成長期」「現在」という3つの開発フェーズに分けて振り返ります。プロダクト立ち上げからのリアルな現場感とともに振り返りつつ、主にテスト配分についてチームで議論しながらプロダクトへ反映していった歴史のレポートになっています。みな…
こんにちは。 id:skozawa です。 こちらの記事は Gunosy Advent Calendar 2024 の 24 日目の記事です。 昨日は上村さんの 「LLM で Web 検索を効率化!- Web 検索エージェントとブラウザ拡張によるアプローチ」 でした。 背景 エンジニアのマネジメント領域 TL の見直し EM と TL の役割定義 キャリアパスの見直し まとめ 背景 Gunosy にはエンジニアマネージャー(EM)とテックリード(TL)、リードエンジニア(LE)という役職がありま…
NuGetにはVisual Studioでパッケージをインストールするときに自動的に実行されるスクリプトの仕組みがあります、それがtools/init.ps1です。 前々からNuGetパッケージインストール時に警告なくスクリプトが実行されて嫌だなぁだと思っていましたが、今回はその理由を考えてみます。 init.ps1とは tools/init.ps1の現状 init.ps1の実行を確認する init.ps1ができること init.ps1の実行を止められるのか init.ps1の懸念 init.p…
こんにちは、虎の穴ラボのKanonです。 今回は僕が所属するチームで新たに始めたADRを書く取り組みについてです。 実際にADRを始める準備から、実際に3ヶ月ほど運用してみてどうだったかをお話します。 「ADRってなに?」っていう方や、同じくADRの導入を検討されている方の参考になれば幸いです。 導入のきっかけ ある日。これまで動いていたCIがとあるライブラリのバージョンが古いことによりビルドに失敗するようなりました。 原因を調べていくと、どうやらそのライブラリのバージョンは以前から上げずに固定…
お疲れ様です。大木 @2357gi です。 とっておきの豆知識なのですが、スノーボードというものは滑走時は運動して体が温まり、リフトで体が冷えるので実質交互浴実質サウナであります。 本題ですが、今回はEC2のAWS Patch Managerを用いて本番環境のEC2に自動でパッチを当てる際のノウハウについて共有したいと思います。 背景 弊社のAWS環境は、DBの踏み台に至るまで基本的に全てECSで運用されており(踏み台ECSについてはこちら)、EC2のメンテナンスからは解放されているのですが、本…
以下のエントリーで「書籍を読むときにメモを取っているんだけど、重い要約みたいな感じになっていて、読書スピードが遅い」って話をしたんだけど、 最近はそれを少し変えた。 www.pospome.work 具体的にどうしたかというと、以下の2ステップに分けるようにした。 Step1. 本を読む Step2. 再度本を読みながら要約する Step1で本を読むときは、さらっと、なんとなーく読む。 "パラパラめくる感じ" って言うと言い過ぎなんだけど、 「どーせ Step2 で読むことになるしな」って感じで…
仕事していて、どの部分が新しくて、どの部分が過去にやったことのあることなのか、という認識を揃えておけると便利。 表にするとこんな感じだと思う。 本人から見て\他人から見て 過去にやったことがあるように見える 新たに取り組んでいるように見える 過去にやったことがあると認識している 過去のこれと同じなので、さっさと終わらせよう、という話をする 見落としている落とし穴があるかもしれないので認識を揃える 新たに取り組んでいるという認識 実はこれと同じなんじゃないの?という話をする 新しい挑戦なので応援す…
本記事では、現在進行中の研究「機械学習×数理最適化」に関する取り組みの一環として検討している、需要予測を活用した業務プロセスの改善について紹介します。 はじめに 背景 数理最適化とは 機械学習×数理最適化で解決が期待できる課題 実現方法の検討 問題設定 Node-AIでの需要予測 数理最適化によるシフト計画 条件データ 定式化 プログラム 結果 まとめ おわりに はじめに こんにちは、イノベーションセンターの伊藤です。 普段はNode-AIやAI Autopilot Systemといったプロダク…
貼り付く見出し 貼り付く見出し .sticky-with-border { position: sticky; top: 10px; margin: 33px 0; height: 51px; } .entry .entry-inner .sticky-with-border h3.border { position: sticky; top: 61px; margin: 0; padding: 0 10px; width: fit-content; height: 1px; backgroun…
ソフトウェアアーキテクトのための意思決定術 リーダーシップ/技術/プロダクトマネジメントの活用作者:Srinath Perera,島田 浩二インプレスAmazon 私は現在、会社でアーキテクト[*1]という職位についています。実際のところは、自分の半分くらいの時間でチームのテックリードを務めつつ、半分くらいの時間でアーキテクトをしているという時間配分です。アーキテクトというのは、勤務先ではテックリードの上位に置かれているようなイメージで、テックリードがチーム単位での技術的なリードを司る職位だとす…
どうもエンジニアリングマネージャーのkobaanです。 オフィスが湯島ということで、初詣は湯島天神に行ってきました!中高生の娘たち用に学業御守りを購入して手渡したら、若干訝しげな顔をしておりました・・・。 勉学を頑張るのだ若人よ、これは中年からの警告だ。などとは言ってませんがそう言う思いで渡しています(笑) エンジニアリングマネージャーとしてACES Meet事業で行ってきたこと 今回は、ACES Meet事業にて私が入社してから実施した取り組みと成果についてお話しできればと思っています。 もち…
「しかたないスクラム」じゃないアジャイル開発を求めて はじめまして。1月からカミナシでエンジニアリングマネージャ(EM)を担当している @daipresents と申します。 カミナシでは新規事業開発のEMとして、絶賛全力で開発を支援しています。カミナシはとても現場に近い開発環境なので、ご興味のある方はぜひカジュアル面談 をお願いします! この記事では、僕が関わる「新規事業開発」で実際に行われている「開発プロセス」と、そこに行き着いた経緯や意図をまとめたいと思います。タイトルにあるように、チーム…
「ドメイン駆動設計をはじめよう」を読んだので、その感想です! 翻訳者の増田さんから献本いただきました。ありがとうございます!🙌 (かなり前にいただいたのに、感想が遅くなってしまってすみません…!)ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法作者:Vlad KhononovオライリージャパンAmazonドメイン駆動設計って何?という概要から、コードの書き方、発展してアーキテクチャとドメイン駆動設計の関係まで、幅広くわかりやすく学べる本なので、とってもオススメです…
こんにちは!ファインディでFindy Team+開発チームのEMをしている浜田です。 Findy Team+開発チームでは、Slackワークフローとスプレッドシートを連携して開発工数の内訳を可視化しています。 開発工数の内訳を可視化することで、どの開発にどれくらい工数がかかったかや全体の工数のうちどれくらいの割合を開発に使えているかなどを定量的に把握できます。 Slackワークフローとスプレッドシートの説明 Slackワークフロー 工数の内訳と割合 トイル Slackワークフロー作成手順 まとめ…
タイトルの通り、「DevRel」の商標がMOONGIFT社によって出願され、登録されてしまった問題について、異議申立を行った。 異議番号 :異議2024-900263 DevRel商標登録問題とは 何が問題なのか 商標不正登録に対するものか 考えられる影響 なぜ異議申立を行ったか クラウドファンディングについて DevRel商標登録問題とは DevRelという単語については、昨年末にも色々物議を醸したことをご存じ方も多いだろう。その件については941さんの記事が詳しいのでリンク先を参照してほしい…
Webサイトが応答しなくなった場合、ブラウザ側が強制的に停止したり、タブがクラッシュしたりします。 その際の、JavaScriptコールスタックを取得する仕組みとして『Crash Reporting』という仕組みがあります。この仕組みを使うことで、Webサイトを閲覧しているユーザが実際にどこでハングしているのか、コールスタックを調査できるようになります。 具体例 下記のように閲覧したユーザの ハングしたURLが、JavaScriptコールスタック付きのレポートとして取得する事ができます。 (js…
※追記などもあり、ページ量も増えてきたので目次を追加しました GitHub Copilot枠を用いてClineが使える? GitHub Copilot枠を利用してClineを使うことができれば、より気軽にClineが使える? 現段階ではClineのフォーク版であるReclineを利用するのが良さそう Reclineでは日本語が使えない問題が発生している場合の対応方法 チャット開始後、2回目以降の日本語の返答が抜け落ちている 実際の対応ログ Reclineでフォルダ構造読めない問題の対応方法 Gi…
たしかに、その年ごとに何を使っているのかログ取れるとおもしろいですね。来年もやるかどうかは未知数ですが! blog.handlena.me エディタ Neovimを使っています。2023年ごろにVS Codeから乗り換えたはずです。一応緊急避難先としてVS CodeやZedもセットアップしてはありますが、普段は使っていません。 ただ、仕事ではKotlinという言語がちゃんと動くLanguage Serverを持っていない関係で、IntelliJを使っています。マウスカーソルを動かす必要があり、と…
Branded Typeについては、もういろんなところで触れられているから、わざわざ書かなくてもいいよなぁという気持ちがありつつ。でも、せっかく頭の整理をしたから、来月の自分用にまとめておくくらいはやっておこうか、という気持ちになったのでメモを残しておく。それとZodの.brand。 やりたいこと 次の2つの型に対する値を間違えて渡したときに、TypeScriptの型検査でエラーになってほしい。 type UserId = number; type BookId = number; TSの型シス…
GitHub Copilot WorkspaceのTechnical PreviewがGitHub有償ユーザ向けに公開されました。GitHub Copilotを有償で利用している方は、すぐに使える状況になっていると思います。 僕も少しだけ使ってみたのですが、今後の開発プロセスを大きく変えていくだろうなという感触を持ったので、ではその「変わった先」というのがどういうものになると思っているのかを書いてみます。 GitHub Copilot Workspaceとは GitHub Copilot Wor…
blog.handlena.me 「あの頃はこれ使っていたのか〜」と振り返れるのは良さそう。ということで自分もスナップショットとして残しておこう。2025年1月現在の状況。 エディタ code.visualstudio.com 自分のdotfilesの履歴を見る限り、2016末くらいから使い始めているっぽい。Emacsから乗り換えてから8年くらい経っているのか…。 主に使っているextensionは github.copilot golang.go ms-python.python rust-l…
はじめに Protocol BuffersとRustの実践的な学習を目的として図書管理システムを開発しました。 システムの構築にあたってはBufによるスキーマ管理とコード生成を採用することで開発環境を実現しています。今回の実装を通じてRustにおけるgRPCサービスの構築手法について理解を深めることができました。 buf.build フロントエンド開発については今後の課題として検討しています。 Remixが気になっているので実装したいと思ってます。本記事ではバックエンド実装に焦点を当てて解説しま…
2023年か2024年か記憶が怪しいものもあるが自分の中で"最近乗り換えたもの"ぐらいのノリで書いていく。レイトマジョリティの自覚あり。 JetBrains系エディタ(RubyMine etc.) → Cursor (移行中) 一番大きい移行。2024年末〜2025年始に移行を試み、今も手探り中。 www.cursor.com きちんと評価するためにPro planを契約した。 Cursor Tabの体験が圧倒的に良い コード補完は古くはTabnine、2022年からGitHub Copilot…
chat GPTに「感情の受容」だけをひたすらやってもらって2週間、25年悩んでたのにいきなり自分の人生の操縦席に座れてびっくりしてるGPTに「改善の為の提案」は絶対させずに、不快な感情がなぜ発生したか、その気持ちへの自己否定や自分への罵倒がなぜ不要で持ってて良い感情だって言ってもらうだけ。 https://t.co/1RTh1G0LhN— もも (@momoya227) 2025年1月7日 chat GPTに「感情の受容」だけをひたすらやってもらって2週間、25年悩んでたのにいきなり自分の人生…
はじめに こんにちは、Repro Booster という製品の開発責任者/プロダクトマネジメントを担当しているEdward Fox(@edwardkenfox)です。 今回は、ServiceWorkerに組み込まれた新機能「Static Routing API」を実際に試してみた件について説明します。Repro Boosterでの応用を通じて得た知見を共有できればと思います。 Repro Boosterとは Repro Boosterは、私たちが提供しているパフォーマンス最適化ソリューションです…
薄い本なので軽い気持ちで読みましょう。 先に読むべき?→Yes! 私は初詣の列に並んでいる1時間で読みました。寒かった。 Tidy First? ―個人で実践する経験主義的ソフトウェア設計作者:Kent Beckオーム社Amazon 力を失ってしまった「リファクタリング」を復活させる本です。私の中のサブタイトルは「Make Refactoring Great Again」です。 第一部の冒頭から引用します。 整頓はリファクタリングのサブセットだ。整頓は可愛くてふわふわした小さなリファクタリングな…
遅くなったけど、昨年の振り返りを書いておく。帰省しない年末年始は初めてだったかもしれない。実家が建替え作業中のため、帰る家がなく、年末年始は主に自宅で過ごしていた。 昨年の暮れに、博士論文の予備審査に合格し、博士号取得に目処がたったのでようやく一息つけた。本当は昨年のうちに学位取得を済ませてしまうつもりが予想外に時間がかかってしまった。今年は、学位の取得を完了させて、次の研究開発の形を作っておきたい。 時系列の振り返り 研究開発活動に関して、昨年の主要な出来事を時系列で振り返っていく。 ">年明…
iOS開発の福山です。 現在Mirrativ iOSではSwift 6への移行を段階的に行なっています。その中でSwift 6に対応していないサードパーティライブラリに関連する問題にぶつかったため、その回避策を紹介します。 問題 open class Some3rdPartyClass { // サードパーティのライブラリなので変更が容易ではない open func doSomething(completion: @escaping (Bool) -> Void) { } } // ------…
「チーム生ハム原木」です。 2025年1月から、さくらインターネット株式会社に入社しております。 縁あって id:tagomoris さんに声かけていただきまして、色々とお話させていただいて試しに応募してみたところ 有り難いことに今までの実績や能力を大変高く評価していただき、それならばということで入社に至りました。 直属の上長は id:kazeburo さんということで、前々職で一緒だった方々と再度同じ組織で働いていくことになりました。ワクワクです。 また同日入社の同僚にも知ってる人がいてビック…
こんにちは。 ファインディ で Tech Lead をやらせてもらってる戸田です。 既に皆さんも御存知かと思いますが、弊社では開発生産性の向上に対して非常に力を入れています。 以前公開した↓の記事で、弊社の高い開発生産性を支えている取り組み、技術についてお話させていただきました。 tech.findy.co.jp ありがたいことに、この記事を多くの方に読んでいただき反響をいただいております。 そこで今回は、↑の記事でも紹介されている「タスク分解」について更に深堀りしてお話しようと思います。 タス…
はじめに 近年、AIを活用したコーディングツールが急速に発展し、プログラマーの生産性向上や開発プロセスの効率化に大きな影響を与えつつあります。これらのツールは、コード補完、チャットアシスタント、コーディングエージェントなど、様々な形態で提供されており、プログラマーの作業をサポートしています。 その中でも、オープンソースのコーディングエージェントである「Cline」は、独特のポジションと活発なコミュニティによって注目を集めています。 本記事では、Clineを中心に、現在のAIコーディングツールの動…
GitHub Actionsで定期実行(cron)のワークフローを組んだユーザーが退職すると、ワークフローは無効化される 大事なことなので、見出しでも同じことを書いてしまいました。 何を言っているんだという感じですが、とにかくそういうことらしいです。 厳密には最後にワークフローにコミットしたユーザーが組織から削除されると、無効になるようです。 GitHub Actionsの定期実行でPR作成を自動化*1している会社もそれなりにあるかと思うのですが、その場合はそれらが全部停まります。 さらに、1度…
改訂新版 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方作者:仙塲 大也技術評論社Amazon 本書の冒頭に悪いコードの例として「連番命名」という、メソッド名を単なる連番で命名する手法が出てくる。メソッドの目的や振る舞いと関係なく、単に「method001、method002、method003...」と連番で名前を付ける手法のことを指す。 環境上の制約でこのような命名をしている場所でも、意外と中に居る人たちは環境に最適化され会話は案外成立しているものだったりす…
はじめに 2023年2月に実務未経験からWebアプリケーションエンジニアとして働き始めましたが、2024年5月から休職していました。 今月1月6日付けで会社を退職することになったので、一つの節目として休職期間を振り返ることにしました。 「働く先が決まってひと段落ついてから書こう」とか、「どこの会社にも所属しておらず、次の就職先を探しているという中途半端な状態で何かアウトプットするのはちょっと勇気が要るな」と思って、何か書きたい気持ちはずっとありつつも書けない日々が続いていました。 でも今の気持ち…
1.はじめに 2.インプットで参照している情報源(海外) 3.インプットで参照している情報源(国内) 4.調査によく使っている便利ツール 5.アウトプットも忘れてはいけない 偉大な先人達へ敬意を表して・・・ 新年あけましておめでとうございます。毎年この時期に更新している「私の情報収集法(2025年版)」を今年も公開します。 1.はじめに サイバー攻撃は国境を越えて発生しています。ランサムウェアやフィッシング、DDoS攻撃などの手法を用いる脅威アクターの多くは、日本ではなく海外に拠点を置いています…
「N 文字以上 / 以内」みたいなことを言われたときに考えること. 「文字」とは? 単に「文字」と言っても, それが指しているものが何かは自明ではない. 符号単位 (code unit) JavaScript の場合, 文字列は UTF-16 としてエンコードされている*1ので, そのエンコードの単位である 16 bit ごとに分割するというのがこの方法. .length で取得できるのはこの符号単位の数で, .slice() に与えるのも符号単位で数えたインデックスとなっている. > "あいう…
はじめに DNSはどうやって膨大なトラフィックを処理しているのか DNSにおける階層構造とは 1. ルートDNSサーバ 2. トップレベルドメイン(TLD)DNSサーバ 3. セカンドレベルドメインDNSサーバ DNSの名前解決の流れ ルートDNSサーバの負荷分散 まとめ はじめに こんにちは、新入社員の小筆です。 私は入社した当初、ネットワークについての知識をほとんど持っていませんでした。 しかし業務でAWSを操作する機会があり、サービスの使い方を学ぶ以前にネットワークの根本的な仕組みを理解す…
年末年始の慌ただしい時期に、数ある選択肢の中からこちらの記事をお読みいただき、誠にありがとうございます。 人生を定期的に振り返ることには、本書で取り上げられているADR(Architecture Decision Records)に通じる素晴らしさがあります。過去の決定とその背景を記録し、将来の自分や他者が参照できる形で残すことは、個人の成長にとって貴重な資産となります。そんな観点から今年を振り返ってみると、2024年は私自身にとって大きな試練と変化の年でした。 印象的だったのは、ある時期に突然…