「マスタリングTCP/IP を読んだけど理解がイマイチ進まない。Goがどのようにサーバーを立てているのか気になる。」 そんなスキマを埋めるための本です。 Goの標準パッケージである net package を一切利用せずに、自作TCP/IPプロトコルでサーバーを作ります。 パケットをどのようにやり取りするかハンズオン形式で解説し、最後にToDoリストAPIを実装します。
C言語(C++を含む)を習得したい人,ポインタを勉強したい人はgcc-14を使いましょう.難しいところは gcc-14 が丁寧に解説してくれます C言語の難しいところ 例を示します.C言語で記述された,たった6行のソースコードです int main() { int buf[10]; buf[10] = 0; return 0; } このソースコードには問題があります.初見でわかるでしょうか? : : : 問題があるのは buf[10]=0 の部分です.C言語でやりがちなミスですが,これがバグやセキュリティホールの原因になります. C言語が難しい理由は二つあります.この手の問題を見逃しやすい点と,この手の問題を理解することが難しい点の二つです gcc 14 に解説してもらいましょう 上記の6行のソースコードをgcc14を使ってコンパイルしてみます ソースコードのファイル名は test.c と
未経験からエンジニアになり3年が経ちました。 この3年間はベテランエンジニアとの差を埋めるべく、プライベートの時間の大半を学習に充ててきました。幸い少しずつ成長を感じられ、業務では難易度の高い仕事を任せてもらえるようになったと感じます。このキャッチアップのために100冊以上の技術関連書籍を読んだことでしょう。 ここ最近、知人やTwitter経由で知り合った方から、私が学習に使った書籍について質問を頂くことが多いです。そこで、今後参照していただきやすいように、これまで私が読んで良かった書籍を1つの記事にまとめようと思います。 前提:エンジニアとして経験した技術 書籍について 全エンジニア向け Web / インターネット イラスト図解式 この一冊で全部わかるWeb技術の基本 (★) HTMLコーダー&ウェブ担当者のための Webページ高速化超入門 (★) Webを支える技術 -HTTP、URI
恐らく最も有名なOSSのゲームエンジンです。 UnityやUE5の代替となるソフトウェアです。 Godot以外にもOSSのゲームエンジンはいくつかありますが、現状実用に耐えうるのは恐らくこのゲームエンジンくらいです。 3D,2D双方の開発ができ、多くのプラットフォーム向けに出力できる、UnityやUE5に引けをとらない出来のソフトウェアです。 特徴は以下の通りです。 OSSかつ無料である すばらしい。 ゲームエンジン自体がかなり軽い(2桁MBくらいしかない) その分起動もかなり早い。この手軽さはやっぱり便利。 有名なゲームエンジンと比べ後発であるためUIが洗練されている 例えばUnityではオブジェクトにコンポーネントを足していくという感じですが、Godotは全てがノードでありシンプルな設計です。 エディタが内蔵されている 外部エディタは必要なく、全てGodot内で済ませられます。 基本的
はじめに 2021/10/26にM1 Pro/Maxを搭載したMacBook Proが発売され、現在環境構築をされている方も多いかと思います。 一方で、Pro/Maxも含めたM1 MacはIntel Macと同じ方法でセットアップできないツールが多く、また公式未対応時のイレギュラーなセットアップ方法の記事がネット上に多く存在するため、どのセットアップ方法が正しいのか判断するのが非常に難しい状況となっています。 そこで今回、私が調べた範囲で現時点でのベストプラクティスと思われる方法をまとめてみました。 方法選択には主観も含まれているため、「こちらの方が良い!」という方法をご存じであれば、気軽にコメント頂けるとありがたいです 更新情報 本記事は2021/10/30時点での内容をベースとしています。 発売直後でベストプラクティスが固まっていない要素も多いため、情報が入り次第適宜記事を更新していこ
登場人物は以下のとおり。 わい ・・・ 社内システム担当件Web担当 オタク君 ・・・ わいの部下、メガネクイクイ系 総務部長 ・・・ 4月から社内システムもみることになった(ド素人) セクシー ・・・ 部長の好みの新卒(セクシー系) という感じで4月から組織変更があったのだが、部長がどうやらオタク君のポジションをセクシーに置き換えたいらしい。 しかし社内システムはわいとオタク君が2年かけて構築したので、突然変わられると業務が回らない。 部長としては運用が安定してきたので、新人のセクシーにまかせたいらしい(わいらのおかげなんだけど・・・)。 セクシーは胸元がいつもチラチラしていて、完全に部長が趣味で採用したタイプである。 いやどうみても営業とかのほうが向いてるだろ・・・。 ある日の出来事である。 部長「わい君、セクシー君の研修が終わったから、今月から業務システムの全体管理者権限を与えてくれ
株式会社レアゾン・ホールディングス(本社:東京都新宿区、代表取締役:渡邉 真)は世界最高レベルの高精度日本語音声認識モデルおよび世界最大19,000時間の日本語音声コーパス※「ReazonSpeech」を公開いたしました。 2023年1月18日 株式会社レアゾン・ホールディングス(本社:東京都新宿区、代表取締役:渡邉 真)は世界最高レベルの高精度日本語音声認識モデルおよび世界最大19,000時間の日本語音声コーパス※「ReazonSpeech」を公開いたしました。 ※音声コーパス: 音声データとテキストデータを発話単位で対応付けて集めたもの。音声認識モデルを作成する材料として使用され、その規模と品質が音声認識の精度を大きく左右する。 ※2「ReazonSpeech」を用いた文字起こしサービスをプロジェクトwebサイトにて実際に試すことができます。 プロジェクトwebサイト:https://
皆さん、AIコーディングやっていますか?CursorやClaude CodeやCline/Roo Codeのようなコーディングエージェントを使えば、AIがコードを書いてくれるアレです。バイブコーディングとも言いますよね。 筆者は、Claude Codeが定額で使えるようになった5月末からClaude Max で Claude Codeを使ってきたんですが、とにかくストレスがたまることが多かったのと、プラン改悪や、相次ぐClaude Codeの性能劣化で、ClaudeおよびClaude Codeから抜け出したい!と思って、ここ一ヶ月Codexを試してきました。 また、Vibe Kanbanというツールを使って、こちらも運用してきました。 結論からいうと表題の通り、Vibe Kanban + Codex の組み合わせが、Claude Code を使っていた頃より遙かに快適です! 実際に、業務を
7/14/20232023年7月14日よりTBS金曜ドラマ『トリリオンゲーム』の放送が始まりました。弊社エンジニアチームは、1話のハッキングシーン作成にIT・セキュリティ技術協力として携っています。本記事では、その背景と詳細を解説します。 『トリリオンゲーム』は起業家とエンジニアの成長物語で、原作からドラマに至るまで、Flatt Security様による的確な技術監修がなされています。このたび弊社は、原作と台本のシナリオに基づいて、 現実的に可能なハッキングシナリオの具体化 詳細が設定されていなかったプログラムの作成 実際のプログラム・コマンドに合わせたセリフ・演技指導 セキュリティチャンピオンシップのルール設定、画面作成支援 を行いました。 金曜ドラマ『トリリオンゲーム』|TBSテレビ 以降、作成した資料や作成の舞台裏をピックアップして紹介します。 ■ 免責事項 本記事は、ドラマ中の技術
これを記事にしている 2025 年 5 月の二年ほど前 (2023-06-02) に、縁あって明治大学 情報科学科での特別講義 [1] を担当させてもらいました。 身内の評判は悪くなかったのでスライドは公開していたんですが、単に Google Slides を公開状態にしただけだったんですね。 [2] これではあとから参照・引用するのも難しく、ちょっともったいないかと思ったので、いまさらながら記事の形でまとめなおしておくことにしました。 一年も経てば情報が古くなってしまうコの業界です。賞味期限切れの話もあると思いますが、話のネタにでもしてもらえれば幸いです。 講義の対象と目的 この講義、目的は2つあって、まず「最新の情報科学トピックに触れる」こと。 それから、就職活動が始まる3年生がメインの対象者なので、 今後のキャリアプランとか人生指針に関するいろいろな視点を持ってもらうことです。 この
①レイヤーの責務違反の実装をしていないか ②高凝集/低結合になっているか 高凝集 クラスに関して メソッドに関して 低結合 ③ユニットテストを書きやすいか 合言葉 筆者執筆書籍 現場での導入で困ったら 株式会社ログラスの松岡(@little_hand_s)です。 little-hands.hatenablog.com ↑の記事でドメインオブジェクトの設計方針を書きましたが、それ以外の全般的な設計/レビュー観点について書きます。 非常に汎用性のある内容なので、数多くのプログラミング原則を覚えるより、まずこの観点でチェックできるようにすると即効性が期待できます。 前提として、階層化されたアーキテクチャ(オニオンアーキテクチャなど)を採用しているものとします。 ①レイヤーの責務違反の実装をしていないか 例として、「ユースケース層にドメイン層のルール/制約に関わる実装をしている」場合はNGです。
DDD以外の設計手法についてご教示いただきたく、DDDの主張をある程度正確に理解した上でDDDをこき下ろしているイメージの強いくまぎさんに質問させていただきました。 最近はソフトウェアの設計について調べると、DDDについての記事ばかりで辟易する一方、私がエンジニアになった頃にDDDに勢いがあった影響もあって私自身DDD以外の良い設計とされているものを知らず、DDDに胡散臭さを感じつつもDDDの考え方にとらわれている、毒親の影響を受けた子供のような状態から抜け出せずにいます。 その最たる例がリポジトリパターンです。 よく依存性の逆転・DIと一緒に語られますが、くまぎさんがおっしゃる通り余計にインターフェースを切るのはイケてないと感じます。また、DI抜きにしても、リポトリパターン由来の様々な問題(N+1やバルクアップデート、管理画面用のメソッド生やしたくなる問題など)に対する解決策として提示さ
もくもく会で話している中で、「技術書を読んでも頭に入ってこないし、プログラミングスキルが上がらない」という話になり、そのよさげな説明を思いついたので共有します。 具体的な話としては「本を読んでもスキルアップした感じがしない。それで本をよむモチベがわかない。」というものでした。これは僕もとても共感します。バックエンドエンジニアでいくつか有名な本があり(例えばPoEAAやDDD本)、読まないといけないと思い手を出しました。しかし、何を言っているかわからずひたすらに苦痛で、読み切ることができませんでした。結局これらを読み終えることができたのは、業務経験を4年ほど積んだあとでした。 なぜ、本を読んでも苦痛なのか、頭に入ってこないかを、今振り返ってみると、「全体感」と「土地勘」という例えで説明できるのではと思いました。 まず、前提としてあなたが新しい土地に引っ越してきたとします。その地域のことは全然
This is open-source software written by hobbyists, maintained by a single volunteer, badly tested, written in a memory-unsafe language and full of security bugs. It is foolish to use this software to process untrusted data. As such, we treat security issues like any other bug. Each security report we receive will be made public immediately and won't be prioritized. これは趣味人たちによって開発され、たった一人のボランティアによっ
■AIと性格選択が生み出す新体験 『電脳少女プログラミング2088-壊レタ君を再構築-』は、paizaがこれまでに提供してきた『Paiza Programming Game』(以下、PPG)シリーズの最新作です。PPGは、ユーザーのプログラミングスキルをS・A・B・C・D・Eの6段階で評価する「paizaスキルチェック*」のシステムを活用し、ユーザーが楽しくプログラミング問題に取り組みながら学習できる無料のプログラミングゲームです。 このゲームでは、「楽しみながらプログラミングを」というPPGのコンセプトを実現するため、生成AIを通じてフィードバックそのものをエンターテインメント化しました。 プログラミング学習は難しく、特にエラーやつまずきによってモチベーションが低下しやすい課題があります。この課題を解決するため、生成AIを活用し、楽しくスキルアップできるPPGを作りました。 ゲームプレイ
まだ使ってる?今は非推奨となったJavaScriptの書き方いつも何気なく使っていたコードをふと調べ直してみると、知らないうちに「Deprecated(非推奨)」と書かれている…なんてこともありますよね。今回はJavaScriptを書いていて出くわした非推奨となったものをいくつか紹介します。 document.write画面にテキストを表示する document.write 。JavaScript の勉強を始めて最初に書いたコードがこれだったという方もいるのではないでしょうか?これはブラウザーのレンダリングに悪影響が出たり、DOM への影響などを考慮して「強く非推奨」とされています。 これまでの記述例: document.write("やっほーい"); 解決策 1:textContent や innerHTML を使う代わりに文字列を書き換える textContent や、HTML も含め
企業が新人エンジニア向けに公開している研修資料をまとめました。 リクルート リクルート エンジニアの心構えから、 JavaScript TypeScript AWS など、実際の研修資料の中身まで多数公開されています。 こちらの研修資料を見るだけでもかなり勉強になる内容となっているので、エンジニアの方は必見。 リクルートテクノロジーズ エンジニアコース新人研修の内容を公開します!(2020年度版) 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2021年度版) 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2022年度版) GMOペパボ GMOペパボ エンジニアの研修資料を毎年公開しています。 そのため最新の情報が得られるので、毎年チェックしましょう! またGoogle Cloud認定資格 Professional ML Engineer合格に向けた
HTML, CSS, JavaScriptをはじめとしたさまざまな言語に対応、クラウドでの同期機能も備えたオープンソースのコードスニペットマネージャー「massCode」がv3に神アップデートされたので、改めて紹介します。 macOS, Windows, Linux対応、日本語の入力など日本語環境も完全サポート。クラウドで同期できるので、すべての環境で同じコードスニペットを使用できます。 非常に快適で高速に動作し、VS Codeとの連携でさらに便利になっています! massCode massCode -GitHub massCodeの特徴 massCodeのダウンロードとインストール massCodeの使い方 massCodeの特徴 massCodeは、デベロッパー向けのコードスニペットマネージャーです。ライセンスはGNUで、オープンソースなので商用でも無料で利用できます。 macOS 1
哲学者の東浩紀さんと思想史と近代科学史(特にコンピュータ史)の本を一緒に書いてみようという企画が今年から立ち上がった。 すると東さんがある日の生放送で、「しかし俺も最低限プログラムくらいかける必要があるんじゃないか。しかし最低限のプログラムとは何か」と言っていたところ、シラスの桂さんが「エラトステネスの篩ふるいとかですかねえ」と言っていて、もうエラトステネスと聞いたら黙ってはいられない吾輩が怒涛の勢いで生放送したところ、東さんが一番乗りで入ってきてくれたのでその場でライブコーディングしながらプログラムの書き方を簡単に教えることにした。 https://shirasu.io/t/zelpm/c/shi3zlab/p/20240105163405 プログラミング言語習得のコツプログラミング言語は、言語であるため、マニュアルを頭からお尻まで読んで内容を暗記するよりも、「これってどうやんの?」「こ
概要 OpenAIは2025年5月16日、新たなAI搭載のコーディング支援エージェント 「Codex」 を発表しました。これは従来のコード補完モデル(旧Codex API)とは異なり、 クラウド上で動作する自律型のソフトウェア開発エージェント です。Codexは並列に複数のタスクをこなすことができ、コードの新機能実装、コードベースに関する質問への回答、バグ修正、プルリクエストの提案など、様々な作業を代理で実行してくれます。各タスクはクラウド上の独立したサンドボックス環境で実行され、ユーザーのリポジトリがあらかじめ読み込まれた状態で処理が行われます。 Codexの頭脳となっているのは 「codex-1」 と呼ばれる最新モデルで、OpenAIの高度な大規模言語モデル「o3」系列をソフトウェア開発向けに最適化したものです。このモデルは実際のコーディングタスクを用いた強化学習(実環境で試行錯誤させ
本記事は、学生本人から許可を頂いて書いています。 はじまり こんにちはTECOPARK株式会社代表の三宅と言います。会社の代表作はPICO PARKという協力アクションパズルゲームです。今はゲームデザイン業務がメインですが、職業ゲームプログラマー歴が13年、メインプログラマー経験があります。 さて、事の始まりはそんな私がゲーム会社でゲームプログラマーをやってた時代にさかのぼります。私は当時、ゲームプログラマー志望の就活生のプログラムコードを見る機会がありました。ちゃんと設計されているコードを持ってくる学生ももちろんいるが、今のこのタイミングでこのレベルのものを持ってくるとなると厳しい就活になりそうだなと思う子もいました。就活のタイミングではなくもっと早いタイミングで見る機会があればいくらでもアドバイスできたのにな。そう思うこともありました。 その時、思ったのである。 「専門1年または大学1
これは はてなエンジニアアドベントカレンダー2023 2日目の記事です。 はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog はてなエンジニアのカレンダー | Advent Calendar 2023 - Qiita トップバッターは緊張するけど、順番が回ってくるまで長い間ソワソワするのも嫌、という理由で例年2日目を狙うようにしている id:pokutuna です。今年も成功しました。 観光名所とは 目を閉じれば思い出す、あのコード... あの Issue... あなたが Web 系のエンジニアであれ、趣味で開発している方であれ、必要に応じてライブラリやフレームワークのコードを読むのはよくあることでしょう。公開の場で開発されているソフトウェアは、ソースコードだけでなく、開発コミュニティでの議論やバグ報告なども見ることができます。 リポ
参考 プリンシプル オブ プログラミング - 3年目までに身につけたい一生役立つ101の原理原則 発行: 2016/3/23 著者: 上田 勲 まえがき プログラマーの世界で語り継がれる原則や格言を知ることは、その共通の言語や道徳を理解する手助けとなります。 『プリンシプル オブ プログラミング』(以下、プリプロ)は、統一された語句と形式により、先人のプログラマーたちが重要視していた思考法やアプローチを、微妙な概念の違いに気を使うことなく理解できるよう構築されています。この記事では、この本を読む上で役立つ101の原則マップと原則から抽出した価値観をまとめます。プリプロを読む際のガイドになればと思います。 一方で、プリプロに収録されていないウィットに富んだ原則や格言も多く存在します。この記事では、主に私の現場で重要視しているプリプロの101の原則以外の原則・格言も追加で紹介します。 プログラ
本記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめにみなさん、docker composeを利用しているでしょうか? 複数のdockerコンテナをまとめて立ち上げたり、環境変数を定義できたり便利ですよね。 この記事ではある程度docker composeを利用している方向けに私が便利、便利そうと感じたdocker composeの機能を挙げてみました。 docker compose cli v2を利用docker-composeではなく docker composeコマンドも利用可能になっています。 Docker Desktopでは v3.4.0から利用可能で、基本的にはコマンドの互換性あります。 ファイル監視による自動更新docker compose 2.20.0からCompose
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Seven things I know after 25 years of development 原文公開日: 2025/01/27 原著者: zverok 日本語タイトルは内容に即したものにしました。 本記事は、私が2024年9月にEuRuKoカンファレンスで行ったキーノートスピーチを大まかに記事化したものです(スピーチの動画はこちらです)。残念ながら録画という形での登壇でしたが、それでも大変光栄なことでした。このテーマは私にとってとても重要なので、テキストで読みたい方のために、本記事で少々手を加えた形で公開することにいたしました。 私はかれこれ25年にもわたってソフトウェア開発に携わってきました。 そのうち20年間はメインの言語としてRubyを用いてきました。 私のRuby言語への貢献や、その他オープンソースへの貢献について
みなさん、こんにちは!9月は久しぶりに個人開発をしてました。 今回はGeminiを使って、ちょっと変わった文字起こしアプリを開発したので、その裏側をお話ししていきたいと思います。その名も「無限もじおこし」です! 「無限もじおこし」はその名の通り、時間無制限、無料で使える文字起こしアプリです。普通に考えたら「え?大丈夫なの?」って感じですよね笑 でも、ちゃんと収益的に成り立つ算段を立てています。この記事ではそこらへんの考えや、アプリ開発における技術的な学びについてまとめていきたいと思います! ※Android版は鋭意開発中です!ウェイトリストはこちら 「無限もじおこし」の紹介主な特徴音声の文字起こしが無制限に可能 (10時間でも100時間でも!)使いやすさにこだわった機能 (コピー、シェア、自動タイトル生成など)「よく使う単語帳」に登録すると、文字起こしの変換精度アップバックアップ機能がある
昨日話題になった「BitNet」という1ビットで推論するLLMがどうしても試したくなったので早速試してみた。 BitNetというのは、1ビット(-1,0,1の三状態を持つ)まで情報を削ぎ落とすことで高速に推論するというアルゴリズム。だから正確には0か1かではなく、-1か0か1ということ。 この手法の行き着くところは、GPUが不要になり新しいハードウェアが出現する世界であると予言されている。マジかよ。 https://arxiv.org/pdf/2402.17764.pdf ということで早速試してみることにした。 オフィシャルの実装は公開されていないが、そもそも1ビット(と言っていいのかわからない,-1,0,1の三状態を持つからだ。 論文著者はlog2(3)で1.58ビットという主張をしている)量子化のアルゴリズム自体の研究の歴史は古いので、BitNetによるTransformerの野良実装
WindowsやmacOS、Linuxなどのクロスプラットフォーム対応のデスクトップアプリ開発を容易にするフレームワークとして高い人気を持つフレームワークが「Electron」です。 ElectronはChromiumとNode.jsを用いることで、HTML/CSS/JavaScriptのWebテクノロジーによってデスクトップアプリケーションを開発できるのが最大の特徴です。 いまやElectronは、Visual Studio CodeやMicrosoft Teams、Slack、GitHub Desktop、そして最近話題のNotionなど、さまざまなアプリケーションに採用されています。 このElectronの優れた特徴を備えつつ、よりメモリ消費量が小さくファイルサイズもコンパクトで、高いセキュリティを備え、柔軟なライセンスを実現しようと開発されたのが「Tauri」です。 Tauriは、
まえせつ こんにちは、クラッソーネ CTOのマツモトです。好きなザクはMS06R-2です。 さて、弊社の開発チームには比較的キャリアの浅めなメンバもいます。 そんな彼/彼女たちに読んでおいてもらえると嬉しいなあと思っている書籍を挙げてみようと思います。 雑誌の4月号なんかでよくある新人特集みたいな感じですね。 選書基準としては、今この瞬間の How to ではなく、知見の寿命が長そうなものとしています。 これは余談なのですが、むかしよく勉強会とか読書会とかを主催していた時期があって、その時のコンセプトが「明日の仕事に役に立たない」でした。 ベースとしては「仕事でいま必要なことは今すぐちゃんと調べればいいだろ、仕事なんだし」と思うところがあって、「今すぐに役には立たないかもしれないが、N年後にはきっといい影響が出ているはずであろうこと」をテーマに選んだりしていました。(極論すれば「大学の講義
ビジネスリーダーをはじめ、ソフトウェアプロジェクトの関係者にとって、ソフトウェア開発上の関心事は、開発の進捗とシステムトラブルだ。ソフトウェアの内部品質や開発プロセス上の問題や課題なんて、開発者以外に興味を示す人などほとんどいない。だから、関係者ばかりか開発者自身も、開発の進捗とシステムトラブルにばかり注意を向ける。 そのような状況に、一部の優秀な開発者は我慢ならない。憂いている。「このままではまずい、積み上がった問題に取り組むために時間が欲しい」「まとまった時間でなくても、継続的に取り組むための少しの割り当てでも構わない」と。そんな願いも虚しく、使える時間はすべて、担当する開発を進捗させることにのみ費やすことを強いられる。 私たちエンジニアリングマネージャーやテックリードは、このような状況を見て見ぬふりをしていないだろうか。開発の進捗やシステムトラブル以外にも注意を向けるべき対象がある。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く