私は、JavaからSQLiteにアクセスするにはCommons DBCPを良く使う。他のDBに切り替えるときも楽そうだしマルチスレッドで何かと助かるし。
んで、こいつから実際のSQLiteのJDBCドライバを読み込む訳だが、そのドライバが、まだ何もしていないのに、ただclassを読み込むだけでエクセプションを起こすでござる。
直接の原因はlog4jのjarが無いと言っているんだけど、私はlog4jは使わんのでjava.util.loggingだし。つか最近まで普通に動いてたのに。
んで犯人はActiveMQのjar(activemq-all.jar)がクラスパスの中に紛れていたこと。
slf4jもこのactivemq-all.jarに含まれていたのでlog4jのjarを探しに行ってしまったのね。
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.sqlite.JDBC'
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
at org.apache.commons.dbcp.BasicDataSource.getLogWriter(BasicDataSource.java:1098)
at org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:350)
at ほげほげ.initConnectionPool(Utils.java:145)
at ほげほげ.exec(ふがふが.java:183)
at ほげほげ.main(ふがふが.java:65)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.sqlite.JDBC
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at java.base/java.lang.Class.forName(Class.java:458)
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1415)
... 6 more
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger [in thread "main"]
at org.apache.logging.slf4j.SLF4JServiceProvider.initialize(SLF4JServiceProvider.java:56)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:199)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:186)
at org.slf4j.LoggerFactory.getProvider(LoggerFactory.java:496)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:482)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:431)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:457)
at org.sqlite.util.LoggerFactory$SLF4JLogger.<init>(LoggerFactory.java:78)
at org.sqlite.util.LoggerFactory.getLogger(LoggerFactory.java:32)
at org.sqlite.JDBC.<clinit>(JDBC.java:26)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1169)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:341)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:104)
at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:138)
at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:546)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:496)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:707)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:672)
at java.base/java.util.ServiceLoader$2.next(ServiceLoader.java:1256)
at java.sql/java.sql.DriverManager.ensureDriversInitialized(DriverManager.java:553)
at java.sql/java.sql.DriverManager.getDrivers(DriverManager.java:382)
at org.apache.commons.dbcp.BasicDataSource.<clinit>(BasicDataSource.java:57)
at org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:167)


ちなみにactivemq-all.jarが紛れ込んだ原因は、SugerSyncをLinuxでrsyncで使う方法の誤り…ややこしい。

JDBCによるJavaデ-タベ-スプログラミング
福龍興業
オライリー・ジャパン
2001-09-27

このエントリーをはてなブックマークに追加 mixiチェック

Gemma3といえばGoogle APIでもGeminiやGemmaが使えて、たしかGemmaは回数制限がめっちゃ多い筈…。
タイトルなし

14.4K回/日…充分過ぎる。これを使えばOCIのショボいマシンでollamaを使わなくても済むし、我が家のPCでもGemma3:4bとは言え2つも3つも回せないけれど、地球のどこかにあるGoogle社のデータセンターの巨大マシンなら30多重まではいけそうな雰囲気だし、4bでなくて賢い27bが使えるし、これだ!…と思ったんだけど…。

ただのRESTだし、APIを呼び出す所まではJavaでも成功したので、本体に組み込んでみたら…。

 {"choices":[{"finish_reason":"content_filter: PROHIBITED_CONTENT","index":0}],"created":1772461492,"id":"tJ2laZ3kL8-Wvr0P7_6AmAk","model":"gemma-3-27b-it","object":"chat.completion","usage":{"completion_tokens":0,"prompt_tokens":1326,"total_tokens":1326}}

が多発。「PROHIBITED_CONTENT」…「えっちなのはいけません」の意味か。
んー、DLsiteの18禁作品の作品紹介文だからな…えっちな言葉も多数含まれているな。

試しに同じ文章をローカルPCでのGemma3:27bとGemma3:4bに要約させると、普通に、やってくれる。お前ら、同じモデルじゃないのかよ…。

思うに、上記のレスポンスが返って来るのが1秒位でやけに速いから、本体のモデルの前に、何か門番的なソフトウェアが居て、そいつに弾かれているのではないかと思う。


このエントリーをはてなブックマークに追加 mixiチェック

概要紹介文が余りにも短い作品は、詳細説明文を元に、これをGemma3:4bで要約して生成したものを代りに使おうと改造。人工知能はPythonが幅を利かせているけれど、ollama経由だと、結局ただのHTTPでJSONやり取りするだけなのでJavaでも簡単ですな。
はじめプロンプトは「要約してください」だとこんなになった
HCPxF6PbEAE7QJS

ちょっとどうかと思う出来だったので、次は、成年向け販促を生成するように言ったら、これもイマイチ…。

HCTiY2hbEAAoe8I

もう少しプロンプトは研究が必要だな。あと、この処理に1時間位掛かるようになってしまった。いやまぁ別に良いんだけど、Pythonで同じ処理を試した時より大幅に時間がかかるのが気になる。
あと、もしかすると、Gemini Flashにした方が出来が良いのでは…。たしかFlashは無料だったような…。




このエントリーをはてなブックマークに追加 mixiチェック

ついにラスボス怪人ダグバ登場の巻。
テレビ版ではシリーズ歴代最怖怪人のヤマアラシ怪人、ゴ・ジャラジ・ダが小物に…いやまぁテレビ版でもただの赤クウガに手も足も出ないで一方的な試合で退治された「ゴ」にあるまじき弱さだったが…。ヤマアラシ怪人、なんで「ゴ」なんだ…。
それにしてもこの漫画、仮面ライダーが中々戦わない…。特に仮面ライダーアギトに良い所無し。もう、仮面ライダーアギトへの風評被害漫画。
本当ならグロンギ<=G3-X<=アンノウン<=仮面ライダーアギト位の位置で、だいたいクウガの4,5倍程のスペックだというのに…日本刀持った生身の刑事の方がまだ頼りになる……。


このエントリーをはてなブックマークに追加 mixiチェック

顔面と脳に関する雑多な話が色々書かれている。
紡錘状回顔領域、後頭顔領域、下側頭回…顔専門神経回路多いな。
となると、やっぱ、チャーノフの顔グラフはもっと活用できる場面はあるんじゃないかな、と思いつつも余り思いつかぬ…。棒グラフやレーダーチャートより絶対見分けるの速そうなんだがな…。


このエントリーをはてなブックマークに追加 mixiチェック

いや視点のヘッドホッピングを修正していたんですよ。
修正したのをGeminiに見てもらおうとしたら…こんな事を言い出した。おいおい、ChatGPTじゃあるまいし…。一体何が不満なんだ…。

HBxvp1TbkAAvz4C

理由を詳しく聞いてみたら…

HBxwN9MbwAEhOUy

裏切りものー!解約待ったなし。

だが…特殊な交渉術をつかってコメントを貰う事ができた…まだ解約は待ってやろう…。
タイトルなし

しかし毎回、特殊な交渉術は面倒というか、そもそも、AIに処理を一旦断られる事、それ自体が割とストレス。ChatGPTはそれで使わなくなったのに…。何でも気兼ねなく依頼できるからGeminiだったのに…。
このふるまいの変化、2/20にGemini Pro 3.1になったというのが怪しいよな…。



このエントリーをはてなブックマークに追加 mixiチェック

何か花粉症っぽい症状が出てきたな…。
この時期はスギ花粉か。


このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ