カテゴリ: program

を聞いて、以前からJDK 15では動いていたプログラムがJDK 16だと
java.lang.NoClassDefFoundError: javax/xml/bind/JAXB
になって失敗するけど放置していた件が解決。

--illegal-access=permit 

を付けたら動作するようになった。
なんでも16からこのデフォルト値からpermitからdenyに変わっていたそうな。
ちなみに17からはこの技は使えないらしい。マジか。
JAXBとか色々消えるしアクセス制限するし、まったくジグゾーは誰得



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

あまりやりたくないがチュートリアルからだな。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/getting-started.html
ブラウザでアフォみたいな事をやった後は、なんかDockerを入れたマシンが必要ということで、
https://docs.docker.com/engine/install/centos/
に従いAmazon LinuxのEC2にインストールしようとしたらうまく行かぬ。
素直にCentOS 7を準備したらそこはあっさり通った。
Amazon Linux、意外とCentOSではないな。
只今はdoker run hello-worldがrootでしか動かないので困り中。多分dockerデーモンをrootで起動しているからだろう。
あとそもそもDockerとは何ぞや?多分、EARやWARに対するWebLogicのような関係のプロセスではなかろうかと思うのだけれどよくわからん。


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

ところでRoughAnimatorってRaughAnimatorとよく間違えるよな。ファイルの拡張子も.raだし。
とりあえず目立つバグは取った(つもり)。後はドッグフーディングの時間だ。
http://nekora.main.jp/soft/ra2psds/
これはRoughAnimatorというiPadなどのグラフィックツールのデータを連番のPSDファイルに変換するツール。RoughAnimatorのレイヤ構造を保ったまま他のグラフィックツールで加工したい時に使う。
PSDとはAdobe Photoshopの画像ファイル形式。RGBなら今時の大概のツールで扱えるので、レイヤ構造を持った画像ファイルのデファクトスタンダード。厳密には色やレイヤーのブレンド処理が微妙に違ったりするけれど今回はRoughAnimatorなので問題にならないだろう。
GUIとCUIがある。
本当は正月休みに作る筈だったけれど、ImageMagickが案外PSDの対応が適当だったり私がボーダーブレイクにかまけていたのでこんな事に。


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

何か正月頃からダラダラ作ってたやつ。GWに終わらせようと思って取り組み、大体終わった。GUIも付けた。本当はImageMagickのガワをちょちょいと作るだけで済む筈だったのにやってみるとImageMagickって実はPSD対応が割と適当だったので画像処理自体も自分で作る事に。そこからか。そしてまさか作ってる最中にRaughAnimatorがVer.2.01になってデータ構造がガラッと変わるとはな。Ver.1のファイル名でフレームの位置と場所を表現する方が賢いと思うんだけど。
残った課題は、Ver2.01データを処理するとBGが常に無視される(いや私はRoughAnimatorのBGは使わないから別に直さなくても良いんだが…そういう訳にも行くまい…)、同一レイヤ構造のフレームが連続する際には一つにまとめる場合の連番ファイル名が、嘘とは言えないが最適ではない。
後者は実際使う時に結構不便なので是非直したいが何か面倒そう…割とアドホックな対応になりそう。
他にも実際使い始めるとフレーム数をちょこちょこ変えるタイプだとしくじるパターンがありそう。まぁその辺はドッグフーディングしながら直せばよかろう。というか私以外に需要はないだろう。
そもそもMoho pro 13.0があそこまでバギーでなければ私だって全部Mohoでやるつもりだったのに。


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

アフィサイト更新用マザーコンピューターのJavaを15→16に変えたら、マザーコンピュータが誤動作して更新されなくなってしまった。s
まぁテストしてすぐに15に戻したからいいけど。今月は忙しいから調べている閑が無いが、まぁ別に15のままでも困らないので問題無し。LTSの17が出たら本気出す。
Effective Java 第3版
柴田芳樹
丸善出版
2019-05-15

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

1.コンパイルエラーの出る個所と、実際しくじっている場所が割と近い。
VC++、しばしばcore.hとかでアサーションが山ほど出るが、勿論core.h自体が悪い訳ではない。どこでしくじったかは、推理と直感、そして怪しい行をコメントアウトでコンパイルして探るのだ。時間かかる。
JavaはEclipse様がご指摘して下さる個所かその直近の参照先が違っている事が多め。
2.落ちる個所と、実際しくじっている場所が割と近い。
VC++、しばしばa=b;のような何の変哲もない所で落ちるが、勿論その行は問題無い。実は遥か彼方で行った、全く別の処理のmemcpyがまずいのだ。
Javaは、9割方、Exception起こした行で何かやらかしている。
3.Exceptionの利用が徹底している。
VC++にもtry~catchはある。あるが…Exceptionを返してくれるのは一部の意識高い人々が後年作った関数位。結局自分で戻り値を判定することになり、自分で投げて例外処理をまとめる位しか使いどころが無く。Javaで言うとOptionalみたいな感じ。機能はあるんだけれど一部の意識高い人々以外は使わないので今一つ有効に機能せず。
4.ログファイルがあてになる。
VC++、落ちる時はいきなりプロセスがOSに抹殺されるのでログをディスクにflushする間が無い。こまめにflushするとflushだらけになるし。でもまぁ標準出力はそこそこあてになる。
Javaは落ちると言ってもJVMが文句を言っているだけの事が多いし、前述のExceptionが徹底しているからFlushするチャンスも多い。
5.文字列の扱いが簡単
VC++、char*とかwchar_t*とかTCHARとかLPTSTRとかLPCTSTRとかstd:stringとかCStringとか文字列モノが多い。しかもAPIの引数の都合により割と頻繁に変換せざるを得ない。超面倒。しかも文字列とワイド文字列とマルチバイト文字列が別々にあり、あまつさえ最後のは環境依存。
Javaは兎に角全部UTF-16でStringだ。気にするのはI/Oの時だけだ。

ちなみにVC++の美点
1.__asmからのMMXの特に飽和加算命令が便利で速い(SSE以降は全く知らない。今はAVXと言うらしい)…が既に完全に忘れているので今は使える気がしない。
2.VC++製のWin32 DLLを呼び出すノウハウが豊富。
3.#ifdefはやっぱあると便利だわ。

今回はWin32のDLLを使いたいので使ったが、10年前に自分が作ったプログラムの改造なのに苦戦。Javaのぬるま湯ですっかり鈍っていたわ。
そういえばC#というのが、Javaのパチモンみたいな文法のぬるま湯でしかもWin32のDLLも割と簡単に呼び出せると聞く。が、今更移行も面倒だし。

Effective Java 第3版
柴田芳樹
丸善出版
2019-05-15

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

アルファ福笑いもごらんのとおり
http://nekora.main.jp/tmp/out0227.psd

まぁ今回はRoughAnimatorのデータを処理するためのものだからレイヤ名をファイルのあるディレクトリ名にするとか、日本語対応テストとか、PNGのサイズが不ぞろいの時の処理とかまだ色々必要だけれど、とりあえず大筋はできた。
画素が32bitだと行末のパディングが無いからいいよね。
それにしてもC++には苦戦させられた。他人のならまだしも10年前とは言え自分が書いたプログラムの改造なのに。やはり文法は似ていてもJavaとは似て非なるものよ…。


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

あれ?たしか無料という話では…と思ったらMicrosoftその人がロック解除方法を書いてた。
https://visualstudio.microsoft.com/ja/vs/support/community-edition-expired-buy-license/

何かサインインというものが必要なようだ。そういえば私はまだMicrosoftのアカウント持ってないわ。よくWindows 10でMSアカウントに切り替えろ切り替えろ勧められてるけどシカトしてローカルアカウント最強伝説を貫いておる。
が、まぁこの際作るか…。

Visual Studioパーフェクトガイド
ナルボ
技術評論社
2019-06-21

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

頼りにしていたImageMagickがあてにならず、無駄に苦難を乗り越えVC++でPNGを重ねてPSDを吐く実装を着々と進めているが、 https://psd-tools.readthedocs.io/en/latest/ というPython向けのライブラリがあるそうな。ぐぬぬ。何か簡単そう…というか既にできているJava部分も、C++にまとめるのはまっぴら御免だがPythonにまとめるのは許容範囲だ。

使用例はこれか。
https://hawk-tech-blog.com/python-install-psd-tools/


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

マイクロソフト謹製のサンプルから抜粋・改造でできた。
https://docs.microsoft.com/ja-jp/cpp/text/how-to-convert-between-various-string-types?view=msvc-160

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;

wstring  charTowstring(const char* orig)
{
    // 確保するワイド文字用バッファのサイズは、バイト数ではなく文字数を指定する。
    size_t newsize = strlen(orig) + 1;
    wchar_t* wc = new wchar_t[newsize];

    // 変換.
    size_t convertedChars = 0;
    mbstowcs_s(&convertedChars, wc, newsize, orig, _TRUNCATE);

    wstring ret(wc);
    return ret;
}

C++面倒…。というか上記のもretのスコープに自信なし。
wstring.valueOf(char[] data)とかあって然るべきではないかね。というか寧ろcharを引数に取るコンストラクタがあるべきでは。

[改訂第3版]C++ポケットリファレンス
湯朝 剛介
技術評論社
2018-02-15

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

↑このページのトップヘ