「ソースコード」を含む日記 RSS

はてなキーワード: ソースコードとは

2025-11-06

anond:20251106164127

現在、LLM(大規模言語モデル)によるバイナリコードの直接的な生成は、ソースコード生成と比較して、一般的に非効率とされる分野です。

📜 ソースコード生成の優位性

LLMは、大量のソースコードデータで事前学習されているため、特定要件に基づいたソースコードの生成において顕著な能力を発揮しています

GitHub Copilotなどのツールは、開発者コーディング作業効率化しており、その有効性は広く認識されています

🤖 バイナリコード生成・理解の挑戦

バイナリコードは、ソースコード比較してセマンティック情報意味的な情報)が失われているため、LLMにとって直接的な生成や理解は困難なタスクと見なされています

現在研究の焦点は、生成よりもむしろ既存バイナリコード理解分析(例えば、関数名の回復バイナリコードの要約、脆弱性分析など)の分野に置かれています

📌 効果定義評価の難しさ

現在開発プロセスを考えると、多くの専門家は、人間理解修正デバッグやすソースコード生成に当面はより大きな実用的な価値があると見ている可能性が高いです。

一方で、バイナリコード理解分析におけるLLMの潜在能力は、リバースエンジニアリングセキュリティ分析の分野の専門家からは関心を集めています

 

したがって、現在技術的な難易度研究の進捗状況から、「コード生成の方が現時点では実用的で効果が高い」と考える専門家が多いと推測されます

勉強になった

Q.

生成AIソフトウェア開発を支援してもらう場合ソースコード作成を依頼する形式が多いと思いますが、実行ファイルを直接出力してもらうことも技術的には可能なのでしょうか?

A.

生成AIによる実行ファイルの直接出力は、技術的には極めて困難です。現在のLLM(大規模言語モデルベースの生成AIは、ソースコードの生成には向いていますが、実行可能バイナリファイルを直接出力することには根本的な制約があります。​

技術的な制約

LLMはテキストベーストークン処理を基本とする設計であり、バイナリデータを直接扱うことができません。実行ファイルは0と1の連続したバイナリコードですが、LLMはこの形式データを生成するようには訓練されていないため、バイナリファイルを直接出力することは現在アーキテクチャでは実現が困難です。​

従来のソフトウェア開発では、ソースコードコンパイルアセンブルリンクという複数段階のプロセスを経て実行ファイルが生成されます。各段階で最適化機械語への変換が行われるため、この過程を完全に省略してAIが直接バイナリを生成することは技術的に非常に複雑です。​

理論的な可能

研究レベルでは、バイナリデータを扱う試みも存在します。例えば、LLM4Decompileのような研究プロジェクトでは、バイナリコードを逆コンパイルする際にバイナリを一度アセンブリ言語に変換してからLLMで処理しています。逆に言えば、生成時も同様の変換プロセス必要になると考えられます。​

現実的アプローチ

実務では、生成AIソースコード作成してもらい、それを従来のコンパイラビルドツールで実行ファイルに変換する方式標準的です。この方法であれば、デバッグテストも容易で、生成されたコード品質確認しながら開発を進められます。​

なお、フォントファイルのようなバイナリ形式でもオープンソースとして扱われる例はありますが、これはフォントという特定用途場合であり、汎用的な実行ファイル生成とは異なります

Q.

画像生成もバイナリを生成しているわけで、同じようなことができるのではと思ったのですが、そこはぜんぜん違うのですね

A.

おっしゃる通り、画像生成AIバイナリを出力しているという点では共通していますが、実は根本的に異なる仕組みで動作しています。​

アーキテクチャの違い

画像生成AI拡散モデル(Diffusion Model)やGANなど、視覚データ最適化された専用のアーキテクチャ使用しています。一方、LLMはTransformerベーステキスト処理に特化した構造を持っています画像生成では、ノイズから段階的に画像を生成するプロセスを経て、最終的にピクセル値という数値データバイナリ)を出力します。​

データ表現性質

画像ファイルバイナリ連続的な数値(ピクセル値)の集合であり、各ピクセル色情報を持つという規則的な構造です。最近研究では、画像ビットプレーンbit-plane)として扱い、XOR演算ノイズを加えるBinary Diffusion Probabilistic Model(BDPM)のような手法も開発されています。​

対して、実行ファイルバイナリ機械語命令の複雑な配列であり、CPUが直接実行できる命令コードデータセクション、リンク情報などが厳密な形式で配置されていますわずかなビット誤りでもプログラム動作しなくなるため、画像のような連続値とは性質が大きく異なります。​

学習データの違い

画像生成AIは、ImageNetやLAIONなどの大量の画像データセットで訓練されており、ピクセルパターン学習します。一方、実行ファイルを生成するには、コンパイルプロセス全体(構文解析最適化機械語変換、リンク)を学習する必要がありますが、これは単純なパターン学習では実現できません。​

したがって、画像生成AI成功しているのは、画像という特定ドメインに特化した設計と、規則的なデータ構造があるためであり、同じ手法を実行ファイル生成に適用することは技術的に非常に困難です。

anond:20251106111419

統一化された帳票フレームワークOSS化することには、非常に大きな価値があります

1. 💰 開発コストライセンス費用の削減

初期導入コストの削減: 企業は高価な商用帳票ツールライセンス費用を支払う必要がなくなります特に中小企業スタートアップにとって、これは大きなメリットです。

ベンダーロックインの回避: 特定の商用製品依存することがなくなり、将来的な仕様変更サポート終了のリスクを避けられます自由コード修正改善できるため、自社のニーズに完全に合致させることが可能です。

2. 🤝 標準化と知見の共有(エコシステムの構築)

日本の商習慣への最適化: OSS化することで、多くの開発者日本の複雑な商習慣(消費税計算源泉徴収、独特なレイアウトなど)に対応するためのコードノウハウを持ち寄り、フレームワーク改善できます。これにより、最も実用的な「デファクトスタンダード」に近い帳票作成基盤が生まれ可能性があります

開発速度の向上 共通フレームワークが浸透すれば、プロジェクトが変わっても同じ仕組みで帳票を開発・保守できるため、新規開発の立ち上げ速度が向上し、開発者間での技術習得コストが下がります

3. 🛡️ 品質向上と持続可能

透明性と信頼性の向上: ソースコードが公開されるため、帳票のロジック特に金額計算や税務処理)の透明性が確保され、信頼性が高まります

多様な環境への対応: 商用製品サポートしないような最新の技術スタックニッチOSにも、コミュニティの貢献によって迅速に対応できるようになります

コミュニティによる継続的改善: 一つのベンダー依存せず、世界中日本中の開発者バグ修正機能追加を行うため、品質が維持・向上し、プロジェクトの持続可能性が高まります

まとめ

OSS化は、単なる「無料化」ではなく、日本ビジネスにとって不可欠な「帳票作成」という共通課題に対する知恵とリソースの「共同投資」であり、社会全体での開発効率向上に寄与するという点で、非常に価値があります

2025-11-03

多分既出だろうけど、ゲームパターン化したように見える一因これよな

趣味アプリプログラムで行き詰まってて、設計に関して色々ググってるときに見つけた「ゲーム設計」に関するブログより

昔のゲーム業界設計する必要はなかった。

家庭用ゲーム機(いわゆるコンシューマー)の開発やアーケードゲーム機が活発だった時代必要なかった。

なぜならば、ゲーム業界の各会社が個々で開発し作りきってしまえば、もう直すことが無いからだ。

また、ゲームプログラム独創性必要で、設計ルールを決めてしまうと、ルールを逸脱した仕組みの実装を躊躇わせる。

~中略~

スマートフォンゲームには保守運用がある。(それに最近コンシューマーゲームパッチ対応がある)

ゲームを続けてもらうためには定期的に改良を重ねる必要がある。

その場しのぎの実装では後から修正に手を加える際はまるでジェンガのようにバランスを取る必要がある。

最初に土台がしっかりとしたジェンガなら倒れる可能性も低くなる。

昔は各々のゲームエンジンを持っていたが、最近市販されているゲームエンジンを使うところも増えている。

そうなるとどうなるか、これまでは属人的作業を割り振っていたもの

同一のゲームエンジンを触ったことがある人ならば誰にでも仕事をしてもらうことが可能になった。

市販ゲームエンジンを使えば最近流行に合わせて自社のゲームエンジンをアップデートする必要もなくゲームエンジンの会社対応するのを指をくわえて待ってるだけで対応してくれる。

仕事を流動的に渡せたり、一つのゲームエンジンで色々開発しているとそのコードを使いまわせる。

その場しのぎのコードでは使い回しが難しいが設計も含めてキレイソースコード作成できた場合、流用ができて次作を作るとき工数削減できる。

まり、何が言いたいかと言うと「きれいなコード資産だ」ということ。

2025-11-02

ソフトウェアエンジニアにおける才能という現実

まぁ、幻想じゃないね w

才能がないと思ったら、早いうちに河岸を変えた方がいい。

早ければ早い方がいい。

可哀想から(教え子が? それとも自分が? w)、って「がんばれ、がんばれ。才能なんて関係ない」みたいに騙すのは、むしろ害悪だよ。

10年後、気付いて路頭に迷わせるとして、その責任は取れるのか?

引導を渡すこともプロ責任

まぁ、本人自身が気づいて路頭に迷いつつあるけどどうしようもないのかもしれんが、地獄に道連れはやめてやれ w

小説家役者声優バンドマン etc.etc.

それで生計を立てない、趣味範囲で楽しむ分には好きにすればいいけど、エンジニアに限らず、それなりのお金をもらおうとしたら、才能、向き不向きは超えられない壁として現実に、強固に存在している。

球速120km出ないけど阪神の一軍のピッチャーに、ってのはどう逆立ちしても物理的に不可能だ。

でも草野球は楽しめる。

才能がなけりゃ、一人で永遠に「大いなる助走」を続けりゃいい。

誰にも迷惑かけないなら。

医師看護師会計士経営者etc.etc. にも、才能、向き不向きはある。

おいらには、医師とか、警官とか、無理だねぇ。

落ち着きないし。

同じことを何日も続けたら、爆発する。

明日も同じことしなきゃならないのか……」って考えただけでも、死にたくなる。

こんな感じに、才能がものをいう分野って、意外に多い。

ソフトウェアエンジニアは、設計実装抽象度が多層化していて、その巧拙によって安定度、運用や機動的な新機能追加の手間、リードタイム、金や何やら、数十倍、規模複雑度が爆上がりしている今なら下手すりゃ数百倍差が出る。

その差をちゃん理解するには、巧の現場の「こういう世界があるんやー……」って実体験が必要だったり、巧レベルの才能が必要だったり、経営知識必要だったり、経済知識必要だったりして、「拙」の現場にぶら下がってるだけのエンジニアが「才能なんて幻想」って吠えたっても「マジ、迷惑からやめてね」って思う。

どの炎上現場でも、高粘度現場(リーダーマネージャ理解できないからって邪魔ばっかりしてきたり、そもそもプロダクトがぐっちゃぐちゃになってたりして、どんな行為サービスの息の根を止めるかわからなくて身動きが取れない「震える舌」みたいな現場物事全然進まない現場。通常、経費で札束ガンガン燃やしてるはずだから、ここも炎上現場っていう)でも、この手のエンジニアが腐るほどぶら下がってるんだよね。

たいてい、生み出されるソースコードドキュメント割合おかしなことになってる。

会議勉強会だなんだばっかりしてる。

いや、そういうの主催してる暇があったら、コード書けよ、って。

でも、Web記事引いてきて、「〇〇にはこう書いてある」とかドヤ顔机上の空論時間潰して「俺も一端の理論エンジニアだぜ……」とか、いや、お前はただの受け売り理解もせず垂れ流してるだけのそこらへんの AI と変わらんクズだよ。

おいらの師匠の一人は「TV出たり、本書いたりするやつは二流。一流は、自分仕事に集中していて、他のことやる暇ないから」って言ってたけど、ほんとその通りだと思うよ。


シャバと違い、ソフトウェア世界は驚くほどのスピードで巨大化、複雑化している。

30年、40年前なら、社会性の乏しい、プログラミングコンテスト受賞者みたいなエンジニアでも無双できたけど、今は無理なんだよね。

今だと玉拾いも任せられないくらいだったりする。

余計な部分最適かまして、地雷埋設に邁進しちゃうから

ちょい前も、PostgreSQLの中身いじれます! って東大卒業生いたけど、視点局所的すぎて全体感に欠けてて、プロジェクトがヤバい状態になってるのが理解できなかったりしてたからね。

そろそろリリースできる状態になってる予定だけど、おいらの読み通りα版完成が3ヶ月遅れ、そこで大量の不具合が発覚してベータ版完成がそこからさらに3ヶ月以上遅れ、不具合積み残したまま見切り発車、ってなるんじゃねーかな、と思ってるんだが w

才能の種類、方向性によっては、10年前も今もたぶん10年後も変わらず十分通用するものはあるんだけどねー。

エンジニア年収は他の一般職業に比べて高い。

そこに生活水準をあげてしまうと、自分はもう通用しないと気づいても、撤退できない。

マイカーガー。

マイホームガー。

子供ガー。

愛犬ガー。

んなもん知るかっ!

さっさと色んな意味Fireしろっ!!

そういう「元エンジニア」がリーダーとかマネージャかにクラスチェンジして、事業プロダクトの足を引っ張る。

マジでこの手の「元エンジニア」が、今、業界に溢れてる。

あそことか、そことか、具体的な企業名はあげられないけど、そういうエンジニア漬物石のように重しになって、身動きが取れなくなってるところが多い。

VCとかからもっと売り上げを上げろ。成長率を上げろ、というプレッシャーを与えられ、何かしなきゃいけない。ってなって、外付けの雰囲気だけのサービスをどんどん外付けしていく戦略を取る。

1年で10

2年で30とか。

マジかよ w

思い思い行き当たりばったりに作ったら、手間だけ増えてそれを壊すわけにはいかなくなって、さらに身動きが取れなくなっていく悪循環しか見えないんだが、そんな経営方針で大丈夫か?

とりあえず認証認可から共通化していくしかない。

とか意味不明な決定して、認証認可v1、認証認可v2認証認可v3マイクロサービスが増殖して、さらにv4を企画してるとかい会社だってある。

真っ当な声には、自分存在感を示すためだけの反対を唱えて邪魔したりして、現場で手を動かしているエンジニアより高級を取ってんのに、事業プロダクトへ与えるダメージは倍増する。

さらに、自分地位を死守するために、それを脅かす腕利のエンジニアを陥れる、排除することに全力を傾ける。

これで3倍界王拳だ w

経営者はできるエンジニアたちに任せていると思い込んでいるかもしれないが、さて、どうかね? w

大本営発表的にはうまくいっているとされているサービスが、その裏側はカーオブファイヤーみたいなところって、結構ある。

というか、そっちの方が多いんじゃないかポチョムキン村。

はっきりいう。

ソフトウェアエンジニアは、アスリート的な仕事だ。

おいらは土日祝もシステム関係勉強とか研究をしてる。

今はクラウド環境プロダクトで、どのように自動テスト検証可能システムを構築するかの手法研究を続けてる。

具体的には、今まで関わってきた炎上現場で安定稼働を達成させた手法(TDD)だな。

ワークライフバランス? w

そんな寝言、やめてから言えよ www

才能のない人は河岸変えろ。

しろ若手を潰してるって自覚持て。

反論してくるのが結構いる。

あのサービスとこのサービスとそのサービスを使ってます

業務経歴書にも今まで使ったことがあるサービス名前をたくさんたくさん載せてます

僕の技術力は世界一ぃぃぃっ!!!

じゃねーよ。

ボルト世界水泳、吉田沙保里NBAに出場させるような使い方してて、どこが技術力だよ。

ってのが多い。

「どうしてこのAuroraリーダーがこんなにたくさんぶら下がってんの?」

テナントが増えて、アクセスが増えたので、負荷分散のために増やしました。水平スケーリングってやつです」

うん。水平スケーリングは知ってんねん。この程度のテナント数、ユーザー数、アクセス数で、どうしてこんなにでかいインスタンスリーダーがぶら下がってんのか? って聞いてんねんけど……。

って現場、多い。

というか、そういう現場しか知らん w

まぁ、炎上現場巡りしてたし。

でも、今通常営業してるサービスでも、こういうところ多いんだよな。

それはともかく、

マイクロサービス化していて、いま120を超えたところで、当面160になります

「……は?」

「うちのサービスドメイン多いんで」

「……デプロイの時、どうすんの?」

「変更があるサービス名を書いたファイルを一緒にコミットして、それ読み込んで、GitHubActionsでデプロイさせてます

「……ローカルの開発環境構築は?」

「Cloneして立ち上げます

「これ……、モノリポ?」

「もちろんです。Googleもそうやってますし」

「120個?」

「120個」

「なんか立ち上がらないんだけど……」

「あ、修正中なんで、〇〇と××のコミットチェリーピックしてください」

「……動かないぞ」

「昨日の夕方、変更が入ったみたいなんで、△△のコミットチェリーピック。いや、++のブランチを……」

5日で立ち上げ切れるんか?

って現場がね、案外たくさんあるんだ。

で、「マイクロサービス、使えないっすね」

「ほう……?」

連携が取りづらくて、障害発生しまくって」

どうして「自分が間違えてる」「自分が見当外れなことをしている」可能性ってのを考慮しないんだろう、この人らは?

っていつも思う。

マイクロサービス目的も前提も理解しないで、HowToだけ猿のように繰り返してるって自覚ないんか…… (-_-)

だってオライリー本のここにこう書いてあるから!」

ってマーカーで引いた一文見せつけられるんだが、その前に書かれてある前提とか目的とか、書かれてない暗黙のそれとか、いわゆるコンテキスト削ぎ落として、単語レベル理解開陳されても、「は?」としか反応できんのよな。

120のマイクロサービスとか、お前、認知科学知識もないねんな……。

それマイクロサービスじゃなく、「粉砕されたモノリシックサービス」っていうんやで、と。

まーじで、技術本とかの恣意的つまみ食いで訳分からん理論構築すんなよ。

それでプロダクトがうまく回ってなかったら、それが答えなんよ。

まぁ、「うまく回ってる状態」ってのを知らない、理解できないだろうから、正しい答えに行きつかんだろうけど。

その正しい答えに行きつかない、ってのを

「致命的な才能の欠如」

って呼ぶんよ。

サリエリくらい才能があったら、自分の才能が足りんことを自覚できるんだがな。

脳外科医竹田君みたいなエンジニアは、即刻足を洗って欲しい。

2025-10-30

BZのソースコードが公開されていたので斜め読みしていたら、面白いことに気づいた。

FooListはRopeで処理をしていて、BZのほうは赤黒木で処理をしてるんだが、考え方は基本的に同じだった。

https://gitlab.com/devill.tamachan/binaryeditorbz/-/blob/master/Bz/SuperFileCon.h?ref_type=heads

2025-10-27

ずっと前に見つけたけど、ソースコードが分からなかったインジケーターの解析をgeminiにさせてる。

かなり近い値を示すようになって、このまま十分使えるレベルにはなったが、まだピタリとは当てはまらない。

 

わざわざこれをする理由は、何故か通貨ペアによってエラー出て表示されないから。

その時は諦めたし、まだChatGPTもクソだったけど、今は分析結果をそのままコーディングもできる。

 

開発者スレッドも生きてるし、暇だから眺めてる。

2025-10-21

anond:20251021125002

delphiソースコード理解できる?

ChatGPT:

思考時間: 9s

はいDelphiObject Pascal)のソースも読めますし、解説リファクタバグ箇所の指摘・他言語への移植案など対応できます

VCL / FMXGenericsInterface/RTTI、プロパティ/イベントレコード・セット型、メモリ管理string/AnsiString/UnicodeString の違い)、スレッド(TThread / TTask)、WinAPI/COM 呼び出し、uses 単位構成、.dfmフォーム)やリソース周りもOKです。

コードを貼ってくれれば、1ステップずつ説明改善案を出します(DelphiバージョンVCL/FMXも書いてあると精度上がります)。

UNIFACEはどう?

ChatGPT:

思考時間: 13s

はい、UNIFACE(Proc言語)も対応できますフォーム/サービス/レポート/エンティティなど各コンポーネントのトリガ(initialize, validate, leave field など)、operation/entry、newinstance/activate/call、retrieve/e, read, writeエラー制御($status, $procerror)や論理名・assignment(.asn)、署名/パラメータDSP/RESTSOAP連携DBドライバ設定までOKです。

コードや .asn を貼っていただければ、処理フロー解説バグ箇所の指摘、リファクタ、他言語・他フレームワークへの移植案(例:REST API化、Java/Python 置き換え)まで具体的にやります

可能なら UNIFACE のバージョン(9/10/10.4 など)、DBOracle/SQL Server 等)、OS を添えてください。

今どきのAIなら、ダイジョブよ。AIを信じて全文投げ込んでみ

2025-10-20

2010年代を支えてきたrubyが死んだ

一連のShopify強奪事件によって、BundlerとGemsがruby core teamに還元されたが、ついに管理権限の全権掌握に失敗した。

 

そもそもrubyとはrubyという言語単体の開発とメンテを司っており、言語仕様は見ているがエコシステム全域を見てるわけではない。Matzですらそうだ。

rubyにおいては、BundlerもGemsも言語付属品という立ち位置だ。

近年の言語言語仕様パッケージ管理システムも全部コアメンテナに権限委譲する。しかしrubyはそうなっていない、C/C++のように。

 

bunやrustに馴染んでる人には意味がわからいかもしれないが、往々にしてこんな権限統合失敗事案はOSSアセットマネジメントにつきものだ。

古くはperlが、そしてその後phpもが、やらかした。web業界過激オープン思想の裏で、常に権限の落ち着きどころにリポジトリを悩ませている。

から自由という名の管理放棄パッケージから法人格での中央集中管理へとOSSシフトしてきた。ここ10年でFOSは死んだと言って良い。

 

ソースコードの開示はサプライチェーンの混入可能性を第三者検証可能にする健全性の証左としてきた。OSSコミッターの高額収入はこの信用性が担保していた。

しか自由ソフトウェアとは自由範囲を明示的に境界引きしており、本件では自由範囲外にBundlerとGemsがあった。

まり自由とは何である政治的理解してない局面においてOSSコミッターはそれを行使するのに無力であり、実際法人格プレッシャーに負けた事を証明した。

 

これは歴史的転換点だと思う。

Matzが間に入らなければ、rubyメンテコストを捻出できず崩壊する所だった。たまたまMatzという優秀すぎる人間がいたので、どうにか死なずに済んだだけだ。

逆に言えばこの崩壊は真祖Matz以外が止められるものではなく実質、Shopifyの強圧に屈してrubyは死んだのだ。

金がないruby core teamはShopify主導のサプライチェーン混入可能性を否定できない環境が整ったのだ。

 

わかるだろうか。Rubyバックエンドは軒並み死んだのだ。

 

日本だとクックパッドやSkebが該当するだろう。未だにrubyバックエンドを使ってる企業サプライチェーン混入可能性を常に評価してruby運用する責務を負った。

どの言語だってその可能性は常に念頭にあるが、この歴史的転換点を観測してしまうと、高すぎるリスク保有するテック企業として技術力を喧伝してきた信用は底値を叩く。

コンピューターサイエンス信頼性という文脈で、信用を失うのだ。

 

まり。古い日本企業は、rubyを使ってる企業は、もう死ぬことが確定したのだ。

そしてrubyはその統合をなし得るほど、統率されていない。

2025-10-10

あなたのために発信された情報1%しか存在しない

インターネット上の情報の99%は、情報受け手の行動や感情お金操作することを目的としたもの、あるいは純粋エンターテイメントとして消費されるものとして整理できます

一方、1%は、スキル知識客観的事実の伝達に特化し、ユーザー生活能力を向上させるために役立つ情報と言えます

99%を占める情報(行動・感情金銭操作または単なる消費を目的としたもの

ユーザー視点から見ると、これらの情報は「役に立たない」というよりは、「誰か(情報発信者側)の利益を優先している」あるいは「単に時間を消費させる」性質を持っていると解釈できます

1. 購買やサービス誘導目的とした情報
2. 思想感情操作目的とした情報
3. 単なるトラフィック増を目的とした情報
4. 有害詐欺的な情報

1%を占める情報知識スキル客観的事実の伝達を目的としたもの

1%ジャンルは、自己成長や客観的理解に直結する、ノウハウデータを主軸とした情報です。

 

この分類は、インターネット上で情報を探す際に、「誰かの利益のためのコンテンツ」と「自分利益のための知識」を峻別するための視点提供しています

2025-10-05

anond:20251004160446

OSSソースコード製品命名を見ればわかる。女児向けアニメキャラ特撮ヒーローとかの名前を幾ら好きだからって...

日本OSSプリキュアとかライダーとか付けてるの、ある?

RubyとかJenkisとかGitBucketとか、そういうニオイしないし

身の回りでも観測出来ない

2025-09-30

https://laziness.works/posts/90dad698-1d04-4a6d-beed-88e2036325a7

Level-4 Proficient

システム全体をデザインできる熟練者に相当するレベルです。

担当する範囲は「システム全体のデザイン」に加え「システムのうち特に難易度の高い部分」になることが多いです。このレベルからシステムデザイン時間を割くことが多くなり、必然的コーディング量が減る傾向が強いです。

このレベル帯の方は、概念レベル設計や責務分担・責任分界点などを考慮してシステムデザインすることができ、概念レイヤなどシステム動作に直接関係のない部分のソースコード必要になるため、Level-3 以下のプログラマを育成しながらコーディングしていることが多い印象です。

次のレベルに向けて

概念レイヤまでコーディングした後、具象化はチームメンバーに委ねましょう

この人が書いたプログラマーのレベル別って何前提?

2025-09-17

はてブブクマページのソースコード確認すると、その記事がいつファーストブクマされたのか知ることが出来る。

 

https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20250916000442

 

例えば上記ページのソースコードには、「data-entry-created="2025-09-15T15:04:51Z"」と記されている。

 

これはイギリス時間UTC+0)の「2025年09月15日 15:04:51」にファーストブクマされたという記録なので

日本時間UTC+9)に修正すると「2025年09月16日 00:04:51」にファーストブクマされたことが分かる。

 

また、増田記事URLに含まれている「20250916000442」はそのまま投稿年月日と時刻を表しているので

この記事は「2025年09月16日 00:04:42」に投稿されたものであることが分かる。

 

 

各日時を比較すると、この記事投稿後9秒でファーストブクマされたことが分かる。

 

追記

colonoe 偶然書いた直後にブクマしたのかもしれないし、本人だとしてもブクマするのは別にいいだろ。複数アカウントブクマしたりするのは良くないが

ちゃんと読めば分かるけど何も非難してない

madooka UTC のことをイギリス時間って読んでいる人を初めて見た

自分UTCのことを初めてイギリス時間って呼んだ

sgo2 ソース見なくても「すべてのユーザーを見る」に時間が出る

「すべてのユーザーを見る」に日時が表示されるのは公開ブクマだけで、秒数の確認まではできないはず

2025-09-13

anond:20250913163731

ゴミカス中小企業ワイのとこは「仕様書ソースコードここにあります」ってひとこと言われて終わりやで…😟

2025-09-08

dorawii@執筆依頼募集中

ソースコードいくら見てもそのソースコード作成者が想定してるエンジン側の実装なんて推測できんだろ。

ちなみにその「細かいこと」が気になった発端は初歩であるはずのコード挙動理解につまづいたからだけどな。

そしてAIにこんな質問をしたわけね。

setTimeout(() => { console.log("A"); }, 1001); setTimeout(() => { console.log("B"); },1000); console.log("C"); 上のsetTimeout()の各第二引数の大小関係をどのように調整しても常に第二引数により小さい数が指定されたものコールバック関数が先に実行されます。 これはどういうことですか?先にsetTimeoutと書かれたものコールバック関数からキュー登録され、キューへの取り出し方はjs場合fifo採用されているので、上記コードのような場合は、()=>console.log("A")の方が先にキュー登録されたものとして第二引数無関係に()=>console.log("B")より先に実行されるのではないのですか?
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250908192456# 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaL6u+QAKCRBwMdsubs4+
SAtwAP49XRX8yOJwd/XLSKjjP1TASfuVR29t/NIhuLSNb0vr2AD8CtGJTYMzavjS
i9TuxJTV/DSYuwhuBLnKkd0lsJOldQI=
=wm4J
-----END PGP SIGNATURE-----

2025-09-04

anond:20250904054611

・「凍結・解凍」は日本ではLHAが使ってた(確かっぽい)

かに使ってた。使ってはいるけど解凍を使ってるのは自己解凍のところだけで、e,xオプションのところでは「ファイルを取り出す」表記。凍結表記もaオプションのところだけ。

(LHAになる前のバージョンだけど)LHarcソースコード内の日本語版の使い方

char use[] =

"LHarc version 1.13c Copyright(c) H.Yoshizaki(吉崎栄泰), 1988-89.\n"

"============================================================= 1989 - 5 - 21 ===\n"

" <<< 高圧縮書庫管理プログラム >>>\n"

"===============================================================================\n"

" 使用法:LHarc [<命令>] [{/|-}{<スイッチ>[-|+|2|<オプション>]}...] <書庫>\n"

" [<ドライブ>:|<基準ディレクトリ>\\] [<パス> ...]\n"

"-------------------------------------------------------------------------------\n"

" 《命令》\n"

" a: 書庫ファイルを追加 u: 書庫ファイルを追加(日時照合付)\n"

" f: 書庫ファイル更新 m: 書庫ファイルを移動(日時照合付)\n"

" d: 書庫内のファイルの削除 e,x: 書庫からファイルを取り出す\n"

" p: 書庫内のファイルの閲覧 l,v: 書庫の一覧表示\n"

" s: 自己解凍書庫作成 t: 書庫内のファイルCRC チェック\n"

" 《スイッチ》\n"

" r: 再帰収集を行う w: ワークディレクトリ指定\n"

" x: ディレクトリ名を有効にする m: 問い合わせを行わない\n"

" p: 名前比較を厳密に行う c: 日時照合を行わない\n"

" a: 全属性を凍結の対象とする v: 他のユーティリティファイルを閲覧\n"

" n: 経過表示をしない k: 自動実行のキーワードの設定\n"

" t: 書庫の時刻を最新のファイルに\n"

"===============================================================================\n"

" 転載・再配布などは自由です。 Nifty-Serve PFF00253\n"

" (詳しくは使用の手引をご覧ください。) ASCII-pcs pcs02846";

英語版の使い方

char use[] =

"LHarc version 1.13c Copyright (c) Haruyasu Yoshizaki, 1988-89.\n"

"================================================================ 05/21/89 ===\n"

" <<< High-Performance File-Compression Program >>>\n"

"===============================================================================\n"

"usage: LHarc [<command>] [{{/|-}{<switch>[-|+|2|<option>]}}...] <archive_name>\n"

" [{<drive_name>:}|{<home_directory_name>\\}] [<path_name> ...]\n"

"-------------------------------------------------------------------------------\n"

" <command>\n"

" a: Add files to archive u: Update files to archive\n"

" f: Freshen files in archive m: Move new files into archive\n"

" d: Delete files from archive e,x: EXtract files from archive\n"

" p: disPlay files in archive l,v: View List of files in archive\n"

" s: make a Self-extracting archive t: Test integrity of archive\n"

" <switch>\n"

" r: Recursively collect files w: assign Work directory\n"

" x: allow eXtended file names m: no Message for query\n"

" p: distinguish full Path names c: skip time-stamp Check\n"

" a: allow any Attributes of files v: View files by another utility\n"

" n: display No indicator k: Key word for AUTOLARC.BAT\n"

" t: archive's Time-stamp option\n"

"===============================================================================\n"

" You may copy or distribute without any donation to me. Nifty-Serve PFF00253\n"

" (See the User's Manual for detailed descriptions.) ASCII-pcs pcs02846";

https://www.vector.co.jp/soft/dl/dos/util/se002340.html から

2025-08-29

オープンエンジニアだけど、ついていけなくなってきた

歴史的な経緯があると思うんだけど

今のソースコードって結構10年以上前のものが残ってるんだよね

一方で、そこからコード流行が3転4転してるから

昔のコードもわかりつつ、途中の流行を抑えつつ、新しいコードもわからなきゃいけなくて

しかも、最近は「複数の書き方がある」が増えてきた

「◯◯に慣れてる人も書きやすい」をケアしていった結果そうなってるんだと思う

プロジェクト方針が「動けばいい」「テストできればいい」ならまだしも「複数の書き方の中で最も良いもの選択するべき」とかやり始めると本当に死ぬ

 

ある一時代流行って2〜4パターンあるんだけど

その組み合わせを全部わかるの無理なんだよね

変な話、ある程度読めるし、新規作成はできるけど

継続開発が本当にしんどくなってきた

2025-08-19

anond:20250819110323

ChatGPTに聞いたらええんちゃう

いい質問ですね!

これ、実は「どっちが正しい」みたいな決着はなくて、言語文化時代背景によって意見が分かれる話題なんです。

---

1. for(;;) vs while(1) vs while(true)

for(;;)

* C言語伝統的な「無限ループ」の書き方。

* `for(初期化; 条件; 更新)` のすべてを省略すると無条件ループになる。

* 昔は「最適化挙動が明確」という理由で好まれることもあった。

* UNIX系の古いソースコードでよく見かける。

while(1)

* 「1が常に真だから無限ループ」という書き方。

* こちらもC言語の慣習として広まっている。

* ただし「1って何?ブール値?」と初学者には直感的でないかも。

while(true)

* C++JavaC#などブール型が明確な言語では「一番可読性が高い」。

* 「ずっと真の間繰り返す」という自然な書き方なので、最近こちらが推奨されることが多い。

* Cではtrueを使うには stdbool.h をインクルードする必要があるので、昔は避けられがちだった。

---

2. 「for(;;)派」の人は誰?

ネットでよく言われるのは、Linuxカーネルコード規約とか古いUNIX文化の影響です。

特に有名なのは

Linus Torvalds(Linux開発者

* 「無限ループは for(;;) を使う」とカーネル開発のスタイルガイドで書かれている。

* 理由は「歴史的にCで最も標準的で、誰もが見慣れているから」。

要するに「C文化圏ではfor(;;)が王道」というだけで、現代教育C++/Javaなどの文脈では while(true) の方が読みやすい、という感じです。

---

3. まとめると

C文化特にシステムプログラミング) → for(;;) が伝統的で好まれ

古いCコード教科書 → while(1) がよく出る

モダン教育C++/Java/C# → while(true) が一番わかりやす

なので、初学者が「while(true)の方が可読性高い」と思うのは大正解です 👍

---

👉質問

あなた勉強してるのって「C言語メイン」ですか?それとも「C++Java」とか他の言語も触ってます

文脈によっておすすめの書き方を整理してあげられるよ。

2025-08-03

HTMLコンパイラとは?正しい定義と使い方を理解しよう

HTMLコンパイラとは、一般的な「コンパイラ」の概念とは少し異なり、HTML文書や要素に対して新しい文法や振る舞いをブラウザに伝え、拡張するための仕組みを指すことが多いです。例えば、AngularJSのHTMLコンパイラは、開発者定義したカスタム要素や属性(ディレクティブ)を解釈して、動作を紐づける役割を持ちます。これにより、標準のHTMLにはない独自文法機能ブラウザ上で実現できます

一方、一般的な「コンパイラ」は、人間が書いたプログラムコードコンピュータ理解可能機械語中間言語翻訳するソフトウェアや処理のことです。この処理を「コンパイル」といい、プログラミング言語で書かれたソースコードを一括で変換し、実行可能形式します。コンパイラと対比されるのが「インタプリタ」で、こちらはソースコード逐次読み解いて実行する方式です。

まとめると、「HTMLコンパイラ」はHTMLの静的な宣言文法拡張し、新たな振る舞いを実現するものであり、主にフロントエンドフレームワーク(例:AngularJS)で用いられます。一方、「コンパイラ」はプログラムコード全般を実行可能形式に変換する処理・ソフトウェアです。

https://ja.taiwebs.com/windows/download-html-compiler-2548.html

HTMLコンパイラの使い方】

フロントエンドフレームワークで、新しいHTML要素や属性作成するために用いる。

そのフレームワークHTML文書の解析時にカスタムディレクティブやテンプレート解釈し、動的な振る舞いを紐付ける。

ブラウザの標準HTML仕様では対応できない独自機能を導入できる。

2025-07-27

劉仲敬の代表的 著書の紹介

https://anond.hatelabo.jp/20250727120239

《民國紀事本末》(2013年

いわゆる「共和国時代」の出来事時系列に整理しつつ、従来の教科書的な叙述を批判的に再解釈した作品史実の列挙にとどまらず、当時の政治的思想的背景を浮かび上がらせ、国共内戦から国民政府期に至る人脈や権力構造連続性と断絶を明らかにする。

《從華夏到中國》(2014年

華夏」という文明単位から「中國」という近代ナショナルステートへの移行過程を史的にトレース。劉仲敬独自の「文明分析」の下、周秦以降の冊封体制清朝の版図拡大、近代ナショナル・アイデンティティの醸成をリンクさせ、「中国」という概念いかに後付けの政治装置として形成されたかを論じる。

《安·蘭德傳:生平與思想》(2015年

アイン・ランド(Ayn Rand)の伝記的考察。従来の思想史や伝記とは一線を画し、ランド個人主義思想中国東アジア文脈で再評価彼女小説『肩をすくめるアトラス』の世界観と、劉仲敬が批判する中央集権体制との対比を鮮やかに描き出す。

《經與史:華夏世界的歷史建構》(2015年

儒教経典(「經」)と史書(「史」)が中国文明自己叙述をいかに形作ってきたか分析。『春秋』『史記からまり、後世の史観儒学解釈政治体制正当化になった過程を追う。文字通り「経典」と「歴史」の相互作用に着目し、文明自己神話メカニズムを解剖する。

《守先待後:思想、格局與傳統》(2015年

劉仲敬自身思想羅針盤を示す論考集。先行する思想制度(「守先」)を理解した上で、新たな時代構造(「待後」)を構想するという二段階モデル提示し、中国内部の制度変遷や外部文明の衝撃に対処する方法論を提起している。

近代史的墮落」シリーズ(2016–2018年

東アジア現代の主要人物を題材に、それぞれの生涯を通して「文明堕落」を読み解く評論シリーズ

《晚清北洋卷》:清末の北洋官僚をめぐる権力と腐敗の構造分析

《國共卷》:国民党共産党指導者層の思想的相違と利害駆け引き

《民國文人卷》:黎明期共和国文化人知識人が抱えた矛盾理想の断絶。

いずれも「近代国家の没落」をテーマに、政治家・知識人個別事例から大局的な文明批判を行う。

《遠東的線索:西方秩序的輸入與中國的演變》(2017年

ヨーロッパ国際秩序ウェストファリア体制産業革命後の列強均衡)が東アジアにもたらした制度価値観検証。清末以降の不平等条約から中華民国共産党政権への制度移植過程を、構造主義的に解剖し、「外来」と「内向」の相剋を描き出す。

《中國窪地:一部內亞主導東亞的簡史》(2017年

「窪地(低地)」概念を用い、ユーラシア内陸アジア勢力モンゴル満州中央アジア部族)が東アジア世界に与えた影響を再考。従来の漢民族中心史観を覆し、「内亞(シベリアモンゴル満州から視点で見た中国史」を示す、劉仲敬の代表作のひとつ

《滿洲國:從高句麗、遼金、清帝國到20世紀,一部歷史和民族發明》(2019年

満洲国を単なる傀儡政権とみなすのではなく、高句麗→遼・金→清帝国へと続く「北方遊牧文明」の連続性を強調。20世紀満洲国成立を「民族発明」の一例として論じ、ナショナル・アイデンティティ形成ダイナミズムを浮き彫りにする。

文明更迭的源代碼》(2020年

いわゆる「阿姨學(劉仲敬思想)」の内幕を語る、自著解説書兼思想史。各文明の興亡パターンを「源代碼(ソースコード)」として抽象化し、文明間の普遍的法則提示。連載講義をまとめたスタイルで、初心者から上級者まで劉仲敬の全体像を掴むのに最適の一冊。

ログイン ユーザー登録
ようこそ ゲスト さん