tl;dr 焼肉
追記 文中で .env に依存させないというプラクティスを紹介しました。僕は基本的にはこれでよいと思っていますが、フレームワークによっては.envなどと深く結合して利便性を提供しているものもあります。この場合は無理して.envから脱却せず、うまいこと利用するのもありだなと最近感じています。ただし、フレームワークが.envと深く結合していない場合は、dotenvなどのライブラリを導入するよりも、起動時に環境変数として注入する方式のほうがよいと感じています。 nodejsを例に解説します。nodejsでは環境変数はprocess.env.環境変数名でとりだせます。また、開発環境・テスト環境・本番環境をそれぞれNODE_ENVという環境変数にdevelopment test productionと入れる文化があります。 アプリケーションコードに自分が今いる環境(開発|ステージング|本番)を意識さ
僕自身は龍が如くシリーズは、クロヒョウ2、極1、極2、0、3、4、5、6、0とやって、7はRPGだし主人公違うしなぁと思って、買うだけ買って後でやろうと積んでいたところ、CEDECのすごいテストの話を聞いて、(オリジナル版を積んでいたのに)インターナショナル版を買って始めてしまうぐらいインパクトがあり(そして積んでたのを後悔したぐらいよかった)ました。それ以降、維新極、7外伝、8は発売日に買ってプレイしてます。 こちらにその講演の詳細なレポートがこちらにあります。 https://www.famitsu.com/news/202009/11205564.html その8の発売前に龍が如くスタジオの技術責任者の方がXのアカウントを開設して、C++のコードを投稿されていたのですが、それに対してエンプラ開発目線で意見しているようなツイートを見かけて、「いや、システムの特性全然違うから」と思い筆を
ちなみに私は色々と30年間経験した後に、「現実社会で違法とされている事はエンタメでも基本表現を制限・禁止するべき」と思っています。 自由な娯楽を嗜むには一定以上の知性が必要で、そうでない人には自制が難しく作品に影響され自分勝手で感情的な行動をとりやすくなってしまう。— 裕木奈江 🧅 NAE YUUKI (@nae_auth) 2022年4月19日 b.hatena.ne.jp 裕木奈江さんのTwitterでの発言が物議を醸しています。というか、炎上しています。 実際は、このツイートは連続したツイートのうちの一つであり、「日本ではゾーニングがうまく機能していないこと」「それが『世界の(先進国の)基準』とかけ離れてしまっていて、他国から奇異の目で見られがちなこと」を前提にしたものではあるのです。 ツイートというのは、短くまとめなければいけないので、色々とこぼれ落ちてしまうものがあって、裕木さ
はじめに:この記事を書いた動機 これらの素晴らしい先行記事を見て、「言語学を用いれば、共通点を見つけ出して一般化・大項目化したり、取り違えやすいエッジケースを明確化できるんじゃないか?」と思ったことが、この記事を書き始めたきっかけになります。 1章は3つの主要なパターンとその詳細・例外、2章はそれらに関する文法的な解説になっています。 構造化・体系化が必要な理由 太郎くんと花子さんが英作文の問題を解いています。 次の日本語を英文に訳せ。 (1) 彼女は楽しい人だ。彼女といると退屈することがない。彼女はいつも新しいことに挑戦して…… 太郎くん(『楽しい』って英語で何やったっけ……) 狩井先生@ 1年6月「exciting は楽しいって意味やで~」 ~~ 月日が流れる ~~ 柱鈴先生@ 2年4月「excited は楽しいって意味やで~」 太郎くん(……って教わったけど、exciting か e
この記事は、筆者が技術選定について思うところをまとめた記事です。Twitterに同じ話を何回か書いているので、文章にまとまっていたほうがよいと思い用意しました。 やや過激な思想で愚痴も含んでいるので、共感いただけると嬉しいものの、みなさんを説得しようというつもりはありません。こいつはこういう考え方なんだなという心持ちでお読みください。 積極的な技術選定と消極的な技術選定ITエンジニアの方々の中には、技術選定をする立場の方も多いでしょう。技術選定にあたってはさまざまな事情を勘案しなければならない難しいもので、それだけに多くの人が技術選定に関する各々の考えを述べています。 筆者は、技術選定における意思決定のプロセスは、積極的な技術選定と消極的な技術選定の2種類があるのではないかと思っています。 積極的な技術選定は、選定される(あるいはされない)技術そのものが原因となる意思決定です。 一方、消極
はじめに いつも聞いているポッドキャスト番組で、エンジニア転職について生々しくリアルな話が聞けたので、紹介します。今の自分がやっている仕事が市場価値を上げられているのか? と日々の業務を振り返るきっかけになりました。詳しく知りたい方は是非、聞いてみて下さい。 転職の前提 かいちさん(転職した人)の紹介 情報系の大学院卒 中堅のバックエンド・エンジニア(30代) 社会人7年目 主に使っている言語: python, PHP アジャイル開発ができることを転職の軸に据えた 転職して感じたこと ① 30代は中堅の仕事を求められる → リーダー的立場が求められる ② 若い時の業務経験が転職の際に活きてくる → 20代はとにかく挑戦する回数を増やそう ③ 転職はどのタイミングでやってくるかわからない → 常に職務経歴書を更新し続けよう 結論 重要なポイント ・チームで開発した経験があるか? ・AWSなど
こんにちは、クックパッドマート流通基盤アプリケーション開発グループのオサ(@s_osa_)です。 生鮮食品の EC サービスであるクックパッドマートでは、「1品から送料無料」をはじめとするサービスの特徴を実現するために、商品の流通網を自分たちでつくっています。 このエントリでは、商品をユーザーに届けるための配送ルートを自動生成している仕組みについて紹介します。 解決したい問題 配送ルートとは クックパッドマートにはいくつかの流通方法がありますが、ここでは「ステーション便」と呼ばれるものについて解説します。他の流通方法などを含む全体像が気になる方は以下のエントリがオススメです。 クックパッド生鮮 EC お届けの裏側 2022 年版 - クックパッド開発者ブログ ステーション便では、ハブと呼ばれる流通拠点からユーザーが商品を受け取りに行く場所であるステーションへと商品を運びます。東京都、神奈川
アニメ業界のエンジニアリング改革に向き合って 『シン・エヴァ』の制作を支えた「スタジオカラー」のシステムづくり 2022年5月11日 株式会社カラー 執行役員 技術管理統括/株式会社プロジェクトスタジオQ 取締役副社長 技術管理統括 鈴木慎之介 1981年東京生まれ。高校在学中にドワンゴにエンジニアとして入社。音楽配信サイト等の立ち上げを経て、2006年動画共有サイト「ニコニコ動画」の立ち上げに参画。その後、開発部長、子会社社長等を歴任。2017年、麻生塾・カラー・ドワンゴの3社による映像制作スタジオ「プロジェクトスタジオQ」を立ち上げ、2019年、カラー執行役員技術管理統括に着任し、カラー全体のシステム及び、『シン・エヴァンゲリオン劇場版』を始めとした作品を支えるシステムを担当。 社会の変化に立ち向かう人たちに向け、「テクノロジーで、挑戦を恐れない勇気を。そして変化のリスクをチャンスに。
2010年代を乗り越えてきた経験者が読むと良さそうという噂を聞いたので読んでみた。 内容まとめではなく感想です。各章のタイトルだけは丸々記載してますが、目次として上記ページで全て公開されているものです。 ちなみにこれ書いている私はソフトウェアアーキテクトではなく、フロントエンドアプリケーションの設計を担当するテックリードぐらいのレイヤーです。この書籍の中でいう「開発者」です。 業務ではフロントエンドアプリケーションの設計・実装をしています。 全体的な感想 1章(イントロダクション)、22章(効果的なチームにする)、23章(交渉とリーダーシップのスキル)が特によかった。 やっぱ "結局人" の部分が刺さってしまう。 心に書きとめておきたい3つを挙げるとしたら以下。 ソフトウェアアーキテクチャとは「構造」「アーキテクチャ特性」「アーキテクチャ決定」「設計指針」の4つから成る 「一見どう見えよう
こんにちは。ミーティングテクノロジーという会社で会議ツールを開発している伊勢川です。 仕事で位置情報サービスを軽く調べる機会があって、せっかくなので調べた内容を記事にしたいと思います。 位置情報(地図)サービスといえば、Google Mapを思い浮かべる人も多いのではないでしょうか。私もGoogle Mapのヘビーユーザー&ファンで、カーナビの代わりとして使ったり、街で見つけた史跡の写真等を2000件以上投稿したりしています。 B2Cのサービスの中ではGoogle Mapが圧倒的な存在感を放っていますが、B2B向けのサービスとなると様相が異なるようです。今回は、ある調査でB2B向けサービスの中ではGoogle Mapより高い評価がついていた「HERE」というサービスについて書きます。 Google Mapよりすごいと言われる所以はなにか Omdiaのレポートによると、B2B市場の位置情報サ
はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、 rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ
目下、料理が癒やし。グルメ系ライターの生活を変えた感動の包丁 こんにちは、ライターの半澤と申します。 コロナ禍の影響でなにかと外に出づらい時代になり気が滅入りがちですが、そんな僕が今夢中になっているのが料理なんです。 コロナ禍をきっかけに自炊する機会が増え、最近は毎日のように料理ばかりしています。 先日は半日かけての余熱調理で鶏ハムを作りました。いやあ、料理があって良かった。気が紛れますよね。 年々、料理を作ることの喜びも深く感じるようになってきています。自宅キッチンまわりの調理器具もいろいろと試したのですが、ある日、たまたま驚異的な切れ味の包丁を見つけてしまったんです。 笑っちゃうほどの切れ味。サンドイッチも食材も、美しくカット それがこちら、京セラの「cocochical(ココチカル)」(cocochical セラミックナイフ 三徳 14cm 7,700円)。 京セラと言えばその名のと
「AIエージェントって最近よく聞くけど、実際どうやって作ればいいの?」 …って思ったことない? ChatGPTやClaudeをちょっと触ったことある人なら、「チャットで質問するだけじゃなくて、もっと自動でいろいろやってくれたらいいのに」って一度は考えたことあると思うんだよね。 でもいざ調べてみると、フレームワークが多すぎたり、「エージェント」って言葉の定義がバラバラだったりして、正直どこから手をつけていいかわからない。わたしもそうだったの。 そんなとき見つけたのが、Claudeを作ってるAnthropic社が公開してくれた「Building Effective Agents」っていう公式ブログ記事。 これがもう、めちゃくちゃわかりやすくて。「AIエージェントの設計パターンって、実はこの5つに整理できるよ」って教えてくれてるの。読んだ瞬間「これ、もっと早く知りたかった…!」ってなっちゃった。
UUIDはなぜ重複しないのか? Webアプリケーションなどのシステム開発では、データに一意の識別子を付与する必要があります。たとえば データベースの主キー は、ジムでいうところの「会員カード番号」。誰かと同じ番号だとパーソナルトレーナーの予約を取り違えるような事故が起きます。 他にも「ロッカーの鍵」「筋トレ記録ノートのページ番号」「プロテインシェイカーの名前シール」など、「絶対にダブってはいけない」ものがあることは、筋肉系エンジニアの皆さんも想像に難くないことでしょう。 そんな時に役立つのが UUID(Universally Unique Identifier)です。これは、ほぼ重複しないIDを生成できる仕組みです。本記事ではUUIDの仕組みを解説し、Pythonでの実装を通じて「なぜUUIDはほとんど重複しないのか?」を見ていきます。 UUIDとは? UUIDは、IETF(Interne
月間1億3,000万ダウンロードを超えるPythonライブラリが、AIで丸ごと書き換えられた。ライセンスごと。オープンソースの根幹を揺るがす問いが、いま目の前にある。 5日間で書き換えられた12年Pythonの文字エンコーディング検出ライブラリchardetに、激震が走っている。 メンテナーのダン・ブランチャードが3月4日(現地時間)、バージョン7.0をリリースした。これだけなら日常的なアップデートだ。だが中身は、日常とはほど遠かった。AnthropicのClaude Codeを使い、コードベースを一から書き直したうえで、ライセンスをLGPL(準コピーレフト)からMIT(寛容型)に変更したのだ。 chardetはPythonエコシステムの「インフラ」と呼べる存在だ。requestsをはじめとする無数のプロジェクトが依存し、PyPIでの月間ダウンロード数は約1億3,800万回に達する。その根
2025年10月20日の僕が考えるAIコーディング(バイブコーディング)プロセスです。 個人的な結論としては、1ミリでも気に食わないコードを生成してきたら、そのタスクは最終的には破棄すべきというものです。「このコード気に食わない」「この設計気に食わない」の直感がAIコーディングで品質を維持する生命線です。 バイブコーディング時代ではコードレビューのお局ビリティが鍵です。 レビューに全時間を割こう。レビューに時間がかかりすぎるというより、レビューに時間をもっとかけるくらい 1ミリでも知らないことをなくそう 断片的なAIコーディングでいえば1年弱、本格的なコーディングエージェントを使い始めて半年以上の僕がたどり着いた結論です。 よろしければ、皆さんのTipsや感想も知りたいです。アップデートしていきたいところです。 前提 僕は実装だけじゃなくて、設計もさせることが多いです Codex使いましょ
jp-postal-code-api https://github.com/ttskch/jp-postal-code-api 日本の郵便番号から住所のデータを取得できるWeb APIです。 GitHub Pagesを使用して静的なJSONファイルとして配信している ため、可用性が高いのが特徴です。また、オープンソースなのでクライアントワークでも安心してご使用いただけます。もしリポジトリの永続性や GitHub Pagesの利用制限 が心配な場合は、ご自由にフォークしてご利用ください。 日本郵便によって公開されているデータ を元に住所データのJSONファイルを生成して配信しています。JSONファイルには日本語表記・カナ表記・英語表記の住所データが含まれています。ただし、以下の注意事項があります。 大口事業所個別番号の住所データは以下のように出力されます(元データ の内容がそうであるため)
いぐぞー@書籍執筆中 ✈️ 旅するプログラマー @igz0 旅とプログラミングをこよなく愛します。 ADHD・ASDのWeb系プログラマーです。 小学生からプログラミング→新卒SIer→Webに目覚め自社開発の上場企業Web系エンジニア。個人開発者。読書・IT関連を中心にツイートします!!ネタツイート有。アイコンは@ixy先生に利用許諾済み。Amazonアソシエイト参加。 note.com/igz0 いぐぞー ✈️ 旅するプログラマー @igz0 Microsoftの専門家「ウォーターフォールは一切メリットがないのでやめておきなさい」 > アメリカでは、アジャイルやスクラムの進め方が「常識」としてソフトウェア開発の場で浸透している これマジ?? 日本のIT企業が、米国では「時代遅れ」のウォーターフォールを未だに信奉してるってコト!? pic.twitter.com/jRofJKmAKM 2
「科学的な営業」に興味があり、その分野の定番のひとつである『THE MODEL』を読んだ。 どのように営業プロセスを構築し機能させるのかについてコンパクトにまとまっているので、特に BtoB SaaS を提供している企業で働いている開発者は、一度読んでおくとよいと思う。 www.shoeisha.co.jp なんとなくの印象だが、「営業」というものについて、自分とは縁遠いもの、別の世界のもの、という感覚を持っている開発者は多いかもしれない。 自分もそうだった。むしろ、かなり悪い印象を抱いていた。 新卒で入った信用金庫の営業スタイルが絵に描いたような根性論、精神論だったのが大きい。 「飛び込み営業をすれば嫌がられるし、何度も訪問すれば怒られる。それでも諦めずに通い続けることで根性を認めてもらえて、取引してもらえるんだ」ということを役員が真顔で語っていたし、「昔は「契約するまで帰りません」と玄
はじめに 登壇版 Taskの本質 C# のイテレータ async/await Compiler Transform ExecutionContext builder.Start() の重要性 IAsyncStateMachine.MoveNext おわりに はじめに C#er は呼吸するように使っている async/await。 そんな async/await について、先日 Stephen Toub 氏 (.NET の中の人。中心人物の一人。) が How Async/Await Really Works in C# という非常に面白い記事を投稿していました。 この記事では Stephen 氏の記事をベースに、C# において async/await は実際どうやって動いてるの?というお話をしていきます。 以前に C#での非同期メソッドの分析。 という翻訳記事を書いたのですが、元になった記
以下のツイートに反響があったので、どういう感じで作っていったかと感想をメモ 要約 この記事ではAIのChatGPT(GPT-4)を使用して、JavaScriptでぷよぷよを作成する手法について紹介しています。最初の依頼は「JavaScriptで動くぷよぷよのコードを書いて」とされており、最初に生成されたコードは不完全であったとのことです。 その後、AI側からは、1.ぷよの衝突検出、2.プレイヤーの入力によるぷよの操作、3.ぷよの回転の順に実装するように指示があり、徐々に改善を施していきました。 短時間で開発を終えることができるため、エンジニアとしてのスキルや要求、不具合の言語化能力があれば有効だとされています。現時点では優秀なプログラミングのアシスタントとして機能しています。 エンジニアが直面するストレスや不安を軽減できる可能性があります。一例として、短期間で開発を終えることができるため、
はじめに この記事では最近話題のChatGPTによってプログラムを生成する際のコツについて解説します。 前編はこちら https://qiita.com/autotaker1984/items/5b5ac8c01d11fbbbc4a7 コードを生成するのではなく、コードを生成する過程を生成する ChatGPTは言語モデルベースのAIです。言語モデルとは、お題(プロンプト)に沿った文章を生成するモデルです。それ以上でもそれ以下でもありません。 従ってなんらかの機能を実装してもらう際もいきなり「機能」から「コード」の生成だとあまり満足いく結果は得られません。 もちろんChatGPTはかなり博識なのでそれっぽいコードは出してきます。ただ、そのような生成の仕方だとChatGPTが学習したコードにかなり依存したものが出力されるため、実際のユースケースとはズレたものが生成されますし、生成物の著作権リス
生成AIがプロンプトからコードを大量に生成してくれるので、出力されたものを理解する時間と引き換えに早くリリースする。この構造は技術的負債と同じなので「認知負債」と呼ばれることがある。 Margaret-Anne Storey が AI 時代のソフトウェア健全性を技術的負債・認知負債・意図負債の3層で整理している Addy Osmani は AI 生成コードでこのギャップが急拡大する現象を「理解負債」と呼ぶ Thoughtworks Technology Radar では "コードベースの認知負債" を Caution に分類している 認知負債と意図負債を分ける Storey の3層モデルの肝は、コード側の問題 (技術的負債) と人間側の問題を分けただけでなく、人間側をさらに「人の頭の中」(認知負債) と「外部化された知識」(意図負債) に分けたことにある。 table:table 種類 宿
今年の頭にうちの会社にやってきたエンジニアの話。 彼は実装がめちゃくちゃ速く、コードもきれい。テストもちゃんと書く。 とてもできるエンジニアなのだが、一つだけ困っていることがある。 実装完了した機能をすぐに本番環境にデプロイできないと、とても不機嫌になるのだ。 うちの会社が開発しているのはtoBのシステムで、実装内容によっては営業やカスタマーサポートからお客さんにアナウンスがされてからでないとデプロイができないものがある。 急にUIが変わったり新機能が追加されるとお客さんが混乱するしカスタマーサポートに問い合わせが殺到するので、デプロイ前に調整が発生するのは致し方ないことなのだが、こうした背景を説明しても彼は納得してくれない。 「とにかく早くデプロイをさせろ」の一点張りで、彼が勝手にPRをリリースブランチにマージして、機能が出てしまったこともある。 それによってカスタマーサポートへの問い合
シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題ShellScriptUNIXshellシェル芸POSIX はじめに シェルスクリプトで ls コマンドの出力結果(ファイル名一覧)をパイプで他のコマンドに渡して処理するのは推奨されません。ls コマンドを使ったコードを ShellCheck で検査するとおそらく問題があると警告が表示されるでしょう。ls を使うなという指摘自体には賛成なのですが SC2010、SC2011、SC2012 に書いてある理由については正しい説明がされていないと思っています。この記事ではなぜ ls の出力結果を他のコマンドにパイプで渡すのが悪いのか、ls を使わずに実現するにはどうしたら良いのかを解説したいと思います。一つ補足をしておくと、この問題は CLI コマ
マイナカードで誤交付、自治体・富士通に報告求める 個人情報保護委:朝日新聞デジタル マイナンバーカードを使った証明書のコンビニ交付サービスで、他人の住民票などが誤って交付された問題をめぐり、個人情報保護委員会は11日、関係自治体やシステムを納入した富士通Japanに対して、報告や資… 9 朝日新聞デジタル ゆーしゃん.py(bot運用中) @Mr_mura_ura 客「ファイル名に「yyyymmdd_hhmmss」がついてますが、完全に同タイミングで動かしたらどうなります?」 私「こんな小規模な社内システムでそんな事無いと思いますが…エラー落ちしますね…」 客「まぁ99%無いと思いますが、念のためにね」 というレビューをつい最近受けた私、震えてます← 2023-05-11 00:02:16
この記事は間違いが含まれている可能性があります。 もともと自社のドキュメントでは Meilisearch で日本語全文検索を実現していましたが、ドキュメントに質問できるようしたいと思い、簡単な RAG を作りたい!と思っていました。 とりあえず、ドキュメントを分割し、ベクトル化してベクトルデータベースに突っ込んで、質問をベクトル化して結果を引っ張り、それを LLM に食べさせて解説させる、というのができればよいということがわかりました。 ベクトル化はよく使われている OpenAI Embeddings API を利用し、ベクトルデータベースは普段からよく使っている DuckDB に VSS (Vector Similarity Search for DuckDB) という拡張を使うことにしました。 自社のドキュメントをなんとかうまいこと分割して、あとは分割したドキュメントを API を叩い
【改訂版発売中!】【完全案件特化】JavaScriptをどこまで学ぶべきかの学習ロードマップ+頻出パーツの作り方8選 - セカヤサBooks 【お知らせ】 内容を2024年に向けて更新、追加した改訂版を公開しました! →https://zenn.dev/hideki_climax/books/0e124eb17a67b3 ・HTML/CSSの次は何を勉強すれば良いの? ・案件が取れない ・未経験だけど転職を考えている ・フリーランスで実績を積みたい そんなあなたの悩み、全て解決します。 JavaScriptをどこまで深めれば案件が獲得できて、収入に繋がるのか。 フリーランスで7年間エンジニアをしてきた僕が思う 「Web制作領域においてJavaScriptで何ができれば良いか」 をまとめました。 そして圧倒的に頻出のUIパーツ8つの作り方を徹底解説しました。初心者でもすぐに実践できます。実際
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く