突然ですが、次のM3柄のソースコードをPython(>=3.8)で実行し、実行結果を入力に何度か繰り返し実行してみてください! 結果はどうなるでしょうか? exec("""m=lambda_x:"".join(x.split()).replace("~"+"~",chr(32))""".replace("_",chr(32)),globals());exec(s:= m('''s="""exec(\\"\\"\\"m=lambda_x:"".join(x.split()).replace("~"…
さくらに入って3ヶ月経過して、入社直後といま現在ではまた見えている状況も違うし、実際どうなのっていうのを今の段階で書いておくのも悪くないかなと思った。自分より後に入ってきた人達が1ヶ月でのエントリを書いている(link)(link)のに触発されたというのもある。 入社直後のエントリはこちら。 tagomoris.hatenablog.com 思っていたより会社の変化が激しい 入社してから1ヶ月は、社内でこれまでクラウド開発・運用やガバメントクラウドをリードしてきた人達とひたすら話してキャッチアッ…
はじめに モバイルファクトリーは、21 年度から完全リモートワークに移行しています。 リモートワークではコミュニケーション不足に陥りがちです。まだ会社に慣れていない、社員の顔と名前が一致していないような状態にある新卒のエンジニア達はなおさら、コミュニケーションに困難を感じるのではないかと想像されます。 リモートワーク下でも、新卒エンジニア同士 / 新卒エンジニアと先輩社員 がコミュニケーションしやすい状況を作りたい! というわけで、今年の新卒技術研修を担当しました(id:kaidan388)が、…
こんにちはSREチームの森原です。テックブログ投稿は今回が初めてですが、今後は高頻度で投稿する予定です! 今回は、タイトルそのままですが「KPI集計のために秒単位の正確性でAuroraのスナップショットを作成する仕組み」を作ったのでご紹介します。 背景 ニーリーでは毎月特定の日時のDBのスナップショットをKPIの集計に使用しています。以前はAWS Backupを用いて毎月のスナップショットを作成していましたが、こんな課題がありました。 作成時刻に最大1時間のズレが起きる AWS Backupのバ…
久しぶりのポエムです。先日Xで何気なくこんな投稿をした。今回のポエムはこの投稿がきっかけだ。 自分でプロダクト作るのもいいけど、すでに多くのユーザー抱えて世の中の役に立っててイケてるプロダクトを開発してるチームの困りごとの解決を支援した方が結果的に世の中により多く貢献できるのでは?と思って今はDELTAにいる今思えばAWSに入った時も同じような考えだった— Keisuke Nishitani (@Keisuke69) 2024年11月2日 僕はこれまでずっとソフトウェアエンジニアとして20年くら…
はじめに enechainでのテスト管理 テストケースとテスト進捗の管理 バグチケットの管理 日々のテスト進捗報告の自動生成 テスト進捗情報の取得 バグチケット情報の取得 報告の整形とSlackへのポスト 進捗報告生成のトリガー 今後の展望 まとめ はじめに こんにちは!enechainでQAチームのマネージャーを務める杉田 (@sug1san) です。 QAチームでは先日、初の試みとして「QAオフサイト」と題したイベントを社外の会場を借りて実施し、日頃眼の前の業務に忙殺されて後回しになりがちな…
'Programming Languages That Blew My Mind'というブログ記事で、8歳からプログラマーとして活動しているDavid Tellerさんが、人生で出会った革新的なプログラミング言語について紹介している。 BASIC A language designed to make programming simple. Mind blown: Programming my own games! Mind blown: Arrays (or DIM, as they were…
こんにちは。NTT Comの市村、田口、村上です。2024年8月に米国ラスベガスで同時期に開催された3種類のセキュリティカンファレンスへ聴講者として参加しました。 この記事では連日参加した3種類のセキュリティカンファレンス及び、聴講した中で印象深かった講演の概要について紹介します。 目次 目次 8月のラスベガスを彩るセキュリティの祭典 BSides Las Vegas Black Hat USA DEF CON 複数の会議が同時開催されるメリットについて 講演内容 BSides Las Vega…
2024年10月31日(現地時間)、米国サイバーセキュリティ・社会基盤安全保障庁(以下米国CISAと表記)は、国外の脅威アクターがRDP構成ファイルを添付した大規模なスピアフィッシングキャンペーンを行っているとして注意を呼びかけました。同キャンペーンの分析を行ったMicrosoftによれば、対象国の1つには日本も含まれています。ここでは関連する情報をまとめます。 RDP構成ファイルで攻撃者のサーバーに接続させる手口 米国CISAが注意を呼びかけたのはRDP構成ファイル(拡張子.rdp)が添付され…
※本記事は筆者RyotaKが英語で執筆した記事を、弊社セキュリティエンジニアShion1305が日本語に翻訳したものになります。 はじめに こんにちは、Flatt SecurityでセキュリティエンジニアをしているRyotaK(@ryotkak)です。 2023年にPortSwigger社のJames Kettle氏は、同社の記事でSingle-packet attackという新しい攻撃手法を提案しました。これはネットワークのジッター値に関係なくレースコンディションを悪用できるというものです。 …
こんにちは。 Findy Toolsの開発をしている林です。 私たちのプロジェクトではフロントエンドのフレームワークにNext.js App Routerを使っており、AWSのECSへデプロイして運用しています。 そして、一部のレンダリングの処理が重いページのキャッシュを実装する際に、直面した課題と解決策を紹介します。 Next.jsのキャッシュ機構について 今回実現したいこと 課題と解決策 課題1: Next.jsの機能では要件に合わない 解決策1: CloudFrontのみでキャッシュ 課題…
JavaScriptプログラマーのためのTypeScript厳選ガイド という本を書きました。JavaScript中級者でTypeScript初心者のプログラマーに向けたTypeScriptの入門書です。 これまで何度かTypeScriptの記事を書いてきました。 TypeScript再入門 ― 「がんばらないTypeScript」で、JavaScriptを“柔らかい”静的型付き言語に|ハイクラス転職・求人情報サイト AMBI(アンビ) 「がんばらないTypeScript」のための現実的な設定を…
「だんご屋のひまつぶし」とは 最長手順の問題は…? 組み合わせ、グラフ問題 プログラムで解く 状態の列挙 グラフの構築 最短経路問題を解く WASM化して、ブラウザ上で解く もしもすべて異なる団子だったら さらに一般化していくと 到達可能性 頂点数 本数を固定し、高さを変える 高さを固定し、本数を変える まとめ Repository 「だんご屋のひまつぶし」とは 「ハノイの塔」の派生型のようなパズル。 高さ3の串が3本あり、3色の団子2個ずつ計6個が刺さっている。これらを1個ずつ移し替えて、ある…
こんにちは。pixivのnamazuです。 先日開催されたPIXIV DEV MEETUP 2024にて、『pixivというシステムはどんな形をしているのか、それはなぜか。』というテーマで発表をさせていただきました。当日、セッションにご参加いただいた皆さま、そしてフィードバックをいただいた方々に、改めて感謝申し上げます。 Webサービス開発において面白い点の一つは、どのサービスもその要件や状況に応じて異なる選択がなされることです。結果として、類似点がある場合もありますが、細部において同じものはな…
これは半分ポエムみたいなもんです。 CTOをやっているということもあって、 少し前からタイトルのようなことをずっと考えていたりしています。 日本が劣っているとかそういう話ではなく、 ここしばらく欧米や中国などのソフトウェア関連技術や設計関連の発展も目立っており、 海外から「日本のソフトウェア技術すごいな・・」と 思われるようなことに積極的に取り組んでいきたいなぁと思っています。 (感じ方に個人差はありますし、コンテキストも人それぞれですが・・) Rubyなど素晴らしいものももちろんありますし、 …
2024年10月2日、京セラコミュニケーションシステム(以下KCCSと表記)は奈良県斑鳩町より受託し導入作業を行っていた図書館システムがランサムウエアに感染したと公表しました。ここでは関連する情報をまとめます。 アクセス設定の不備つかれサーバー侵入 ランサムウエア感染が確認されたのは、斑鳩町立図書館システム再構築業務を受託しKCCSが新規に構築を行ったサーバー*1。調査により、サーバー上に暗号化されたデータ復元のための手段を記載した脅迫文書(テキストファイル)、不審なプログラムが確認された。 図…
Metaに転職して1か月近くが経ちました。カナダのトロントオフィス勤務で、今月は渡航に始まり、社会保険番号取得、口座開設、家探し(インターネット等の契約も)、州の健康保険、会社の福利厚生に含まれる保険や積み立て口座の開設、など手続き関連でかなり疲れましたが、アメリカメンローパークでの本社のオンボーディングも終了していよいよ業務が開始した、といったところです。 Metaはオンボーディング中にチームと会うまで自分が何の仕事をするか詳細は全然把握していなかったのですが、Metaが開発し運用もされている…
これはなに? こんにちは、DMM.comのミノ駆動です。 プラットフォーム開発本部 Developer Productivity Group 横断チームにて、 プラットフォームの設計品質向上に取り組んでいます。 さて、ネット上ではソフトウェア開発における「良いコードとは何か」をめぐって、 いろんな意見が交錯したり、 ときには激論を呼んだりします。 収拾がつかないこともしばしばです。 この記事は、良いコードを考えるうえでの要素を整理し、 建設的な議論を助けることを目的とします。 これはなに? この…
本文中コード github.com flat layoutとsrc layoutについて Pythonプロジェクトのディレクトリ構成について調べてたところ、flat layoutとsrc layoutという2種類のディレクトリ構成が存在することを知りました。 src レイアウト対フラットレイアウト - Python Packaging User Guide flat layout flat layoutはパッケージフォルダをプロジェクトのルート直下に配置するスタイルです。 flat layout…
はじめに こんにちは! テクノロジー戦略本部24年新卒の高橋です。 2023年の10月から内定者インターンを経験し、現在は開発3部CRMチームでフロントエンド(以後、FE)エンジニアとして働いております。 チーム内でFEの状態管理ライブラリを選定する機会があり、調査していく中で得た知見を共有したく、執筆に至りました。 少しでも状態管理ライブラリの選定に困っているFEエンジニアの参考になればと考えています。 はじめに 概要 前提 課題感 Context APIの思想とのズレ Context API…
フロントエンドエンジニアの 92thunder です。去年北海道旭川市に移住しまして、長らく打ち合わせを続けてきた家が10月にデプロイされたのでQoLが爆上がりしています。 テックタッチではデプロイ頻度を上げるためにテスト自動化に取り組んでいます。テスト自動化をQAエンジニアと進めていくためにテストの分類を策定する取り組みを始めました。この記事では、テックタッチにおけるフロントエンドのテストの分類とそれを策定するにあたって意識したポイントについて説明します。
こんにちは、Kaigi on Rails 2024 の Day1 で 『デプロイを任されたので、教わった通りにデプロイしたら障害になった件 〜俺のやらかしを越えてゆけ〜』 というセッションで登壇した上野(@izumitomo)です。 セッション内容 セッション内容はタイトルにある通りで、自分のデプロイにおけるやらかしとその対応を、当時の状況を振り返りながら話すというものです。 こちらが当日の発表資料となります。 (アーカイブが公開され次第、動画も載せる予定です) 発表を終えて 初めてのカンファレ…
新規プロダクト開発チームやスタートアップにおいて、アジャイルの経験を積んだエンジニアが初期メンバーにいれば自然と開発プロセスにアジャイルが取り入れられ、スムーズにプロダクト開発にフォーカスできることがあります。しかし開発組織が拡大して経験の浅いエンジニアが増えてくると、今度はアジャイルのマインドやプラクティスそのものの定着がしばしば課題となります。どうすれば組織が拡大してもアジャイルであり続けられるのか? その実例や情報の共有はまだまだ足りていません。 ドメイン駆動設計(DDD)に関する情報発信…
SREチームの長田です。 皆さんは操作するAWSアカウントを取り違えたことはありますか? 私はあります。 カヤックのSREは複数のプロダクトを担当することも多く、 ひとつのプロダクトでも環境(本番、ステージング、開発、etc.)ごとにAWSアカウントを分ける場合があり、 扱わなければならないAWSアカウントが多くなる傾向にあります *1。 今回はうっかり別のアカウントのリソースを削除してしまったーといったオペレーションミスを減らすために個人的に行っている、 「気をつける」以外の対策を紹介します。…
最近某所で話題になっていたのが「欠損値処理はどうやるべきか」というテーマ。これは太古の昔から「荒れるテーマ」として有名で、今回も大いに荒れていて傍観している側としては面白かったんですが(笑)、古老ともあろう身がただ面白がっているだけでは自分を含めて誰の学びにもならないので、良い機会ということでちょっと欠損値処理に関する備忘録をまとめておこうと思います。いつもながらですが、誤解や理解不足の点などあればどしどしご指摘ください。
ワールドトリガー247話にて、ヒュースが若村に話した言葉が非常によかった。 "刻むんだ" 目の前の1段を登るために必要な要素を 1段の中でさらに刻んで 自分が登れる小さいステップを作るんだ その行動を努力と呼ぶ 痺れる~~~。この"刻む"というのは目標達成のための大事な考え方なのはもちろん、タスクを進める時にも同じように"刻む"技術が必要。自分もうまくできないことがあるので、雑に考えを書いておきたい。 仕事において、ゴールまでの道筋を刻んで小さくして進めるのはとても重要。進み具合をトラッキングで…
先日、DevLOVE関西の200回目を記念するイベントで登壇してきました。 登壇内容を考えるにあたって、大きく2案あったので、没にしたほうのネタを簡単にブログに書いて供養しておきます。 ロックバンドの成功の証は、日本武道館でのライブである、みたいなイメージがなんとなくあります。 地元の小さなライブハウスで、客席に友人しかいない状態で演奏するところからはじまって、そこそこ有名になり、対バンに呼ばれるようになって、ソロでライブハウスが埋まり、Zeppなどの大きなハコでやるようになって、そういうステッ…
JJUG CCC 2024 Fall に参加しました! JJUG CCC への登壇もなんと4回目。いい加減慣れてきた頃…、と思ったのですが全然そんなことなかったです。この1ヶ月ぐらいあーでもないこーでもないと構成を考えて書き直して図を追加してというのをずっと繰り返していました。そんな苦労が詰まっていた本日の登壇だったのですが、Twitter(現・X)の感想を見る限りでは好評だったようで、とても嬉しいです! 今回面白いなーと思ったところは、セッション内で「この点については、〜さんのセッションで話し…
週末にちょっとしたウェブサイトというかリンク集(?)を作った。 今回は生成AIツールをフル活用していつもより効率よく作業ができた。 生成AIツールについては日々、新しいものがヤバイすごいと宣伝されているけど、実際にどう使っているのかという情報が少ないと感じている。 なので具体的な使い方を書いてみることにした。 作ったもの 開発の概要 最終的なアーキテクチャ UI開発に生成AIツールを使う 初期デザインの参考元 デザインツールの選定と比較 Next.jsの利用 Cursorを活用した開発 データ整…
BASE も Aurora MySQL v3 となりました SRE Groupの ngsw です。 2024/10/14〜10/15の深夜メンテナンスにて、BASEで利用しているAmazon Aurora MySQLのバージョンは、v2系からv3系となりました。 アップグレードの前提条件で大きなつまずきがありましたが、gh-ost を利用することで、乗り越えることができました。 この記事では当該アップグレードの中で gh-ost をどのように利用し、どういう恩恵を受けたかについて述べていきます。…
こんにちは Diverse developer blogです。今回はプロジェクトの構想から完了まで、1年半ほどかけて行った「PerlとDebianの更新プロジェクト」を振り返ります。 なぜやったのか? 弊社のYYCは20年以上稼働しているサービス(SNS, マッチング, ライブ配信)です。ユーザーの要望に応えるため、機能開発を優先してきたことで開発環境の改善が遅れていました。 特にバックエンドの開発言語(Perl 5.8)と、コンテナOS(CentOS)のアップデートが遅れており、今後の機能開発…
数日前の退勤間際、1つ機能を実装してPull Requestを作って満足した気持ちで退勤しようとしていた。しかし作ったPRを見るとCIのテストが失敗している。どうやら失敗しているユニットテストがあるらしい。テストの結果を覗くと心当たりのない日付に関係するテストが失敗している……。月末だったら閏年の関係とか、そういうことも考えられるがまだ月末ではない。おかしいな、と思いつつ、明日に再実行したら成功するかも知れないし、ひとまず忘れて退勤した。 翌日、出社すると他のブランチでも漏れなくCIのユニットテ…
本日10/23発売の「絵で見てわかるLinuxカーネルの仕組み」という本を自分含め6人で書きましたので、宣伝します。 絵で見てわかるLinuxカーネルの仕組み作者:市川 正美,大岩 尚宏,島本 裕志,武内 覚,田中 隆久,丸山 翔平翔泳社Amazon 本書はIT技術のさまざまな分野について視覚的に理解するための翔泳社の「絵で見てわかる」シリーズの中の一冊です。 www.shoeisha.co.jp このシリーズは、これまでに「ITインフラの仕組み」、「Webアプリ開発の仕組み」、「マイクロサービ…
こんにちは!スマートバンクのmitaniです。 だんだんと寒くなってきて年末の足音が聞こえてきましたね。スマートバンクでは10月25日から行われるKaigi on Railsで今年最後のブースを出展します。ブースではクイズに答えて全国各地の名産お菓子を掴み取りする企画をやるのでぜひ遊びに来てください。 今回のブログでは、ブースで使うクイズ画面のコーディングを完全にLLMに任せてみた取り組みを紹介しようと思います!果たしてLLMは期待通りのコーディングをしてくれるのか?気になる方はぜひチェックして…
ジェネラティブエージェンツ の 吉田真吾(@yoshidashingo)です。 今年3月に創業して以来、共同創業者3名が毎日会話しながら、ときに開発の手を止めてまで書いていたAIエージェント本(LangChain/LangGraph本)が11/9(土)に技術評論社から発売されます。 gihyo.jp みなさん、もう予約いただけましたか? Amazonでも予約段階からつねにいずれかのカテゴリーのランキングに入っており、注目度の高さがうかがえます。 LangChainとLangGraphによるRAG…
ritouです。 マシュマロでSPA+BE構成のWebアプリでOAuthやOIDCしたい!って話をよくいただきます。 最近だと、こんな質問がありました。 OIDCから発行されたトークンの取り扱いについて質問させてください。 SPA +OIDC(認可コードフロー)構成によるWEBアプリケーションの開発を考えています。 idPによる認証後、バックエンドとフロントエンドのAPI通信に使うべきはIDトークンとアクセストークンだとどちらになるのでしょうか? 個人的には「ログイン成功した時点でOIDCの処理…
こんにちは、Platform Team の荒引 (@a_bicky) です。前回は続・何でも屋になっている SRE 的なチームから責務を分離するまでの道のり 〜新設チームでオンコール体制を構築するまで〜という話を書いたんですが、今回は Repro の運用に 7 年以上携わる中で私が遭遇して印象的だった Aurora MySQL 絡みのトラブルについて紹介します。 Aurora MySQL が詰まってデータ処理のスループットが下がるとか、API のレスポンスが遅くなるとか、ALTER TABLE …
はじめに こんにちは、計測システム部SREブロックの@TAKAyuki_atkwskです。普段はZOZOMATやZOZOGLASS、ZOZOMETRYなどの身体計測サービスの開発・運用に携わっています。 最近公開されたZOZOMETRYですが、正式ローンチに至るまでにチーム間のサイロ化によるデリバリー速度の低下という課題が見えてきました。そこで、モブプログラミング(モブプロ)を通してチーム間のコラボレーションを促進し、課題の解決を試みている事例をご紹介します。
こんにちは、モノタロウ コアシステムエンジニアリング部門 配送ドメイングループの安見です。 この記事では私が関わっていた社内システムを仮想サーバ(AWS EC2)からコンテナに移行した後にコンテナをやめて仮想サーバに戻した話をご紹介します。 諸説明 コンテナ移行について コンテナ化対象システムについて 直面した様々な問題 リリース後の多数の残課題 展開する機能の数が多すぎる コンテナ化のメリットが薄かった なぜこうなったか よかったこと まとめ 追記: 現在なら... 諸説明 コンテナ移行につい…
2024年10月15日(火)に、 Hatena Engineer Seminar #31 をオンライン開催しました。ご参加いただいたみなさま、ありがとうございました。このエントリーでは、当日のアーカイブ動画や公開資料をご紹介します。 お詫び 当日のライブ配信では、トラブルにより一部映像が止まる・音声が聞き取りづらいなどの問題が発生し、配信を一時中断させていただきました。快適にウェビナーをご視聴いただくことができず、大変申し訳ございませんでした。スライドと音声がズレてしまっている箇所がございますの…
◆まとめ◆ プログラミング言語では「型」がドメインモデルを表現する重要ツールである。一方、モデリング観点からはデータ値に対する制約こそがある意味本質で、(主にNominal Subtypingが想定されるところの)型も制約の一手段なのだと気付く。 制約一般を型として扱う上でのツールとしては、Nominal Subtypingに限られること無く、依存型やStructural Subtypingを用いることができる。もう少しカジュアルには(=動的評価でよいなら)、型にDbC不変条件を常にセットしたも…
今まで 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 では…
来週で40歳にあるので30代の振り返りとしてこれを書く。 そんな30代を全力で走ってきた中で、これは30代でやってよかったな。 もっと早くやってもよかったな。というようなことを書く。 最初に行っとくと一般的にやったほうが良いということは基本的にやったほうがいい。 そういうのも含めて実際にやってみた経験も書く。 習慣を作れるようになる これは本当にやったほうがいい。 身につけるのであれば、早ければ早いほどほどいい。 もう少し具体的に話すと自分がやりたいことを実現していくためには習慣にできるとよい。…
擬似乱数と言えば、かのカルドセプトサーガの悲劇が有名です。 ダイスの出目が必ず奇数と偶数の繰り返しになるという、地味ながらゲームバランスの根幹を破壊するバグが話題となりました。しかしその話題から得るべき教訓は、 その論調は一様に、サイコロすらまともに作れないなんて馬鹿すぎる、担当プログラマが低脳すぎて笑える、といったような物だった。やがてそのような書き込みの中に、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があるというの…
コンテンツマーケティング施策の手段として挙げられることの多い「オウンドメディア」。オウンドメディアを運営する目的は自社商品やサービスの認知度向上、見込み客の獲得、採用広報や企業ブランディングなど企業によってさまざまですが、適切な構築と運用を行うことで大きな成果が期待できる手法です。一方で、いざオウンドメディアの立ち上げや運用を行う際には、さまざまな課題が発生します。はてなが主催するオウンドメディアに関するセミナーなどでも、「オウンドメディアを立ち上げることになったけれど、何から始めればいいんだろ…