smk7758のブログ

日常のことからMinecraft, プログラミング, PCのことまでを不定期日記として公開しています。

Streamをそもそもしっかり見てなかったので、そういうプログラムを書こうとしたら、失敗した。
Streamのcountで値を得て、それが目的の行を超過していないかを判別しようとしたんだけど、countは終端処理なせいで、
その次のgetで取得できない(Closed)とかいうポカをやらかした。
んで、それに気がついたもののいまいち思い浮かばなくて、ふとorElseってものを見つけてこれで。
とりあえず、Streamを勉強しないとなぁと思いました。

該当プログラム:
String line_result = null;
Path path = Paths.get(args[0]);
int line_number = Integer.parseInt(args[1]);

try (Stream<String> lines = Files.lines(path)) {
line_result = lines.skip(line_number).findFirst().orElse(null);
if (line_result == null) System.err.println("out of lines.");
else System.out.println(line_result);
}

TosoGame(GitHub)を作っているなかで、YAMLファイルをJavaのClass(Object)にするのをどうしようかと考えています。
一応、gsonを真似る形で、
Class内のString, int, List<String>, boolean…(ryのFileConfigurationのget~で得られる型のフィールドに値を入れる。
Classはデータ保存用とする。←FCを継承した値を入れるクラスを継承するか否か。(どっちもやってみようかな)
まぁこの二つのことをメインとしてつくる。


データ保存クラスにはFCを入れるかで悩んでる。
結局、FCは継承せずに行こうと思うが、データ保存クラスにFCを持たせる意義はあるのだろうかという感じ。
まぁあるんだろうけど、なんともなぁ。
Bukkitソースでは持ってないよねconfigインスタンス、だったら外側から利用する感じか。
ごちゃごちゃする。
YFMがFCを継承すると起こる問題:


それでこれ: YamlFile つくってみたはいいものの、なかなか微妙。ごちゃっとしちゃって変なことになってしまいました。
またあとで。

まず、鯖機のSKHynix社製 SL300シリーズ 250GB SSD(HFS250G32TND-3112A)が壊れそうっぽいです。
鯖機を起動させていたら、BIOS画面でなんか出ていたようで起動が妨げられて発見しました。

さて、SMARTはよく理解していないが(Wikipediaを読みながら書き込み中)、リードエラーレートが166とかなり値を減らしている。(写真参照, Threshold=閾値, Worst=最悪値, Value=値)
そして、恐らくこれがBIOS画面のエラーの原因だろうが、Power-On Hoursが閾値と等しくなっている。
約16k時間=約600日となっており、流石に鯖機だから仕方ないだろうが、注意が必要…なのか?
SC_SK hynix Drive Manager Easy Kit_2018-1-20_23-0-20_No-00
SC_SK hynix Drive Manager Easy Kit_2018-1-20_23-0-36_No-00
SC_SK hynix Drive Manager Easy Kit_2018-1-20_23-0-45_No-00
SC_SK hynix Drive Manager Easy Kit_2018-1-20_23-0-52_No-00




































































というか他にも色々見ていくと、かなり値が減っていることが明白である。
価格相応という感じなのだろうが、流石に鯖機のSSDとして長時間運用するためのものではなり模様だ。
現状はまだなにも被害は受けていないが、この勢いだと寿命があっという間につきてしまいそうなので、家にあるいくらかのSSDのどれかと交換用途思う。RW速度は申し分無いので、持ち運び用にしようかなぁ。

しかしまぁ、簡易的な使用用途だったらこのSSDは良いはずである。
自分のような使い方がだめなだけだろう。

そういえば、なぜ純正ソフトを用いて確認しているかと言えば、CrystalDiskInfoはまだ対応していなかったためである。製作者へ連絡を行い、対応していただくよう送らせていただいた。更新を気長に待ちたいと思う。(てか交換か払い戻し出来るのかな、これ。流石にSMART値減りすぎだけで交換出来るとは思えないけど)
加えて、smartctlでの結果: https://pastebin.com/srEKfMJ6

あと、弟のPCもこのSSD(半年差で購入)なのでまたいつかSMART値を確認しここに掲載したい。

久々にBukkitプラグイン作りてえなぁってことで色々遡ってたら、以前とある人にgetConfig()を毎回使うとかディスクアクセス多すぎてファイル崩壊するんとちゃう?みたいなことを言われてたのを思い出して、確認してみた。

続きを読む

追記: 2021-08-27

上記スクリプトが良いかもしれません。


-----

http://note100yen.com/en-130611.html
http://note100yen.com/en-140814.html
の示しているダウンロードリンクが切れていたので、代わりになるものを探しました。

このページでは、GIMP Ver: 2.8で確認しています。

まず一つ目が move-layer.scm (代替リンク: move-layer.scm )

※http://registry.gimp.org が所々の理由で消えてしまったため代替リンクを適当に用意しました。しかし、以下の通りに動くかは未確認です。

これはこのページの掲示板に指摘されてるけど、そのままだと動かないらしいので、
39行目の
「 (let* ( (activelayer) 」

「 (let* ( (activelayer 0) 」
に変更してください。
※GPLなので編集してよいが、再配布はできません(このため修正版を公開できない)。各自でダウンロード後、編集してください。

SC_Script-Fu Move layer_2017-12-30_21-26-20_No-00











もう一つが Shiro_Layer_Shift.scm
これは
相対値と絶対値が指定できる。
ただ、問題点はレイヤーの絶対値が記録されてないこと。
なので、テキストファイルに記載していきながら編集していくといいと思う。

SC_Script-Fu レイヤー移動  (Shiro版) UnDoCtrl+Z

↑このページのトップヘ