ソフトウェアは捨てやすく作ろう
この記事は、ソフトウェア開発における仮説検証の高速化を目的とした、コードの「捨てやすさ」を重視する開発手法について述べている。 PMF到達前のスタートアップにおいて不要な機能が蓄積されやすい問題点を指摘し、機能単位でのディレクトリ分割(Package by Feature)によるコードの整理と削除の容易化を提案している。 具体的には、Laravelの例を用いてレイヤーベースの構成から機能ベースの構成への変更を説明し、さらに機能を細分化して階層構造にすることで、大規模開発でも管理しやすくすることを提案している。 チーム全体で「捨てやすく作る」という意識共有の重要性も強調されている。
【作業効率3倍UP】VSCodeチートシートの永久保存版
この記事は、MacとWindows両方のVSCodeにおける多数のショートカットキーを一覧で紹介するテックブログ記事です。矢印キー連打やマウス操作など非効率な作業を減らし、作業効率を向上させることを目的としています。 具体的なショートカットキーは、全般、編集、マルチカーソル操作、検索置換、言語編集、ナビゲーション、エディタ管理、ファイル管理、表示、デバッグ、統合ターミナルの各項目に分類され、コマンドと説明が併記されています。記事内では実践動画へのリンクも提供されています。
プロキーターの俺が選ぶ2024年の良記事まとめ
この記事は、忙しいエンジニア向けに、Qiitaの厳選記事を紹介するNuco Advent Calendar 2024の記事です。 紹介されている記事は、プログラミング、データベース、AI、フロントエンド開発、マネジメント、英語など、多岐に渡る分野を網羅し、実践的な内容となっています。 具体的には、コード可読性向上、Git活用、SQL最適化、Dockerイメージサイズ削減、JWT理解、API設計、AWS活用、データ分析、AIツール活用、アクセシビリティ、Webパフォーマンス改善、DB設計、チームマネジメントなどに関する記事が挙げられています。 これらの記事は、エンジニアのスキルアップと業務効率化に役立つとされています。
趣味開発Webアプリケーションのほぼ0円インフラ構成
この記事は、趣味のWebサービスを低コストで運用する方法を紹介している。アクセス数の少ない小規模サービスを想定し、静的サイトジェネレーター(SSG)とクライアントサイドレンダリング(CSR)による静的配信(Cloud Storage)、コンテナ化されたバックエンド(Cloud Run)、無料枠を利用したデータベース(TiDB Serverless)を組み合わせたインフラ構成を提案している。Cloud Load Balancingの代わりに、CloudflareのDNS ProxyモードとCloud Connectorを用いてリクエストの振り分けを行い、コスト削減を実現している。Cloud Runのコールドスタート問題には、Cloud Monitoringの稼働時間チェック機能による定期リクエストで対応している。ただし、この方法は確実性に欠けるため、安定性を求める場合は最小インスタンス数を増やす必要がある点を注意喚起している。全体として、無料枠を最大限に活用することで、月額2円程度の運用コストに抑える方法を詳細に解説している。
男性育休を1年取ってみた〜いつ報告した?周りの反応は?育休はよかった?
朝日新聞社メディア研究開発センターの山本氏は、1年間の男性育休を取得した経験について報告している。仕事で男性育休促進の企画に携わったことがきっかけで、自身も育休取得を決意。妊娠初期の妻の苦労を目の当たりにしたことが、1年間という長期の育休取得の決め手となった。上司には5ヶ月前に報告し、当初は戸惑われたものの、最終的には理解を得られた。育休取得に向けての業務引き継ぎは困難を極め、育休2ヶ月前に異動もあったが、周囲の協力もあり乗り越えた。育休中はハードな育児に追われたものの、子どもの成長を間近で見られたこと、妻からの感謝を得られたことが大きな収穫だった。育休中のSNS運用でフォロワーが増加したこともプラスとなった。山本氏は、男性育休取得を検討している人に向けて、子どもの成長を間近で見たいのであれば、積極的に育休取得を検討するよう推奨している。
世界一安いGPUを求めて2024冬
この記事は、GPUリソースの入手方法と各サービスの比較を紹介するテックブログです。スポット利用にはGoogle ColabとRunpodが最強で、継続利用にはゲーミングPCの購入またはBREAJONのサブスクがおすすめと結論づけています。 具体的なサービス比較では、価格や安定性、セキュリティなどを考慮し、Runpodを高く評価しています。スポット利用で安価なGPUを求めるならVast.aiも選択肢として挙げられています。 ビジネス用途にはGCPなどの大手クラウドサービスが適しているとしています。
8時間夜通しのテックイベント「朝までFigma」に参加してみた
新卒2年目のデザイナーが、8時間ぶっ通しのFigmaオンラインイベント「朝までFigma」に参加した体験記。3000人以上が参加した大規模イベントで、23組のスピーカーがFigma活用法を実演形式で紹介した。特に印象に残ったのは、「実装しやすいモックアップの作成方法」と「デザインシステムにおけるFigmaコンポーネント設計」の2セッション。前者ではFigjamのConnector Line機能を用いた画面フロー作成の効率化、後者ではBoolean propertyとInstance swap propertyを組み合わせた直感的なコンポーネント設計の改善方法を学んだ。イベントを通してFigmaの機能理解が深まり、より効率的で分かりやすいデザインシステム構築に繋がることを実感したという内容。
readmeが読めないのでAHC040に参加できないニキを救いたい
この記事は、競技プログラミングコンテストAHC030(AHC040でも同様)のローカル環境でのテスト実行方法について解説したものです。Windows環境で配布されたコンパイル済みバイナリを用い、Powershellでの実行方法を含め、./tester.exe
コマンドを用いたテスト手順を具体的に説明しています。特に、in.txt
からの入力とout.txt
への出力、そしてPowershellにおける<
記号の代替方法(cat ... |
)について詳細に解説しています。 記事では、ドキュメントの分かりにくさについても言及しつつ、問題解決のための具体的な手順と、ITリテラシーの重要性を訴えています。
WordPress で学ぶ Cloud Run のストレージとデータベース
この記事は、低頻度アクセスなWordPressサイトをGoogle Cloud Run上で構築する方法を解説しています。Cloud Runのスケーラビリティと、コスト最適化のために、ストレージにCloud Storage(FUSEを用いてファイルシステムとしてマウント)、データベースにCloud SQL(Cloud SQL Auth Proxyをサイドカーコンテナとして利用)を使用する構成を提案しています。 Cloud Storageは静的ファイル(themes、plugins)と動的ファイル(uploads)でバケットを分け、前者を起動時にコピーし、後者をオンデマンドでアクセスすることで、コストとパフォーマンスのバランスを取っています。 Serverless VPC AccessやFilestoreのような常時課金サービスは利用せず、インスタンス数を0に設定することで、アイドル時のコストを最小限に抑えています。 サイドカーコンテナの導入により、Cloud SQLへの安全な接続を実現しています。
うつ病で障害を持ったエンジニアが、障害のない社会を作る会社で働くまでを振り返る
この記事は、うつ病を経験した著者が、就労移行支援施設での訓練を経てLITALICOに入社し、現在に至るまでの経緯と、うつ病を抱えながら働く上での工夫、LITALICOでの働きやすさについて述べています。 3つの要因(人間関係、過労、コロナによる引きこもり)からうつ病を発症し、休職・復職を繰り返したのち、障害者手帳を取得。就労移行支援施設で体調管理、ストレス軽減法、ITスキルなどを学び、LITALICOへの転職を果たしました。LITALICOでは、柔軟な勤務体制、理解のある社風、相談しやすい環境などにより、安心して働けていると報告しています。 今後の課題として、うつ病と上手につき合い、長期就労を目指すことを述べています。
【完全ガイド】CSS論理プロパティから見る 新しいCSSの考え方
この記事は、CSSの論理プロパティについて解説しています。論理プロパティは、コンテンツの流れ(左から右、右から左など)に基づいてレイアウトを定義するもので、従来の物理プロパティ(top, right, bottom, left)とは異なり、国際化対応やアクセシビリティ向上に役立ちます。inline-start
, block-start
などのプロパティを使い、言語や書字方向に関わらず一貫したレイアウトを実現できます。 メリットとして、国際化対応の簡素化、メンテナンス性の向上、コード量の削減、レスポンシブ対応の簡略化などが挙げられています。主要ブラウザでは広くサポートされていますが、古いブラウザへのフォールバック対策が必要な場合もあります。Tailwind CSSなどのフレームワークでも利用可能ですが、バージョン互換性には注意が必要です。 最初は直感的に分かりづらいかもしれませんが、グローバル化時代においては非常に有用な機能であると結論づけています。
JavaScript が ECMAScript なわけ
JavaScriptはNetscape Navigatorで独自開発されたが、MicrosoftがJScriptを開発したため、標準化の必要に迫られた。W3Cが標準化を拒否したため、Netscapeは最終的にECMAに標準化を依頼し、ECMAScriptという名称で規格化された。これは、Microsoftとの競争と互換性の確保のためだった。
D言語でAtCoderを解きたい!
この記事は、TRIAL&RetailAI Advent Calendar 2024の7日目の記事で、AtCoderでD言語を使用する方法を紹介している。D言語のインストール方法(Homebrew使用)、標準入出力、UFCS、高階関数、配列操作、FizzBuzzの実装例などを解説している。著者は、D言語の簡潔さや機能性を活かし、競プロで効率的にコーディングすることを目指している。 AtCoder初心者で、D言語を競プロで活用したいと考えている読者にとって有用な情報が提供されている。
AtCoderで入青したのでいろいろなことを書く
AtCoderで青コーダーになった中1の競技プログラミング経験者による記事の要約。青コーダーになるためにライブラリ整備、タイピング練習、過去問演習(AtCoder Daily Trainingを含む)、ARC問題演習を継続的に行ってきたことを記述。これらの努力によりコーディング速度と実装力が向上し、青色に到達したと報告している。今後の目標は黄色コーダーになることと、情報オリンピックの本選出場としている。
起業するならElixirシリーズSTEP7.メディアを狙え
この記事は、テックスタートアップにおけるプロトタイプ販売とメディア戦略について解説している。顧客への価値提供を最優先し、完全な製品ではないプロトタイプを限定的に販売することで、フィードバックを得てサービスを改善する。 同時に、ユーザーの声を収集し、オウンドメディア、アーンドメディア、ペイドメディアなど様々なメディアへの露出を通して、サービスの認知度を高める戦略が重要だと述べている。 プロトタイプの販売は、価値検証と顧客エンゲージメント向上を目的としている。
【前編】ガバメントクラウドの論点に対する対策を考えてみた
この記事は、国立国会図書館のレポート「ガバメントクラウドの概要と主な課題、論点」に基づき、ガバメントクラウド導入における課題とその対策を考察したテックブログの前編です。前編では、レポートで挙げられた4つの論点のうち2点、「運用経費削減効果」と「ベンダーロックイン」を取り上げています。
運用経費削減効果については、現状では効果が見られない事例が多いことを指摘し、FinOpsの導入によるコスト最適化を提案しています。ベンダーロックインについては、現状ではAWSのシェアが非常に高いものの、公共部門におけるクラウド利用拡大のフェーズであるため、直ちに多様なベンダーへの対策を講じる必要性はないと主張。しかし、中長期的な視点では、クラウドサービスモデルの選定における「移行性」と「先端性」のトレードオフを考慮し、Switching Costを踏まえた対策を検討する必要があるとしています。
Goで認可サーバーことはじめ
この記事は、Go言語を用いてOAuth 2.0認可サーバーの簡易実装を行う方法を解説したテックブログです。認可コードフローに焦点を当て、クライアント登録、認可コード発行・検証、アクセストークン生成といった基本機能を実装例と共に説明しています。 E2Eテストによる検証方法も紹介しており、OAuth 2.0の理解を深めるための実践的な内容となっています。
GoのクロスプラットフォームGUIライブラリのGioを触ってみた
この記事は、Go言語でクロスプラットフォームGUI開発が可能なライブラリGioの紹介と、簡単なサンプルコードを用いたデスクトップGUI作成のチュートリアルです。Gioのインストール方法、サンプルコードの説明(イベントループ、テーマ設定、テキスト描画)、そして実行方法が解説されています。作者はGioのドキュメントが分かりやすく、Go初心者でも扱いやすいと評しています。
以下に要約内容を基にした文章を示します。
Go言語でクロスプラットフォームなGUIアプリケーション開発を可能にするライブラリGioを用いた、簡単なデスクトップGUI作成チュートリアルが紹介されています。記事ではGioのインストール方法、サンプルコードによる「Hello, Gio」表示の実装、そしてイベントループや描画処理の説明が簡潔に解説されています。Gioのドキュメントが充実しており、初心者にも扱いやすいことが強調されています。
Supabase Cron & Queues を用いた非同期処理の実装
この記事は、Supabaseの新しいキューイングサービス「Supabase Queues」とCronジョブを用いて非同期処理(メール送信)を実現する方法を紹介しています。SupabaseのIntegrationsでQueuesとCronを有効化し、設定を行うことで、Edge Functionを介してキューにメッセージを投入し、Cronジョブで定期的に処理を実行する仕組みを構築しています。GitHub上のサンプルコードも公開されています。
入社前に学んだ効率的な業務の進め方
この記事は、プログラミング未経験のITベンチャーインターン生が、業務効率化について学んだ経験を共有している。当初は完璧な成果を目指していたため非効率だったが、「60~70%の完成度で早めにフィードバックを得る」ことと、「コードが書けない場合は紙芝居形式で設計を共有する」ことで効率が大幅に向上したという内容である。 完璧を目指すのではなく、段階的な改善を繰り返すことが重要だと結論付けている。
説明されてもピンとこないのでインデックスを実際に張ってみた
この記事は、PostgreSQLを用いてデータベースのインデックスの効果を検証したエンジニア1年生によるハンズオンレポートです。10万件のテストデータを用いて、age
, gender
, code
カラムにインデックスを作成し、EXPLAIN ANALYZE
コマンドで実行計画と実行時間を計測することで、インデックスによる検索速度の向上を実証しています。特に、絞り込み力の高いcode
カラムへのインデックス作成では、Index Only Scan
による大幅な高速化を確認しました。 複合インデックスの効果についても検証し、適切なインデックス設計の重要性を示しています。
わからないことを理解するための知識ネットワーク
この記事は、新卒エンジニアが、ドメイン知識や開発経験が不足している状況で、請求基盤開発という未知の分野に取り組んだ経験を紹介している。 著者は、専門用語や概念を「ノード」、それらの関係性を「エッジ」とする「知識ネットワーク」を構築することで、全体像を把握し、学習を進めた。この方法により、全体像の把握、柔軟な学習、新たな視点の発見、そして未知へのストレス軽減というメリットを得たという。具体的には、気になる用語をノードとしてメモし、それらの関係性をエッジとして繋ぎ、ネットワークを可視化することで学習を進めたとのこと。 この「知識ネットワーク」構築法は、未知の分野への学習をスムーズに進めるための効果的な方法として提案されている。
ペアプロで掴んだ成長の鍵:新人エンジニアが壁を突破するために実践した5つのステップ
この記事は、新人エンジニアが6~9月で大きく成長した経験を記したものである。著者は当初、コミュニケーション不足、タスク遂行における観点の欠如、コードの読解・記述能力の低さ、自己肯定感・自己効力感の不足に悩んでいた。これらの課題を克服するため、(1) ペアプログラミングによる正確なコミュニケーションの習得、(2) タスク遂行における目的、完了条件、スコープ等の観点の明確化、(3) APIコードの精読によるコードリーディング能力の向上、(4) Paizaを用いたコード記述練習とPDCAサイクルの確立、(5) 自己肯定感・自己効力感の向上という5つのステップを踏んだ結果、著者は大きく成長し、仕事への満足度も向上したと報告している。 ペアプログラミングと先輩の指導が成長に大きく貢献したと締めくくっている。
PreviewActivityをHackする
このテックブログ記事は、Jetpack ComposeにおけるUIプレビューの高速化と正確性の向上を目的とした、PreviewActivity
の活用方法について解説しています。Android Studioのプレビュー機能はLayoutlib
を使用するため、パディングやマージン、ネットワーク画像表示などで実機と差異が生じる問題点を指摘。より正確なプレビューを得るため、実機で動作するPreviewActivity
をハックし、AndroidManifest.xml
の修正やComposable
関数の工夫により、WindowInsets、Picture-in-Pictureモード、XMLレイアウトのプレビューなど高度な検証を可能にしていることを説明しています。 具体的には、AndroidManifest.xml
を操作してテーマやパーミッションを変更したり、Composable
関数内でActivityの機能を直接呼び出す方法を示しています。 PreviewParameterProvider
の使用はandroidx.compose.material.Scaffold
で囲まれてしまうため、WindowInsets確認には推奨されていません。
Plannerを救いたい with Power Automate
この記事は、Power AppsとPower Automateを使ってPlannerのタスク管理を改善する方法について説明しています。Power Apps側からの操作は既に連携済みですが、ユーザーがPlannerを直接操作した場合のデータ整合性を保つため、Power AutomateでPlannerのタスク作成・更新・削除を検知し、SharePointリストとの同期を行うフローを作成しました。新規作成タスクは直接SharePointに追加、もしくはPlannerから削除する処理、更新・削除は定期的に同期を行う処理を実装し、タスク削除時の誤操作への対策も施しています。 しかし、完璧な同期は実現しておらず、理想的なタスク管理の模索は継続中とのことです。
EKS Auto ModeとEKS on Fargateの違いを調べてみた
この記事は、AWS re:Invent 2024で発表されたEKS Auto ModeとEKS on Fargateの機能比較を詳述している。主な違いは、ノード管理の責任がAuto ModeではAWS、FargateではAWS Fargateにある点。Auto Modeはノードのバージョンアップを自動化し、GPUノード、DaemonSet、特権コンテナ、Public IPを持つPodなどをサポートする一方、SSHアクセスやPod単位のセキュリティグループは不可。FargateはPod単位のセキュリティグループをサポートするが、GPUノード、DaemonSet、特権コンテナ、Public IPを持つPodなどはサポートしない。課金はAuto Modeがインスタンス単位、FargateがPod単位。 要約すると、Auto Modeは柔軟性が高く大規模なクラスタに適し、Fargateはシンプルで小規模なクラスタに適していると言える。 ただし、Fargateは将来的にAuto Modeの機能の一部をサポートする可能性もある。
Kaggleに特化したChatGPTのカスタムインストラクションの紹介
この記事は、KaggleコンペティションでChatGPTを効果的に活用するためのカスタムインストラクション設定方法を紹介している。 具体的には、自身のコーディングスタイル(型ヒント重視、テストコード作成、関数化/クラス化、リファクタリング重視など)と、コンペティションの概要・ベースライン情報をChatGPTに事前に指示することで、より効率的かつ高品質なコード生成を実現する手法を解説している。 フィボナッチ数列生成の例を用いて、カスタムインストラクションあり・なしでのChatGPTの出力結果を比較し、その効果を実証している。 カスタムインストラクションによって、コンペティションの文脈を毎回説明する必要がなくなり、開発効率とコード品質が向上すると結論付けている。
TeamsからAmazon Bedrock Agents にServiceNowのインシデント起票をしてもらおう - 2024年12月版
このテックブログ記事は、Microsoft TeamsとServiceNowを連携させたAIインシデント起票システムの構築手順を詳細に解説しています。ユーザーがTeamsにインシデント報告を投稿すると、Azure Bot Service、Amazon API Gateway、AWS Lambda、Amazon Bedrock Agentsを経由してServiceNowにインシデントが自動登録されるシステムです。 記事では、ServiceNow、Amazon Bedrock Agents、AWS Lambda、Amazon API Gateway、Azure Bot Service、そしてMicrosoft Teamsアプリの構築手順を、コード例を交えながらステップバイステップで説明しています。 最終的に、TeamsからAIエージェントを通じてServiceNowへのインシデント起票が実現し、ユーザーは複雑なServiceNow操作から解放されます。
LLMの推論部分を理解してみよう!
この記事は、大規模言語モデル(LLM)の推論過程を解説したテックブログ記事です。LLMがテキストをトークン化し、Transformerモデルを用いて次トークンの確率分布を計算、そしてtop-pサンプリングなどのデコード戦略でトークンを決定しテキストを生成する過程を、Llama 3の実装例を交えながら詳細に説明しています。 特にデコード戦略(貪欲法、サンプリング法、top-kサンプリング、top-pサンプリング、temperature)の違いと、それらが生成テキストの多様性や一貫性にどう影響するかを解説しています。 最後に、予定していたハルシネーションに関する実験には触れられなかったと結論づけています。
確信度を出してくれるOCRを作ってみる!
このテックブログ記事は、レシートなどの画像からテキスト情報を抽出する際に発生するOCR誤認識の自動訂正アプリケーション開発について記述しています。 Google Document AI、GPT-4o、Gemini 1.5 Pro 002を用いて5つのサンプル画像でテキスト抽出精度の評価を行い、F値を指標として比較しています。 さらに、大規模言語モデル(LLM)を用いた視覚的文書からの情報抽出(VDIE)手法、OCR誤認識の種類(光学的類似性、文脈的妥当性、異常ケース)と、それらへの対処法(確信度表示、修正候補提案など)を説明しています。 最終的に、複数のモデルの出力結果をアンサンブルし、座標情報と合わせて確信度を算出することで校正作業の効率化を図るアプリケーションを実装し、Gradioを用いたインターフェースも作成したことを報告しています。