アクリル製作日記:Javaマスコットキャラクター デューク、MSX、その他
コロナで基本的にはテレワークで毎日ずっと家にいます。個人的には不幸中の幸いで望んだ環境になったわけですが外に出なくて辛くないの?とかずっと家の中で楽しみとかないの?とか言われそうですが、色々と家のなかでフルート吹いたりして楽しんでるのでそれほど自分はコロナ禍でテレワークになり鬱、とか言った話題には無縁です。こんな感じで押し入れで吹くとデッドな音ですが近所対策にはなるようです。あと、定時後に走るジョギングが楽しかったりします。
この辺はメリットデメリットがあり、テレワークになり自分の人生とても良くなったかと言われると微妙で、通勤があったときに半ば強制的にやっていた読書の時間なんてのが無くなってしまったわけです。(その時間がウォーキングの時間に化けている)
そう、通勤って意外と体力使っていたわけだし暇な時間も不幸中の幸いと思えば読書や勉強なんかに使えたわけなんですよね。それが今は計画的に時間を使って行う必要がでてきた。
どちらかと言うと家事で子供と関係できるようになったのが楽しいし習慣的に運動するようになったという点で僕にはメリットしかありません。
ただ、、、
仙台でする活動ができない
というのが悩みですね。レーザー加工機で色々と作りたいですが自分は家にレーザー加工機が無いのでFablab仙台に借りて使っています。
テレワークになり仙台に出社しないので定時後にちょっと寄ってくるなんてのができなくてそういった活動は本当にここ1年できませんでした。
そう長く活動ができないとそういう面ではうっぷんが溜まってくるのでいい機会なのでなんか作ろうかと・・・今回はいつも作ってたずん子さんは関係なく作ってみましょうかと。
こんな感じでレイヤごとに各アクリル板のやつを作って・・・
作ると言ってもいつものアクリルで光らせるものですが、、、台座を購入します。今回はこんな感じのを購入してみました。コーヒーカップは大きさ比較です。
で、これを切ってきます。場所はいつものFablab仙台さんです。
1時間で切れるかな?と頑張ったのですが無理で1.5hほどかかりました。今回は切った後の写真を撮るのを忘れてしまいました。帰り、切った切った!気持ちよかった・・・とすっきりした顔で帰りました。(いやまだ作業あるのですが・・・)
MSX
これは自分が前から欲しかったもの。自分の今の道を決定付けたものですね。なんのとりえも無かった田舎の少年はたまたま購入したMSXパソコンでプログラミングにハマりIT業界に行くのであった。
Javaのマスコット、デューク
全長155mmの大物ですね。持った感覚がずっしりとして盾なのかおい?なんか俺Javaで賞もらったかな?って錯覚してきました。
今回の制作物は台座が4mm幅なので4mmの板にカラーアクリル板で切ったものを挟み(UVプリンタ印刷じゃないです)、それを3mm板でサンドウィッチにしています。
TOMI+
富谷市でやっている富谷塾というものがあり、そこに所属しているのですが作ってみました。右側の+は実際には色とりどりなのですが今回はとりあえず赤で。
光らせてみた。
アクリルなんて光らせてなんぼよ!という事で光らせてみましたが、、、なんか微妙・・・唯一まばゆいばかりに光輝いているのはTOMI+の奴だけで、、、
これは明らかに黒アクリルは光を吸収するって事ですね。今回利用したのは半透明なわけですが色付きは光をかなり吸収するって事かな?白の半透明は光をよく通すと・・・
下は今回黒以外で唯一使った赤ですが、輪郭は光りますが中は光らないです。そうかカラーアクリルはこういう性格があるのか・・・
アクリルは光を直進させるので透明の場合は光らないってこと。なるほど・・・ならカラーアクリルは表面をヤスリで削ればいいのでは?
お!当たりですね。気を取り直して組んでみます。おお、、いいですね。
MSXはちょっと微妙ですね。という事で大物デュークはやめておきました。
さて、デュークですがBOOTHにて販売いたします。お気にいりましたら購入くださいませ。次の作品の資金とさせていただきます。(今回試作および、試作品の右脇下の部品が無いため原価以下で提供になっています)
母の戦争体験、および子供時代
こういうのは今のうちに聞いておいた方がよいと思っていたところ、お盆で帰省した時に話題を振ったら話してくれた。
母は宮城県丸森町の大張地区で11人兄弟の7番目ぐらいに生まれたのだけれども小学2年生で終戦を迎えた。以前書いたのはその後のお話。
仙台空襲時は親におぶさって見ていたそうだ。だから多分これは母が小学校にも上がる前の話だろう。その時の記憶である仙台方向の山の空が真っ赤になっているというのを今だに覚えてるってことでものすごい光景だったのだろうなと。
戦争中は映画「この世界の片隅に」で見たように電灯に黒い布を被せて下のちゃぶ台だけが明るくなるようにして夜は過ごしたそうだ。
そして農村の日常としてはこんなのも聞いた。
母も日常的に自分のお椀ですくって飲んでいたそうだが父親も朝起きてくるとお椀ですくって飲んでいたそうだ。今と違って車を運転するなんてこともないし、江戸時代と同じような感覚だったんだろうね。酒は夜飲むものなんてのは戦後車社会になった田舎で70年ぐらい前からのつい最近できた行動なんだろう。
その辺から漏れた話を今日聞いたので書いてみる。
農家というといろんなものを自分の家で作っていて、例えば豚なんか残食を食べさせて大きくなったら潰して食べる・・・自分はそう思っていたしそういうのみてきた。でも戦中、戦後は実は豚は食料としては食べなかったそうな・・・で、不思議に思ったのだが、よく食べていたのが「ソーセージ」
ソーセージだけは結構な頻度で食べていたそうだ。多分、家で育てていて出荷できるようになった豚は自前で潰すのではなく食肉加工業者に売ったって事なんだろうなと。食肉加工業者も腸なんかはいらないのでそれを使って腸詰を作っていたと。聴きながら思っていた。
そういえば食肉加工業者といえば自分が子供だった頃、食肉加工業者から安く買ってきた1頭分の豚の中もの(内蔵)を料理して食ってたっけ・・・リンパ腺などをはじめに取り除いてあとはモツ煮みたいな料理になって食べてたなと。ものすごく臭いんだけどうまいのね(😀)
よく食べた肉でいうと鳥、ウサギなど。ウサギは猟師さんに2〜3日前に言っておけば内蔵や毛も処理済みのウサギが3羽ぐらい家に届けられたそうだ。今と違い雪が深かったからウサギなんてのはワンサカいたんだろう。
どうやって食べるかというと、肉は削ぎ落として料理にするのだが残った骨も食べる。どうやって食べるかというと、叩いて細かく砕いてそれを肉料理に一緒に入れてしまって食べたそうだ。肉団子にもこまごました骨が入っていた。そう言ったのを喉越しいずいけどゴリゴリ食っていたそうだ。
これで思い出したのが「ゴールデンカムイ」のアシリパさんが作るリスの料理で「チタタプ」これに似たようなことをしていたのねと。何もアイヌだけじゃなく昔はそんな風にして骨まで食っていたのですねと。
甘味料なんかは砂糖なんか戦争中で買えない、買えたのはサッカリンだそうだ。餅なんかを囲炉裏の灰(アク)のところに放り込んでおいてそれがオヤツになったそうだがそれがサッカリンで甘く味をつけられている。あと今でいう小麦粉を水で溶いて焼いたもの。いわゆるパンケーキだけどもこれにもサッカリンを入れて食べたそうだ。
甘味料でいうと山に行けば秋になればヤマナシというナシの小さい版の果物とか柿とか成っていたそうでそういうのを食べたりしていたそうだ。自分も子供の頃、秋に母の実家に行くと父と一緒になって柿を米袋一杯とって食べていたなと。
戦中の農家の食いもんとして栗も忘れちゃいけない。家の裏山には栗の木がたくさん生えていて秋になるとたくさん食べていたそうだ。栗の実をたくさん取るとそれらは蒸して紐に通して吊るしておく。それらもおやつとして食べたそうだ。
それも3月ぐらいになると中身の水分は干からびて持って振るとカラカラと音を立てる。そうなったものも食べるのだが干からびているため硬い。でも美味しかったそうな。食べるものがあっただけで幸せという世界だったみたい。
3月になると農業の準備で芋かなんかの苗床を作るために山からたくさん葉を集めるそうだ。その手伝いなんかをするのだが、山で葉を集めてる時にその下にある冬を越した栗が転がっていたりしてこれがたまらなく美味しかったそうだ。
あれかな、、キャベツが寒さで糖度を増すように栗も一冬越すと甘くなるのかね?そう思いながら気持ちはジュルリ・・・となっていた。
戦時中農家に色々と着物を持って行って交換すると言った話をよく戦争体験で聞くがその辺はどうだったのだろうか?戦争中は米を作る農家が米を持っていて優位だったって話も聞きますし、、、
これが実は農家にも米は殆どなかったとのこと。戦時中、国からの供出供出供出・・・と農家の米倉はスッカラカンだったそうで、着物を持ってこられても交換するものもない。上で書いたような山の幸があったから偶然にも生きていられたッてことだったそうだ。
母は戦争中は子供だったのもあるためか、普通のいわゆる悲惨な戦争体験なんかは聞けないが、その時の田舎の暮らしがちょっと垣間見れて面白かったなと。
母は既に85歳を超えています。もし5歳年上の父が存命でも90歳代、その父でも終戦当時はだいたい中学校なのです。それより上の戦闘に加わった世代というのはもう若くても95−100歳あたりとなり、戦争体験を聞くってのはもう殆ど無理になってしまっているんだなと。
voicevoxをgithubからクローンして起動してみました
また衝撃的なのがずん子さん関係で出てしまいましたね・・・
ダウンロードして実行するとこんな感じのUIで遊ぶ事ができるみたいですね。四国めたんちゃんの声が落ち着いて可愛い限りです。
こんな感じでダウンロードしたファイルを解凍して実行しました。
c:\temp +--VOICEVOX-0.1.1-win +-- VOICEVOX.exe <-- これを実行する。
気になったのがずん子さん公式のこのツイートで、サーバーで起動することができるとな?そうするとUIはAndroidとかiPhone、タブレットなどで表示してサーバーで声を生成してストリーミングで聴かせるなんてことができるのかな?
また、サーバーで起動することができるので、さまざまなサービスに組み込むことができます (〃ゝ∇・)ゞ
— 東北ずん子(公式)💚AIで歌います! (@t_zunko) 2021年8月3日
この2つがそろうことで単に「しゃべるソフト」ではなくて「音声を使った新しい何かがのサービス生まれる土台」になりました٩(ˊᗜˋ*)و
んでその疑問を解決するためアマゾンに、、いやvoicevoxのサイトに表示されてるgithubに行ってみました。という事でこのエントリはgithubのWebアプリの起動方法までです。
ギッハブからクローンして起動まで
voicevoxのgithubは公式でも書いてますがこちらです。
github.com
こちらからコマンドプロンプトを開き適当な場所で(自分の場合はc:\tempで)ソースをクローンします。
git clone https://github.com/Hiroshiba/voicevox.git
これでc:\temp\voicevox というディレクトリにソースがクローンされるのでそのディレクトリに移ります。
c:\temp +--VOICEVOX-0.1.1-win | +-- VOICEVOX.exe +--voicevox <-- ここにクローンされる
まず、npmによる依存関係のインストールが必要です。
C:\temp\voicevox>npm install
なんか盛大にWARNが出ますが気にしない。とりあえず進めましょう。
先程クローンしたc:\temp\voicevox に .env というファイルがありますのでこれを開いてVOICEBOXエンジンへのパスを記載します。
VOICEBOXエンジンとは?
実はさきほどgithubからクローンしたのはUI部分で、実際の声を生成する部分は別になっている模様です。
githubはこちら。
github.com
この先ほどクローンしたプロジェクトからエンジンに命令を送ってボイスを作るようです。
但し、2021/08/04時点でまだ未整備事項があるらしく、これを正しく起動することはできません。
じゃぁどうするかというと、冒頭で表示したUIのエンジンを使います。
README.mdfに書いてありますが、クローンしたディレクトリに.env.productionというファイルがあります。
これを.envにリネームして開いてみます。
c:\temp +--VOICEVOX-0.1.1-win | +-- VOICEVOX.exe +--voicevox +--.env.production <-- このファイルをリネームしてエディタで開く
こんな感じになっていますね。
ENGINE_PATH=run.exe VUE_APP_ENGINE_URL=http://127.0.0.1:50021
このrun.exeですがこれがVOICEBOXエンジンのようです。なのでこれへのパスを書いてあげるという事になります。
c:\temp +--VOICEVOX-0.1.1-win | +-- run.exe <-- これがエンジンっぽい +--voicevox +--.env.production
僕の場合はc:\temp\VOICEVOX-0.1.1-win\ にダウンロードしたファイルを解凍したのでこんな感じになります。
ENGINE_PATH=C:\temp\VOICEVOX-0.1.1-win\run.exe VUE_APP_ENGINE_URL=http://127.0.0.1:50021
365日の紙飛行機 フルートで吹いてみました
吹いてみました。
楽器:YAMAHA YFL-211
伴奏:https://www.youtube.com/watch?v=u6WTHmVRvM0
楽譜:https://www.print-gakufu.com/score/detail/143265/
この曲結構好きですね。アマゾンミュージックでAKB48の曲がダウンロードできるので作業楽曲として聴いていたのですがAKB以外といい曲多いですね。その中でも朝ドラにも使用されたこの曲はダントツにいいなって思っていたのですが、ユーチューブで色々な方が演奏されていたので自分もと・・・
VirtualBoxでWindows2000を入れる
いにしえのOS・・・自宅サーバーとイラレ10を使いたくて購入したのですな・・・当時駅東にあったソフマップに行って大枚(10万円ぐらい)をはたいて2つのソフトを購入したのだ、、、清水の舞台から飛び降りるほどドキドキした。(金が飛んでいくので)
メモ程度に
Win2000自体のインストール
- Windows2000自体はCDをisoイメージにしておく。
- Windows2000用のゲストOSを新規に作成し、起動
- 起動時にCD起動になってるため先ほどのisoを指定
- Windows2000をインストール
ここまでは特に問題ないと思うが、ディスプレイが640*400 16色になってるので使いづらい。そのためVirtualBoxに入っているisoを使って設定できるようにする。
VBoxGuestAdditionsのインストール
インストールしてあるVirtualBoxのディレクトリにVBoxGuestAdditions.isoというのを使う。
これをVirtualBox内に先ほどインストールしたゲストOS(Win2000ね)に認識させてインストール。
別に難しいことはなく、起動しているゲストOSのメニューから、Guest Additions CDイメージの挿入 を選択します(メニューが無い場合は多分右Ctrl+Fを何回か押していると出るはず)
勝手にインストーラーが起動するので後はインストール
再起動するのであとは解像度の設定をしておしまい
フルートを調整に出しました。
今使っているヤマハのYFL-211は去年の12月あたりにハードオフで売られているのを発見して数週間悩んだ末に店員さんに見せてもらったら頭部管を一度も差したことがないようなぐらい差す部分が擦れておらず綺麗な個体で「こりゃ買いだ!」と購入したものです。
それまで使っていたケルントナーのフルートも購入後2年経ち、あちこち音がおかしくなってきて調整出したらどれぐらいかかるのか?とヤマハや管楽器の修理メーカーに持っていったのですが、購入金額(このメーカーの自分が持ってる型番の新品)を超えるぐらいだとなっていたのでハードオフで見つけたのは渡りに船だったわけです。
ケルントナーのケルちゃんは申し訳ないが誰かにあげるわけにもいかず、雑鉄として出すしかないのかなと、、、(2−5万円ぐらいで修理する覚悟があるのであればどなたか差し上げますよ、ただ楽器は激安品を使っても上手くはなりません)
やはりヤマハなのでしょうか?個体としてはすごく当たり感が強くてよく鳴る(響く)個体で、こりゃ買いだった上に当たりかよ!って小躍りしながらいつも楽しんでいました。まぁこれがヤマハの通常の実力なのかもしれませんが、、、
楽器は大体1年に一回ぐらいは調整に出して、5年に一回はタンポを交換するみたいな事が必要なわけです。このヤマちゃんもそろそろ1年以上経っていたがコロナ騒動で仙台に行く機会もなかったのですが、仕事調整してやっと行くことができたのです。
自分ではまだ普通に吹けているなとは思っていても調整師さんが触ると、少なくとも5箇所狂ってますよとのこと。しかし5箇所ってのも多いなって感じたのですがもしかすると自分が購入時、新古品であっても年数は経ってたわけで、すでにキーが狂いはじめていたのかもしれませんね。
しかしちょっと触っただけでわかるもんかと聞いてみたのですが、キーを押すと微妙に空く部分があり、その押した感覚(ストローク)が正常なものと微妙に異なるとのこと。なるほど、、、そんな微妙な所でもわかるのですね、、、人間の感覚の凄さなんでしょうけど、なんの問題もなく吹けてると思った僕は・・・orz...
見積もりですが、ひゃーー高い!基本料金が8,000円に色々そこからかかって12,000円ー15,000ぐらいだそうだ、、、楽器とはかくもお金のかかる趣味なのだと・・・
そして今日、また仙台に行く用事があり、引き取ってきました。基本料金として分解調整が8,000円でタンポ調整、ヘッドコルク交換。。。13,400円、、、おじさんの収入には高い出費だったけど・・・
引き取ってきたからには音だしてみましょうと吹きに行ったのですが、、、
いやぁ、、鳴る(響く)、、、今まで吹いていたものが別物のように鳴るように感じました。これでまたたくさん楽しめそうです。
空文字をカンマでパースすると0件か1件か?
こちらが気になったので色々と
投票とってみるか。
— いわた (@wonderful_panda) 2021年6月21日
「与えられた文字列をカンマでsplitした結果を配列で返す」というメソッドがあるとして、空文字列を指定した結果は
話の前後の事から多分この日に話題に上がったCSVの件からかと思いますが、なんでCSVなんて話題に上がるのかなとか思ってたのですが、そういえば数日前にCSVをパースするツールを発表した方がいたなぁって。
あぁ、、CSVなんてあんなもん業務でパースするにしても項目はダブルクオートする、値にカンマは入らない、改行なんてもってのほか、、、とか色々と制限を付けた上で仕事を進めるようなもんで(それでも想定外の値が入ってきて歯ぎしりするわけです。エクセルだと?今エクセルで出力したって言った?みたいな・・・)ましてや汎用的なCSVツールなんて作る気力は無いなぁ、、、とか思っていたわけです。ライブラリがあるならそちらを使うよねとか。
でもこういう誰もやんないような所で提供するのが大事なのだろうなぁとか色々思いながら発表した方にはただ凄いなぁという感想だったのです。
その中で興味があったのが上記のアンケート。
例えばCSVを読み込んで返すようなメソッドとかそういうのがここでは想定されているのかなとか。その中で読み込んだ1行をカンマでパースした場合に空文字だった場合どうなるか?という問題かと。
CSVの1行が空文字だったとしてその行をどういう仕様とするかはその業務により異なるので、仕様によりとしか言えなくなるのですが、自分が汎用的なものを作るとしたらこの場合は0件の配列を返すが自然ではないかと。
ツイ元の方としては結果を受けて以外だったというのが感想みたいで、わずかに0件の配列を返す派が優勢だったみたいですね。色々とリプとかを見てると1件以外ありえないだろうとか強めの意見が散見されて、、い、、いやぁ、、0件は変か?とか思いながら読んでましたが。
正直CSVの1行でもいいけど空文字送って1件帰ってきたら使いづらくね?って思ってたのですがその疑問に自分にリプをくださったのがこの方で。
あり得ないとまでは言わないですけど 1 派です。どう扱うのかの答えになっているのかはわからないですけど、ぼくは
— bouzuya (@bouzuya) 2021年6月22日
"abc".split(",") == ["abc"] になってほしくて、区切り文字がマッチしない場合に元の文字列が残るのであれば "".split(",") == [""] が一貫しているように思いました。
なるほどそれもそうだよなぁと。1件返ってきてもなんらおかしくない。
議論の中であぁなるほどって思わされたのがこちら。
「与えられた文字列をカンマでsplitした結果を配列で返す」という仕様だけに従うなら0になることはないよね。空文字列とかの条件でもう一つ追加仕様が入ってることになる。 https://t.co/3ZXHCMeQGn
— KOIZUKA, Akihiko (@koizuka) 2021年6月22日
自分は初めの設問から、与えられたCSVのレコードを返す際に使う側が利用しやすい形態は何か?(俺仕様と言ってもいい)を追加した上で設問に答えていたのだなと。
で、ここで自分はこのツイートを読んで重大な誤読?をしていたことに気づくのです。
「長さ0の文字列の配列」と読み間違えた人が仮に400人いたとしても得票率4:6なんですよね。それでもけっこう意外。
— いわた (@wonderful_panda) 2021年6月22日
たしかに [] [""] って書いたほうがよかったかなとは思いましたが。 https://t.co/QzUiZZLTz8
空文字とは、、、色々ツイを見てるとこういうケースを言ってる方がいました。
- ”” 長さ0の文字列
- "," 内容が長さ0の文字列が入った文字列
- " " スペース
- [""] 長さ0の文字列の配列
- いろいろ
自分は空文字って1の長さ0の文字列なのかなと思ってました。なのでCSVレコードとしては何も返らない方が後続処理としては自然かなと。でもJavaで "".split(",") を試したら1件なんですよね。こういう事からも自分は設問に対し、言語から離れて仕様を追加して解答している事が分かるのです。
ただ、2のケースは2件返ってほしいよねぇとか3のケースは当然1件とか自分の頭の仕様がなんだか破綻してるのに気づくのであった。(おわり)
ちなみにJava(11.0.1 2018-10-16 LTS)で色々ためしたら以下の結果でした。split()の第二引数により変わりますがとりあえず設問では指定が無かったので指定なしで。
ケース | 結果 | 備考 |
---|---|---|
”” | 1件 | 長さ0の文字列 |
” ” | 1件 | 長さ0の文字列 |
"," | 0件 | 長さ0を含む文字列 |
" , " | 2件 | スペースのカンマ区切り |
" ," | 1件 | 第二レコードが長さ0の文字列 |
", " | 2件 | 第一レコードが長さ0の文字列 |
コード
public class Test {
public static void main(String[] args) {
System.out.println("".split(","));
}
}