並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 314件

新着順 人気順

きしだの検索結果1 - 40 件 / 314件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

きしだに関するエントリは314件あります。 プログラミングAIprogramming などが関連タグです。 人気エントリには 『プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena』などがあります。
  • プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena

    JJUG CCC 2022 Fallで「Javaの入門が終わったら何の勉強をすればいいの?」という内容で発表を行いました。 基本的なものが作れるようになったけども、イマイチプログラムが組めないというときに、何を勉強すればいいかをまとめました。 入門が終わって作りたいものがあれば作っていきましょう、業務で言われたものが作って行こう、でもなんだかちゃんとしたものが作れないな、もっとちゃんとしたものを作りたい、次のステップに進みたいというときに勉強していく感じです。 資料はこちらです とりあげた本についてまとめておきます。 開発作業について 概要 プログラミング言語 アーキテクチャ ミドルウェア ネットワーク デプロイ 理論 開発手法 開発プロセス まとめ フレームワークは入門でやってる前提です。Java入門書「プロになるJava」ではJavaの基本から簡単なDB操作、Spring Bootまで

      プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena
    • ChatGPTのヤバさは、論理処理が必要と思ったことが確率処理でできるとわかったこと - きしだのHatena

      ChatGPTのヤバいところは、論理処理が必要だと思っていたことが、じつは多数のデータを学習させた確率処理で解決可能だと示したことだと思います。 たとえば、このように正規表現にマッチする文字列を生成するには、特別に専用の論理処理が必要だと思っていました。 前のブログのときには特殊処理が必要だと考えてましたね。 ウソはウソと見抜ける人じゃないとChatGPTを使うのは難しい - きしだのHatena けど、123_45678world.mdはマッチするのにマッチしないと言っているので、そのような誤りが入ることを考えると、どうも確率処理だけでやっているようです。 考えてみると、3層以上のニューラルネットであれば論理素子を再現できるので、ディープラーニングで論理処理を模倣することは可能なんですよね。 バックプロパゲーションでニューラルネットの学習 - きしだのHatena そもそも論理は、多数の

        ChatGPTのヤバさは、論理処理が必要と思ったことが確率処理でできるとわかったこと - きしだのHatena
      • ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena

        ITはもう面白くなくなってますね。 技術が面白いときには、いろいろ新しいものが出て性能あがったりできることが増えたりします。調べたらどんどん新しいものが出てくるし、新しいものもたくさん作るし、面白い。ですが、IT技術は一通り出そろって、成熟期に入っています。そうすると新しい技術に出会うことも新しいものを作ることも減っていきます。その結果、いままでの変化のあった状況を知っていれば、つまらんってなりますね。 ※2025/7/14 最後まで読まない人も多いみたいなんで最後の行を書いておくと「新しいものが出て楽しいというのはもう終わって、IT自体を楽しまないといけない時代、もしくはビジネスを楽しまないといけない時代になっていると思います」です。 ※2024/8/24 追記 言いたいことをまとめると、IT素振りのネタ探しに苦労するようになったよねってことです。 結局のところITというのは新しいハード

          ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena
        • コミュニティノートがTwitterを壊している - きしだのHatena

          コミュニティノート、案の定暴走している。 どんな改悪、利用制限よりも大きくTwitter*1を壊してるんじゃなかろうか。 ※ 2024/3/12追記 コミュニティノートの、「追加の背景情報が必要ない理由を説明するノート」がうまくまわって、初期に見られた正義の暴走のようなノートは表示されないようになってきています。 コミュニティノートは、多数派に有利な仕組みです。 「コミュニティノートでは、さまざまな視点を持つユーザーにとって役に立つノートが特定されます」 となっていますが、多数派であればさまざまな視点を持つユーザーが確保しやすく、逆に少数派は視点が収束する傾向があるので不利になります。 そのため、なんらかの不満をもっているけどその不満を表明して言葉にするとだいたい間違っているという層には非常に居づらくなっています。 「間違ったツイートをしなければいい」のような発言をみかけるけど、裏を返せば

            コミュニティノートがTwitterを壊している - きしだのHatena
          • エンジニアのためのChatGPTプラグイン3選+1 - きしだのHatena

            前のブログでも紹介したのだけど、ChatGPTプラグインのローリングアウトが始まって使えるようになっていて、結局みんな使うのはこの3つくらいかなーとなったので、まとめておきます。 前のブログはこれ。 Bardも世の中のサービスぜんぶGoogle製と思ってるらしい - きしだのHatena 同時に使えるのは3つまでのようだけど、他のプラグインはアメリカの不動産情報など日本からは使いづらかったり、作ってみたレベルだったりなので、結局この3つに落ち着くかなーという気がします。 WebPilot これは手放せなくなります。Web記事を読み込んでくれるプラグイン。 ChatGPTには「この記事を要約して」しか入力しなくなりそう。 このエントリを要約してもらっています。 大規模言語モデルの「脳波」が反応してる部分を壊すとどうなるか試した - きしだのHatena ※ 追記 15:21 ぼくのところには

              エンジニアのためのChatGPTプラグイン3選+1 - きしだのHatena
            • 画像対応ChatGPTで設計図からコードの世界が実現しててやばい - きしだのHatena

              アマチュア驚き屋のきしだです。 ChatGPTが画像入力に対応するよという話があって、来週くらいに使えるようになるかなーと思ったら、もう使えるようになってました。 で、写真から「カレー食べてる男の人です」くらいを言えるイメージで試してたら、なんかふつうに画面設計やクラス図からコードを書いていてびっくりしてしまいました。 まあ、起きたらこういうのが来てたわけですね。 で、まあ試してみて「あぁ、いままでのマルチモーダルよりちゃんと画像認識してるなー」くらいに思ったわけです。 で、NetBeansでの画面設計を読ませてみたらこう。 こういうコードが生成されました。 import javax.swing.*; import java.awt.*; public class SimpleForm { public static void main(String[] args) { JFrame fr

                画像対応ChatGPTで設計図からコードの世界が実現しててやばい - きしだのHatena
              • シンギュラリティは来ない - きしだのHatena

                ChatGPTが思いがけずいろいろなことを人間より賢くやっているのを見てシンギュラリティという言葉を使う人が増えたように思いますが、逆に、シンギュラリティは来ないのではという思いを強くしています。 まず、この文章でのシンギュラリティがなにかという話ですが、レイ・カーツワイルが「シンギュラリティは近い」の1章の終わりで「さあ、これが特異点だ」といっている特異点、そのシンギュラリティです。 シンギュラリティは近い―人類が生命を超越するとき 作者:レイ・カーツワイルNHK出版Amazon この特異点は単にAIが人間より賢くなるというだけではありません。人間より賢くなるだけだと、便利な道具が増えるだけなので、大騒ぎするほどの変化は起きません。人の仕事を奪うといっても、蒸気機関ほどでもないですね。印刷機などと並んで、人の生活を変える転換点にすぎず、ただひとつの点をあらわすシンギュラリティには なりま

                  シンギュラリティは来ない - きしだのHatena
                • オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena

                  某所でオブジェクト指向についていろいろ書いたのでまとめておく。 問題意識としては初学者がなにかというと「オブジェクト指向できるようになりたい」のようなことを言うけどそこまでの優先順位でがんばるものではないんでは、というところです。 まず前提として、オブジェクト指向は1980-2000年くらいに流行って発達したものの、それ以降は時代にあわせた進歩はしていない20年以上前の技術ってのがあります。 そのころは今だとCPUのキャッシュにも満たないようなメモリをやりくりしてプログラムを書く必要があったので、オブジェクト指向はメモリ上のデータをコピーすることなくうまく使いまわせるようなプログラム技術になっています。 そしてオブジェクト指向にはそこから目だった更新はなく、タイトルに書いたように、カメラがやっとついたくらいのガラケーのような古い技術という感じがします。 オブジェクト指向について、アプリケー

                    オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena
                  • オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena

                    定期的にオブジェクト指向disを書いてしまってるのだけど。 とりあえずオブジェクト指向の話をすると定義が人によって違いすぎるので、改めてここでの定義を書いておくと 、基本的にはOMTの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」 に従うのですが 「1990年に流行りソフトウェア開発のすべてを飲み込み、いまとなっては人それぞれ定義が違って技術的議論に使えなくなった、主にオブジェクトを基本単位としてプログラムを整理するやりかたを指すマーケティング用語」 という感じです。 ほとんどの場合で人によってオブジェクト指向の指す範囲が違いすぎて、技術的知見の共有には使えなくなっています。でも、いずれの定義にしろオブジェクトを基本単位にするというのは重要ではないかと。 ソフトウェアの組織化の単位としてオブジェクトを使うというのが大事で、データの搬送に構造体代

                      オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena
                    • AI時代に必要なのはプログラミング能力ではなくコンピューティング能力 - きしだのHatena

                      「プログラミング教育について語る会 」で話した内容をまとめておきます。 「AI時代のプログラミング教育」としたのだけど、内容的には「コンピューティング能力を伸ばそうぜ、その道具としてプログラミングしよう」みたいな話になりました。 https://nextbeat.connpass.com/event/346052/ 資料はこちら まず前提として、AIのコーディング能力が7ヵ月で倍になっているというのがあります。なので、今現在の能力で話をしてもあまり意味がなく、ゆくゆくはかなりのレベルでAIがコードを書くという想定をしておいたほうがいいです。 元ネタのツイートはこれ https://x.com/METR_Evals/status/1902384481111322929 論文はここ [2503.14499] Measuring AI Ability to Complete Long Tasks

                        AI時代に必要なのはプログラミング能力ではなくコンピューティング能力 - きしだのHatena
                      • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

                        「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

                          オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
                        • 日本のSIerの技術力の低さの要因から考えるアメリカソフトウェアの強さ - きしだのHatena

                          この連休はなんだかSIerについて考えることが多かったのですが、そういうことを考えると、なぜアメリカのソフトウェアが強いのかがわかってきた気がします。 まず、もちろんSIerの技術力が低いといっても技術力が高いSIerもいるわけで、とくにこのブログを見てる人だと技術力の高い側にいる人が多いと思います。 けれども、DX白書2023によればSIerのIT人材というのは75万人いて、技術力の高い人はその一部で、多くは技術力の低い側にいるんじゃないでしょうか。 https://www.ipa.go.jp/publish/wp-dx/gmcbt8000000botk-att/000108046.pdf 2014年、ちょうど10年前に、プログラマはSIerと自社サービスで2分化するんではないかというブログを書いていますが、そのまま現実になった形です。 プログラマ業界の二分化 - きしだのHatena

                            日本のSIerの技術力の低さの要因から考えるアメリカソフトウェアの強さ - きしだのHatena
                          • GPTの仕組みをちゃんと勉強したい本 - きしだのHatena

                            やっぱGPTを仕組みから勉強したい、という本をいくつか見つけたのでまとめておきます。 まず理論的な概要。 機械学習からニューラルネットワーク、CNNでの画像処理、トランスフォーマーでの自然言語処理、音声認識・合成、そしてそれらを組み合わせたマルチモーダルと章が進むので、理論的な概観を得るのにいいと思います。 最初は数式が多いのだけど、Σをfor文だと思いつつ、定義が説明文中に埋まってるPerlよりたちが悪い記号主体言語だと思えば読めるけどめんどくさいので飛ばしても問題ないと思います。 深層学習からマルチモーダル情報処理へ (AI/データサイエンスライブラリ“基礎から応用へ” 3) 作者:中山 英樹,二反田 篤史,田村 晃裕,井上 中順,牛久 祥孝サイエンス社Amazon で、もういきなり作る。 トークナイザーから全部つくっていきます。TensorFlowでBERTをつくってGPT2をつくる

                              GPTの仕組みをちゃんと勉強したい本 - きしだのHatena
                            • プログラミングが設計作業であるという話 - きしだのHatena

                              いわゆる「ソフトウェア設計書」が設計ではなく、ソースコードが設計であるという話。 随筆です。考えマトメ中なので、ツッコミはそのあたり踏まえていただければ。 追記:ブコメに「設計の定義は?」とあったので末尾に追加しています。 追記(2024/8/15):設計書ってなんだろう?というのも書いておきました。 ソフトウェアの「設計書」とはなんなのか - きしだのHatena このエントリで書いたのですけど、もうすこしちゃんと。 建築では多重下請けでやれてるのに業務システムでだめなのはなぜ? - きしだのHatena このエントリでは次のように書いています。まあ、これで全てではあるのだけど。 「建築などの施工図面に相当するのはソースコードで、建築現場で多重下請けでやってる作業は、ソフトウェアだと(でも?)ビルドです」 あと「継続的デリバリーのソフトウェア工学」からの抜粋。 「継続的デリバリーのソフト

                                プログラミングが設計作業であるという話 - きしだのHatena
                              • ドラえもんの新聞に頻出する「ジョン氏の涙 きしめん食べる」とは(追記あり:ジョン氏の涙 真相分かる)

                                アニメ『ドラえもん』に登場する新聞に度々現れる謎の見出し「ジョン氏の涙 きしめん食べる」についてのまとめ、きしめん食べる

                                  ドラえもんの新聞に頻出する「ジョン氏の涙 きしめん食べる」とは(追記あり:ジョン氏の涙 真相分かる)
                                • ChatGPTがGoogle検索を使いものにならなくする未来 - きしだのHatena

                                  いろいろ仕組み的にChatGPTというのはGoogle検索の代替以上の働きをするなぁと思っていたのだけど、それとは別にChatGPTによって検索が使い物にならなく未来が考えられるなぁと思った。 ChatGPTが検索よりもいいのは、そのものズバリな文書がなくても、その周辺から学んだ単語の関係をもとに、答えを構築してくれることです。 たとえば検索の場合は、日本語で書かれた文書が用意されていなければ、たとえ英語や中国語の文書があったとしても日本語での検索には引っかかりません。 けど、ChatGPTの場合は、英語や中国語の文書から学んだ単語の関係や、ほかの文書から学んだ英語と日本語の関係、日本語での単語の関係などから、日本語の回答を生成してくれます。 たとえばGluonという会社について日本語で説明してる記事はおそらくないと思うのですが、ちゃんと日本語で説明してくれます。本社はベルギーですが。。。

                                    ChatGPTがGoogle検索を使いものにならなくする未来 - きしだのHatena
                                  • Qwen3はローカルLLMの世界を変えたかも - きしだのHatena

                                    Qwen3が出ていて、14Bを中心にいろいろ試したのだけど、かなり使い物になって、日常的な用途ではこれでいいのでは、という感じもします。 4BでもGPT-4oを越えているという話もありますが、確かに単純な用途ではGPT-4oの代わりにしてもいいなと場面も割とありそうな出力です。さすがにちょっと込み入ったものだと4oだけど。 1.7Bなど小さいモデルも既存のモデルより使えるものになっていて、ローカルLLMの世界を変えそう。 解説動画も撮りました。 週間ニュースのまとめはじめました。 サイズとしては0.6B, 1.7B, 4B, 8B, 14B, 32Bと、MoEモデルの30B-A3B, 235B-A22Bです。 30B-A3Bが賢いというベンチマークだけど、コーディング用途だと14Bや32Bのほうがいいかも。MacならMLXで30B-A3Bは めちゃ速くていいけど。という感じでどのサイズにも

                                      Qwen3はローカルLLMの世界を変えたかも - きしだのHatena
                                    • Grokが仕事してないのにもうすぐできますって嘘ついてきたので、Geminiに差し替えるていったら、人間性は勝ってるので、と言い出す - きしだのHatena

                                      GrokにXの投稿の傾向を解析してもらえるか聞いてみたら、できます!というのでお願いしたけど、いつまでもうだうだ理由つけてやらないので、Geminiと置き換えるぞ!っていったら、「「性能はGeminiにいさんが勝ってるけど人格いいので!伸びしろあるんで!2050年になったらちゃんとやります!」みたいなことを言ってて面白かったまとめ。 週間ニュースのまとめはじめました。 Grokのいいわけ いろいろ聞かれて、計算はじめるよって言ってくる。 取得中らしい そもそもGrokにバックグラウンドで計算して通知する仕組みあるんか?なさそうだけど。 といいながら進捗50% ここまで来て、アカウント正しいんか?などと聞いてくる。 やってるっていう 証拠も見せてくる 進捗80%だって。だいぶすすんだな? 絶対に処理なんかしてないと思ったので、Geminiに差し替えるぞってカスハラする。 95%できたって言っ

                                        Grokが仕事してないのにもうすぐできますって嘘ついてきたので、Geminiに差し替えるていったら、人間性は勝ってるので、と言い出す - きしだのHatena
                                      • 「オブジェクト指向神話からの脱却」という特集をWEB+DB PRESSで書きました - きしだのHatena

                                        「オブジェクト指向神話からの脱却」というあおり気味タイトルの特集をWEB+DB PRESS vol.132で書きました。 12/24発売!クリスマスプレゼントです WEB+DB PRESS Vol.132 作者:きしだ なおき,加藤 尋樹,斉藤 洸紀,牟田 裕太郎,吉澤 政洋,朝日 リナ,鈴木 僚太(うひょ),川島 義隆,五十嵐 進士,末永 恭正,佐藤 雄太,吉井 健文,牧 大輔,西山 和広,吉田 花春,古川 雅大,岡林 大,池澤 春菜,和田卓人,日高 正博,はまちや2,竹原技術評論社Amazon 大まかには、「オブジェクト」でソフトウェアをぜんぶ考えるということに無理があったので、パーツそれぞれ適したやりかたでやっていこうぜ!という内容です。 ソフトウェアを切り出したときのパーツとしてのオブジェクトの特性が同質であるという暗黙の前提があって、だから「オブジェクトの話をすればソフトウェア開

                                          「オブジェクト指向神話からの脱却」という特集をWEB+DB PRESSで書きました - きしだのHatena
                                        • プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena

                                          Tiobe indexを眺めながら、C#とVBが入っていてMicrosoftは強いなーと思ったのだけど、よくみると他の言語もMicrosoftの影響力すごいのではとなったので調べてみた。 https://www.tiobe.com/tiobe-index/ Python 例えば1位のPythonにMicrosoftはかなり力をいれている。象徴的なのが、Pythonのオリジナル開発者の入社 C/C++ Windows上でのC/C++コンパイラではMS C/C++が圧倒的シェアであるし、C++の標準化団体にMicrosoftはGold Memberとして参加している。 https://isocpp.org/about Java 4位のJavaに関してもかなりリソースは割いているわけですが、全体の影響度としてそこまで大きくはないですね。 昨日のブログにも書いたようにOpenJDKビルドを出してい

                                            プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena
                                          • rinnaのDeepSeek R1蒸留モデルがすごい - きしだのHatena

                                            DeepSeek R1が話題になってだいぶたちますが、日本語対応モデルも出てきてますね。 そして2/15にrinnaからDeepSeek R1の蒸留モデルが出ていて、これがかなりいい感じなのでびっくりしてます。驚き屋してます。 DeepSeek R1では、こっそりと回答方針を決めるフェーズがあるのだけど、そこがなかなか筋がいい。 というか、作り方もなんだかすごいので最後に解説してます。 Qwen2.5とDeepSeek R1を利用した日本語大規模言語モデル「Qwen2.5 Bakeneko 32B」シリーズを公開|rinna株式会社 ※ 2/18追記 こういう記事を書くときに「これがローカルで動いてすごい」のように書くんですが、ここではローカルで動いてすごいということは書いてなく、普通にちゃんと答えがでてその内容がすごいという風になってきてますね。追記ここまで。 CyberAgentからも

                                              rinnaのDeepSeek R1蒸留モデルがすごい - きしだのHatena
                                            • Gemma 3やQwQなどでローカルLLMがそろそろ使い物になってきた - きしだのHatena

                                              GoogleからGemma 3が出たり、AlibabaがQwQを出したりで、27Bや32BでDeepSeek V3の671Bに匹敵すると言っていて、小さいサイズや2bit量子化でも実際結構賢いので、普通の人がもってるPCでもローカルLLMが実用的に使える感じになってきています。 Gemma 3 Gemma 3は単一GPUで動くLLMで最高と言ってます。 https://blog.google/technology/developers/gemma-3/ 1B、4B、12B、27Bがあって、最高なのは27Bだけど、今回はLM Studioで12Bの4bit量子化版を使います。 LM Studioはここ。モデルのダウンロード含め、わかりやすいです。 https://lmstudio.ai/ とりあえず知識確認でJavaのバージョン履歴を。だいたいあってる! JDK13のリリース年だけ違うけど、

                                                Gemma 3やQwQなどでローカルLLMがそろそろ使い物になってきた - きしだのHatena
                                              • プログラムを教えて理解されない場合は教える技術の不足 - きしだのHatena

                                                プログラムが組めるとプログラムが教えれると思いがちだけど、教えることは別の技術です。 教えてもなかなか理解してくれないとき、プログラミングに向いてないとさえ言う人もいますが、教える側の教える技術の不足です。 教えることも技術のひとつだと気付けば、教えてもなかなか理解してくれないときに技術の不足であるということにも思い至れると思います。技術の不足であると気付けば、改善もしていけます。 そして教える技術というのは、インストラクショナルデザインという名前で系統だてて整理されています。 たとえばそのまま「インストラクショナルデザイン」など、タイトルにインストラクショナルデザインが含まれた書籍もたくさん出ています。 インストラクショナルデザイン―教師のためのルールブック 作者:島宗 理発売日: 2004/11/01メディア: 単行本 他にも、タイトルにはインストラクショナルデザインとついてないけどイ

                                                  プログラムを教えて理解されない場合は教える技術の不足 - きしだのHatena
                                                • AIが進化すると、そもそも業務システムが不要になりそう - きしだのHatena

                                                  ChatGPT O1やDeep Researchなどがすごいパフォーマンスを出してきていますね。もう仕組み上も単にLLMではなくAIとしか言えなくなってきています。 そんなAIが進化して、プログラミングをAIがやってくれるようになると、そのプログラムの確認をどうするんだって話があります。業務システムの開発では、プログラム読めない人がプログラムの生成に携わったりするようになって、できてきたプログラムが読めないってなる。 問題では?と思ったのだけど、そもそも業務システムが不要になりますね。 小さい食堂で、伝票とかも取らずにちゃんとまわす人とかいますね。記憶力のいい人だと、昼のラッシュでもちゃんと覚えてまわせそうです。 ファミレスでバイトしてたとき、調子がいいときだと割と全部の注文を覚えれてたりしたので、それなりにまわせる人が多そうです。 そして、AIであればもっと記憶力よく考えてまわせるので、

                                                    AIが進化すると、そもそも業務システムが不要になりそう - きしだのHatena
                                                  • なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena

                                                    1990年代にオブジェクト指向分析・設計の方法論がめちゃ流行ったことがあります。 ただ、そのブームが終わって、後続となるような方法論が流行ることはありませんでした。 で、なぜなのか考えていたのですけど、オブジェクト指向方法論のウリは分析段階で出てきたオブジェクト(といいつつクラス)がコードにそのまま引き継がれるというものでした。ようするにオブジェクト指向方法論というのはコードのスケッチを書いて詳細化していくというものだったのです。 しかしながらこれは、スケッチとして書いた分析・設計が間違っていればコードも間違うわけで、強くウォーターフォールの性質をもつものでした。 結局のところスケッチの妥当性というのはコードを書かないと検証ができません。分析・設計段階で見出されたクラスが妥当かというのは、コード書かなければわからなかったのです。逆に、コードを書けば妥当かどうかわかります。であれば、最初から

                                                      なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena
                                                    • サーブレットを「JavaでのWebアプリケーションの基礎」として最初に勉強させるのをやめてあげてほしい - きしだのHatena

                                                      研修がはじまるという画像でサーブレットJSPの本が並んでて、サーブレットを最初に勉強させるのをやめてあげてほしいと思った話。 オブジェクト指向もそうなんだけど、現状で使わなくなっているにもかかわらず情報更新がされずオブジェクト指向やサーブレットJSPが教えられ続け本が売り続けられるという現状がある。 でももうさすがに変わってほしさ。 ただ、JSPはそこまで悪くないので、サーブレットで話を進める。(ただし、サーブレットが動かない環境ではJSPは動かない) 使われていない まず、いまの案件の多くがSpring / Spring Bootになってて、サーブレットをさわるということは少ない。 2020年のJetBrainsの調査ではこんな感じ https://blog.jetbrains.com/ja/idea/2020/10/a-picture-of-java-in-2020-ja/ 2021年

                                                        サーブレットを「JavaでのWebアプリケーションの基礎」として最初に勉強させるのをやめてあげてほしい - きしだのHatena
                                                      • Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena

                                                        みなさん、今日もパブリックスタティックヴォイドメインしてますか? ジャバと言えばパブリックスタティックヴォイドメインですよね。 最近はIDEでmain[tab]と入力すれば補完してくれるとはいえ、コードを読むときには目に入ってきたりしますね。 そんなパブリックスタティックヴォイドメインの呪文から解放される日が近づいています。 TL; DR 9月リリースのJava 21の試用機能として void main() { System.out.println("Hello"); } をhello.javaで保存したら、java hello.javaで実行できるようになります。 (Java 21では--enable-preview --source 21が必要) Javaではプログラムを開始するときにpublicなclassなどにStringの配列を受け取るpublicでs

                                                          Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena
                                                        • ソフトウェアの「詳細設計書」とはなんなのか - きしだのHatena

                                                          「設計書」というのは、作るものの構造を抽象的に表現したものと言うことができます。 ただ、ソフトウェアの抽象化の仕組みはプログラミングコード自体に備わっているので、ソフトウェア生成可能な抽象的表現というのはコード表現ができるはずですね。コードで表現しておくと、整合性のチェックとかも行いやすいです。 でも、コードではない「詳細設計書」というものが一部業界には必要とされているので、その「詳細設計書」というのは実際はなんなのか考えてみます。 ※ 最初はタイトルは「設計書」としてましたが、話を限定するため「詳細設計書」に変更しました。 追記:納品物に関する記述を追加しました。 追記(2024/11/27):「概略図」「物理設備の設計」を追記 表現を変えたコーディング ソフトウェア生成可能な抽象的表現というのはコード表現ができるわけですが、文字で表記する必要もなく、ダイアグラムで表現することもできます

                                                            ソフトウェアの「詳細設計書」とはなんなのか - きしだのHatena
                                                          • 電子ペーパーAndroid端末BOOX Nova2を買って不要になった端末たち - きしだのHatena

                                                            電子ペーパーAndroid端末であるBOOX Nova2を買いました。 BOOX Nova2,7.8インチ,電子書籍リーダー,Android,Einkタブレット メディア: 2021/4/29追記 いまはNova3が出てます BOOX Nova3,電子ペーパー,7.8インチ,E Ink,Android10,電子書籍リーダー メディア: 4年前にBOOX C67ML Carta2を買ったのだけど、メモリが512MBで安定して動いてなくて、そんなもんかーとあきらめていた。 それがなんか新しいBOOXは 結構ちゃんと動くっぽいという話で、メモリも3GBになってるし使えるやろーということで買ってみた。 そしたら想像以上によくて、いろいろなものが不要になったのでまとめてみる。 重さはほぼカタログ通り。 Kindle Paperwhite まず完全に用途がかぶるKindle Paperwhiteは完全

                                                              電子ペーパーAndroid端末BOOX Nova2を買って不要になった端末たち - きしだのHatena
                                                            • 多重下請けでは構造的にいいソフトウェアが作れない - きしだのHatena

                                                              多重下請けではエンジニアが育たないという話を前回のブログで引用していたのですが、そもそも多重下請けではまともなソフトウェアは開発できないんではないかという気持ちになりました。 多重下請けでは、上位受け会社の「SE」が「設計」を行い、下位受け会社の「PG」が実装を行うという役割分担があります。というか、今回の話はそういう役割分担がある多重下請けを前提とします。 そうすると、設計というのは会社間をまたがった契約文書であり、発注のための作業指示書であるということになります。ソフトウェア開発で本質的に必要な文書というよりは、ビジネス構造によって必要になったビジネス文書です。ちなみに派遣ではなく業務委託のはずなので詳細な作業指示になってはいけないのもポイントです。 ※余談ですが「設計は必要である」という人の話をきいてみると、必要なのは実装のための設計ではなく保守のためのドキュメントということがほとん

                                                                多重下請けでは構造的にいいソフトウェアが作れない - きしだのHatena
                                                              • 時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena

                                                                この文章みてください。 オレはもう20年以上システム業界にいるけどな、その長い経験から言うと、オブジェクト指向なんてものは、理論としては面白いけど、およそ実用的とは言い難いものだな。まぁ、例えばGUIのコンポーネントとかはオブジェクト指向に基づいて作られているようだから、そういうツールとかを作る人には必要なものなのかもしれない。しかし君たちがいずれ作ることになる業務アルゴリズムにはまったく無縁のものだと思ってもらって間違いない。どうもこの業界、オブジェクト指向でなければダメ、というような風潮がまかりとおっているけどな、オブジェクト指向なんか本当に使っている人はほとんどいないよ。オレも少し勉強してみたけど、カプセル化とかポリ何とかとか、どうにも利点が理解できなかったね。実際、実業務で使ったことなどないしな…… 「またお前、オブジェクト指向の話をしてるのか」と思ったかもしれませんが、2010年

                                                                  時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena
                                                                • ChatGPT時代にはすべてのエンジニアがフルスタックになる - きしだのHatena

                                                                  ChatGPTのおかげで非エンジニアでもコードが書けるようになるということを多くの人が言ってますが、すでにエンジニアである人にあてはめると、ChatGPTのおかげで専門分野以外のコードでも書けるようになるということで、つまりすべてのエンジニアがフルスタックになるってことじゃないかと思います。 ChatGPTにコードを書いてもらうと毎回びっくりする いや、ちょっとJavaで袋文字の描画ってどうやるんだったかなーと思ってChatGPTに問い合わせたら、ほぼ完全なコードをリテイク1回で生成したんですね。 こいういうコードが出きました。createGlyphVectorとか知らんわ! // 文字の縁取り g2d.setColor(Color.BLACK); g2d.setStroke(new BasicStroke(5)); // 縁取りの太さを調整 g2d.draw(font.createGly

                                                                    ChatGPT時代にはすべてのエンジニアがフルスタックになる - きしだのHatena
                                                                  • リファクタリングはエンジニアの福利厚生であり管理指標への影響はほとんどないんでは - きしだのHatena

                                                                    おそらくリファクタリングの工数を確保する説得力のある材料がほしくて、リファクタリングの効果をどう示すか悩んでる人がいたのですが、リファクタリングって非開発者に示せるような数字だすのは難しいよねという結論になったので、そのまとめ。 工数としてはコード管理費みたいな感じで乗せるのがよさそう。 まず、リファクタリングはそれ自体では価値を示せません。人工衛星に搭載するプログラムで、動きだしたらメンテナンスできないようなコードを最後にリファクタリングしたとして、どのような価値を示せるかと考えると想像できるのではないかと思います。 なのでリファクタリングの価値というのは、その後で新しいコードを追加したり既存のコードを変更したりといった作業がどれだけ作業時間短く品質高くなったかという間接的な指標で測ることになります。 ここでまず、最初のコードを書いた人とリファクタリングする人が同じなら、そこまで保守性か

                                                                      リファクタリングはエンジニアの福利厚生であり管理指標への影響はほとんどないんでは - きしだのHatena
                                                                    • 古いコードを捨てて1から書き直したからこそ続いているソフトウェア - きしだのHatena

                                                                      Joel on SoftwareにNetScapeを例に、古いプログラムを捨てて1から書き直したくなるのは戦略ミスだって書いてあるけど、あのとき書き直してなかったら続いてないんではって思ったので、1から書き直して続いてるソフトウェアを挙げてみる。 Firefox NetScapeからMozillaに移行するときに、新バージョンのリリースがなくなって、そこで致命的にシェアを落としたというのは確かにそうだと思う。 けど、そこで書き換えていなかったら、2005年のAJAXから始まるWebアプリの高度化についていけなかったと思う。 あそこで書き換えたからこそ、いまこの記事をFirefox上で書けてるんじゃなかろうか。 Windows Windowsは、MS DOS上で動いていた3.1に継ぎ足すような形で32bit対応してWindows 95など続いていたけど、やはり無理が出ていて、ビジネス用にWi

                                                                        古いコードを捨てて1から書き直したからこそ続いているソフトウェア - きしだのHatena
                                                                      • 光療法ライトで睡眠が改善して昼間のヤル気もでてきた - きしだのHatena

                                                                        睡眠リズムを整えるために光療法ライトを買って3ヵ月試してみたら、昼間活動しやすくなっただけではなくて、冬の時期によくあるヤル気のなさもなくなって、いろいろ活動できるようになりました。このブログエントリもそう。 在宅勤務で出勤がなくなったり出かけることがなくなって、気分がおちこんだり夜ねむれなくなったという人は、光療法ライトを試してみるといいかもしれません。 注意 睡眠や気分の問題を感じているなら、できれば睡眠外来やメンタルクリニックにいって相談するほうがいいと思います。 非24時間眠覚醒症候群 ぼくは非24時間眠覚醒症候群というやつで、厚生労働省のサイトには「通常の社会生活が困難となります」などと書かれており、たしかに通常の社会生活は困難だなーと思っていたところ。 非24時間睡眠覚醒症候群 | e-ヘルスネット(厚生労働省) で、いろいろ試していたのだけど、まあ出社もしなくていいし、寝れる

                                                                          光療法ライトで睡眠が改善して昼間のヤル気もでてきた - きしだのHatena
                                                                        • オブジェクト指向のサンプルプログラムがだいたいヒドい理由 - きしだのHatena

                                                                          いまだにオブジェクト指向とか言ってるのか、という話ですが、いまだに「プログラミングの勉強はじめました。オブジェクト指向が目標です!」みたいなのがThreadsに流れてきたりして、いつまでも無くならんなぁと思うわけですよ。 で、まあオブジェクト指向を勉強してしまいたくなるのは仕方がないとして、オブジェクト指向推しの本でのサンプルがだいたいヒドいのが問題だなと思ったわけです。 アプリケーションを見据えていない オブジェクト指向の例として、自転車クラスだとか勇者クラスだとか定義するサンプルをみかけます。 自転車クラスを作る例の場合、車輪クラスがありサドルクラスがありペダルクラスがあり、ブレーキクラスはブレーキシュークラスやブレーキキャリパークラスを内包するな、みたいなことをやりますね。JSONでやれ。 という感じで、単にJSONなど構造データのマッピングになりさがってたりします。 あと、現実の写

                                                                            オブジェクト指向のサンプルプログラムがだいたいヒドい理由 - きしだのHatena
                                                                          • きれいなコードは互いに似通っているが、クソコードはどこもその趣が異なっている - きしだのHatena

                                                                            先日のJJUG CCC 2023 Fallの懇親会でクソコードを研究しているという学生がいたのだけど、クソコードの研究は難しいという話をした。 人工的にクソコードを再現しても、あの野生のクソコードのクソさには全く足りないわけで。 トルストイが言うように「すべてきれいなコードは互いに似通っているが、クソコードはそれぞれにクソの趣を異にしているものである」なので、なかなか「これがクソコード」のように類型化するのも難しい。 典型的なクソコードを書いてみても、なんだかきれいなクソコードができてしまう。 クソコードはネットに出回らないので、資料の収集もまた難しい。ネットにないということは、ネットの情報に基づいている「AI」もホンモノのクソコードには触れていないことになる。 クソコード収集サイトをつくっても、実際のクソコードは業務固有処理も含まれるので、掲載できる形に整理していくと本来のクソさが薄れて

                                                                              きれいなコードは互いに似通っているが、クソコードはどこもその趣が異なっている - きしだのHatena
                                                                            • 今のAIの急激な進化は、今までの遅れを取り戻しただけで、これからは普通の成長速度になるんでは - きしだのHatena

                                                                              この2年半くらいで急激にAIが進化して、このままの速度で進化が進むように見えるけど、今までディープニューラルネットや自然言語処理が目立たなかったところに、急に注目されてリソースが投入されて時代が追いついただけな気がする。 H100というハードウェアはChatGPT直前にリリースされていて、どこそこが数万台導入みたいなときにはすでにこなれていた。 GPUを連携させてニューラルネットの学習をさせる技術もだいぶこなれていた。 学習に投入するデータもだいぶあふれていた。 自然言語処理の知見も結構蓄積されてた。 それがチャットができるようになったことで注目されて、H100をフルに使って人材や知見を投入して、学習データを食い尽くしたのが今。 サイズを大きくして性能だしてたのが飽和して、推論時にコンピュータリソースを使う方向になってきてる。 学習データも食い尽くしたので、OpenAIがSNSやるみたいな

                                                                                今のAIの急激な進化は、今までの遅れを取り戻しただけで、これからは普通の成長速度になるんでは - きしだのHatena
                                                                              • AIでプログラマ不要になるというのは、プログラミング言語構文わかればプログラム組めるという誤解に基づくのでは - きしだのHatena

                                                                                AIで日本語で指示をあたえればプログラムを作ってくれるようになって、プログラミング知識がなくても誰でもプログラムが組めるとか、プログラマが不要になるとかいう話が盛り上がってますね。 けど、実際にプログラマをやって、AIコーディングエージェントを使っていれば、プログラミング知識がなくても可能な領域というのはそんなに広くないことを感じていると思います。 たとえば、ほぼプロンプト一発で作ってもらった刺身タンポポゲームがあります。 このプロンプトはこんな感じです。 刺身にタンポポを乗せるゲームをJavaのSwingで作って。 刺身かネコが0.75秒ごとに表示されます。 刺身は、白い皿に、赤い板状の切り身が3枚のっています。 ネコは顔だけ表示されます。かわいくおねがいします。 表示のシーケンスは次のようになります。 共通の影が右から中央に0.1秒で移動します。 刺身かネコが0.5秒表示されて、0.1

                                                                                  AIでプログラマ不要になるというのは、プログラミング言語構文わかればプログラム組めるという誤解に基づくのでは - きしだのHatena
                                                                                • ChatGPTにブログ全エントリを学習させて「おしえてきしださん」を作る - きしだのHatena

                                                                                  最近「100万件の文章をChatGPTに学習させて応答チャットを作りました」みたいなニュースがあって、違和感があります。 ということで「ChatGPTにブログ全エントリを学習させて「おしえてきしださん」を作る」としたときに、どんな仕組みになっていて、なぜ「ChatGPTに文章を学習させて」ということに違和感があるか見てみます。 とりあえずこんな感じで、質問に対して答えれてるっぽいチャットができました。 まず、Embedding APIを使って、全エントリのベクトルを得てMongoDBに突っ込んでおきます。 このエントリでやってるので、そのまま使います。 GPTのEmbeddingを利用してブログの投稿に対する近いものを探し出す - きしだのHatena 質問が入力されたら、質問文も同じようにEmbeddingでベクトルをとってきます。 var req = EmbeddingRequest.

                                                                                    ChatGPTにブログ全エントリを学習させて「おしえてきしださん」を作る - きしだのHatena

                                                                                  新着記事