オブジェクト指向はコードを複雑に読みにくくする

「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います…

Web記事の本文をJavaで抽出する

指定したURLの記事本文を取ってくる処理がほしいなぁと思って、しかしいろいろ考えるのは面倒と思ったけど、少なくともJavaで簡単に使えるものがなさそうなので実装した。 参考にしたのはこちら。 HTMLからの本文自動抽出 - アドファイブ日記(ミラー版) テ…

Stable Diffusionの「呪文」の与え方

最近はブログにStable Diffusionが生成した画像を出すようにしています。Stable Diffusionなど画像生成AIでは、パラメータとして与えるプロンプトに呪文のようなことを書かないといけないので、呪文詠唱スキルみたいなのが求められるようになってますが、そ…

ChatGPTによって世の中の「AI」の理解がすすんだ

もうなんかどこもかしこもChatGPT、という感じで流行ってますね。といいつつ、ぼくも割とChatGPTのブログ書いてます。だっておもしろいもん。 そして、多くの人が触って、今のAIの特性みたいなものに気づく人が多くなってるように思います。 世の中でAIが流…

プログラミング言語へのMicrosoftの影響力がヤバい

Tiobe indexを眺めながら、C#とVBが入っていてMicrosoftは強いなーと思ったのだけど、よくみると他の言語もMicrosoftの影響力すごいのではとなったので調べてみた。 https://www.tiobe.com/tiobe-index/ Python 例えば1位のPythonにMicrosoftはかなり力をい…

Microsoft OpenJDKのエスケープ解析改善を試したら割と効いてる

MicrosoftのOpenJDKにエスケープ解析の改善が入ってるってことで試してみました。 https://www.infoq.com/news/2023/02/microsoft-openjdk-feature/ Microsoftのアナウンスはこちら。 https://devblogs.microsoft.com/java/microsoft-build-of-openjdk-octob…

JobRunrを試してるんだけどクセが強い

JobRunrという、バッチ処理とかバックグラウンドタスクとかを試してみたんだけど、よくわからない・・・ https://www.jobrunr.io/en/ dependencyにはjobrunrと、あと何かJSONパーサーを入れます。ここではjacksonにしてますが、GSONかyassonでもいいぽい。 <dependency> <groupId></groupid></dependency>…

ChatGPTに負けないために大切なこと

ChatGPT、人気ですよね。 そして、こんなに賢いAIが現れたら人間の仕事はなくなるような気がしてしまいます。 そこで、ChatGPTに負けないためにどうしたらいいか考えてみます。 ※ChatGPTに負けない必要があるのか、というのはまた別の話。 原理、原則を知る …

ギターのスケールを確認できるツールを作ってみた

ギターの練習をするときに、スケールとかコードのポジションを確認するのがめんどくさく、あと指板全域にわたってポジションを知りたくてもなかなか求めるものがなかったりしたので、作ってみました。 https://kishida.github.io/guitarscale/ この怪しいギ…

GPTでテキストからJavaコードを生成する

昨日のエントリでは歌詞と画像を生成したのだけど、歌詞を生成する部分のプロンプトを変えて、エンジンにCodexを使うとコードを生成できます。 GPTを呼び出す部分はこんな感じ String prompt = "//Java\n" + text.getText().trim().lines() .map("// %s%n"::…

OpenAIのGPTとDALL·Eでテーマから歌詞と画像を生成する

やっぱ自分でもさわってみんとあかんということで、OpenAIを使ったプログラムを書いてみました。 とりあえず、テキストと画像を生成します。 JavaのAPI使ってみます。中身はRetrofit。 https://github.com/TheoKanning/openai-java MavenやGradleでこんな感…

SourceBuddyでJavaクラスを動的生成する

Javaのバイトコードを操作するツールとしてはASMやJavassistがありますが、SourceBuddyはコンパイル・バイトコード生成を行うツールです。 バイトコード操作を行いたい場合、既存バイトコードの変更を行う必要はなくて、実行時に新規クラスを生成できれば十…

ChatGPTでわかる人間の思考、「意識」の実装方法

ChatGPTは完全ではないとはいえ人の脳みそのふるまいに似た動きをしているようにみえます。 そこで、覚えてるはずのことが思い出せなかったり、話しだすと思いがけない言葉がどんどんでてきたり、夢を思い出すことができなかったり、考えるときに言葉が必要…

オススメマンガ2023、異世界じゃないやつ

オススメマンガない?って言われたのでまとめ 年末にまとめたものが異世界多めだったので、異世界じゃないやつ。ほのぼの順。語彙力すくなめ。下に行くほど殺伐としています。というか一番したが最大限殺伐としている。 お兄ちゃんはおしまい カノジョも彼女…

ChatGPTがGoogle検索を使いものにならなくする未来

いろいろ仕組み的にChatGPTというのはGoogle検索の代替以上の働きをするなぁと思っていたのだけど、それとは別にChatGPTによって検索が使い物にならなく未来が考えられるなぁと思った。 ChatGPTが検索よりもいいのは、そのものズバリな文書がなくても、その…

テストコードがコードの冗長化であることについて

テストコードがコードの冗長化であるという話に、腑に落ちないという指摘がちらほらあるので、どういうことかを解説してみます。 このエントリについてです。 テストというのは、ソースコードの冗長化だと思う - きしだのHatena ※ ここでの冗長化は、英語版W…

Javaのインストール2023年版

ちょっとJavaのインストールについて調べてみました2023年版。 Javaにはディストリビューションがたくさんあるので、目につくインストーラーをWindowsで全部ためしてみました。 初心者が勉強するためにJavaをインストールするというときにどれを使うのが手軽…

ChatGPTのヤバさは、論理処理が必要と思ったことが確率処理でできるとわかったこと

ChatGPTのヤバいところは、論理処理が必要だと思っていたことが、じつは多数のデータを学習させた確率処理で解決可能だと示したことだと思います。 たとえば、このように正規表現にマッチする文字列を生成するには、特別に専用の論理処理が必要だと思ってい…

陽性と陰性の確率がそれぞれ50%の場合に最も検査の価値が高い

検査の結果には陽性と陰性しかないんだからそれぞれ50%、のような発言をみかけました。どうも文脈としては、検査をうけなければ100%陰性なので検査をうけないという話のようです。 けれども、もし本当に陽性と陰性がそれぞれ50%なのであれば、それは一番検査…

Jakarta NoSQLを試す(動かない)

なんかJakarta NoSQLというのが出ていて素敵そうだったので試してみた。 サポートしているデータベースがこんな感じで、このあたりを統一的に扱えると便利そう。 http://www.jnosql.org/docs/supported_dbs.html NoSQLといっても色々あって単一APIでは難しい…

今年よかったマンガ 2022

今年も最後なので、よかったマンガをまとめておきます。基本的には今年よみはじめたものです。 基本的には、ストーリーがしっかりしているものが好み。異世界もの多め。安易な裏切りとかバカな行為で話がすすむということがあまりないやつ。細かい設定の荒は…

APIといえばWeb APIになった現在、ローカルAPIは専らライブラリと呼ばれる説

APIというとWeb APIのことを指すようになってしばらくたちますが、こういう場合WebじゃないほうのAPIを指すレトロニムができるはずなんですよね。 例えばこのエントリのタイトルではローカルAPIという言葉を使ったけど、埋め込みAPI、組み込みAPIという言い…

AIは透かしを学習している

Stable Diffusionで遊んでるんですが、こういうのが出ました。 透かし入ってますね。 これ面白いのは、透かしの入った画像をひっぱってきてしまったわけではなく、Stable Diffusionが透かしを学習してわざわざ入れてるところですね。 なので、くっきりと文字…

SNS時代の友達というのは個人ではなく集団の友達濃度

よく、友達がいるとかいないとか多いとか少ないとかいう話になったときに「ぼくは友達いるんだろうか?」と思っていた。 たしかによく飲みにいく人はいるし、最近は少ないけど物理で勉強会があったときには月に2-3回会う人は結構いた。あと、ぼくのだいたい…

「偶然ルネッサンス絵画っぽくなった写真」のタイトルからStable Diffusionで画像生成してみる

「偶然ルネッサンス絵画っぽくなった写真」というブログ記事があって、このタイトルからStable Diffusionで画像生成したらどうなるかなと試してみた。 I've tried generating images with the Stable Diffusion using the titles in the blog 'Accidental Re…

今年買ってよかったもの1位はtapoのスマートランプ

寝るときにライトつけっぱなしにしてるよりは消したほうがよく眠れることに気づいて、ライト消したいんだけど布団からでるの面倒って思って、スマホ対応のなにかを買えばいいんだろうなと思いつつ、電気スタンドごと探すのも大変そうだったので放置してたん…

生活魔法としてのAI画像生成には、呪文より錬成手順が大事かも

Stable Diffusion楽しいですね。こんな画像が生成できました。 ちなみに「呪文」はこんな感じです。 Silver fairies home madeup of flowers, magical world, by greg rutkowski, sung choi, photo realistic, 8 k, cinematic lighting, hd, atmospheric, hy…

NMKD Stable Diffusion GUIが動かなかったのがDevice指定したら動いた

Stable DiffusionのGUI、NMKD Stable Diffusion GUIが動かなかったのだけど、SettingsでCUDA Deviceを指定したら動いたのでメモ 1.7.2をインストール https://nmkd.itch.io/t2i-gui でも、Generateを押すと「応答なし」になってしまった。Visual C++ライブラ…

Java2Dデモを最新JDKで動かす

Java2DデモというのはJava 5までJDKに添付、Java 8までは別途ダウンロードで提供されていたJava2Dのデモです。 Java2D Demo!#java #java2d pic.twitter.com/jAMih8ep9j— きしだൠ(K1S) (@kis) 2022年12月9日 久しぶりに動かそうと思ってJava 5をインストール…

「オブジェクト指向神話からの脱却」という特集をWEB+DB PRESSで書きました

「オブジェクト指向神話からの脱却」というあおり気味タイトルの特集をWEB+DB PRESS vol.132で書きました。 12/24発売!クリスマスプレゼントです WEB+DB PRESS Vol.132作者:きしだ なおき,加藤 尋樹,斉藤 洸紀,牟田 裕太郎,吉澤 政洋,朝日 リナ,鈴木 僚太(…