Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

ブックマーク / nowokay.hatenablog.com (16)

  • プログラミングが設計作業であるという話 - きしだのHatena

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

    プログラミングが設計作業であるという話 - きしだのHatena
    zyzy
    zyzy 2024/09/09
    建築で現場に合わせて色々変えるのは、どっちかというと「本番環境に持っていく」部分かなという気がする。本番サーバで実際に設定入れてく段階と言うか。
  • ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena

    ITはもう面白くなくなってますね。 技術が面白いときには、いろいろ新しいものが出て性能あがったりできることが増えたりします。調べたらどんどん新しいものが出てくるし、新しいものもたくさん作るし、面白い。ですが、IT技術は一通り出そろって、成熟期に入っています。そうすると新しい技術に出会うことも新しいものを作ることも減っていきます。その結果、いままでの変化のあった状況を知っていれば、つまらんってなりますね。 ※2024/8/24 追記 言いたいことをまとめると、IT素振りのネタ探しに苦労するようになったよねってことです。 結局のところITというのは新しいハードをどう動かして社会に実装していくかというものなので、新しいハードが出ないとどうしようもないのです。けれどもだいたい飽和してしまった。 雑にいえば、これまで1980年くらいにBASIC搭載8bitパソコンが普及するとBASICプログラミング

    ITが面白い時代はすでに終わっているし変化も遅くなった - きしだのHatena
    zyzy
    zyzy 2024/08/21
    AIはマネタイズが弱いんだよな。結局金が注がれないと盛り上がらない。
  • 報道ヘリがうるさくて救助の邪魔になるという話はどう広まったのか - きしだのHatena

    報道ヘリがうるさくて救助の邪魔になるという話はどう広まったのか、というのを調べてみていたのでメモ そもそもとして「報道ヘリがうるさくて救助の邪魔になる」ということなんてあるのか、という話は、1995年1月17日の阪神淡路大震災にさかのぼる。 震災後6日後に収録されたと言われる1月27日放送の「パペポTV」で上岡龍太郎が次のような発言をしていた。 取材陣のヘリコプターがあの被災地の上を飛び回るでしょう。あの爆音のために、生き埋めになってる人に外からどんなに声かけても、その人たちの声が爆音のために聞こえない 救助の邪魔になるという話 以外にも、被災者から「自分が見せ物にされている」というような苦情もあったようだ。救助ヘリの邪魔になる高度を飛ぶようなこともあったらしい。 これは実際に問題だったようで、その後1997年に日民間放送連盟から「航空取材ガイドライン」が出されて、報道ヘリがある程度の高

    報道ヘリがうるさくて救助の邪魔になるという話はどう広まったのか - きしだのHatena
    zyzy
    zyzy 2024/03/09
    ウヨミソが毎回自分たちの虚言癖がばらされたとたん「でまがまかれるのはしんらいがないんだぁぁぁ」言い出すのもこれ多分自他反転思考からっぽいのよな。自分達の信頼がなくなった瞬間だからこそこれを言うという。
  • 時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena

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

    時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena
    zyzy
    zyzy 2024/03/09
    関数型が流行ったあたりからこれは定期的に思ってる。というか当時のいじり方が本当にひどすぎてて当時も引いた。男界隈のいじめ案件ってこうなるんだ、って思ったくらい。
  • 大規模言語モデルはこれ以上賢くならず庶民的になっていく - きしだのHatena

    ChatGPTはめちゃくちゃ賢いんだけど、変な間違いをするし話が通じないこともあります。 ここで「もっと賢くなったら数年後には・・・」のように思ってしまいがちなのだけど、GPT4より目に見えて賢くするのは難しい気がします。 むしろ、人間くさくなったり使いやすくなったりするんじゃないだろうか。 ChatGPTなどの言語AIの中核になる大規模言語モデルは、多くのテキストを学習することで言葉や論理について学習しています。 ただ、そのための教師データになるテキストが枯渇するのではないかという話があります。 MIT Tech Review: 大規模言語AIにアキレス腱、訓練用データが2026年にも枯渇か いまChatGPTの賢さで問題になるのは、論理の誤りや情報の間違いです。 論理構造が難しくなり思考手順の分解が必要になると間違いやすくなるように思います。 ニューラルネットの論理推論は、雑にいうと計

    大規模言語モデルはこれ以上賢くならず庶民的になっていく - きしだのHatena
    zyzy
    zyzy 2024/03/09
    この辺になってくるともうどういうチューンが流行るか、みたいな段階ではあるよな。
  • きれいなコードは互いに似通っているが、クソコードはどこもその趣が異なっている - きしだのHatena

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

    きれいなコードは互いに似通っているが、クソコードはどこもその趣が異なっている - きしだのHatena
    zyzy
    zyzy 2023/11/26
    縛りプレイを達成するためのアイディア集みたいな感じなのである意味美しいんだよなクソコードって。その縛りが発生する理由が知識の欠如とか現場の政治的な混乱とかで、実用的にマイナスでしかないからクソなだけで
  • x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena

    x = x + 1がわからないという話が流行ってました。 で、「=ではなく:=を使えば」とか「イミュータブルにすれば」とかいう話が出たりしてますが、問題をあとまわしにしてるように見えます。 結局のところ、逐次実行がわかっていないことが表面化している場合がほとんどではないかと。 https://speakerdeck.com/kishida/lets-code-a-process?slide=8 プログラム以外の文章は、基的にひとつの状態を示していて状態が遷移するということがありません。 推理小説なども、最終的な状態が徐々に開示されるだけともいえます。途中から読むと犯人が変わるということはないですね。もちろんそのように途中から読むと犯人が変わるような叙述トリックは可能ですが、通常はそうではないからトリックになるわけで。 つまり、x = x + 1という式は、x + 1という演算を行ってから

    x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena
    zyzy
    zyzy 2023/11/24
    関数型みたいに数学の山から登って理解するか、ノイマンマシンの山から登って理解するか、で=という数学の記号をノイマンマシン特有の挙動に使ってるせいでややこしくなってるんじゃないかな、と。
  • メモリを追加して64GBになったので動かせなかった言語モデルを試した - きしだのHatena

    いろいろと大規模言語モデルを試すと、CPUで動かすときにメモリが足りなくて大きいのが動かせなくて残念な気持ちになっていたのだけど、調べてみるとメモリ32GBは1万円くらいなので、追加して試してみました。 Stable Diffusionはいい感じにメモリが刺さった画像を生成してくれなかったので、実物です。CPUの反対側にもう4枚ささってます。 メモリ追加 今回追加したのは、これを2セットです。 ADATA デスクトップPC用 メモリ PC4-25600 DDR4-3200MHz 288Pin 8GB × 2枚 AD4U320038G22-DA エイデータ(Adata)Amazon ちなみにマシン構成はこのときのままです。2017/12/16に組んでます。 8コアのPCを組んでベンチマークとったらだいぶ強い - きしだのHatena 8GBx4が45000円くらいだったのが、いまだと1200

    メモリを追加して64GBになったので動かせなかった言語モデルを試した - きしだのHatena
    zyzy
    zyzy 2023/04/10
    64G要る時代か……
  • 新しいプログラミング言語が出てこない(新しく出てた言語を追記) - きしだのHatena

    2010年代前半にKotlinが2011年、TypeScriptが2012年、Swiftが2014年、Rustが2015年と、新しいプログラミング言語が立て続けに発表されていましたが、そこを最後にみんなが話題にするような言語は出てきていません。 なんでだろうと、思いつく要因をあげてみます。 ※ 追記2023/5/11 わざとなのか「みんなが話題にするような」を無視してツッコミ入れてる人いるのだけど、言い換えれば「新しい言語が出てもみんな話題にしない」という話です。 プラットフォーム用の言語が出そろった KotlinTypeScriptSwiftRustが2010年代前半に出てきましたが、これはJVM(Android含む)、ブラウザ、Appleデバイス、ネイティブといった代表的プラットフォームでほどほどの言語が出そろったということではないかと思います。 結局のところプログラミング言語は

    新しいプログラミング言語が出てこない(新しく出てた言語を追記) - きしだのHatena
    zyzy
    zyzy 2023/04/10
    GoとRust以降、ハードル上がったのは本当にそう。LLVM以降作ること自体は容易くなったが、その分要求されるものは増えたというか。
  • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

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

    オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
    zyzy
    zyzy 2023/02/25
    「構造体に色々放り込めば、各データ(第一級オブジェクトの関数含む)が階層化されていてアクセスしやすい」くらいがオブジェクト指向(というか構造化なのだが)の使いやすい落とし所でそれ以上は邪魔なのかもなぁ
  • なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena

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

    なぜオブジェクト指向方法論に代わる方法論が出ないのか - きしだのHatena
    zyzy
    zyzy 2022/08/07
    オブジェクト指向の話すると結局どのルートでも最後は「オブジェクト指向という言葉が指す範囲が他の類似概念に比べて広すぎる」に行きつく気がする。
  • オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena

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

    オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena
    zyzy
    zyzy 2021/09/26
    どうしてもモノリシック前提になってしまう、っていう事かな。設計の前提に置いてしまうと混乱の元になる、というか。それでいてモノリシックでコンパクトにまとめたい案件からしたら複雑になりすぎるし。
  • GraalVMはどれだけ遅いか - きしだのHatena

    GraalVM流行ってますね。 そして、多くの人はGraalをAOTとして使うnative-imageのことだけをGraalVMと言ってたりします。 ご安心を。このエントリではGraalをJITとして使うHotSpotモードとGraalをAOTとして使うnative-imageの両方が遅いという話です。 GraalVMは速い、と言われてますが、残念ながらHotSpotモードでC2より速い結果を手元では出せていません。 公式ブログでは1.7倍から5倍速くなると書いてますけど、手元では再現できてません。 Under the hood of GraalVM JIT optimizations - graalvm - Medium native-imageは速い、というのはよくありますが、これはネイティブ化によりJVMの起動時間や最適化の時間、最適化されずに動く時間が省略されるので起動が速い、とい

    GraalVMはどれだけ遅いか - きしだのHatena
    zyzy
    zyzy 2019/07/09
    まぁ速さはこれからだろうとは思う。
  • Java11ではjavacせずにJavaファイルが実行できるようになる - きしだのHatena

    JDK11 ea18から、javacしないでもJavaファイルを実行できるようになりました。 あと、Windowsバイナリはzipファイルで提供されるようになっています。tarコマンドが提供されたとはいえ、エクスプローラーから解凍できるzipファイルになるのは ありがたい。 JDK 11 Early-Access Builds JEP330が取り込まれたことにより、ソースファイルがひとつのJavaプログラムは、javac不要でjavaコマンドで実行できるようになります。 JEP 330: Launch Single-File Source-Code Programs Windowsのコマンドプロンプトだと こんな感じ。 C:\Users\naoki\java>more Hello.java public class Main { public static void main(String

    Java11ではjavacせずにJavaファイルが実行できるようになる - きしだのHatena
    zyzy
    zyzy 2018/06/18
    こうなるとScalaみたいに、もう少し略式でmainを書ける記法も欲しくなるなぁ……。
  • 主要なプログラミング言語7つの簡単な説明 - きしだのHatena

    流行ってるので書いておかなくては。 Java Javaわかりますという未経験者から、Javaわかりませんという実力者まで、幅広く仕事がある。 Perl 自分の書いたPerlコードは読めません、という人にしか仕事がないので、平均給与が高い。 JavaScript よくわからない。いい意味で。 Ruby よくわからない。いい意味で。 Scala よくわからない。いい意味で。 MSX-BASIC 語れるとおっさんが釣れる。N88-BASICは敵。 Verilog HDL ナゾの裏世界 7つの言語 7つの世界 作者: Bruce A. Tate,まつもとゆきひろ,田和勝出版社/メーカー: オーム社発売日: 2011/07/23メディア: 単行(ソフトカバー)購入: 9人 クリック: 230回この商品を含むブログ (65件) を見る

    主要なプログラミング言語7つの簡単な説明 - きしだのHatena
    zyzy
    zyzy 2016/08/27
    上級者は勿論未経験者にいたるまで分かりませんというC++に比べて、Javaは凄い!!
  • 小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena

    子どもへのプログラミング教育は早ければ早いほどいいというものではない。 最近子どもへのプログラミング教育が話題になることが多いけど、恐らく小学3年生までの子どもへの効果はほとんどなく、小学4年生でもほとんどの子どもには難しいと思う。 人間の知能の発達には段階があって、必要な段階に達していないうちにそれが必要な教育を行っても効果は望めない。 まず、なんでこのエントリを書いたかというと、プログラミングには適した発達段階があるということを知らないと、その発達段階に達する前にプログラミング教育を行って、もちろんプログラミングは出来なくて、その子には適性がないという判断をしてしまうとうことが起きてしまうんじゃないかと思ったからだ。 まだ適した段階まで来てないだけなのにプログラミング教育をして失敗して「この子にはプログラミングができなかった/興味をもたなかった」という実績を作ってしまうことによって、将

    小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena
    zyzy
    zyzy 2016/01/07
    単純なYes/No占いを理解するのにも、結構発達するのを待たなきゃいけなかったんだな……。子供の発達って、ある部分は思った以上に早いのに、ある部分は意外なほど遅いことがあって面白い。
  • 1