ペアプロが嫌すぎて会社を退職した話
この記事は、著者が前職で100%ペアプログラミングを強制された経験に基づき、ペアプログラミングのアンチパターンとその改善策を述べている。強制されたペアプログラミングは、最初は生産性向上に繋がったものの、長期的には著者の精神的な負担を増大させ、エンジニアとしての楽しさや個性を抑制し、最終的に退職に至った。著者は、ペアプログラミングは状況に応じて適材適所で用いるべきであり、100%強制することはマイクロマネジメントであり有害だと主張。現職では、ソロプログラミングを主体とし、必要に応じてスポットでペアプログラミングを行うことで、生産性と個人の満足度を両立させている。 チームへのペアプログラミング導入は、数値指標だけでなく、メンバーの感情や個性も考慮すべきだと結論づけている。
リーダー1年目の懺悔
この記事は、新米チームリーダーが1年間の経験を通して学んだ反省と改善点を記したものである。 著者は、当初チャットでの指示、フラットな関係構築、優しい指摘、依頼ベースのタスク割り当てといった方法を取っていたが、それが非効率で部下の成長を阻害することに気づいた。 「リーダーの仮面」という書籍を参考に、指示の明確化、上司と部下の関係性の意識、タスクの言い切り、といった改善策を実行している。 さらに、 「いい人」にならない、待つこと、部下と競争しない、マネジメントを優先する、辞めないことを気にしすぎない、という5つのポイントを意識し、リーダーとしての成長を継続していくことを述べている。
shutdownシステムアカウントが見事に本番サーバを停止させた
著者は、Linuxサーバ管理中に、存在を知らずに「shutdown」ユーザーアカウントに切り替えたところ、そのアカウントがログイン時に自動的にシャットダウンコマンドを実行するよう設定されていたため、本番DBサーバを誤って停止させてしまったという経験を記している。この出来事から、本番環境での操作は事前に検証環境でテストを行うなど、極めて慎重に行うべきだと結論づけている。
【2024年末最新】AWS 学習におすすめの技術書 厳選12冊(初級者から上級者まで)
この記事は、初心者から上級者まで対応した12冊のAWS関連技術書を紹介しています。入門、インフラ、開発、特定サービスの4つのカテゴリーに分け、各カテゴリーから数冊ずつ厳選された書籍とその内容、特徴、Amazonレビューなどを詳しく解説しています。特に「AWSの仕組みとサービスがたった1日でよくわかる」「AWS運用入門」「AWSで実現するモダンアプリケーション入門」の3冊はおすすめとして挙げられています。 著者は自身が購入し実際に読んだ上で選書しており、Amazonアソシエイトリンクは使用していません。
[Next.js] PokeAPIでポケモンBMIクイズ作ってみた
このテックブログ記事は、Next.js 15を用いて作成された、初代ポケモン151匹のBMIをクイズ形式で楽しめるウェブアプリを紹介している。PokeAPIからポケモンのデータを取得し、身長と体重からBMIを計算、2匹のポケモンを提示して、BMIが高い方を当てるクイズとなっている。記事では、アプリのコードの一部(pokemon.ts
、page.tsx
)と、開発環境についても説明されている。
自宅でJavaの勉強をするために、Eclipseで環境構築してみた
この記事は、Windows11環境でEclipse 2024とJDK23を用いたJava開発環境構築手順を解説したテックブログである。Eclipseのダウンロードとインストール、HelloWorldプログラムの実行、そしてJDK23のダウンロードとインストール方法を、具体的な手順とスクリーンショットを交えて詳細に説明している。 最終的に、著者自身の自宅PCでJava開発環境が構築され、学習を始める準備が整ったことを報告している。
【保存版】フロントエンド初心者がまず読むべき資料まとめ【2024年最新】
この記事は、2024年現在のフロントエンド開発に必要な知識と学習リソースを初心者向けにまとめたものです。HTML、CSS、JavaScript、TypeScriptといった基礎言語から、React、Vue.js、Next.jsなどのフレームワーク、React Router、Redux、Axiosといったライブラリ、Webpack、Viteといったビルドツール、さらにはテスト手法、SEO、サイトパフォーマンス、AI支援ツールまで、幅広いトピックを網羅し、それぞれの項目に具体的な学習資料(公式ドキュメント、チュートリアル、記事など)へのリンクが多数掲載されています。 学習ロードマップや、学習方法についても言及されており、フロントエンド開発を始める際の包括的なガイドとなっています。
Helmを「完全に理解した」
この記事は、新卒2年目のエンジニアが、Kubernetes上でアプリケーションをデプロイするツールであるHelmの使い方を解説したものです。Helmは、YAMLファイルを手動で記述する手間を省き、helm install
コマンド一つで環境構築できるツールとして紹介されています。記事では、GKE(Google Kubernetes Engine)上にnginxをデプロイする手順を、Helm chartの作成、values.yamlとtemplatesを使った設定、デプロイ・アンインストールコマンドの実行、kubectlを使った確認といった流れで具体的に説明しています。 ただし、著者はKubernetes自体はまだ理解が浅く、Helmの理解も限定的であることを最後に述べています。
Schooエンジニアのリスキリング体験記 〜 大学院卒業見込み
Schooエンジニアの福嶋氏は、働きながら産業技術大学院大学の情報系大学院に通い、間もなく卒業する。エンジニアとしてのスキル向上と体系的な知識習得を目的に入学。専門実践教育訓練給付金を利用し、費用を抑え、夜間・オンライン中心の授業構成が仕事との両立を可能にした。コンピュータサイエンス、ソフトウェア工学、システム開発、マーケティングなど幅広い科目を履修し、PBL(プロジェクトベースラーニング)を通してエッジコンピューティングや推薦アルゴリズム開発を経験。仕事と学業の両立は大変だったが、専門知識の向上、人脈形成、新たな学びへの興味という大きな成果を得た。今後は、学会発表や技術記事執筆など、学びの発信を増やし、博士課程進学も検討している。
Branded Type ベストプラクティス 検索
この記事は、TypeScriptにおけるBranded Typeのベストプラクティスについて解説しています。著者は、プリミティブ型を区別するためにunique symbol
を用いた方法を推奨しています。これは、string & { [uniqueSymbol]: unknown }
のように、独自のシンボルをキーとして持つオブジェクト型とプリミティブ型の交差型として定義することで、型安全性を確保しつつ、ランタイムでのオーバーヘッドを抑えることができるためです。unique symbol
をエクスポートしないことで、カプセル化も実現できます。 一方、文字列リテラルをキーとする方法や、unique symbol
を共有する方法は、型安全性の観点やカプセル化の観点から推奨されていません。 declare const
を用いたunique symbol
の定義についても言及されていますが、著者はどちらの方法でも問題ないと述べています。
日本語プロンプトでAWS構成図を自動生成!Bedrock AgentsとDiagramsで作るサーバーレス構成図ツール【エラー格闘編】
この記事は、Amazon Bedrock Agentsを用いてDiagramsライブラリでAWS構成図を生成し、Lambda関数で実行してS3に保存するシステム構築の試みについて記述している。Code InterpreterだけではDiagramsに必要なライブラリが不足するため、コンテナLambdaを用いてGraphvizを含む必要なパッケージをインストールすることで解決した。最終的にBedrock AgentsからLambdaへのコード送信、Lambdaでの実行、S3への保存という流れを構築し成功したが、システムはまだ不完全であり、今後の改善が必要であると結論づけている。
生成AI初心者がDifyを使って占い&性格診断botを作ってみた
この記事は、生成AI初心者である著者が、DifyというAIアプリ開発プラットフォームを使って、占い&性格診断チャットボットを作成した体験記である。飲み会での動物診断をヒントに、MBTI診断なども含む多機能なボットを目指し、DifyのSaaS版とAWS環境での構築の両方を試した。SaaS版は手軽だが無料クレジットの制限があり、AWS版は環境構築に手間がかかるものの自由度が高い。 結果、どちらも機能するボットを作成できたものの、プロンプトの調整が重要であることを学び、Difyの活用方法について自身の考えを述べている。
初心者向けAWSの社内研修の実現に向けて
AWS初心者向け社内研修で、VPC、EC2、RDS、ELB、IAMを用いたサーバーとデータベース構築方法を学習するカリキュラムを作成した。特にELBによる可用性向上とIAMによるアクセス権限管理の重要性を重点的に解説している。研修では、これらのサービスを用いて実際にシステムを構築し、理解を深めることを目指す。今後は、研修内容の更なる改善を進める予定である。
djangoでUniqueViolationの例外エラーを取得する
Djangoで一意制約違反(UniqueViolation)が発生した場合の例外処理についての記事です。Djangoでは、UniqueViolationを直接except
で捕捉できないため、IntegrityError
を捕捉し、e.__cause__
を用いてエラー原因がUniqueViolation
であるかisinstance
で判定することで、UniqueViolation時の処理を実行する方法を紹介しています。
re:Invent2024で新たに発表されたAmazon Kendraの新機能「GenAI index」を試してみる!
この記事は、re:Invent 2024で発表されたAmazon Kendraの新機能「GenAI Index」を試した結果を報告しています。GenAI IndexはRAG(Retrieval Augmented Generation)を容易に構築するための機能で、Amazon Bedrockとの統合もスムーズに行えます。日本語への対応は現時点では未サポートですが、英語のドキュメントをインデックス化し、StreamlitアプリとAmazon Bedrockを組み合わせたチャットボットにGenAI Indexを統合することに成功しました。 結果、質問に対して、Kendra内のドキュメントを参照した回答と参照元情報を得ることができました。今後の課題として、精度の比較や料金体系の調査が残されていますが、RAGシステム構築の選択肢が増えたと結論づけています。
Googleが提唱する「Core Web Vitals」とは?SEOで重要な3つの指標を分かりやすく解説!
この記事は、GoogleがWebサイトのユーザーエクスペリエンス(UX)向上のため導入したCore Web Vitals(コアウェブバイタル)について解説しています。Core Web Vitalsは、LCP(読み込み速度)、INP(応答速度)、CLS(レイアウトの安定性)の3つの指標からなり、検索順位にも影響する可能性があります。 各指標の評価基準と、Google Search Console、PageSpeed Insights、Lighthouseといった計測ツールも紹介されています。 記事は、Core Web Vitalsの改善だけでなく、全体的なUX向上も重要だと結論づけています。
VSCode×Pythonのおすすめ拡張機能・設定集【完全保存版】
この記事は、VSCodeでPython開発を行う際に、効率化のために導入すべき拡張機能と設定を紹介している。
主な内容:
-
必須拡張機能: Python本体、Ruff(Linter/Formatter)、Mypy Type Checker、Pytest、Python Test Explorer。 RuffはFlake8, Black, isortを統合し高速に動作する。Mypyは型チェックを行う。Pytestはテストツール、Python Test ExplorerはVSCodeでのテスト実行を容易にする。
-
便利な拡張機能: autoDocstring(docstring自動生成)、Code Spell Checker(スペルチェック)、GitLens(Git履歴閲覧)、Error Lens(エラー表示強化)、indent-rainbow(インデント色分け)、Trailing Spaces(末尾スペース可視化)、Blockman(ネストコードブロック強調)、TODO Highlight(TODO表示強化)、vscode-icons(アイコン表示)、Rainbow CSV/Edit CSV(CSV操作)。
-
VSCode設定: カラーテーマ(GitHub Theme, Ayu, Noctisなど)、フォント(Source Han Code JP, PlemolJP, UDEV Gothic 35JPDOCなど)、カーソル設定(点滅、アニメーション)、エクスプローラー設定(インデント、ガイド)、ウィンドウタイトル、インデントガイド、カーソルスタイルなど。 必要に応じてsettings.jsonを編集する。
要約すると、この記事はVSCodeを用いたPython開発における効率化のための、具体的な拡張機能と設定例を提示している。特にRuffの導入と、いくつかの便利な拡張機能の活用が推奨されている。
DenoとFreshでお手軽ポケモン図鑑開発
この記事は、DenoとFreshフレームワークを用いてポケモン図鑑Webアプリケーションを開発し、Deno Deployにデプロイする過程を解説したものです。 FreshのサーバーサイドレンダリングとIslandsアーキテクチャを活用し、PokeAPIからポケモン情報を取得して表示する機能を実装しています。 トップページ、ポケモン詳細ページ、ポケモン一覧ページ(ページネーション付き)を作成し、開発環境構築からデプロイまでをスムーズに行えたと報告しています。DenoとFreshのシンプルさ、効率性、そしてDeno Deployの容易さを強調しています。
【Google Cloud】【小ネタ】メタルギアソリッド(MGS3)にあった昔懐かしのネタをGemini AdvancedのGemを使って再現してみる
この記事は、ゲーム「メタルギアソリッド3」のパラメディックがセーブ後に話す、ゲーム攻略とは関係ない雑談を、Gemini Advancedを使って再現したことを記している。 具体的なプロンプトを記述し、Geminiがパラメディックのような応答をするよう指示した結果を掲載しているが、プロンプト作成の難しさにも言及している。要約すると、Gemini Advancedを用いて、特定ゲームのキャラクターの雑談を再現する実験を行い、ある程度成功したという内容である。
あなたはいくつ解けますか?データベース分野を徹底解説 【基本情報・応用情報】
このテックブログ記事は、基本情報技術者試験と応用情報技術者試験のデータベース分野の解説記事です。正規化、同時実行制御(ロック)、SQL、トランザクション、キー、ER図、3層スキーマ、制約、インデックス、実行計画と統計情報、リポジトリ、データウェアハウス、データマイニング、NoSQLといったデータベース関連の主要な概念を、図解を用いて詳しく説明し、各単元に関する問題とその解説を掲載しています。 試験対策だけでなく、実務にも役立つ内容となっています。
おすすめのVSCode拡張機能3選
この記事は、VSCodeの便利な拡張機能3つを紹介するものである。1つ目は「Japanese Language Pack for Visual Studio Code」で、VSCodeの表示言語を日本語に変更できる。2つ目は「Prettier - Code formatter」で、コードを自動整形し、保存時に自動フォーマット設定も可能。3つ目は「IntelliCode」で、コンテキストに基づいたコード補完を提供する。 それぞれ設定方法や使用方法の基本が簡潔に説明されている。
新卒一年目が考える、情報系専門学校を卒業してためになったこと3選
この記事は、IT企業で働く著者が専門学校での経験が社会人生活でいかに役立っているかを3つのポイントで解説している。
-
チーム開発: プロジェクトの流れ(WBS、Git、設計書作成など)を学び、社会人になってからもタスクの必要性を理解し、業務を深く理解することに繋がっている。試行錯誤を経験したことで、効率的な開発方法を習得した。
-
資格取得: IT基礎知識と自信を身につけ、学び続ける習慣を築いた。資格取得が目的化することもあったが、学びの方向性を修正する経験にもなった。
-
問題解決能力: チーム開発やバグ修正を通して、問題解決にあたり「冷静な分析」「周囲の協力を得ること」「原因追求と再発防止策の検討」の重要性を学び、社会人になってからも活かしている。
要約すると、専門学校での実践的なチーム開発、資格取得による知識習得、そして問題解決能力の育成が、著者のITエンジニアとしての成功に大きく貢献しているという内容である。
GitHubActionsを用いたS3へのコンテンツデプロイ
この記事は、GitHub Actionsを用いてGitHubリポジトリへのプッシュをトリガーに、S3バケットに静的Webページをアップロードするワークフローを構築した過程を説明しています。 AWS CLIとGitHub Actionsを使い、IAMユーザーのアクセスキーをSecretsとして管理し、aws s3 sync
コマンドでファイルを同期します。 developブランチへのpushをトリガーとし、aws-actions/configure-aws-credentials
アクションを使ってAWS認証情報を設定、その後ファイルのアップロードと確認を行います。 セキュリティ面ではIAMユーザーのアクセスキーを使用していますが、将来的にはIAMロールを用いたより安全な方法を試す予定としています。
Linuxサーバのセキュリティ監視プラクティス (概要編)
この記事は、Linuxサーバのセキュリティ監視ベストプラクティスをSplunkを用いて解説するシリーズ記事の第一弾である。Linux環境へのランサムウェア攻撃増加を背景に、効果的な監視手法としてauditd
とSysmon for Linux
に焦点を当てている。 auth.log
/secure.log
、auditd
、Sysmon for Linux
それぞれのログ取得方法、ログ量、Splunkへの取り込み方を説明し、MITRE ATT&CKやSplunk Security Contentsのルールとの関連性、sudo
コマンド実行例を用いたauditd
とSysmon for Linux
の比較検証結果を示している。次回以降はauditd
とSysmon for Linux
の設定・チューニング方法を解説する予定。
Pleasanter の怖い話!
このテックブログ記事は、ローコード開発プラットフォームPleasanterにおいて、スクリプトとサーバスクリプトのパフォーマンスの違いを解説しています。 著者は、パフォーマンス問題に直面した経験から、APIの実装にはサーバスクリプトを使用する方が効率的であると主張します。 検証実験では、サーバスクリプトの方がスクリプトよりも処理時間が大幅に短縮される結果が示され、API実行ごとにサーバ通信が発生しないサーバスクリプトの優位性が確認されました。 そのため、Pleasanterでの開発では、パフォーマンスを考慮し、可能な限りサーバスクリプトの使用を推奨しています。
なんでこんなにもWebフレームワークは目まぐるしく変化しているんだろうか
この記事は、Webアプリケーション開発におけるフレームワークの歴史をたどり、各時代の課題と解決策を解説することで、現代のフレームワークの思想や特徴を理解する助けとすることを目的としたテックブログです。CGIから始まり、Javaサーブレット/JSP、Ajax、jQuery、Backbone.js/AngularJS、React/Vue.js、SSR/SSG、WebAssembly、そしてAI支援ツールまで、それぞれの技術がどのような課題を解決するために生まれたのかを、時系列に沿って説明しています。 歴史的背景を理解することで、新しいフレームワークへの適応力が高まると結論付けています。
あなたは多分、Neovim の本当の起動速度を知らない
この記事は、Neovimの起動速度計測方法と、その結果の信頼性について検証したテックブログです。nvim --startuptime
オプションやvim-startuptime
プラグインで計測される起動速度は、--- NVIM STARTED ---
が出力される時点までの時間を計測しており、VimEnter
やUIEnter
イベント以降に実行されるプラグインの処理時間は含まれていない可能性があることを指摘しています。そのため、これらの方法で得られる数値は実際の体感速度と異なる可能性が高いと結論づけています。 代替案として、ダッシュボードプラグイン(snacks.nvim, dashboard-nvim)の表示完了イベントを利用したより正確な起動速度計測方法と、そのためのスクリプト例を紹介しています。さらに、ダッシュボードに表示される起動速度もCPU時間に基づいており、実時間とは異なることを説明しています。
ママの日常で理解するJavaScriptの非同期処理(メインスレッド,コールスタック,イベントループ)
本記事は、JavaScript初学者向けに非同期処理を解説した記事です。JavaScriptはシングルスレッド言語であるため、重い処理はブラウザのメインスレッドをブロックし、画面フリーズなどの問題を引き起こします。これを解決するために、非同期処理が用いられます。非同期処理では、Web API、タスクキュー、マイクロタスクキュー、イベントループの4つの仕組みを用いて、メインスレッドが長時間ブロックされることなく、複数のタスクを効率的に処理します。Web APIはタスクをメインスレッドから切り離し、完了時にタスクキューまたはマイクロタスクキューに通知を送ります。イベントループはこれらのキューを監視し、コールスタックが空いたタイミングでタスクを実行します。マイクロタスクキューはPromiseなど優先度の高いタスクを先に処理します。 記事では、ママの家事の例えを用いて、これらの概念を分かりやすく説明しています。
[CAIレシピ] プロセスの作成と実行(匿名アクセスと基本認証)
この記事は、Informatica Cloud Application Integration (CAI) プロセスをREST APIとしてcurlコマンドで実行する方法を、匿名アクセスと基本認証の2つの認証方法について解説しています。 匿名アクセスでは認証情報不要で実行できるプロセス作成手順とcurlコマンド実行例、基本認証ではIICSユーザーの認証情報が必要なプロセス作成手順とcurlコマンド実行例を示しています。 命名規則の例も提示され、基本的なCAIプロセスの理解を前提としています。
WPMLを使って日本語サイトを英語化
この記事は、非エンジニアの著者がWordPressプラグインWPMLを使って企業ウェブサイトを英語化した経験を紹介する。WPMLは多言語化とSEO対策を容易にする有料プラグインで、翻訳管理機能、自動翻訳機能、テーマ・プラグインとの高い互換性などが特徴。著者はWPMLの柔軟な運用、多機能性を高く評価する一方、カスタムフィールドの翻訳設定、画像の翻訳、HTMLタグ処理など、いくつかの問題点とその解決策を提示している。さらに、URL構造の確認方法や「String Translation」機能の活用法といったTipsも紹介。 結論として、WPMLは技術者でなくても多言語サイト構築を容易にする強力なツールであると結論づけている。