Home About
MS Excel でUTF-8 文字コードの CSVファイルを開く 文字化け回避 / SUBSTITUTE 増殖問題

CSVファイルの先頭に回避するには BOM をつけるだけです。

解決方法はこれ: https://stackoverflow.com/questions/60873673/how-to-add-a-utf-8-bom-in-kotlin

» Read More
GIMP Script-Fu JPEG としてエクスポートする

GIMP Script-Fu を使って 所定のディレクトリ内にある xcf ファイルを png にバッチ変換するというエントリーの追伸です。

PNG形式ではなく JPEG形式で出力する必要が生じたのでそれようのコードを書きました。

» Read More
BeautifulSoup を使って HTML のテーブルデータをCSVへ変換する

ネット上のドキュメントで一覧表をHTMLのテーブルデータとして 掲載されているが、表計算(エクセル)用のデータまたはCSVデータは 提供されていない、という場合の対処方法です。(覚え書き)

GPT-4 Vision API など使えば、そのHTMLまたはそれをPDFにしたデータを アップロードした上で「CSVデータに変換して」といえば済むのかと思ったのですが、 どうやらまだ(今のところは)そこまで簡単にはいかない模様。

ChatGPT Plus であればすでにその手のことができるようになっているかもしれません。試していません。

数年もたてば ブラウザに搭載された AI に「今見ているページをエクセルに変換して」といえば済む世界が来そう。

ただ・・・この手の処理で GPT のような LLM を使う場合の不安は、 一部が間違って変換されても気づかない、という問題です。 人間が手作業でやった場合、間違いが混入することはある(ヒューマンエラー)ので、 その作業を GPT 的なもので代用した場合には、 人間とGPT(的なもの)とどっちが間違い多いか?みたいな問いになるとは思う。

たとえば、データ内に価格情報があった場合に間違った値として変換されると場合によっては悲惨なことになる。

しかし、HTMLのテーブルデータがあるのであれば、 Python + BeautifulSoup を使うことで、CSVへの変換が可能。 この古典的なやり方ならば、 変換用のコードに書いたルール通りにHTMLデータができている限りは 変換後のデータに間違いないと確信できる、 という点において GPT的方式より優れている。

» Read More
Kotlin Native で XML をパースする (XmlUtil を使用)

JavaVM で XML を扱う場合に XmlPullParser を使う例を このエントリーXmlPullParser を使ってXMLをパースする で書きました。 今度はこれと同じような処理を Kotlin Native でやってみたので備忘録としてそれを書き残します。 XmlPullParser の代りに XmlUtilを使います。

そういえば、XmlUtil を使った例は以前のエントリー Kotlin Native (linuxX64) で XML を扱うで書きました。ここではシリアライゼーションしないで、 直接 XML をパースします。

» Read More
XmlPullParser を使ってXMLをパースする

Android の場合、標準で XmlPullParser が使えるようになっている。 これを Kotlin Script で使用したい。

XmlPullParser の実装があったので、とりあえずこれを使ってみる。 https://mvnrepository.com/artifact/net.sf.kxml/kxml2/2.3.0

» Read More
Kotlin Script で Serialization JSON を使う

Kotlin の Serialization の JSON を Kotlin Script で使う方法を調べた。

注意点としては、 スクリプト実行時に -Xplugin オプションを追加する必要がある。

see also: https://stackoverflow.com/questions/68202117/how-do-i-apply-a-plugin-in-a-kts-kotlin-script-file

» Read More
Kotlin Native (linuxX64) で XML を扱う

Kotlin Native (Kotlin Multiplatform) で XMLを扱うにはどうすればよいか調べた。 XmlUtilを使えばよいらしい。 Gradle を使って、XmlUtil でXMLをシリアライズ&デシリアライズするところまでできた。 その備忘録です。

» Read More
Groovy でテキストファイルを読み書きするのと同じ方法を Kotlin Script でも使いたい

Groovy の場合は new File("foo.txt").text のようなお作法で気軽にテキストファイルを読み書きできる。 Kotlin Script でもこのように手軽にテキストファイルの読み書きができないか調べた。 拡張プロパティ Extension Properties という機能を使えば普通にできた。

» Read More
木構造の再帰による深さ優先検索

木構造の再帰を使った巡回 という エントリーのコードの改良版です。

なぜか最近たびたび木構造を扱うことがあったので、その辺を整理を含めた覚え書きです。

» Read More
独自にマークアップしたテキストをAST経由で何かに変換する

以前のエントリー 改善版) kotlin でパーサーコンビネータを実装する の続きです。

そもそもの動機としては、 マークアップがネストしていたときにパーサーコンビネータを使ってパースするにはどうすればいいのだろうか? とか考えはじめた結果の覚え書きです。

パーサーコンビネータ部分の説明は省きます。(以前のエントリーを必要なら参照のこと)

» Read More
木構造のノード出現順(深さ優先順)に番号を振る話 EPUB playOrder

EPUB の toc.ncx ファイルで naviPoint の playOrder 属性を指定する必要がある。 プログラム的にこれを設定する方法を実装したので、覚え書きとして書き残します。

» Read More
Dell XPS13 7390 のSSDとバッテリーを交換した

SSD は大きさは 2280 だと思っていたがふたを開けてみたら 2230 だった。 たくさん候補があって、どの 2230 のSSDを買えばよいのか迷ったが、 トラセンドのSSDにした。 軽く調べた範囲で明確に片面実装と書かれていたのがこのSSDしかなったので。 実際に設置してみたところ、いまのところ問題なく動いている。 もし両面実装のSSDだったら、たぶん入らないと思う。

ちなみに、SSDを設置する場所は 2280 サイズがSSDがはいるだけのスペースがある。 しかし、サーマルプレートなるものがそこにあり、 それが 2230 専用になっているため、このマシンでは 2230 のSSDしか設置できない。

もし、2280用のサーマルプレートを入手できれば、 2280 のSSDが設置できるのかもしれない。 ただし、ちょっと検索したくらいでは、そんなものを見つけることはできなかった。

バッテリーの交換も行った。 本当はバッテリーについては交換の必要性をそこまで感じてはいなかったのだが、 バッテリーが膨らんでいるとタッチパッドのボタンが効かなくなるという 情報があったので、交換してみた。 そう、このマシンはタッチパッドのクリックボタンが効かないのであった。 そして、バッテリーを交換したけれど残念ながらタッチパッドボタンの問題は解決していない。 なおバッテリーはDELL純正品ではなく WorldPlus というブランド品(互換品)です。 今のところ、問題なく作動している。

XPS13 7390 のバックカバーをあければ、そこにバッテリーがあり、型番が書かれている。 このマシンのバッテリーには DXGH8 と書かれていた。 この DXGH8 型番で互換バッテリーを探せばよいようです。

» Read More