XigmaNAS

XigmaNASの更新.
今まで使っていたのがNAS4Freeの10.幾つという古いバージョン.
一度バージョンアップを思い立ったこともあったのだけど,bootエリアに余裕がありませんみたいなことを言われ,そのまま放置していたという経緯がある.
わかってみれば何のことはない,イメージをwriteしただけではUSBサムドライブの全領域を使ってくれていないというだけのハナシでした.
ユーザの権限にwheelを追加で付与して,sshで接続.
gpartを使ってパーティションを拡張します.
ホントならGUIツールを使ってやるところなんですが,フォーマットがBSDなので,手持ちの機器やソフトウェアでは太刀打ちできずコマンドラインでの作業となった次第です.
エンドユーザが自分一人なのでトラブっても大した影響はないのですが,復旧がめんどくさそうだし,その過程でデータをトばす可能性も皆無ではないため,余裕のあるときにやるのが良いでしょう.

パーティションを拡張後,一度リブートしました.
結構時間がかかりドキドキしましたが,無事に起動し,データ類も参照できました.
次にアップデートをかけます.
商標の関係とかでXigmaNASに変わったので,これの一番古い11.系に一度バージョンを上げてやります.
中身は同じ上,10.系から11.系へのバージョンアップは正式サポートされているので,問題なしです.
その後,stableの最新である12.1系に更新して完了としました.

CloudReady

Chrome OSみたいなもの.
ただし,個人用途であれば無償版のHOME Editionが使える.
これを中華ノートに入れてみたので,感想を.
ただ,本当に入れたかった端末には入れられなかったというか,アレはハードウェアが特殊過ぎて・・・

バージョンによるのか,とりあえずAndroidのAPは動作させられない.
一応可能な手順はあるんだけど,一応一手間かかるということ.
また,リリースから今に至るまで開発者モードは解放されていない.

今のChrome OSを触ったことがないので比較はできないけど,インストールしたのがN3450機とは思えない軽快さ.
当然ですが,同格のWindowsマシンとは全然違います.
iBus通しているので,キーバインドも軽い変更程度なら可能な点も良し.
それ以外はGoogleOfficeも使えるし,Evernoteも使える.勿論艦これも軽快に動作する.
拡張機能としてLinuxコンソールもインストールと動作が可能.
事務仕事ならこれで間に合うんじゃないかなぁ.
IDEもクラウドIDEとか使っている人ならこれでいけそう.

尚画像加工なんかについては確認していないので,簡単に「事務仕事」とは書いたものの,100%こなせるかはわからない.
互換性の問題もあるしねぇ.
音声や動画の直接編集は厳しいだろうことは予想に難くなく.
そういえばLAN資産へのアクセスは未確認.具体的に言えばSMBプロトコル使ったファイルアクセス.これも容易であれば,なかなかに優れものです.

無理して導入する必要はないけど,Atomや名前だけCeleronのAtomな石の載ったラップトップPC再生には選択肢の一つとして良いのではないかと思います.

Raspberry Pi で Eclipse

お仕事です.
でも私物のRPiですw
ビルド環境とGitクライアント兼用でRPi上でEclipse動かせれば楽だなぁ,とか思ったら一応可能.
ただし,apt-getでgetできるのはIndigoなのでちょっと古めの情報が必要になります.
それとPleiadesを使いっぱなしだった身に,生のEclipseはちょっと無骨過ぎかも.

一応EgitとMavenのプラグインを入れました.
これは登録済のサイトから新規ソフトウェアのインストール,でインストール可能です.
日本語化は主にEclipseを日本語化しよう,という旨のサイトを参考にPleiadesのIndigo日本語化プラグインを導入します.
ただ,ここでえらいはまり方をしました.
だって,解説サイトの設定ファイルへの追加内容のスペルが間違っているんですもの・・・

使うところまではまだ行ってないというか,これ時間外労働だからねw

WindowsのWSLのUbuntuでWslRegisterDistribution failed with error 0x800703fa

解決方法はWindows Updateを実行してみ,っていうのが総意らしい.
しかし,APが起動しなくなるような状態ってのはやめて欲しい・・・

moode audio

RPi用のMPDディストリの一つ.
昔チェックした時は本当に活動に入っているのか不明なくらいの感じでしたが,最近ではMPDディストリを代表する存在になっているらしく.
なお,もう一方の雄はおなじみVolumio.

私はメインにRuneを使っています.
そもそもCD音源が99%を占めている場合,あんまり躍起にならなくてもちゃんと楽しめているので問題もないのです.
あとアップサンプリングに意味を見いだせないというのもあります.
そんな状況ですが,なんとなく新しい何かにしてみたくなり,moode audioをインストールしてみた次第.

まず一発目はRaspbian Stretch Liteのライトからやる従来の方法.
たぶんこっちのが文字通り最新があたると思いますが,えらく時間がかかります.
ホストが初代Bだからか,たまたまネットワークが遅いのかはわかりませんが,数時間で終わるかどうか,という感じ.
なお,こちらは現在もまだ#3-B CORE Packageのインストール中.
もう一方はユーザ待望だったらしい.imgで配布しているバージョンを使う方法.
4.3は.imgで配布しているので,それをSDカードライタで書き込んでやればあっさり環境ができてしまいます.
なお,7zipで展開するとダウンロードした.zipファイルの中の.imgファイルまで展開してくれるので,余計なお世話です.

後者の設定なんかをしていたのですが,オンボードというかピンヘッダ搭載式のDACやDDCも随分種類が増えています.
ウチにも2台ほどそんなのがありますが,それぞれ何を積んでいたかとか思い出すのも大変です.

C#とExcel

書いてるウチにぐしゃぐしゃになってきたので,結論を先に.
npoiだと行や列をnullとして扱う場合があり,行はいいけど,列は致命的.
C#実装に明るくない私にはこれを回避する方法があるのかわかりません.
・・・というw

C#  でExcelを読んだり編集したりというのは、難しい話じゃない感じがします。どちらもM$の製品ですし。
しかし、ことは簡単には運びませんでした。
interop、comオブジェクトを呼び出してそこからExcelを操作するのが従来では一般的だったようですが、今は違うようです。

そもそも私が改修することになったAPはそれを使い、かつ劇遅でした。
なうな方法はなんだろうか、といって調べてみると、なんと驚き、オープンソースのライブラリを使うことになっています。
なぜM$の言語でM$の製品を扱うのに、外部のライブラリが必用になってくるのか、という疑問というか、単純に不思議な感じです。
そこで選択肢となるライブラリですが、npoiとClosedXmlが代表的。
今回は.xlsxだけではなく、.xlsも読み出す必要があるので、自動的にnpoiを選択しました。

一応書いておくと必須である1本目は期待通りに動作してくれました。
しかし性能向上をはかるために手がけた2本目で問題発生。簡単に現象を書くと、Sheet.getRow(index)した時、nullのcellが無視されます。
それが行の途中であっても・・・
因みにSheet.getRow自体トぶことがあります。Rowオブジェクトがnullという理由で。
なお、null行と空行、nullセルと空セルは違います。
何がnullかというと、シートというかワークブックをオープンして、なにもしていないセルなり行なりがnullのようです。
入力後に消したとかするとそれは空行なり空セルです。
つまりこんな感じでセルに入力してやります。

_ A
_ _ B
_ _ _ C

「_」はnullセルです。
これをgetRow(i)しつつ、集約した行を1行作ろうとしますと、期待値はこうです

A B C

しかし、これがこうなります

「A _ _ 」

getRowしてそのRowのCell数はどれも1なのです。
npoiのバージョンは2018年7月現在で2.3.0を使用していますが、上記の状態です。
妥当な回避策があるのか、ちょっと調べてみてもわからないままです。
普通この手のエントリーはこうして対応しました、とか書いて結ぶモンですが、今回は未熟な様を晒しただけとなりました。
最悪は最新のpoiを持ってきてJavaで実装し直すか、IKVMC通すか、という感じでしょうか。
後者ではpoiが使っているライブラリを軒並みコンバートしてやる必要がでてきますが.
一応オチらしきものを付けておくとJavaで丸っと実装し直してコンソールAPとして,対象ファイルすべてを一括処理するという方式に作り替えました.
内製のツールだったのでこんなことも可能だったんですが,実運用だとどうなるんでしょ.

PULSE FOR A GRAVEHEART

Outlook2016

なんつーか,HTMLメールも一般化してる現在.
便利に使っているけど,なんとなく好きになれないものの一つではあります.
特にメール処理そコード書くときとか.

<style.+[\\s\\S]*/style>

Outlook2016でOutlookが挿入するスタイル設定の内容が少し変わりました.
自分が指定していたhtmlタグ除去の正規表現で対応できなかったので,先に上記対象を削除するようにして対処しました.
そもそももっとエレガントな表現があるんだろうけど.

Windows Subsystem For Linux

先日まで知りませんでしたが,えらく便利です.
クライアントOSではWindows 10以上から,になるのかな.

「設定」>「アプリと機能」で,下の方にある「プログラムと機能」.
それから「Windowsの機能の有効化または無効化」で立ち上がるWindowの「Windows Subsystem For Linux」にチェックを入れて再起動後にマーケットでLinuxのメジャーなディストリ名を入れて検索,該当のAPをインストールすると,Linux環境がWindowsからシームレスに使える環境ができます.

Cygwinと似たようなモンですが,遙かに融通が利きます.
なお,X環境もインストールできるそうです.
#試してませんが
これでレツプリのファームウェアのビルドも大変楽になりました.

ネットワークの口はホストのWindowsと同じなので,そこらへんが絡んでくるAPの検証環境としてはどうなんだろ・・・

Impulse

ApolloLakeでUbuntu

ようやくタコでもApolloLakeでUbuntを新規インストールできるようになりました.
とは言っても,仮想マシンのLinux上で作業するんで,別にDDしても同じかも.

isorespin.shというのを使います.
http://linuxiumcomau.blogspot.com/2017/06/customizing-ubuntu-isos-documentation.html

まぁ,その前に仮想環境作らないとなりませんけどね.
はじめは仕事で使ってる(w CentOSで動かしたのですが,必要なオプションがないというようなエラーが出たので,Virtual BoxでLubuntuの環境を作りました.
この際必要なのはGUIが必要なことと10GB以上の空きができるストレージサイズが必要なことです.
それとインターネット接続環境,これはブリッジ接続にしておけば楽でしょう.

$ sudo apt-get install -y squashfs-tools xorriso zenity curl

で.必要なツール類をインストールします.
が,これだけでは足りなかった模様.エラーメッセージ見て解決していきます.

必要な素材はインストールしようとしているdistroのISOイメージとrefinedの0.11.0のisoイメージ,上述のisoresipn.shを同じディレクトリにおいて作業を行います.
.shに実行権限をつけてから,

$ sudo bash ./isorespin.sh

shで動けばいいんですが,Syntax Errorが出る場合はbash〜で実行すると解決されます.
理由は検索してみればわかります.

実行するとダイアログがオープンするので,”〜Atom〜”という2つめの項目にチェックをつけて,実行.その次は”〜Apollo Lake〜”という2つ目の項目を選択して実行します.
その後,しばらくするとrspinされたisoファイルができます.
USBメモリを挿して,Virtual Boxでマウント.
dfでマウント先を確認してから

$ sudo dd if=rspinしたisoイメージ名 of=/dev/マウントしたUSBメモリ(sdbとか) bs=4M

として書き込みます.
時折bootがうまくできないUSBメモリなんかもあるんで,インストール先のマシンのBIOS上でそのドライブだけではなく,パーティションも確認できていれば大丈夫です.
boot順でこのパーティションを1stに指定してやればbootできるはずです.

尚,今回の対象はEZBook Pro 3のV4とUbuntu mateです.
mateならトラックパッドが使えるということだったのですが,使えていません.
xinputでは認識してるんですがね・・・

As Shadows Burn

最近はDB屋を兼業することも少なくなったので,単語だけでも.

サロゲートキーとナチュラルキー.
ナチュラルキーってのは,まぁ,古式ゆかしいPKの構成.
サロゲートキーってのは,シーケンシャルなIDをふって,それをPKとする方式.
Webアプリからだと特定レコードを引き回すのに便利な方式ということになってる.
ただ,どちらかの方式のみということではなく,「システム設計上はサロゲートキーを採用するが,ナチュラルキー相当に一意制約を設ける」とかが妥当なんじゃないかと思う.

As Shadows Burn

次ページへ »