ギャル「オタクくんのVSCodeって黒くて見にくいよね」
この記事は、VSCodeのテーマをカスタマイズして、ピンクを基調とした可愛らしいテーマに変更する方法を紹介している。 設定ファイル(settings.json
)に記述されたJSONコードを貼り付けるだけで、背景色、テキスト色、カーソル、コメント、キーワードなど様々な要素の色をピンク系のカラーに変更でき、コーディングを楽しくする効果があると主張している。
ポケポケに登場する確率分布
この記事は、カードゲーム「ポケポケ」における様々な確率分布の解説記事である。具体的には、幾何分布(コインを裏が出るまで投げる回数)、二項分布(コインを複数回投げて表が出る回数)、多項分布(複数の選択肢から複数回ランダムに選択する回数)、超幾何分布(有限個の母集団から非復元抽出する際の成功数)の4つの確率分布を、ゲーム内のカード効果(カスミ、ベロリンガ、サンダーex、ガルーラ、カイリュー、博士の研究、レッドカード)を例に説明している。それぞれのカードの効果を確率分布を用いて定量的に分析し、確率計算の例を示している。 最終的には、確率の理解がゲーム戦略に役立つと結論づけている。
AIエンジニアって名乗れるとカッコいいので、この記事を読んでください【機械学習を解説】
この記事は、機械学習の3つの主要な手法(教師あり学習、教師なし学習、強化学習)を解説したテックブログです。それぞれの概要、主なタスク、具体的な実用例(株価予測、画像分類、異常検知、レコメンデーションなど、様々な業界の事例を含む)、そして主要なアルゴリズムについて説明しています。 読者対象はAIやデータサイエンスを学習中の方、AIプロジェクトに携わる方、AIエンジニアを目指している方です。
毎日プログラミングを続けて3ヶ月、生活とスキルがこう変わった
この記事は、著者が100DaysOfCodeチャレンジを3ヶ月間継続した経験を振り返ったものです。 夜型から朝型生活への転換、Reactを学ぶコミュニティ「JISOU」への参加が大きな転換点となり、学習効率の向上とReact、TypeScript、Tailwind CSSなど多数のスキルの習得に繋がりました。 継続のコツとして、完璧主義を捨て失敗を引きずらず、簡単な目標設定で無理なく続けることを挙げています。 結果、生活習慣とプログラミングスキル両面で著しい成長を遂げたと結論づけています。
Slack APIで自分のリアクション数をスマートに集計しよう!
このブログ記事は、新卒社員が自身のSlackの月別リアクション数を集計するPythonプログラムを作成した過程を記述している。Slack APIを用いて、3つのステップ(Slackアプリ作成、Slack SDKインストール、Pythonコード実行)で実現した。コードは主にAIを活用し、チャンネル内のメッセージに対するリアクション数を月別に集計する。スレッド内のリアクション集計はレートリミットエラーのため今回は省略されたが、今後の課題とされている。 学習としては、プログラム開発を細分化して段階的に進めることの重要性を認識したと結論付けている。
『究極のパフォーマンス』を出す方法ッ!!!
この記事は、Windows 10/11に隠された「究極のパフォーマンス」電源プランの有効化方法を紹介するテックブログ記事です。コマンドプロンプトでpowercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61
を実行することで、追加の電源プランとして「究極のパフォーマンス」が追加され、プロセッサのパフォーマンス制限が解除される可能性があると説明しています。ただし、全ての環境で表示されるとは限らないため、表示されない場合は設定値を個別に変更する必要があると注意書きされています。 記事全体を通して、ユーモラスな表現と「究極のパフォーマンス」という表現が繰り返し使われています。
NymVPNとは?分散型VPNの技術的解説
NymVPNは、既存のVPNの欠点を克服した、プライバシー重視の分散型VPNです。中央集権型VPNとは異なり、トラフィックを複数のサーバーで中継することで、利用者のIPアドレスや通信内容の追跡を困難にします。「匿名モード」では5つのサーバーを経由する高度な暗号化(Sphinx)、「高速モード」では2つのサーバーを経由する高速な暗号化(WireGuard)を選択できます。匿名モードは高いプライバシーを、高速モードは速度とバランスの取れたプライバシーを提供します。 利用用途は、監視回避、検閲回避、データ追跡対策、外国コンテンツへのアクセスなど多岐に渡ります。
スクラムチームにおける雑談と心理的安全性についての議論
リモートワークにおけるスクラムチームの雑談の有効性について議論したテックブログ記事の要約です。
結論として、雑談はチームビルディングに役立つものの、心理的安全性を直接的に高めるものではないと結論付けられています。 心理的安全性を高めるには、個々のメンバーの状況(発言のしづらさ、プロダクト理解度など)を1on1などで把握し、プロダクト理解のためのワークや失敗談の共有などを通して、個々のメンバーを深く理解することが重要だとされています。 雑談は、心理的安全性を阻害する要因を発見するツールとしては有効です。
要約した内容をより詳細に記述します。
記事では、リモートワークにおける雑談の減少と、それによるチームメンバー間の心理的距離の拡大、意見表明の減少といった問題が提起されています。 雑談を増やすことで心理的安全性を高め、意見やアイデアの増加を期待する仮説に対し、議論を通して、雑談は心理的安全性の「前提条件」にはなりうるものの、それ自体が心理的安全性を高めるものではないと結論づけられました。
心理的安全性を高めるためには、発言が少ないメンバーへの個別対応(1on1など)が重要であり、その上でプロダクト理解度を深めるためのワークや、用語集の作成などが有効だとされています。 また、議論のルール明確化や失敗談共有なども心理的安全性を高める上で有効な手段として挙げられています。 記事の筆者は、これらの学びを踏まえ、自身のチームにおいてプロダクト理解のためのワーク実施や、1on1でのプライベートな話題の増加といったアクションを実行しています。
Googleの時系列事前学習モデル『TimesFM』の紹介
この記事は、Googleが開発した時系列データ基盤モデル「TimesFM」を紹介する技術ブログです。TimesFMはTransformerのデコーダのみを用いた軽量(200Mパラメータ)で高汎用性のモデルで、長い出力パッチにより効率的な長期予測を可能にしています。 実データと合成データによる事前学習により、様々な時系列データへの適用が可能で、金融や広告などの分野での活用が期待されます。記事では、TimesFMのアーキテクチャ、導入方法、国内企業物価指数予測のデモ、他手法との性能比較、そして今後の展望について解説しています。 ただし、ファインチューニング機能は現状提供されていない点が課題として挙げられています。
初心者がハマるバッチ作成の罠20選(やらかし例あり)
この記事は、バッチ処理作成における初心者が陥りがちな20個のミスとその対策を解説している。主なミスは、絶対パスをハードコーディング、実行環境の考慮不足、ログ出力やエラーハンドリングの不足、再実行時の影響の考慮不足、入力データのバリデーション不足、処理結果の確認不足、スケジュール管理の不行き届き、並列処理の軽視、ファイルロックの考慮不足、デバッグ機能の欠如、外部リソース障害への備え不足、メモリ使用量の軽視、古いスクリプトの放置、他プロセスへの影響の考慮不足、時間依存処理の非明示化、無計画な並列実行、不要な出力の残存、テスト不足などである。対策としては、環境変数や設定ファイルの活用、ログ出力の徹底、エラーハンドリングの強化、データの一意性確保、データ検証、処理件数確認、cron等のスケジュール管理ツール活用、並列処理技術の導入、ファイルロック機構の利用、デバッグ機能の実装、リトライ処理やバックアップ、ストリーム処理、バージョン管理、リソース制限、コメントやドキュメントによる明示化、依存関係の整理、定期的なファイル削除、ユニットテストの実施などが挙げられている。
【AIエージェント入門】LangChain・LangGraphによるエージェント開発 その②LangChain基礎知識
この記事は、PythonとGoogle Colabを用いてLangChainライブラリでAIエージェント開発を行うチュートリアル記事です。 PromptTemplate、ChatPromptTemplate、MessagePlaceholderを用いたプロンプト作成、StrOutputParserを用いたLLM出力の文字列への変換、そしてLangChain Expression Language (LCEL)を用いたChainによるプロンプト作成、LLM実行、出力処理のパイプライン化について解説しています。 具体例として、坂本龍馬の自己紹介を生成する例が示されています。 最終的には、これらの機能を組み合わせてRAG(Retrieval Augmented Generation)の実装を行うことを予告しています。
ラフール、モブプロ始めました
この記事は、入社したばかりの著者がチームにモブプログラミング(モブプロ)を提案し、1ヶ月間実施した経験をまとめたものである。モブプロとは、複数人で1台のPCを共有し共同でコーディングする手法で、ドライバー、ナビゲーター、オブザーバーといった役割をローテーションしながら行う。著者は、チームメンバーとのコミュニケーション促進と仕様理解を目的にモブプロを提案し、テスト実装を題材に週2回2時間、3~4名で実施した。結果、仕様理解の促進、知識共有、レビューリードタイム短縮などの効果があった一方、複雑なタスクには時間がかかり、効率化が必要という課題も見つかった。今後、定期開催継続、タスク選定の工夫、画面共有方法の改善などを検討していくとしている。
ShaderGraphでインタラクティブな表現を実装【Unity、ShaderGraph、マウス操作、タップ】
このテックブログ記事は、UnityのShaderGraphを用いて、マウスカーソル位置に反応するインタラクティブなマーブルノイズを生成する方法を解説しています。 具体的には、マウスオーバー位置のUV座標をShaderに渡すスクリプトと、ShaderGraph内でその座標とメッシュのUV座標間の距離を計算し、距離に基づいて2種類のマーブルノイズ(青と紫)を線形補間することで、マウス位置近傍の色を変化させる手法を紹介しています。 Smoothstepノードを用いて、グラデーションの範囲を制御することで、自然な変化を実現しています。
New RelicでカスタムJMX YAMLを使ってみた
この記事は、AWS上のWebLogicサーバーからNew Relicへ、デフォルトでは取得できないJMXメトリクス(Pending Requests)を追加する方法を解説しています。カスタムJMX YAMLファイルを作成し、New Relicエージェントのextensions
ディレクトリに配置することで、指定したJMXメトリクスをNew Relicで取得可能になります。YAMLファイルの設定方法、ログレベル変更による読み込み確認方法、New Relic上での確認方法がステップごとに詳細に説明されています。
要点:
- New Relicでデフォルトで取得できないJMXメトリクスを取得するために、カスタムJMX YAMLファイルを作成する。
- YAMLファイルは
newrelic.jar
のあるディレクトリ配下のextensions
フォルダに配置する。 - ファイルの内容は
object_name
とattributes
をJConsole等で確認し設定する。 - ログレベルを
finer
に変更し、newrelic_agent.log
でファイルの読み込みを確認する。 - WebLogicの再起動後、New RelicのMetrics Explorerで追加したメトリクスを確認できる。
【AIエージェント入門】LangChain・LangGraphによるエージェント開発 その①複数のモデルを使ってみる
この記事は、開発経験ゼロのSES企業社長がLangChainを用いてAIエージェント開発を学ぶ過程を記したテックブログである。 初歩的な例として、OpenAI、Google Gemini、Anthropic Claudeの各LLM APIをLangChainで呼び出し、メッセージのやり取りを実装した。 各LLM APIの使用方法の違い(OpenAIにおけるCompletions/Chat Completions APIの使い分け、Geminiでのroleとpartsの指定、LangChainにおけるメッセージの種類の指定)や、ストリーミング出力のためのCallback機能についても解説している。 次回以降は、PromptTemplate、Output parser、Chain、RAG実装など、LangChainの高度な機能について学ぶ予定である。
『会議中』のステータスを自動表示する仕組み
自宅でオンライン会議中かどうかを部屋の外から分かるようにするシステムを構築した。Macのカメラ起動をOverSightアプリで監視し、起動/停止をGoogleスプレッドシートに記録。Google Apps Scriptで簡易APIを作成し、M5CoreInkに会議状態を表示する。M5CoreInkは5分ごとにAPIからデータを取得し、「会議中」または「入室可」を表示する。PythonスクリプトでOverSightとスプレッドシートを連携し、カメラ起動状態をリアルタイムでスプレッドシートに反映する。現状、更新頻度が5分間隔であること、カメラオフ時の処理が未実装である点が課題。
以下、要約内容の詳細です。
このテックブログは、著者が自宅で仕事をしている際に、オンライン会議中かどうかを家族に分かりやすく伝えるためのシステムを構築した過程を説明しています。そのシステムは、以下の3つの要素から構成されています。
-
カメラ起動監視: Macに搭載されているカメラの起動状態を、OverSightというオープンソースのアプリケーションを使用して監視します。カメラが起動すると、OverSightが事前に設定されたPythonスクリプトを実行します。
-
データ記録とAPI: Pythonスクリプトは、Googleスプレッドシートにカメラの起動/停止状態("on" / "off")を記録します。Google Apps Script (GAS) を使用して、このスプレッドシートのデータを外部から取得できる簡易的なAPIを作成します。
-
表示デバイス: M5CoreInkという電子ペーパーディスプレイに、GASで作成したAPIから会議状態を取得し、"会議中" または "入室可" と表示します。M5CoreInk側は、定期的にAPIにアクセスして状態を確認し、画面を更新します。
システム構築には、既存のツールやライブラリを最大限に活用し、費用を抑えることを重視しています。ただし、現状では更新頻度が5分間隔であること、カメラがオフになった際に正しく"off"状態を反映させる処理が実装されていないなどの課題が残されています。
APMを導入してアプリケーションの品質を改善しよう!(導入編 - Java)
このテックブログ記事は、Javaアプリケーション(Spring PetClinic)にNew Relic APMを導入する方法を説明しています。Amazon Linux 2023とDocker環境の両方を対象に、New Relic Javaエージェントのインストール、設定ファイルの修正、アプリケーションの起動方法をステップバイステップで解説しています。Docker環境ではDockerfileの修正も必要となります。最後に、New Relicダッシュボードでパフォーマンスデータを確認する方法も示されています。 記事では、InfrastructureエージェントやCodeStreamとの連携についても触れられていますが、導入手順は省略されています。
デザインシステムとは?
この記事は、フロントエンド開発におけるデザインシステムの重要性を説いています。デザインシステムとは、ウェブサイトやウェブアプリケーションのデザインルールを体系化したもので、デザインの一貫性と開発効率の向上に繋がることを説明しています。具体例として、デザイン庁デザインシステム、Material Design、ヒューマンインターフェイスガイドラインなどを挙げ、デザインシステムがないプロジェクトではスタイルのばらつきやコミュニケーションの非効率などが発生することを指摘しています。最後に、デザイナーの不在や指示が少ない現場では、他社のデザインシステムを参考にプロジェクトに適したシステムを構築することを提案しています。
Catalyst 3650/3850 アップグレード手順
このテックブログ記事は、Cisco Catalyst 3650/3850スイッチのIOS-XEバージョンアップ手順を解説しています。 手順は、Cisco公式サイトからIOSイメージをダウンロードし、FTPサーバー経由でスイッチにアップロード、request platform software package install
またはexpand
コマンドで展開、boot system
コマンドでブート変数を更新し、再起動という流れです。バージョン16.xを例に説明しており、3.xからのアップグレードはダウングレード不可であること、Installモードが推奨されていることなどを注意喚起しています。 また、事前にバックアップを取ること、空き容量を確認することを推奨しています。
React勉強中の人はマインスイーパーを作ってみると良いかもしれない(提案)
この記事は、Reactを用いてマインスイーパーゲームを作ることを提案するテックブログ記事である。 具体的な仕様(行数、列数、爆弾数の入力、初手爆弾なし、隣接マス自動展開、旗機能など)を提示し、状態管理、二次元配列の扱い、スタイリング、アルゴリズムといったReact学習に役立つ点を強調している。 作者は自身のJotaiを用いた実装例を公開し、状態管理におけるオブジェクト指向とクラス指向の比較、パフォーマンス最適化に関する疑問を提示している。 読者による実装と共有を促している。
chatGPTから出された問題をひたすら打ち返す学習法
ReactとJavaScriptの初学者である著者は、学習した内容をすぐに忘れてしまう問題を抱えていた。そこでChatGPTを活用し、配列とオブジェクトの扱い、map関数の使用方法といった課題を、一問一答形式で練習することにした。ChatGPTは例題を提供し、コードレビューを行い、著者の学習を効率的に支援した。結果、楽しく効率的に学習を進められるようになった。
KinoFigma を使って Figma のデザインやプロトタイプ、Jamボード、スライドを Livebook に表示する
この記事は、Elixir Livebook上でFigmaのデザインファイル、プロトタイプ、Jamボード、スライドを表示するためのElixirモジュール「KinoFigma」を作成したことを報告しています。 Livebookへのインストール方法と、KinoFigmaを用いたFigmaファイルの表示方法(デザインファイルIDの指定など)を詳細に説明しています。KinoFigmaはFigmaの埋め込みiframeを利用しており、シンプルな実装で実現されています。プレゼンテーションや情報共有への活用が期待されています。
TROCCOからChatworkに通知を飛ばしてみる
この記事は、タスク管理ツールTROCCOで、タスク完了時にChatworkへ通知を送信する設定方法を紹介しています。ワークフロー定義機能とChatworkのAPIを利用し、HTTPリクエストタスクを追加することで実現します。設定過程では、HTTPリクエストボディの形式(application/x-www-form-urlencoded
)とURLエンコーディングが重要で、正しく設定しないとエラー(HTTPステータスコード400)が発生することを説明しています。最終的にChatworkへの通知に成功し、ワークフローのURLをメッセージに含める工夫も紹介しています。
スキルアップなら車輪の再開発(LT再編集)
この記事は、プログラミングスキルの向上を「守破離」の概念を用いて解説したものです。
「守」 (初級者) は、既存コードの写経を通して基礎を固める段階。手打ちで、動作や意味を理解しながら進めることが重要です。
「破」 (中級者) は、既存アプリの再現などを通して、自分で考えて工夫する段階。完成させることを重視し、過程で得た経験をポートフォリオとして活用します。
「離」 (上級者) は、独自の開発や、他者からのフィードバックを元に、更なるスキル向上を目指す段階です。
記事では、各段階における具体的な取り組み例や、効率的な学習方法についても述べられています。 要するに、段階的に実践を通してスキルを向上させる方法論を示したものです。
Fortinet SD-WAN を使用した Megaport Virtual Edge (MVE) で AWS と Oracle Cloud を マルチクラウド接続してみてみた (OCI FastConnect編)
この記事は、Megaport Virtual Edge (MVE) を使用してOracle Cloud Infrastructure (OCI) と既存のAWS接続を組み合わせたマルチクラウド接続を構築する方法を説明しています。 MVEは、FortiGate-VMを用いたベンダーニュートラルなNFVプラットフォームで、グローバルなSDNエッジに高度なセキュリティとSD-WAN機能を提供します。 記事では、OCI FastConnectの設定、MegaportポータルでのVXC接続の作成、FortiManagerを用いたFortiGateの設定、そして最終的な接続確認手順を詳細に解説しています。
FlutterKaigi 2024 もスタッフしたぞ
この記事は、著者がFlutterKaigi 2024のボランティアスタッフとしてアプリチームとminiイベントチームに参加した体験記である。アプリチームでは、モバイルとWeb両対応の公式アプリをSupabaseを用いて開発。 開発成果は、GitHubとMediumで公開されている。 この活動を通して得た知見(melos、lintルール等)を自身の会社にもフィードバックし、PRレビュープロセスの改善に役立てている。 FlutterKaigi 2024本番では、セッションが盛況で、著者はその成功を喜びと共に報告している。 最後に、FlutterKaigiや著者の会社に興味を持った読者へのカジュアル面談の呼びかけで締めくくられている。
音声遅延に悩む初心者Reactエンジニア必見!useRefとMapで作る音声キャッシュ
このテックブログ記事は、Next.jsとTailwind CSSを用いたReactアプリケーションにおいて、useRef
とMap
を使った音声キャッシュの実装方法を解説しています。 音声ファイルの繰り返し読み込みによるパフォーマンス低下の問題を解決するため、一度読み込んだ音声ファイルをメモリにキャッシュし、再利用する手法を詳細なコード例と共に説明しています。 エラーハンドリングやキャッシュのクリア、容量制限などの高度な実装例も紹介し、メモリリークやパフォーマンス劣化への対策も提案しています。 最終的に、この手法によってWebアプリケーションのパフォーマンスを大幅に向上させ、ユーザーエクスペリエンスを改善できることを示しています。
ReactのJSXとJavaScriptのmap()を混同して意図しないfalseが出力された話
JavaScriptのmap()
メソッドを使って空文字列をスキップしつつ配列の要素をカタカナに変換しようとした際、map()
の挙動とReactの条件付きレンダリングの&&
演算子の使用法を混同したため、空文字列がfalse
に変換されるというエラーが発生した。 修正としてfilter()
メソッドを用いて空文字列を事前に除去することで問題を解決した。
Entity Framework CoreでSQL Serverに接続する【準備編】
この記事は、.NET Webアプリケーション開発におけるEntity Framework Core(EF Core)を用いたデータベース接続手順の初歩的な解説である。Windowsフォームアプリをテンプレートに、SQL Server Management Studio(SSMS)を使いローカルDBを作成し、NuGetパッケージマネージャーからSqlClientをインストールすることで、EF CoreとSQL Serverを接続するための環境構築を行う手順を説明している。 次のパートでは、実際にコードからDBへ接続する手順を解説する予定である。
【C#】弱参照イベントを実装してみる
この記事は、C#におけるイベントハンドラのメモリリーク問題を解決するための「弱参照イベントパターン」の実装例を紹介しています。従来のイベントハンドラでは、イベントリスナーが参照され続けることでGCによるメモリ回収が行われない可能性がありますが、弱参照を用いることでこの問題を回避できます。記事では、リフレクションを使わず、汎用的なイベントハンドラとして使える弱参照イベントの実装と、そのパフォーマンステスト結果を示しています。リフレクションを使用しない実装は、リフレクションを使用する実装よりもパフォーマンスが良いことが示されています。ただし、デリゲートを返すデリゲートの複雑さや、イベント解除処理の記述が必要となるといった課題も指摘されています。 最終的には、利便性とパフォーマンスのバランスを考慮した、弱参照イベントの実装例が提示されています。