【最新版】大学が公開しているエンジニア向け学習資料まとめ
この記事は、東京大学、慶應大学、京都大学、東京工業大学、筑波大学、ハーバード大学が無料で公開しているエンジニア向けの学習資料をまとめたものである。内容はPythonプログラミング、AWS、高校数学、AI・データサイエンス、強化学習、ChatGPT活用法、論文の読み方、統計学、機械学習、データベース、アルゴリズムなど多岐に渡る。 初心者にも分かりやすい資料が多く含まれている。
【最新版】ブクマすべきGitHubリポジトリまとめ
この記事は、プログラミング学習や開発に役立つ18個のGitHubリポジトリを紹介している。内容は、Web開発・データサイエンス教材、学習ロードマップ、無料プログラミング書籍、APIリスト、アルゴリズム解説、面接対策、アプリ開発アイデア、デザインツール、システム設計リソースなど多岐に渡る。初心者から上級者まで、それぞれのレベルに合わせた学習リソースが提供されている。
IPA(情報処理推進機構)が公開している資料が有益すぎる
この記事は、IPAが公開しているエンジニア向け無料資料をまとめたものである。 紹介されている資料は、「安全なWebサイトの作り方」「要件定義ガイド」「DXスキル標準」「情報セキュリティ白書2024」「DX白書」「情報セキュリティ10大脅威 2024 簡易説明資料」「情報漏えい対策のしおり」「AI社会実装推進調査報告書」の8つで、Webセキュリティ、要件定義、DX、情報セキュリティ、AIに関する知識習得に役立つ内容となっている。 各資料の内容概要も簡潔に説明されている。
SwiftUIでデザイン実装するときに気をつけること
この記事は、SwiftUIでFigmaなどのデザインツールからのデザイン実装を行う際に、正確な余白と間隔を保つためのベストプラクティスを紹介している。具体的には、padding
、spacing
、alignment
などの修飾子を常に明示的に指定し、デフォルト値に依存しないことを推奨している。さらに、Spacer
の使用、テキストの文字サイズ・色・行数の指定、frame
の適切な使用方法、ボタンのframe
とbackground
の適用位置、そしてカスタムDivider
の作成についても詳細な解説とコード例を示している。 また、パディングサイズをenumで管理する方法や、コードの可読性向上のための工夫なども提案されている。 全体として、SwiftUIにおけるデザイン実装の精度向上と保守性を高めるための実践的なガイドラインを提供している。
WindowsでGPUを使った機械学習をするためにCUDA、Pytorch、TensorFlow環境を整える
この記事は、Windows環境でPythonを用いたCUDA対応の機械学習環境構築手順を解説したものです。scoopによるパッケージ管理、Python3.10のインストール、仮想環境構築、CUDA 11.8、cuDNN、TensorFlow 2.10.1、PyTorchのインストールと設定、GPU動作確認までを、具体的なコマンド例と共に詳細に説明しています。 TensorFlowとPyTorchのバージョンはCUDAバージョンに依存することを強調し、適切なバージョンの選択とインストール方法を提示しています。
AlphaFold3 (ver. 3.0.0) インストール
このテックブログ記事は、AlphaFold3の共有計算機環境上でのインストールと使用方法を解説しています。Google DeepMindからモデルパラメータを入手する手順、Python 3.11とCUDA 12.6を含む必要なソフトウェアのインストール手順、データベースのダウンロードと配置、AlphaFold3の実行方法、そしてテストランとしてAziU3とリガンド複合体の構造予測例を紹介しています。 64GB以上のRAMと650GB以上のSSD容量、NVIDIA製GPUが必要であることにも触れています。
暗号化とは何か?総合ガイド(詳細ver.)
この記事は、データ暗号化の仕組み、歴史、種類、そしてその限界について解説しています。古代からの暗号化の歴史から、現代のAES、RSA、ECCといったアルゴリズム、対称暗号と非対称暗号の違い、そしてハイブリッド暗号化について説明しています。 しかし、暗号化だけではオンラインプライバシーは完全には守れず、IPアドレスや接続時間などのメタデータは依然として収集可能であると指摘しています。そのため、集中型VPNの脆弱性を克服する分散型VPN(dVPN)のような追加のプライバシー対策が必要だと結論づけています。 記事では、ブルートフォース攻撃やサイドチャネル攻撃といった暗号化を破る方法も紹介しつつ、量子コンピューティングによる将来的な脅威にも言及しています。 最終的に、真のオンラインプライバシーには、暗号化とdVPNの併用が重要であると主張しています。
極私的ROSCon 2024まとめ
ROSCon 2024 in Odenseの参加報告。講演提案は却下されたものの参加し、Zenoh v1.0.0リリースやROS 1/Gazebo ClassicのEOL、OSRAの設立など、ROSコミュニティの現状と未来について報告している。日本人参加者の少なさを憂慮し、来年のシンガポール開催への期待を示している。ブログ記事は、X(旧Twitter)のスレッドとFacebook投稿をまとめ、ROS 2 Advent Calendar 2024 Day2およびロボティクス勉強会での10分LTとしても利用されている。
Githubの認定資格が無料(1.5万円)で受験できるようになったの知ってた?
GitHubの基礎資格「GitHub Foundations Certification」が、GitHub Student Developer Packを通して無料で受験可能になった。以前は99ドルだったが、現在は学生であれば無料で受験できる。ただし、試験中にエラーが発生し、結果が無効になるバグが報告されているため、受験の際は注意が必要である。試験自体は以前より簡素化されているものの、このバグを考慮し、慎重に受験時期と準備を行うべきである。記事の後半では、放送大学を活用した低コストでの学生生活と、それによるGitHub Student Developer Packの利用についても触れられている。
変数、定数、値、関数、パラメータ、引数、戻り値の混乱しない解釈
この記事は、VBAプログラミングの初学者向けに、プログラミングの基本用語を料理に例えて解説したものです。変数を材料を入れる器、定数を決まった量の材料、値を個々の食材、パラメータを材料の量、関数をレシピ、引数を具体的な材料の量、戻り値を完成した料理にそれぞれ例え、分かりやすく説明しています。全体の流れも料理の工程に沿って説明されており、プログラミングを料理作りに例えることで、初学者にとって理解しやすい内容となっています。
Object[key]へ値を入れようとしたら型エラーになった[TypeScript]
TypeScriptで、特定のキーを持つオブジェクトを動的に作成する際に型エラーに遭遇した事例。Partial<Hoge>
を用いた初期アプローチは失敗し、Object.fromEntries
を用いた方法で最終的に解決した。しかし、この方法は型安全ではないことが判明。 解決策として、Omit
の使用、null
許容型の利用、キー選択関数の抽象化などが提案された。 Partial
型の安易な使用は避けるべきという結論に至った。
NRQLマスターになろう - Metric編
この記事は、New Relicにおけるオブザーバビリティデータの一つであるメトリクス(Metric)の可視化と分析方法をNRQL(New Relic Query Language)を用いて解説しています。 メトリクスの種類(count、cumulativeCount、gauge、distribution、summary、uniqueCount)と、それぞれのデータ構造、利用可能な集計関数について説明し、具体的なNRQLクエリ例を通して、メトリクスの取得、種類確認、ディメンション確認、データ絞り込み、集計方法などを詳細に示しています。さらに、カーディナリティとパフォーマンスへの影響、その確認方法についても触れています。 最終的には、様々な種類のメトリクスデータとNRQLを組み合わせることで、システムの状態をより深く理解し、問題解決に繋げることができると結論付けています。
工場勤務から180°違うフルリモートエンジニアになってみて現実を知ったお話
この記事は、プログラミングスクールを経てエンジニアになった著者が、入社直後の理想と現実のギャップ、そして充実した日々について綴ったものです。 フルリモート勤務におけるテキストコミュニケーションの難しさ、質問の仕方の難しさに戸惑ったものの、現在は仕事にやりがいを感じ、成長を実感しているとのこと。 理想と現実のギャップを減らすために、語彙力、言語化能力、精神力の向上を勧めています。
ITエンジニアがホームラボを持つ理由(質疑応答編)
著者が自宅に構築した大規模なHomelabが会社にバレたことをきっかけに、その構成や運用、費用、家族の反応などについて、読者からの質問に答える形式で解説している記事である。 Homelabはサーバー複数台、ネットワーク機器、ストレージなどを備え、VMware、Nutanix、AWSなどの技術検証や記事執筆に使用されている。費用は意外とかかっていないものの、太陽光発電と蓄電池による電力供給システムは高額だったという。 記事内では、Homelabの構成図や、過去に執筆した関連技術記事へのリンクも掲載されている。
SolidJSがTauriのフロント技術として一番良いかもしれない
この記事は、Tauriアプリ開発においてVue.jsの仮想DOMによるパフォーマンス問題に直面し、代替技術としてSolidJSを採用した経験について記述している。SolidJSは仮想DOMを使用せず、Signalによる状態管理が容易で、JSXの記述性も高く、パフォーマンスと開発効率の両面で優れていると評価している。特に、デベロッパーツールが充実している点がVue.jsからの移行の決め手となった。作者はSolidJSをTauriアプリ開発に推奨している。
スマホ実機のバグ報告用に直近数十秒の動画をSlackに送信、したいよね? [Unityゲームグラフィックス実践]
この記事は、UnityとURP環境下でモバイルゲームの実機デバッグ中に、ゲームプレイ動画を自動的にSlackなどに送信するシステムの実装方法を解説している。 負荷軽減のため、スクリーンショットの連番取得、非同期処理による画像縮小・JPGエンコード・ストレージへの出力、FFmpegKitによる動画変換を徹底している。 メインスレッドのブロックを避けるため、AsyncGPUReadback.RequestやEncodeArrayToJPGなどの非同期APIを積極的に活用し、サブスレッドでの処理を優先している。 このシステムは、バグ報告だけでなく、独自のプロファイリングツールのサムネイル作成などにも応用可能だが、リリース版への適用は推奨されていない。
Wikipediaのデータを全探索する方法
この記事は、Wikipedia日本語版の全記事タイトルデータから、特定の文字列パターンを持つ記事タイトルを抽出するPythonスクリプトを紹介している。 約200万件のタイトルから、6文字で構成され、特定のひらがな、カタカナを含むタイトルを正規表現とループ処理で探し出し、6件ずつ区切って出力する。 処理対象データは約14MBの圧縮ファイルであり、7-zipなどで展開して利用する必要がある。
【パタパタ】遊戯王ライフ表示器作ってみた
この記事は、自作のパタパタ表示器「AfterAI Flaps」を用いて遊戯王のライフポイントを音声認識とAIによってリアルタイムで表示するシステムを構築した過程を記述している。音声認識にはVosk、テキスト解析とコマンド抽出には当初llama3.2を使用したが精度不足のためgpt-4o-miniに変更、AfterAI Flapsはライフポイントとターンの表示に用いられた。 llama3.2の精度不足や、リアルタイム性の向上など課題も残されているものの、AfterAI FlapsがDIYプロジェクトに有効であることを示している。
チーム/個人の活動管理アプリ「シュッキン」をリリースした!!🎉
リモートワークでのチーム活動のモチベーション低下を解消するため、活動記録と進捗可視化アプリ「シュッキン」を開発・リリースした。ワンタップで活動記録を開始でき、アクティブメンバーの確認、活動データのグラフ化による効率分析が可能。スタートアップやグループワークなど、チーム活動の進捗管理、個人のタイムマネジメントに役立つ。現在無料で利用できる。
プリザンターのOperations Toolsに簡単にアクセスする方法
プリザンターのOperations ToolsへのアクセスがURL直打ちだったため、ナビゲーションメニューにOperations Toolsへのリンクを追加する改善を行った。OperationsToolsMenu.json
というJSONファイルを作成し、管理画面、運用レポート、利用状況詳細、監視アラート、運用サイト情報一覧、アクセス権一覧、パラメータ一覧へのリンクを追加した。 対象ユーザー限定で表示されるよう設定されている。 さらに、Operations Tools Ver.1.2.0からはプリザンターへの戻りリンクも追加された。
Data+AI World Tour Tokyo 2024.11.14 参加レポート
Databricksのイベントに参加したレポート。受付の混雑やセッションの遅延があったものの、ランチの提供や同時通訳機貸出など、充実した内容だった。セッションでは、DatabricksのRAG(Retrieval Augmented Generation)における評価ドリブン戦略、リコーのDatabricks活用事例(コスト削減)、イオンやNTT、ルネサスの導入事例、GenieやAIエージェント、Databricks Appsなどの新機能紹介があった。特に、ルネサスの事例では社内教育に力を入れた点が印象的だった。全体として、Databricksの技術や活用事例を学ぶ良い機会となった。
RubyのパターンマッチでJSONのパース処理
この記事は、Rubyのパターンマッチングを用いて、複雑な入れ子構造を持つJSONデータ(例としてPocketSign APIレスポンス)から特定の値を取り出す方法を解説しています。 Enumerable
モジュールやdig
メソッドを使った従来の方法と比較し、パターンマッチングによるコードの簡潔性と可読性の向上を示しています。 さらに、異常系への対応や、パターンマッチングにおけるシンボルキーの使用に関する注意点(シンボルはガベージコレクションされる)についても触れています。 結論として、パターンマッチングは複雑なJSONデータ処理に有効なツールであると主張しています。
ロジックはviewに書かないで切り出してHelperメソッドで運用する
Railsアプリ開発において、ビューファイルに同じロジックが12箇所存在し、修正に手間と変更漏れのリスクがあったため、そのロジックをHelperメソッドに切り出した。これにより、ビューファイルの可読性が向上し、修正箇所が1箇所に集約されたことでメンテナンス性が大幅に向上した。 Helperメソッド化によるメリットは可読性とメンテナンス性の向上、デメリットはビューにロジックを直接記述した場合の可読性低下とメンテナンス性の悪化である。
217日目 Amazon Lexについて学んだ社畜M
Amazon Lexは、自然言語理解(NLU)と自動音声認識(ASR)を統合した、会話型チャットボットや音声アプリケーション構築プラットフォームである。カスタマーサポート自動化、業務プロセス効率化、マーケティング強化などに利用でき、24時間対応も可能。 ただし、多様な発話パターンへの対応、インテントとスロット設計の精度、適切な応答、音声認識環境、データ保護、料金モデル、外部システム連携の複雑さといった点に注意が必要である。初心者にも扱いやすいサーバーレスでスケーラブルなサービスと言える。
「React と Rails を利用してTODOアプリを作成しよう」をRails7とReactV18で実装
このテックブログ記事は、Mac OS環境でRails 7.1.5とReact 18.3.1を用いて、APIとしてRailsとフロントエンドを分離したTODOアプリを作成する手順を解説している。Rails側では、APIモードで新規プロジェクトを作成し、CORS設定、Todoモデル・テーブル作成、APIエンドポイント(CRUDと全削除)定義、ルーティング設定を行う。React側では、Viteでプロジェクトを作成し、react-router-dom
, axios
, styled-components
, react-icons
, react-toastify
を用いて、TODOリスト表示、新規追加、編集、削除機能を実装する。最後に、RailsとReactのサーバーを起動し連携させる方法を示している。 コードはYouTube動画を参考に作成されているが、修正されている部分もあるため注意が必要とされている。
Rust.Tokyoで友達100人作るためにRustacean用の名刺を作った!!
11月30日に開催されるRustカンファレンス参加者向けに、著者が作成した紙とデジタル名刺作成ツールの紹介記事です。紙の名刺はGitHubからダウンロードできるコードをローカルで実行し、入力フォームに入力することでPDFを生成、印刷できます。デジタル名刺はURLに情報を付与してアクセスする形式で、NFCカードへの書き込みも可能です。記事では、それぞれの作成方法と手順が詳しく解説されています。
GitHubとGitLabの、機能比較とCI/CDパイプラインの構築
GitHubとGitLabはどちらもプライベートリポジトリ、CI/CD、プロジェクト管理、コードレビュー、セキュリティ機能を提供する。GitHubはGitHub Actions、GitLabはGitLab CI/CDをそれぞれCI/CDツールとして使用し、設定方法はそれぞれ.github/workflows/
ディレクトリ内のYAMLファイルと.gitlab-ci.yml
ファイルで行う。どちらも無料プランで多くの機能が利用可能。
Kaggle HousePricesで上位9%に入るまで
KaggleのHouse Pricesコンペティションにおいて、著者が高い精度(上位9%)を達成した手法をまとめた記事である。
主な手法は、以下の通り。
- データ前処理: データ型の確認、object型のラベルエンコーディング(順序付き特徴量には順序を考慮したマッピング)。
- 特徴量エンジニアリング: ChatGPTを活用し、既存特徴量から新しい特徴量を多数作成(例: 築年数、総床面積など)。
- モデル選定とハイパーパラメータチューニング: LightGBMを選択し、GridSearchCVを用いてハイパーパラメータを最適化。RMSEを0.0155にまで改善。
- その他検討事項: 外れ値処理、ターゲットエンコーディング、欠損値処理、他モデルの検討なども行ったが、大きな効果は得られなかった。
得られた知見として、ハイパーパラメータチューニングの重要性と、ChatGPTによる特徴量エンジニアリングの有効性(ただし、吟味が必要)が挙げられている。
開発に使っているMacでストレージ使用量が多くなっていたのを掃除したメモ
Macのストレージ不足(500GB中、書類123GB、システムデータ233GB使用)を解消するため、ストレージ使用状況の確認と不要ファイルの削除を行った。
具体的には、macOSのストレージ管理機能を利用し、大容量ファイルの削除、Flutter、Golangなどのランタイムのアンインストール(18GB削減)、ghqによるモノレポのクリーンアップ(10GB削減)、goコマンドによるキャッシュ削除(42GB削減)、Docker for Macのリセット(60GB削減)、JetBrains IDEのキャッシュ削除(12GB削減)を実施した。 結果、大幅なストレージ容量の削減に成功した。
AIは脆弱性がないコードを書けるのか試してみた
この記事は、ChatGPTなどのAIに簡単なWebアプリのコード生成を依頼したところ、複数のAIモデルがクロスサイトスクリプティング(XSS)脆弱性のあるコードを出力したという実験結果を報告している。 FlaskやHTML、JavaScriptを用いた様々なコード例が示され、それぞれにXSS脆弱性が存在することが検証されている。 結論として、AIを用いた開発では、セキュリティを考慮せず生成されたコードは脆弱性を抱える可能性が高く、出力されたコードは必ずセキュリティチェックが必要であると主張している。