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作者:きしだ なおき,加藤 尋樹,斉藤 洸紀,牟田 裕太郎,吉澤 政洋,朝日 リナ,鈴木 僚太(…

ウソはウソと見抜ける人じゃないとChatGPTを使うのは難しい

ChatGPT、すごいですね。 Javaは素晴らしいという歌も作ってくれます。すばらしい。 Java素晴らしいという歌を作ってもらいました。https://t.co/Dx94koO2ti pic.twitter.com/E4tWK5FbeM— きしだൠ(K1S) (@kis) 2022年12月1日 プログラミング関係ではいろいろ…

プログラミング言語の入門が終わったら何の勉強をすればいいの?

JJUG CCC 2022 Fallで「Javaの入門が終わったら何の勉強をすればいいの?」という内容で発表を行いました。 基本的なものが作れるようになったけども、イマイチプログラムが組めないというときに、何を勉強すればいいかをまとめました。 入門が終わって作り…

ブログは思考の叩き台

前のブログで、「適当に言ってるだけ」「分析がちょっと雑」というコメントがついていた。 でも物事を適当じゃなく言ったり雑ではない分析をするには、最初に適当に言ってみることや、雑な分析を出してみることが大切だと思う。 まず、人に読ませる前提で書…

TwitterをSpaceXやTeslaと同じようにはエンジニアリングできないのでは

Twitterを買収したイーロン・マスクが週80時間勤務に備えろといって、それができないなら退職という話をした結果、エンジニアを含め社員の多くが辞めたという話がでてます。 https://jp.reuters.com/article/twitter-departures-idJPKBN2S806D イーロン・マ…

美術館がブリロボックスを購入したのは値段以上の効果があったのでは

2025年にオープンする鳥取県立美術館でウォーホルのブリロボックスを5箱3億円で買ったことが話題になってます。 ブリロボックスは、スチールウールの配送用段ボールを模した木製の箱です。 位置づけとしては「部屋干しトップ」の配送用の箱を木で作ったもの…

ゆるっとIT vol.12「3年ぶりに帰ってきたIT怪談」 カンペ

昨日2022/10/27に行われた『ゆるっとIT vol.12「3年ぶりに帰ってきたIT怪談」』のカンペです。 これを見ながら話してました。 前振り 今日はほんとに怖い話をするので、資料なしでやりますね。 昔話 ちょっと昔話をしましょう ぼくの最初の仕事はPHPでした。…

Javaの-XmsはMemory Startingの略?

Javaのメモリ確保指定のオプションで、最大メモリは-Xmx、初期メモリは-Xmsで指定します。 -XmxのほうはMemory maXimumかなーと感じるのだけど、-Xmsのほうはminimumでもないしなんだろーと思いながら「まぁ気にしてもしかたない」と25年くらい放置してたわ…

enumの使い方のおさらいと高機能enumとしてのSealedクラス

Javaでは複数の定数をまとめて扱う型としてenum(列挙型)が用意されています。 これはこれで便利なのですが物足りないところもあって、それがSealedクラスなどを使うことで解決できるようになるので、解説します。 enum型 enumは状態やデータ区分を表すのによ…

インスタンスとオブジェクトの違い

インスタンスとオブジェクトは混同しがちで区別がようわからんになりがちです。 とりあえず某所で説明したものを再構成します。 ※2022/12/10追記: クラスに対するのはインスタンスになるべき(たとえばクラス変数とインスタンス変数)なので、ちょっと修正する…