【作業効率3倍UP】VSCodeチートシートの永久保存版
この記事は、MacとWindows両方のVSCodeにおける便利なショートカットキーを網羅的に紹介している。 矢印キー連打など非効率な操作を改善し、作業効率を向上させることを目的とする。 多くのショートカットキーが、編集、検索、ナビゲーション、ファイル管理、表示設定など、様々な機能をカバーしている。 記事内には、各ショートカットキーの説明と実践動画へのリンクが含まれている。
プロキーターの俺が選ぶ2024年の良記事まとめ
このNuco Advent Calendar 2024の記事は、忙しいエンジニア向けに厳選されたQiitaの有用な記事を紹介している。内容は、プログラミング、Git、SQL、Docker、英語、バックエンド(セキュリティ、API実装、AWS、データ分析、DB)、AIモデル、フロントエンド(Web開発、デザイン)、マネジメントなど多岐に渡る。 各分野で、実践的なテクニックや効率化のためのヒント、最新技術の活用方法などが具体的に解説された記事が紹介されている。特に、可読性重視のコーディング、効率的なSQLクエリ、コンテナイメージサイズの削減、JWTを使った認証、アクセシビリティ、Webパフォーマンス改善などが重点的に取り上げられている。 記事は、エンジニアの実務に直ちに役立つことを目指しており、スキルアップに役立つ情報源として推薦されている。
Kaggle画像コンペでやっていること①
この記事は、Kaggleの画像コンペティションで上位入賞を目指すための初級者向けガイドの第1部である。著者はGrandmasterのK_mat氏。この記事では、どのコンペでも共通して行うべき基本的な取り組みを紹介している。具体的には、データの確認、解像度の調整、データの正規化、様々なaugmentation、最適化アルゴリズムや損失関数の変更、モデルやハイパーパラメータの変更、アンサンブル手法(特にWeighted Box Fusion)の適用などである。これらの基本的な作業は、一見簡単そうだが、適切な調整を行うには高度な経験と勘が必要で、上位入賞に不可欠であると述べている。続く記事では、コンペティション固有の工夫について解説する予定である。
【2024最新版】Pythonの仮想環境ベストプラクティス
この記事は、PythonプロジェクトにおけるPoetryとpyenvを用いた仮想環境構築と管理に関するベストプラクティスを解説したテックブログです。 Poetryによる仮想環境管理、pyenvによるPythonバージョン管理のセットアップ方法、モノレポでのプロジェクト管理、.lock
ファイルの重要性、チーム開発におけるトラブルシューティング(ライブラリインストール問題、poetry.lock
とpyproject.toml
の不整合)、pyproject.toml
の設定、Jupyter Notebookとの連携方法などを詳細に説明しています。さらに、新しい仮想環境ツールuvの紹介、Linter(flake8)、Formatter(Black, isort)、単体テスト(pytest)、型定義・解析(mypy)、テスト・解析管理(Nox)、テスト自動化(pre-commit)といった、Python開発における有用なツールについても解説しています。 全体として、効率的で再現性の高いPython開発環境構築のための包括的なガイドとなっています。
転職活動はお見合い
この記事は、10年経験のiOSエンジニアが過去の転職経験を踏まえ、転職活動で「やってよかったこと」を2点紹介している。1点目は、転職活動前から参加していた勉強会での人脈形成。スキル向上だけでなく、友人関係構築や転職活動での情報収集、技術書共著といったプラスαの成果を得られたと述べている。2点目は、「転職活動はお見合い」という心構えで、ありのままの自分を示すことの重要性を強調。面接で無理に自分を良く見せようと嘘をつくのではなく、誠実さを重視すべきだと主張し、自身の経験談を交えながら、会社と求職者は対等な立場であることを述べている。
【最新版】エンジニア向けUdemyおすすめ講座16選
この記事は、Udemyのおすすめプログラミング講座をWeb制作、フロントエンド、サーバーサイド、インフラ、全般の分野別に紹介している。各講座は具体的な内容、学習ポイント、おすすめポイントが解説されており、初心者から中級者レベルまでを網羅している。特に、HTML/CSS/JavaScript、React、WordPress、PHP/MySQL、Ruby on Rails、AWS、Terraform、Git/GitHubといった主要技術に関する講座が多数紹介されている。 コストパフォーマンスを重視し、Udemyで効率的に学習したいエンジニアにとって有益な情報が提供されている。
初心者でもわかる!「オンラインゲームにおける仕組み」を学んでみよう【前編】
この記事は、非エンジニアでも理解できるよう、オンラインアクションゲーム開発の仕組みを解説したテックブログの前編です。
前編では、フレームレート、遅延(ネットワーク遅延、処理遅延、表示遅延)、レスポンスといった基本用語と、それらの重要性を説明しています。特に、非同期型オンラインゲームにおける課題として、「ワープ現象」と「アイテムデュープ」を取り上げ、その原因と対策案を具体例を用いて解説しています。非同期型では、プレイヤー間での情報伝達のずれによって、攻撃が当たったか否か、アイテムの使用回数などが食い違う問題が発生することを示しています。
後編では、同期型、C/S/P2Pモデル、グローバルIP/プライベートIP、NAT問題、リレーサーバー方式について解説予定です。
個人開発アプリでサブスクユーザー100人達成した話。
この記事は、GMOペパボエンジニアの著者が個人開発iOSアプリのサブスクリプションユーザーが100人を突破したことを報告するものです。月1回程度の使用頻度のツール系アプリで、1年強で達成しました。成功要因として、「思い込みを捨てる(サブスクは売れない、ユーザーは知っているはずという思い込みを克服)」と「仕組みが動く仕掛けを意識する(サブスクの存在をアプリ内で目立たせる)」を挙げています。今後はデータ分析に基づいた改善やSNS活用によるユーザー増加を目指していくとのことです。 著者は個人開発の楽しさを力説し、開発談義の相手を募集しています。
Webサイトのアクセシビリティにどう向き合う?
この記事は、MTDDC Meetup Tokyo 2024でのアクセシビリティに関する講演内容をまとめたものである。講演では、Webサイトのアクセシビリティの重要性、ユーザビリティとの違い、関連法規(障害者差別解消法、障害者権利条約)などを解説。アクセシビリティ向上のための具体的なステップとして、(1)アクセシビリティを必要とする人の状況を理解する、(2)「ウェブアクセシビリティ導入ガイドブック」を用いた現状把握、(3)非干渉要件からの改善、(4)機械的チェックツールの活用、(5)キーボード操作の確認、(6)WCAG準拠に基づいた網羅的チェック、(7)アクセシビリティを前提とした制作・開発・運用体制の構築、などを提案している。アクセシビリティオーバーレイ製品の誤用や、サイト全体のリニューアルまで改善を待たないことの危険性についても警告している。 WCAG、支援技術、合理的配慮といった基本概念も説明されている。
LLMのハルシネーションについてちょっと詳しくなってみる
この記事は、大規模言語モデル(LLM)におけるハルシネーション(幻覚、誤った情報の生成)問題を解説したテックブログ記事である。LLMがハルシネーションを起こす原因(確率分布に基づく予測、学習データの不正確さ、デコード戦略など)、ハルシネーションの種類(事実性、忠実性など、複数の分類が紹介されている)、そしてハルシネーションを軽減・検出するための様々なアプローチ(データセットの改善、トレーニング方法、推論時のプロンプトエンジニアリング、RAG、内部表現の分析など)を詳細に説明している。特に、MetaのGalacticaの失敗例を挙げ、ハルシネーションの危険性を強調している。 最終的には、ハルシネーション検出技術の研究が盛んであり、その知見が信頼性の高いアプリケーション開発に役立つと結論付けている。
男性育休を1年取ってみた〜いつ報告した?周りの反応は?育休はよかった?
朝日新聞社のエンジニアである著者は、仕事で男性育休促進のウェブサイト開発に携わったことをきっかけに、自身も1年間の育休を取得することを決意。妻の妊娠初期の苦労を目の当たりにし、育休取得を5ヶ月前に上司に報告。当初は後任者確保に苦労するも、育休2ヶ月前に異動を経験するなど、慌ただしい準備期間を過ごす。育休中は、新生児の育児に奮闘する一方、SNS運用でフォロワーを増やすなど副次的成果も得た。育休を通して、子どもの成長を間近で見ることができ、妻からの信頼も得ることができたと結論づけている。
要約した内容の身:
この記事は、朝日新聞社のエンジニアが1年間の育休を取得した体験談である。仕事を通して男性育休の重要性を認識し、妻の妊娠を機に1年間の育休取得を決意。上司や同僚からの理解を得て育休を取得するも、後任者確保や異動といった課題に直面する。育休中は激務の育児と並行してSNS運用を行い、フォロワー増加などの副次的成果も得た。育休を通して、子どもの成長を間近で感じ、妻からの感謝を得ることができたと述べている。男性の育休取得を検討している人にとって、参考となる具体的なエピソードが豊富に記載されている。
JavaScript が ECMAScript なわけ
JavaScriptはNetscape Navigatorで開発され、Microsoftが独自実装(JScript)を作成したため、標準化の必要性が生じた。NetscapeはW3CやISOへの標準化要請を断られ、最終的にECMAに標準化を依頼し、ECMAScriptという名称で規格化された。 この経緯は、NetscapeとMicrosoftの競争と、標準化団体との交渉の末、妥協策としてECMAScriptが生まれたことを示している。
todo.txtを布教したい
この記事は、シンプルなテキストファイル形式todo.txt
を用いた個人向けタスク管理について解説している。todo.txt
は1行1タスクで、OS非依存、検索可能、軽量といった利点を持つ。著者は、todo.txt
と複数のクライアントツール(todo.txt-cli
, topydo
)を紹介し、自身で作成したビューワーtokaido
(Rails製Webアプリ)とNeoVimを組み合わせたワークフローを詳述している。 優先度やコンテキストは使わず、プロジェクトと期日を用いてタスク管理を行い、タスク詳細は別テキストファイルにMarkdownで記述することで、検索や共有を容易にしている。 著者はより多くの利用者と使いやすいクライアントツールの登場を望んでいる。
Streamlit × LangGraphでHuman-in-the-loop Agentの実装:広告コピー文生成アプリケーション
この記事は、StreamlitとLangGraphを用いてHuman-in-the-loop型の広告コピー生成アプリケーションを作成した事例を紹介している。LangGraphのbreakpoint機能でエージェントの実行を一時停止し、ユーザーが生成されたコピーを承認するか、再検討を指示できる。ユーザーからの追加情報に基づき、LLM(Claude 3.5 Sonnet v2またはAzure OpenAI gpt-4o)がコピーを再生成する。記事では、LangGraphでのAgentフロー構築、Streamlitとの連携方法、Structured Outputの活用、StateとNodeの定義、GraphBuilderによるグラフ構築などをコード例と共に詳細に解説している。 特にStreamlitとLangGraphの連携におけるHuman-in-the-loop実装のノウハウが不足している点を踏まえ、具体的な実装例を提供することで、同様のアプリケーション開発を目指すエンジニアの助けとなることを目的としている。
Microsoft Teams が調子悪い時の対処アレコレ
この記事は、Microsoft Teamsの不調時の対処法をまとめたテクニカルブログである。具体的には、チャット入力不可、会議参加不可、アイコン表示不良などの症状に対し、クライアント・ブラウザ版両方を対象に、再起動、キャッシュクリア、更新、再インストールといった解決策を提示している。Officeファイルの直接開けない問題への対処法として、Officeキャッシュクリアも紹介されている。 記事は公式サポートではなく、個人の経験に基づく対処法集である点を強調している。
D言語でAtCoderを解きたい!
この記事は、TRIAL&RetailAI Advent Calendar 2024の7日目の記事で、D言語を使ってAtCoder(競技プログラミングサイト)の問題を解く方法を紹介している。D言語のインストール方法、標準入出力、配列操作、高階関数などの基本的な文法と、それらを活用したFizzBuzzの実装例を解説している。著者はD言語の簡潔さや機能性を高く評価しており、AtCoderでD言語を使うメリットを強調している。競技プログラミング初心者にも分かりやすく、D言語を始めるきっかけになる内容となっている。
【Microsoft認定】SC-900とSC-300を取得した
この記事は、著者がMicrosoftのセキュリティ資格であるSC-900とSC-300を取得した過程を記したものです。EntraIDを用いた認証認可実装の理解を深めるため、資格取得に挑戦。SC-900は1回で合格、SC-300は2回目にギリギリ合格しました。学習教材としてMicrosoft Learn、公式トレーニング、練習問題集、非公式問題集などを活用。SC-300は実践的な問題が多く、実務経験が重要だと感じた一方、個人環境でのAzure Portal操作が役立ったと述べています。 今後のAzure、EntraID学習継続も表明しています。
フロントエンドで自動ユニットテストについて
このテックブログ記事は、スクラム開発におけるテストの効率化のため、ReactフロントエンドでReact Testing Libraryを用いた自動ユニットテスト導入について解説している。短縮された開発期間の中で品質維持が課題となる中、ユニットテストによるリグレッションテストの効率化、バグの早期発見、QAチームの負担軽減を目的とする。記事ではReact Testing Libraryの基本的な使用方法(test
/it
関数、render
、screen.getBy...
、fireEvent
、expect
)と、react-router-dom
や関数コンポーネントを含むテストケースの記述例を示している。 著者は現在学習中であり、今後の実践と成果についても記事にする予定である。
世界一安いGPUを求めて2024冬
この記事は、GPUリソースの入手方法と各サービスの比較を紹介しています。スポット利用にはGoogle ColabとRunpodが最強で、継続利用にはゲーミングPCの購入・レンタル(BREAJONなど)やクラウドGPUサービス(Runpodなど)が推奨されています。クラウドGPUサービスを選ぶ際は、コミュニティクラウドか否か、セキュリティ、安定性、在庫量を考慮すべきです。予算や利用目的によって最適な選択肢が異なります。
化学実験で使える検量線アプリをPythonで手軽に開発する方法
この記事は、PythonのmatplotlibとStreamlitを用いて、検量線作成を効率化するWebアプリを作成した体験記です。 matplotlibで検量線グラフを作成するコードを示した後、Streamlitでユーザー入力を受け付け、グラフのカスタマイズ、ダウンロード機能、逆算機能などを備えたWebアプリを作成した過程を説明しています。 アプリはStreamlit Cloudにデプロイされており、GitHubにも公開されています。 現状は線形回帰のみですが、今後の機能拡張も予定されているとのことです。
Kaggleに特化したChatGPTのカスタムインストラクションの紹介
この記事は、KaggleコンペティションでChatGPTを効果的に活用するためのカスタムインストラクション設定方法を紹介している。著者は、コンペ概要、ベースラインモデル、コーディングスタイル(型ヒントの利用、テストコード作成、関数化、リファクタリング、日本語でのコメント/Docstring、How/What/Why/Why notの記述)などをChatGPTに事前に指示することで、回答の品質と開発効率を向上させた。 具体例として、フィボナッチ数列生成関数の生成において、カスタムインストラクションありとなしのコード比較を示し、カスタムインストラクションによってより洗練され、可読性の高いコードが生成されることを示している。 要約すると、ChatGPTのカスタムインストラクションを適切に設定することで、Kaggleコンペティションにおける開発効率とコード品質の大幅な向上が期待できるという内容である。
【AWSコスト削減】RDSの監査ログをCloudWatch LogsからS3に移行して、コストを100分の1に削減できた話
このテックブログは、Aurora MySQL RDSの監査ログ保存先をCloudWatch LogsからS3に移行し、コスト削減を達成した事例を紹介している。4ヶ月に渡る移行作業では、コスト試算、仕様策定、Lambda関数によるS3へのログ転送プロトタイプの作成と検証、本番環境への実装、移行後の監視体制構築といったステップを踏んだ。 CloudWatch LogsとS3のログの一致確認には、Athenaを用いたSQLクエリを活用。Lambdaのエラー検知にはSNSとDataDogを用い、迅速な対応を実現した。結果、CloudWatch Logsのデータ処理コストが大幅に削減された。 筆者はAWSの様々なサービスの利用経験と、試行錯誤を繰り返すことの重要性を強調している。
大切なあなたの時間を奪うクソゲーム
この記事は、筆者がAIプログラミングツール「Cursor」を用いて、スマホのジャイロセンサーを利用したブラウザゲーム「ボール転がし」をコードを書かずに作成した過程を記したものです。 ゲーム内容は、スマホを傾けてボールを転がし、画面を塗りつぶすシンプルなもの。 筆者は、クソゲー(いい意味で)の作成とAIによる開発効率化の両方を経験したことを述べています。
AWSアカウントで最初にすべきセキュリティ設定 おすすめ9選【設定ハンズオンあり】
この記事は、AWS初心者向けに、7割合格レベルのセキュアなAWSアカウント環境構築のための9つの推奨セキュリティ設定を紹介するテックブログです。IPAのクラウドセキュリティ11大脅威を踏まえ、IAM管理と設定ミス対策に焦点を当て、AWS Security Hubを活用した効率的なセキュリティ設定方法をハンズオン形式で解説しています。具体的には、MFA設定、AWS Config、IAM Access Analyzer、CloudTrail、GuardDuty、EBSデフォルト暗号化、Trusted Advisor、Security Hubの有効化、およびS3パブリックアクセスブロック設定の有効化を手順付きで説明し、最後に有料サービスの停止方法も示しています。AWS Security Hubによる継続的なセキュリティチェックを推奨し、アカウント開設時の設定が最も容易であると結論づけています。
AWS Amplify + AI Kitを試してみた
この記事は、AWS Amplify AI Kitを用いて、レシピ生成AIとチャットAIを作成する過程を記したテックブログです。 Amplify AI KitとAmazon Bedrockを用いてフロントエンドとバックエンドを作成し、レシピ生成機能とチャット機能を実装しようと試みました。 途中でバージョン不整合によるエラーに遭遇しましたが、パッケージのバージョンを調整することで解決し、レシピ生成AIは正常に動作するようになりました。しかし、チャットAIは依然として不安定で、期待通りの動作に到達できませんでした。 systemPrompt
の変更によるAIの挙動への影響も検証しましたが、大きな効果は見られませんでした。最終的に、レシピ生成AIは機能するようになったものの、チャットAIは課題が残ったままという結果となりました。
Mock Service Workerのドキュメントをざっくり眺めてみる
Mock Service Worker (MSW)は、ブラウザとNode.jsで動作するAPIモックライブラリです。Service Worker APIを利用し、ネットワークレベルでリクエストをインターセプトしてレスポンスを返却することで、環境非依存、シームレス、再利用可能なAPIモックを実現します。REST、GraphQL、WebSocketをサポートし、様々なテスト環境やフレームワークと互換性があります。 setupServer
関数により、Node.js環境でも同様のモックを実現できます。ただし、ブラウザのService Worker APIの仕様に依存するため、ブラウザによっては制限がある可能性があります。
Windows で "nslookup 使うな おじさん" 爆誕
この記事は、Windows環境でのDNS名前解決テストやトラブルシューティングに古くから使われてきたnslookup
コマンドよりも、PowerShellのResolve-DnsName
コマンドレットを使うべきだと主張する。nslookup
は古い設計で、最新のDNSプロトコル(DNSSEC、EDNS)に対応しておらず、Windowsアプリケーションの実際の挙動を再現できない。一方Resolve-DnsName
は、WindowsのDNSリゾルバサービスを使用し、複数のDNSサーバーへのフォールバック、キャッシュ無視、オブジェクト形式での結果出力など、現代的な機能を備えているため、スクリプト化や詳細な解析に適している。そのため、nslookup
の代わりにResolve-DnsName
を使うことを推奨している。
ElixirでPAY.JPのライブラリ作成シリーズ④ ドキュメントに設計
このテックブログ記事は、ElixirでPAY.JP APIクライアントライブラリ(Payjpex
)を作成するシリーズ記事の続きである。この記事では、Payjpex
のアプリケーション構造を設計し、スーパーバイザツリー(Payjpex.Config
とPayjpex.ApiClient
プロセスを含む)を実装した。Payjpex.Config
は設定値を管理し、Payjpex.ApiClient
はPAY.JP APIとの通信を行う。 設定は設定ファイルまたは実行時に指定可能で、スーパーバイザは:one_for_one
戦略を使用する。 記事後半では、アプリケーションの起動と各プロセスの起動を確認するテストコードも記述している。 Payjpex.Config
とPayjpex.ApiClient
の実装は次回の記事に続く。
TextMeshProで複数フォントを1つのアトラスに無理やり書き込む方法
このテックブログ記事は、TextMeshProで文字ごとにフォントを変える方法について解説しています。通常はFallback機能を使用しますが、これによりSubMeshが分割され、2PassShaderなどを使用する場合に問題が発生します。そこで、記事ではリフレクションを用いて、複数のフォントを事前に同じアトラスに書き込む方法を紹介。ScriptableObjectとEditorWindowを使ったツールも作成することで、この手法の実装と運用を容易にしています。 SubMesh分割の問題を回避し、文字ごとのフォント変更を実現する代替手法を提供している点が本記事の要点です。
【Flutter】肥大化したimport文を整理する方法3選
この記事は、Flutterプロジェクトにおけるimport文の整理方法について解説しています。具体的には、以下の3つの方法を紹介しています。
-
Dart Formatterの使用:
dart format
コマンド、もしくはIDEの設定で自動フォーマットを行うことで、import文をアルファベット順に並び替えることができます。 -
import_sorter
パッケージの使用: このパッケージを使うことで、dart:
、package:
、project:
といった種類別にimport文を分類・整理できます。 -
Barrel Fileの使用: 複数のファイルを1つのファイルにまとめてexportするBarrel Fileを作成することで、複数のimport文を1つにまとめ、import文の数を削減できます。
記事では、それぞれの方法について具体的なコマンドや手順が示されており、ビフォーアフターの比較を通して、import文の整理によるコードの可読性向上を効果的に説明しています。 最終的には、Formatterは必須で、他の2つの方法は必要に応じて選択的に利用するのが良いと結論づけています。