【最新技術に振り回されない】 低レイヤーに強くなるための鉄板コンテンツ集
この記事は、エンジニアが低レイヤーを学ぶための様々なリソースを紹介するテックブログ記事です。コンピュータアーキテクチャ、CPU、OS、システムプログラミング、コンピュータネットワーク、コンパイラ/インタプリタといった分野を網羅し、各分野に関連する書籍、オンライン講義、ゲームなどを多数掲載しています。 低レイヤーの知識習得がソフトウェア開発におけるパフォーマンス向上やバグ解決に役立つと主張しており、初心者から経験者まで幅広い読者を対象としています。
【保存版】フロントエンド初心者がまず読むべき資料まとめ【2024年最新】
この記事は、2024年最新のフロントエンド開発に必要な知識を初心者向けにまとめたNuco Advent Calendar 2024の記事です。HTML、CSS、JavaScript、TypeScriptといった基礎から、React、Vue.js、Next.jsなどのフレームワーク、React Router、Reduxなどのライブラリ、Webpack、Viteなどのビルドツール、テスト手法、SEO、サイトパフォーマンス、そしてAI支援ツールまで、幅広いトピックを網羅し、各項目に学習に役立つ具体的な資料を多数紹介しています。さらに、コードエディタ、パッケージ管理ツール、ホスティングサービス、アプリケーション構造、監視ツールといった開発環境やツールについても解説しています。最後に、効率的な学習方法としてロードマップ資料も紹介しています。初心者からベテランまで、フロントエンド開発に関する知識を深めたいすべての人にとって有用な情報が満載です。
【2024年末最新】AWS 学習におすすめの技術書 厳選12冊(初級者から上級者まで)
この記事は、AWSに関する12冊の技術書を、入門、インフラ、開発、特定サービスの4つのカテゴリに分け、初心者から上級者までを対象にレビューしたものです。各カテゴリから特に推奨する1冊を選定しており、「AWSの仕組みとサービスがたった1日でよくわかる(入門)」「AWS運用入門(インフラ)」「AWSで実現するモダンアプリケーション入門(開発)」を挙げている。選定基準はAmazonランキング、書店での目立つ位置、出版年、読みやすさ、サイズなどを考慮している。各書籍の詳細(目次、レビュー、価格など)も記載されている。 最終的には、AWS学習の際に技術書を活用することを推奨している。
アセンブラ言語プログラミングテクニック【基本編】
この記事は、ベテランITエンジニアが、初期のCPUとアセンブラ言語プログラミングにおける制約と工夫について回顧するものである。 当時のCPUはレジスタ数や命令セットが少なく、乗算や除算命令すら備えていなかったため、シフト演算を用いた工夫や、ループ展開、インデックスインダイレクトモードといった最適化手法を用いてプログラムの高速化を図っていたことを、具体的なコード例を交え説明している。 著者はこれらのテクニックを「楽しさと苦しさの両方をもたらした親友」と表現し、読者にも古いCPUでのプログラミングに挑戦することを促している。
保存版!プログラミング英単語リファレンス大全
この記事は、プログラミングにおける英語の単語・略語・慣用句の包括的なリファレンスを提供する。動詞、名詞、形容詞、略語、慣用句に加え、実践的な命名規則、チーム開発におけるコミュニケーション、技術領域別の専門用語集を網羅している。初心者から上級者まで、美しいコードの作成と開発効率の向上を目指す開発者にとって有用な情報が満載である。 具体的には、各単語の意味と具体的な使用例、さらにコードレビューやGitHubでのやり取りでよく使われる表現などが解説されている。
TypeScriptで『関数型ドメインモデリング』をやってみよう
この記事は、LIFULLにおけるClean Architecture(CA)を用いたレガシーシステム刷新の取り組みの中で、TypeScriptを用いたドメインモデル実装に「関数型ドメインモデリング」の「型によるドメインモデリング」を適用した事例を紹介している。 従来のオブジェクト指向的なドメインモデル(状態をフラグで管理)に対し、状態遷移を関数と型で表現することで、状態の可読性・保守性を向上させ、バグを抑制し、テストコードの削減に繋がることを示している。具体的には、TypeScriptの型システムを利用して、状態を異なる型で表現し、状態遷移を関数として定義することで、コンパイラによる型チェックで不正な状態遷移を防ぎ、コードの可読性を高めている。ただし、型定義の増加によるコード量の増加や、新しい手法への学習コストはデメリットとして挙げられている。
作業効率を上げるために買って良かったもの7選(在宅エンジニア)
この記事は、リモートワークエンジニアの著者が、作業効率向上のため「買ってよかったもの7選」を紹介するテックブログです。 紹介されているのは、高機能チェア(エンボディチェア)、リストレスト、アイマスク、スマートリモコン(SwitchBot)とスマートスピーカー、デュアルモニター、骨伝導ヘッドセット、そして1リットル水筒です。それぞれ、腰痛軽減、手首の負担軽減、睡眠の質向上、家電操作の効率化、作業効率向上、通話品質向上、水分補給の容易化といったメリットが挙げられています。著者は、快適なリモートワーク環境構築への投資が生産性向上に繋がることを強調しています。
長く働くためには
70歳定年が義務化される中、長く働き続けるために、著者は健康維持、頑張りすぎないこと、継続的な学習、そして会社以外の居場所を持つことの4点を重要視している。 これらを続けることで、あと20年以上働くことを目指している。
GitLabからGitHubに移行した時に直面した課題と対策
この記事は、GitLabからGitHubへのリポジトリ移行手順と、その際に発生した課題とその解決策について記述したものです。
移行計画では、休日を利用し、CI/CDのトリガーを無効化することを決定。具体的な手順として、必要な権限の取得、CIの無効化、--mirror
オプションを用いたローカルへのクローン、GitHubリモートへの変更、git push --mirror
によるプッシュを行いました。
しかし、100MBを超えるファイルの存在によりプッシュに失敗。git filter-repo
コマンドを用いて大容量ファイルを削除することで解決し、最終的にGitHubへの移行とGitLabのアーカイブ化を完了させました。 移行にあたっては、プロジェクト固有のCI/CDアーキテクチャへの考慮が必要であると結論付けています。
UnrealEngineでアバターを動かす方法
この記事は、Unreal Engine 5.1.1でVRM形式のアバターをモーションキャプチャによって動かす方法を解説したチュートリアルです。VRM4U、VMC4UE、ueOSCといったプラグインを使用し、UnityでVRMMapを作成する手順、Webcam Motion Captureまたはmocopiを用いたモーションキャプチャの連携方法を詳細に説明しています。初心者にも分かりやすいよう丁寧に解説されており、よりリアルな動きを実現するための「バーチャルモーションキャプチャー」についても触れています。
怖くなかった!JAWS-UG 〜自身の関わりの変遷と得たもの〜
この記事は、著者がJAWS-UG(AWSユーザーグループ)への関わりを通して得た経験を記したものである。当初はJAWS-UGを「近寄りがたい」と感じていた著者は、re:Invent参加をきっかけにオンライン勉強会から参加を始め、2023年にクラウド女子会のオフラインイベントに参加。そこで運営に加わり、その後は他支部との交流や登壇なども経験するようになった。JAWS-UGへの関わりを通して、技術的な学び、社外の人脈拡大、モチベーション向上という3つの大きな成果を得たと述べており、JAWS-UGに興味を持つ読者へ、オフラインイベントへの参加を推奨している。
Backlog の課題に Power Automate の承認を組み込もう
この記事は、Power AutomateとBacklog APIを連携させ、Backlogのタスク状態が「処理済み」になった際に承認フローを自動化する仕組みを解説している。具体的には、Power AutomateのHTTPリクエストトリガーでBacklogのタスク状態変更を検知し、Power Automateの承認機能で承認者を特定の上長に通知する。承認されるとBacklogのタスク状態を「完了」に、拒否されると「差し戻し」状態に変更する処理を、Backlog APIを用いて実現している。 設定手順として、Power Automateのトリガー設定、Backlogプロジェクトの状態追加とWebhook設定、Backlog APIキー取得、Power Automateのアクション設定(承認、完了処理、差し戻し処理)が詳細に説明されている。
データサイエンティストのおすすめ書籍30選
この記事は、データサイエンティスト3年目の著者が、自身のスキルアップに役立ったおすすめの書籍30冊を紹介するものです。エンジニアリング(コーディング、Python、SQL、データエンジニアリング、Linux、Git、Docker、クラウド)、データサイエンス(統計学一般、ベイズ統計学、因果推論、機械学習一般、自然言語処理、推薦、Explanable AI、最適化)、ビジネス(コミュニケーション、スライド作成)の3つの観点から、初学者向けから中級者向けまで幅広いレベルの書籍が紹介されています。著者は統計や機械学習の知識はあったものの、エンジニアリングスキルは低かったため、その点を踏まえた選書となっています。
インテグレーションテストをもっと楽に!Testcontainers はじめました
この記事は、Go言語を用いたWebアプリケーションの自動テストにおいて、Testcontainersライブラリを用いたデータベースコンテナの効率的な管理方法を紹介している。Testcontainersは、テストコード内でDockerコンテナを起動・停止し、モックやスタブを用意することなく、本番環境に近い環境でのテスト実行を可能にするオープンソースライブラリである。記事では、TODOアプリを例に、PostgreSQLコンテナを用いたインテグレーションテストの実装方法をサンプルコードと共に解説しており、テストコード内でコンテナを起動し、テスト後に終了させることで、テスト環境構築の手間を削減し、テストの信頼性を高める方法を示している。
オリジナルの地図デザインを作る!その1(夜景マップ)
この記事は、Maputnikを用いて夜の都市の灯りを表現したオリジナル地図デザインを作成し、Webサイトで公開するまでの過程を紹介している。航空写真やISSからの夜景画像を参考に、道路の種類(高速道路、主要道路、住宅地、歩道など)ごとに光の太さや色を調整し、Maputnikでデザインを作成。その後、MapLibre GL JSを用いてWebサイトに公開した。オープンデータであるOpenMapTilesとOpenStreetMapを利用しており、誰でも作成・公開できることを示している。
Amazon Bedrockを用いてプレゼン動画から書き起こし記事を自動生成した話
この記事は、Amazon Bedrockを用いて、re:Invent 2024のセッション動画を自動的に記事化するシステムを開発した事例を紹介している。動画の文字起こし、翻訳、要約、画像挿入などを自動化するため、LLM(Claude 3.5 Sonnet v2)と複数の古典的な画像処理技術を組み合わせ、Prompt ChainingとTask Decompositionによってタスクを分割することで精度と安定性を向上させた。特に、Keyframeの抽出、画像の適切な配置、並列処理における文章の一貫性維持に工夫を凝らしている。結果、400個以上のセッション動画をZennで公開し、1万PVを超えるアクセスを獲得した。今後、コスト削減と精度の向上を目指し、類似のシステムがメディアやサービスに組み込まれる可能性を示唆している。
Accessからサクッと移行してみた
この記事は、老朽化したAccessデータベースの課題(データ分散、セキュリティリスク、保守性の欠如、スケーラビリティの問題、ITガバナンスの欠如)と、ローコード/ノーコードプラットフォーム「プリザンター」への移行の重要性を説いています。 特に、Accessからプリザンターへの移行作業を自動化するツール「A2P」を紹介し、その機能と限界を説明しています。A2PはAccessのテーブル定義からプリザンターのテーブルや入力画面を自動作成しますが、フォームの完全な再現や帳票、ビジネスロジックの移行は手動で行う必要があるとされています。 Accessのサポート終了が迫っていることを踏まえ、プリザンターへの移行とA2Pツールの活用を推奨しています。
シンプルなサイネージを作りながら考えたこと
このテックブログ記事は、税理士である著者がPower BIを用いて作成したデジタルサイネージについて記述している。クライアントへの会計報告でPower BIレポートを使用する中で、クライアントが詳細な分析よりも傾向把握に重点を置くようになったことから、分析機能を省き、シンプルな常時表示のサイネージを作成した。 ページ自動切り替え機能(ブラウザ拡張機能とPower BIのURLパラメータ活用)とウィジェットによる時計・天気表示を組み合わせ、最新情報を常に表示する仕組みを構築。さらに、音声入力によるページ切り替えやデータに関する質問へのAI対応も目指している。最終的な目標は、AIがPower BIから集約したデータに基づき、ネクストアクションを示唆するシステム構築である。
Kaggle画像コンペでやっていること③
この記事は、Kaggle画像コンペティションにおける高度なテクニックとして、タスク特化型のLoss関数とAugmentationの設計について解説しています。 具体的には、物理現象を反映したLoss、サブタスクとして追加情報を活用したLoss、そしてタスクに適したAugmentationの選定と自作Augmentationの重要性について、複数のコンペティションの事例を交えながら説明しています。 ただし、これらのテクニックは必ずしも効果を保証するものではなく、うまく機能しない場合もあることを注意喚起しています。 初心者にも取り組みやすい改善点として紹介されており、より高い精度を目指したい参加者にとって有益な内容となっています。
LlamaIndexでGraphRAGを作って、Bedrockのナレッジベースと精度比較!
この記事は、Amazon Bedrock Knowledge basesのGraphRAGと、LlamaIndexとAmazon Neptuneを用いて独自構築したGraphRAGの精度を比較検証したテックブログです。検証の結果、独自構築したGraphRAGの方が精度が高かったものの、チューニングが必要で構築は複雑であることが分かりました。一方、BedrockのKnowledge basesは構築が容易でアプリとの連携やLLMOps機能が優れているものの、現時点での精度は低く、今後のアップデートに期待が必要であると結論付けています。 比較表では、出力精度、構築の手軽さ、アプリとの連携、LLMOpsの4項目について両手法を評価しています。
なんでこんなにもWebフレームワークは目まぐるしく変化しているんだろうか
この記事は、Web開発におけるフレームワークの歴史をCGIからAI活用まで時系列に追いかけ、各段階で発生した課題と、それに対する解決策としてのフレームワークの進化を解説しています。静的HTMLからの脱却、大規模開発への対応、リッチなUIの実現、フロントエンドの構造化、パフォーマンス向上、そしてAIによる開発支援まで、それぞれの段階で用いられた技術(CGI、Javaサーブレット/JSP、Ajax、jQuery、Backbone.js、AngularJS、React、Vue.js、SSR/SSG、Svelte、WASMなど)とその理由を説明することで、現代のフレームワークの構造や思想を理解する助けとなることを目的としています。 要するに、Web開発の歴史を理解することで、新しい技術への適応力を高められるという主張です。
5ヵ月で CISSP CCSP SSCP CC 全てに合格した話
この記事は、著者が5ヶ月でCC、CCSP、SSCP、CISSPの4つのISC2資格を独学で取得した経験に基づき、各資格の学習方法や難易度、取得の推奨順序などを解説しています。特に、実務未経験者には無料のCCから始めることを推奨し、各資格の公式教材や学習方法、試験情報などを具体的に説明しています。CISSPはCyber Security業界におけるグローバルスタンダードであり、学習内容は非常に有益だが、取得だけではProfessionalとは言えず、継続的な学習が不可欠であると結論づけています。
React 初心者がハマりがちな罠とその回避法 7 選
この記事は、React開発における7つのよくあるアンチパターンと、その解決策を解説しています。具体的には、(1) stateの非同期更新による誤動作とその修正、(2) &&
演算子における数値の扱いの注意点、(3) 複数のstateをオブジェクトにまとめる効率的な方法、(4) 不要なuseEffect
の排除、(5) カスタムフックによるコードの再利用、(6) クロージャによる状態の不一致とsetInterval
の適切な処理、(7) AbortController
を使ったuseEffect
内でのデータフェッチの最適化、について、Bad例とGood例を用いて説明しています。 これらのアンチパターンを理解することで、より効率的でパフォーマンスの良いReactアプリケーションを開発できるようになります。
Next.jsでMarkdownを簡単に実装!react-markdown × TailwindCSSのコツを解説
この記事は、Next.jsでreact-markdown
ライブラリを使ってMarkdownをレンダリングする方法を解説しています。remark-gfm
プラグインを用いてGitHub Flavored Markdownに対応し、Tailwind CSSを使用する場合は@tailwindcss/typography
プラグインを追加することで、Markdownの適切な表示を可能にする方法を説明しています。 具体的には、必要なパッケージのインストール方法と、コード例、そしてTailwind CSSとの連携における注意点と解決策を示しています。
「すべての」と「ある」
この記事は、PureScriptにおける全称量化∀と存在量化∃を、論理学とプログラミングの両面から解説しています。論理学において、∀と∃は述語論理で導入される量化子であり、それぞれ「すべて」と「ある」を意味します。Curry-Howard同型対応(命題を型、証明を値に対応させる)に基づき、命題論理の演算子はPureScriptの型コンストラクタに対応付けられますが、1階述語論理の∀と∃はPureScriptの型システムでは直接表現できません。しかし、2階述語論理に拡張することで、∀はPureScriptのforall
に対応し、∃は存在型Exists
を用いて表現できることを示しています。forall
は型変数に対する多相型を、Exists
は存在量化された型を表します。 記事では、2階述語論理における⊥、∧、∨の定義と、それらがPureScriptの型でどのように表現されるかも説明しています。 最終的に、∀と∃がPureScriptでどのように扱われるか、論理的な基礎とプログラミング上の実装を結びつけて解説しています。
Purview で AI 活用のためのデータセキュリティを強化しよう!
この記事は、Microsoft Ignite 2024 で発表された Microsoft Purview のアップデート、特に生成 AI 利用に伴うデータセキュリティ強化機能について解説している。具体的には、AIガバナンス、データ漏洩、コンプライアンス、情報過剰共有の4つの課題に対し、DSPM for AI、Endpoint DLP、Microsoft Defender for Cloud Apps/Endpoint、Communication Compliance、Oversharing Report、DLP for M365 Copilot といった Purview の機能がどのように対応するかを紹介している。これらの機能により、生成 AI 利用状況の可視化、機密情報へのアクセス制御、コンプライアンス違反の検知、情報過剰共有の防止などが可能になる。 要約すると、Microsoft Purview は生成 AI 時代におけるデータセキュリティ強化に貢献する包括的なソリューションであると主張している。
女子中高生とスタックチャン~WSやってみた
筆者は、女子中高生向けにStack-chanを使ったワークショップを開催した経験を紹介している。 Stack-chanと出会い、勉強を重ね、パステルカラーのキットや分かりやすいテキストを用意してワークショップを実施。参加者たちはStack-chanの組み立てに熱中し、全員が完成させ、AI機能も体験して大喜びした。その後、C言語プログラミングを取り入れたワークショップも開催し、自作プログラムが動く体験に生徒たちは大きな喜びを感じたという内容である。 Stack-chanのかわいらしい見た目と、すぐに動かせる点が教材として非常に有効だったと結論付けている。
配列を作成して HTML テーブルを作成する
Power Automate を使用し、HTMLテーブルをメール本文に含める方法を紹介している。HTMLテーブルのスタイルを事前に変数に格納し、Power Automateのアクションを2つ使用してテーブルを作成することで実現する。
メール送信をAIコーディングしたら失敗した話
高校生がAIコーディングでGmailを用いたAIエージェントシステムの管理資料自動送信システムを作成した際、Pythonのリスト処理における参照コピーの誤りにより、想定外の大量メール送信が発生したという失敗談である。原因は、AIが生成したコードにおけるリストの参照コピーと、コードレビューの不足、AIモデルの選定ミス、曖昧な指示などにある。解決策として、高性能AIモデルの利用、複数人でのコードレビュー、詳細な指示、サーキットブレーカーの実装、段階的な本番運用などを提案している。 本記事は、AIコーディングにおける潜在的なリスクと、それを軽減するための対策を示唆している。
気象データから犬と散歩しやすい地域を探す
このテックブログ記事は、R言語を用いて犬の散歩に適した気象条件の地域差を解析したものです。NASAの気象データを用いて、気温、湿度、日射量、降水量から熱中症リスク指標であるWBGTを計算し、高温、暑熱、降雨、低温の4つの条件に基づき散歩の適否を判定しました。日本国内(札幌、東京、京都、福岡)と世界各国を対象に解析を行い、散歩適正率の月別推移やコロプレスマップを作成することで、地域による散歩の適否の差を可視化しています。結果として、札幌が一年を通して散歩に適した地域であることが示唆されました。