第1章 導入 (6~54 ページ) 第2章 P 対 NP 問題の定義 (55~90 ページ) 第3章 P=NP の場合にわかること (91~111 ページ) 第4章 P≠NP の場合にわかること (112~226 ページ) 第5章 まとめ (227~234 ページ)
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに どんな仕事でも強い人は存在する。 でも最初から強い人は珍しい。 これは、web 業界に身を置いてみて、信じられないくらいムキムキになっていった人たちを見てきた私が送る こうしたら強くなれるかもしれない?指南書である。もしエンジニア職に興味があるのであれば、一考になるかもしれない。 最初から強いやつの特徴 平日の稼働時間以外も勉強 or 開発する 土日も勉強 or 開発する 公式ドキュメントをちゃんと読む 以上のような当たり前のことは、最初から強い人じゃなくてもやるので特徴に入れません。 1. 読解能力が異常に高い 国語の力です
それじゃあまりにも天才しかできないだろうということでニーモニックというのを持ったアセンブリ言語ができた 多分当時の人の中にあった議論は、こんなの1と0の羅列に名前つけただけだろ、なんかいいことあんの?という人たちと、まさにブレークスルーだ世界が変わるとエキサイトした人たちだろう。 色々あったが、人にも読めるソースをアセンブリ言語に変換してくれるCが出来た。 多分このときも単なるアセンブリのスーパーセットだろ?なんか意味あんのか?っていう人たちと、やばいレベルでプログラミング書きやすくなったとエキサイトする人たちに分かれたことだろう。 その後Javaが登場してオブジェクト指向が花開いた。 このときも、構造化プログラミングに毛が生えた程度のもんだろ?何が嬉しいんだ?という人と、オブジェクト指向なら何でもできる!とエキサイトした人たちで溢れかえったことだろう。 Java以降のIT界隈ではもはやオ
清水 亮 ryo_shimizu 新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。 AIはもはや十分進歩してきた。これからのホワイトカラーは、ハッカソン型の仕事へ切り替えることを早晩要求されるようになるだろう。 それは仕事のプロセスがより創造的になることを意味する。創造性を持てない人は、ホワイトカラーではいられなくなる。 なぜなら、これまでのホワイトカラーの仕事の大部分は、AIで十二分に置き換え可能なものだからだ。 オフィスにおける、非創造的な仕事を列挙してみよう。 メールの整理、議事録のまとめ、契約の締結、役所との対応、給与計算、家賃の支払い、あらゆるルーティンワークと呼ばれるものに、創造性はない。 逆に創造的な仕事を考えてみると、企画や制作という仕事がある。実は接客
1. はじめに この記事の目的 「Dockerは使ったことあるけど、Dev Containersって結局何が嬉しいの?」 この疑問に答えるのが本記事の目的です。Dev Containersの概念から導入手順、Dockerfile・docker-compose.ymlとの関係性まで、図解を交えながら網羅的に解説します。 対象読者 Dockerは触ったことがあるが、Dev Containersは初めてのエンジニア 個人開発で環境構築の「おまじない」から脱却したい初中級者 「動いてたのに動かなくなった」問題に悩んでいる方 この記事を読むとわかること Dev Containersの仕組みと従来開発との違い 5分で動く環境を作る具体的な手順 Dockerfile・docker-compose.ymlとの使い分け 導入すべきか判断するためのチェックリスト 2. Dev Containersとは何か 一
皆さんこんにちは!! 今日から何回かに分けて、Laravel8とVue.jsを使用して「スケジュール管理アプリ」を作成したいと思います。 簡単に言えば、「Googleカレンダーのクローン」を作成していくチュートリアルです。 WEBアプリケーションにスケジュール管理機能を組み込む場合、「FullCalendar」を利用することが多いと思いますが、今回はFullCalendarなどは使用しません。 LaravelとVue.jsは非常に人気が高いので、多くの解説記事やチュートリアルが出ています。 ただ、どれも小さなサンプルを作ったり、解説が断片的で、実際の開発に活かせないものが多いです。 今回から皆さんと作る「Google Calendar Clone」は、LaravelやVueを触ったことがない方には少し難しいかも知れませんが、中規模のアプリケーションを開発することで、LaravelやVue.
はじめに 2021年、Pythonで複数の暗号系ライブラリを開発してPyPIで公開してきました。その過程で、setuptools、flit、poetryと、幾つかのパッケージ管理をわたり歩き、GitHub上でのCI/CDも色々試す中で私的なべスプラが定まってきたので、2022年初に備忘録としてまとめておきます。 具体的には、pyenv、poetry、pre-commit、tox、GitHub Actions を活用し、低コストで(=なるべく自動で)、高品質のプロダクトをPyPIにデプロイする方法・設定を共有します。個別のツールの記事はよく目にするのですが、開発ライフサイクル全体をカバーする記事がなかなか無かったので。 開発環境の整備 - pyenvで複数のPythonバージョンでの開発環境を整備 パッケージ管理 - poetry/pyproject.tomlでの一元的なパッケージ管理 静的
背景 (Background) どのシェルを使うか (Which Shell to Use) Bash は実行が許可された唯一のシェルスクリプト言語である。 実行可能ファイルは #!/bin/bash と最小限のフラグで始めなければならない。シェルオプションの設定に set を利用することで、 スクリプトを bash script_name として呼び出してもその機能を損なわないようにせよ。 全ての実行可能シェルスクリプトを bash に制限することで、全てのマシンにインストールされた一貫したシェル言語を得る。 これに対する唯一の例外は、コーディング対象によって強制される場合である。この1つの例として、Solaris SVR4 パッケージは、どんなスクリプトにも plain Bourne shell であることを要求する。 いつシェルを使うか (When to use Shell) シェル
アジャイル型の開発が導入されていない現場であっても、そして一人であっても、実践可能なアジャイルに関するプラクティスは存在します。 例えば、自動テストや、テストファースト、テスト駆動開発(TDD:Test Driven Development)です。ユニットテストフレームワークを使ってテストコードを書いて開発しながらテストを実行する「自動テスト」、実装の前にそのテストコードを書く「テストファースト」、テストと実装を繰り返しながらインクリメンタルに設計・開発を行うのが「TDD」。これらプラクティスのなかで、はじめの一歩となるのが自動テストですが、1人で実践するには、どこからはじめるか、どうテストを組み立てればよいのか、あるいは自分のテスト方法は適切なのか、不安を持つこともあるでしょう。 そこで本稿では、さまざまなチームや組織へのテスト手法の導入を支援し、精力的に講演や執筆などを行ってきたこの分
Devin, Coding Agent (Github Copilot), Codex (OpenAI) やJules (Google)のような、バックグランド動作するコーディングエージェントが続々と発表されて、ついに先日のAnthropicのカンファレンスでClaude Codeでも同様のことが行えるようになりました! Claude CodeのDevin型コーディングエージェントはGithubワークフロー上で動作するのですが、なんと実装のコードがなんと公開されているではありませんか!! プロンプトやGithubのMCP設定等の実装も垣間見ることが出来ます! AIエージェントを開発している身からすると常時稼働型エージェントを作りたいと考えており、バックグラウンド型のコーディングエージェントの動作はどうしても深ぼらねばと思っていた矢先に撒き餌が...! それだけでなく、プロンプト設計自体の完
この記事は2024/6/27に全面的に修正しています。 Pyxel(ピクセル)というPython用レトロゲームエンジンがあります。 画面サイズ256x256で発色数は16色、サウンドはシンプルな波形の音色を最大4音まで発音可能、といったシンプルな仕様で、扱いやすいPythonのコードを用いた低学習コストのゲーム開発ができます。 最近になってWebアプリ化できるようになったため、開発した作品は誰にでも気軽にプレイしてもらえるようになりました。すごいですね。 Pyxelについては以下で詳しく紹介しているのでぜひご覧ください。 実は以前の私は愚かにもこれをそのままネットで公開してしまっていたのですが、「いやそれはさすがにダメでしょ」というご指摘を喰らいまくり、その後公開を取り下げています。 なので、「どんな出来栄えなの?」と興味をもっていただいても現時点ではプレイいただくことはでないのですが、公
こんにちは、とまだです。 先日、こんな記事を書かせていただきました。 【AI 駆動開発】Cursor を使いこなして 1 ヶ月でプログラミング学習サイトを作ったのでノウハウを伝えたい Cursor と Claude を使った AI 駆動開発で、1 ヶ月でプログラミング学習サイトを作ったという内容でした。 おかげさまで多くの方に読んでいただけたようで、お役に立てて嬉しいです。 ただ、前回の記事では 「デザインの統一感で苦労した」 という反省点もお伝えしていました。 今回はその続編として、Apple 風のデザインルールを策定することで UI 調整が劇的に改善した 経験をお伝えしたいと思います。 ※「デザインルール」「デザインルール」「デザインシステム」など、同じような意味で使われる言葉ですが、ここでは「デザインルール」と呼ぶことにします。 この記事でわかること Claude を使ったデザインル
Pandasの read_csv における欠損値文字列の扱い Pythonのデータ解析ライブラリPandasでは、CSVファイルを読み込む際(pd.read_csv())、特定の文字列が自動的に NaN (欠損値)として扱われるという仕様があります。 ドキュメントによると、デフォルトで以下の値がNaNと解釈されます。 By default the following values are interpreted as NaN: “ “, “#N/A”, “#N/A N/A”, “#NA”, “-1.#IND”, “-1.#QNAN”, “-NaN”, “-nan”, “1.#IND”, “1.#QNAN”, “<NA>”, “N/A”, “NA”, “NULL”, “NaN”, “None”, “n/a”, “nan”, “null “. 実際に起きた問題: 野根(None) という地名
はじめに 年末年始でPlaywright MCPを触り直しています。きっかけは、MCPがLinux Foundation傘下のAgentic AI Foundationに移管されたというニュースでした。GitHub Starsは23,000を超え、2024年11月のMCP発表からわずか1年。最初は「また新しいツールか」程度に思っていたのですが、触っているうちに、これまで経験してきたブラウザ自動化とは何か違うと感じ始めました。 その違和感を年末年始で整理してみた結果、自分なりに言語化できたのが「Webページの表現方法」の変化という視点です。 PlaywrightとPlaywright MCPは別物である 最初に混乱したポイントを共有します。 PlaywrightとPlaywright MCPは、関連はあるものの根本的に異なるものです。自分は「PlaywrightのMCP対応版」くらいに思って
はじめに Google AntigravityのようなAgentic AI(自律型AIエージェント)が登場し、私たちの開発スタイルは大きく変わろうとしています。単にコードを補完してもらうだけでなく、「目的を伝えて、一連のタスクを自律的に遂行してもらう」ことが可能になったからです。 Antigravityの強力な機能の一つに「Skills(スキル)」があります。これは、特定の一連の作業手順やルールをパッケージ化し、AIに「新しい能力」としてインストールできる機能です。 この記事では、開発効率を劇的に向上させるために、エンジニアが今すぐ自作すべき5つのSkillsのアイデアを紹介します。これらを実装することで、あなたのAIエージェントは「汎用的なアシスタント」から「最強の専属パートナー」へと進化します。 エンジニアが作るべきSkills 5選 1. 技術記事・ドキュメント執筆Skill (te
こんにちは、mayaです! 最近、Claude Codeでボリュームの大きいタスクを実行していると、途中でAuto Compactが発動してコンテキストが圧縮され、それまでの経緯をClaude Codeが見失ってしまう問題に悩まされていました。 せっかく良い流れで進んでいたのに、突然とんちんかんな作業を始めるあの絶望感、分かる方も多いのではないでしょうか😭 そんな中、Codex CLIがMCPに対応したという情報を見つけて試してみたところ、これが予想以上に良い体験でした! Claude Codeがタスク管理役、Codexが実行役という役割分担により、コンテキストウィンドウをほとんど消費せずに大規模なタスクを自律的に完遂できるようになりました。 この記事で分かること / 対象読者 Claude Codeのヘビーユーザー向けの内容です コンテキストウィンドウ問題の実践的な解決方法 Claud
はじめに 自分は渋谷のWeb系開発会社にて執行役員兼エンジニアをやっています。(新卒入社3年目) 直近では6~8名程のエンジニアがいるプロジェクトで、ディレクトリ設計やissue作成、コードレビュー、スケジュール管理、PMへのUI/UX及び機能提案などを行なっています。 その中で自分が「エンジニアチームにとって開発しやすい環境整備」を色々試し、実践してきたので整理していきます。 この記事の主な対象者 エンジニアチームの開発モチベーションを上げたい人 エンジニアにとって開発しやすい環境の作り方 おことわり 今回紹介するのは自分が実践してきた一例であり、必ずしも正解というわけではありません 「こうしなさい」ではなく「こうするとより良くなるかも」といったモチベで書いています 具体的な開発の設計を紹介するものではありません エンジニアが開発しやすい環境作り 5つのセクションに分けて紹介していきます
TechRepublicより。 オーウェン・ヒューズ Pythonプログラミング言語の生みの親グイド・ヴァンロッサムとの質疑応答で、Python 2.0からPython 3.0への移行がトラブル続きだったことを受けて、「Python 4について真剣に語ることはほとんどタブー」だと述べました。 グイド・ヴァンロッサムは、Microsoft Reactorとのインタビューで、Pythonバージョン 4.0の可能性をほぼ否定しました。Image: Dan Stroud under the Creative Commons licence Python 4.0に期待しないで下さい。人気のプログラミング言語の生みの親であるグイド・ヴァンロッサは、おそらく日の目を見ることはないだろうと述べています。 Microsoft Reactorとのインタビューで、ヴァンロッサムはPythonの将来とプログラミン
https://www.inceptionlabs.ai/news Inceptionという会社のMercuryという拡散言語モデルがすごい。 いつか出るだろうと思っていたのだが、なかなか姿を見せなかった、拡散言語モデルである。 スピードの差は一目瞭然 速すぎワロタいまAIは、「頭の良さの差」を競う段階に来ている。 「頭の良さ」を測る尺度はたくさんあるが、僕は答えの用意されたテストを解くことをたいして良い尺度だと思っていない。まあ答えの用意されたテストしか解いてこなかった人たちにはそれでも十分な尺度なのだと思うが。 ただ、「考える速さ」というのは間違いなくひとつの尺度だし、その点で言うとMercuryは速すぎなのである。 なぜMercuryがこんなに速いのか。 それは、Transformerじゃないからだ。 TransformerにしろRWKVのようなRNNにしろ、「ここまで書いたから続き
ツールは、Assets 内の「hatebu.xlsm」です。 使ってみましょう。そうしましょう。 紹介されました! 窓の杜 さんで紹介されました! 業務中にこっそりハテぶできるExcelマクーロ「エクセルではてブを見るやーつ」【レビュー】 - 窓の杜 ありがとうございます! 画像付きで解説があってすごくわかりやすいです! このツールのポイントは3つありますのコーナー 業務時間中でも 安全に はてブ閲覧 エクセルで資料を眺めてる、と見せかけて はてブを閲覧することができます。 閲覧ページは カスタマイズ可能 閲覧できるのは、カテゴリー別のホッテントリだけではありません。 自分のサイトへのブクマ一覧などを表示することもできます。 NG機能の搭載 キーワードやドメイン、IDなどを NG指定できます。 また、完全に隠すか、ほんのり隠すかを選べます。 基本の使い方を紹介するコーナー 初回に一度だけや
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Information 2024/7/24: Ibis-Polars vs Native Polars Ibis-Polars と Native Polars の処理速度の比較記事を書かれている方がおりました。 Ibis 経由で Polars を使用しても Polars と処理速度に大きな差がないことを示していました。 ibis-frameworkでPolarsとSQLをつかってみた 2024/1/14: Kaggle notebook for Ibis Kaggle で Ibis を使用するための Sample Notebook を用
I have met a lot of developers in my life. Lately, I asked myself: “What does it take to be one of the best? What do they all have in common?” In the hope that this will be an inspiration to someone out there, I wrote down the traits I observed in the most exceptional people in our craft. I wish I had that list when I was starting out. Had I followed this path, it would have saved me a lot of time
jq(https://stedolan.github.io/jq/)の紹介では、「JSON処理のワンライナー〈一行野郎〉としてめちゃくちゃ便利!」とアピールするのが定番です。もちろんそれは本当で、「めちゃくちゃ便利!」です。が、実は jq は、ワンライナー記述にとどまらない、かなり本格的なプログラミング言語です。 JSON処理のためのDSL〈Domain Specific Language | 領域特化言語〉なので、汎用言語ではありません。しかし、汎用言語が備えている言語機能の一部(関数定義、モジュールシステムなど)を jq も持っています。また jq は、独特で楽しいプログラミング・パラダイム -- “パイプライン指向”に基づいて設計されています。 この記事では、ワンライナーを超えた jq の使い方と、プログラミング言語としての jq の特徴を紹介します。長い記事になってしまったので、一
1. はじめに 2. 制約 3. トライアル成果 発見1. 技術負債の特定とリファクタリング実装の半自動化 発見2. イベントストーミングで設計した画像をもとにドメインモデルと制約の実装 発見3. 指示範囲を明確に絞れば、人より格段に早い 発見4. 開発者の学習効率を上げる Devin or Cline? 4. 25年3月時点での課題 5. 投資対効果と組織スケールの変化 AIツールの投資対効果 AIツールによって変化した組織スケールの方法 今後の展望 1. はじめに こんにちは。DMM.comでプラットフォーム開発本部の副本部長をしている石垣です。 今回は当社で実施したAIエージェント「Devin」と「Cline」の導入検証の結果について共有したいと思います。 DMMグループのクリエイター組織は、現在1,200名近くのメンバーを抱え、エンジニアだけでも1,000名近くのメンバーがいる組織
いつもはてなブックマークをご利用いただき誠にありがとうございます。はてなブックマーク開発チーム、ディレクターの id:yone-yamaです。 ブラウザ拡張機能に関するアップデートをお知らせいたします。 拡張機能に「コメント簡易閲覧機能」が追加されました Chromeウェブストア Firefoxアドオンページ 具体的な変更点 補足:コメント簡易閲覧機能に関するこれまでの経緯 旧バージョンの拡張機能からの移行について 拡張機能に「コメント簡易閲覧機能」が追加されました Chrome・Firefoxで提供している拡張機能「はてなブックマーク ブックマーク機能」で、コメント簡易閲覧機能の提供を開始しました。 Webページに集まったブックマークコメントを一覧で確認できるコメント簡易閲覧機能は、これまで旧バージョンの拡張機能でのみ提供していた機能です。 今回のアップデートで、「はてなブックマーク ブ
概要 Junio C Hamanoさんに興味を持って調べていると、Linusさんが書いたGitの初版は1244行ということが分かりました。Gitの初版について、軽く行数の確認とビルドチャレンジをして、あまり調べずに動かしながら機能を推測してみました。 はじめに Highlights from Git 2.39 の冒頭で登場するcommit数が一番多い方「Junio C Hamano」さんを知らなかったので調べてみました。 gihyoのインタビュー記事が面白かったです。Junio C HamanoさんはGitのメンテナで、LinusさんからGitのメンテナを引き継いだすごい方だということを知りました。 このgihyoのインタビュー記事の中で「MLで流れてきたGitのコード行数は1244行だった」というところが気になりました。調べてみると、2020年にTwitterでRui Ueyamaさんへ
メモリー関連の不具合を減らすために、「Android」の新しいコードにRustを使用するというGoogleの判断は、成果を挙げているようだ。この数年で、Androidのメモリー安全性関連の脆弱性は半分以下になった。この成果が達成された時期は、GoogleがCやC++からメモリー安全性の高いプログラミング言語であるRustに切り替えた時期と一致する。 Androidに発見されたセキュリティホールの中で、最も件数が多かったカテゴリーがメモリー安全性関連の脆弱性でなかったのは2022年が初めであり、Googleは1年前に、「Android Open Source Project(AOSP)」で新しいコードのデフォルト言語をRustに切り替えている。 GoogleがAndroidに使用しているほかのメモリー安全性を備えた言語には、JavaやJava互換のKotlinがある。AOSPで主流の言語はま
はじめに ITの世界で「低レイヤ技術」と呼ばれるものがあります。明確に定義されているわけではありませんが、アプリケーションのような直接エンドユーザに触れる部分ではなく、しかもなるべく生のコンピュータに近い部分、たとえばOSカーネルやコンパイラ、CPUを開発する技術などがあります。これらの技術に明るい人はそうそういないのですが、「やってみたい」という根強い人気があります。 学生のかたでもセキュリティキャンプなどで実際にある程度身につけてしまうような人もいます。そしてますますこの手の技術に趣味としてのめり込んでいって楽しくなる…というところまではいいのですが、「ではこの技術を会得した先に何があるのか」と不安になる人も多いようです。とくに学生さんの場合は「低レイヤ技術を使って今後なんらかの仕事をして生きていけるのか?」といったことが気になるようです。今日もそのような話を少し耳にしたので、自分の経
一般的にサービスの良い面は語られがちですが、残念な面について語られることは少ないですよね。 そこで本記事ではAzureサポートの残念な点をあえて挙げることで、Azureの利用を検討している方々にとっての判断材料となることを目的としています。 Azureのサポートプラン Azureサポートには主に以下4種類のサポートプランがあります。 本記事や他の情報も踏まえた上で読者の皆さんがAzureを使用するという結論に至った場合、サポートプランは Developerプラン を推奨します。 Developerプランでは事足りず上位のプランで要求を満たせるユースケースというのは非常に限られていると感じます。 この記事を読んでいただければ理解いただけると思います。 重大度はユーザ側が問い合わせ時に選択します。 事業へ大きく影響する問題は重大度A、事業へそれなりに影響する問題は重大度B、事業への影響が小さい
Windowsユーザーの皆さん、手軽にLinux環境で開発したいですよね!そんなときWSL2やコンテナが選択肢に上がるでしょう。VSCodeのRemote Development機能を使い、どちらも試してみました。Windows・WSL・コンテナを使い分けつつ、VSCodeで快適に開発ができるようになります! おおまかな流れ 【準備編】WSL2の有効化と拡張機能のインストール 【WSL編】VSCodeからWSL2にリモート接続する 【コンテナ編】Dockerのインストール 【コンテナ編】VSCodeからDockerコンテナにリモート接続する 【コンテナ編】コンテナでWebサーバーを立て、ブラウザからアクセスする ※ 筆者の環境は Windows10 Home 21H1 です。Windows10 Pro/Enterpriseとは手順が異なるかもしれません。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く