PowerShell で .NET のアセンブリ内の関数の動作確認

HogeHoge.exe の中のクラス Config の shared メソッド Load を呼んでみる。 test.ps1: [reflection.assembly]::LoadFrom("bin\Release\HogeHoge.exe") $data = [HogeHoge.Config]::Load("hogehoge.xml") Write-Host("---") Write-Host($data.ToString()) Wr…

NYAGOS保守ノート: 欧州向けキーボード対応ふたたび(AltGR キー処理)

日本では馴染みがないのだが、ヨーロッパのキーボードには AltGR というキーがあるようだ。用途としては、英語圏にない文字等を入力する時にシフト的に用いるようだ。 それが入力できなくなったという issue を起案いただいた。 [regression] AltGR issue ・…

続・GoでCygterm っぽいことをやりたいので、ソケットサーバーを書いている

go

Go で Cygterm っぽいことをやりたいので、ソケットサーバーを書いている(勉強中) - 標準愚痴出力 アドバイスをいただきました(ありがとうございます) enter しないと文字が送られないのは、たぶん tera term のオプションで local echo を off にすると…

a[:0] と append の秘密

go

a = a[:0] は領域のサイズをリセットするが、a = make([]T,0,cap(a)) と違って、使っていたメモリブロックを再利用するため、allocation 回数を削減できる。 だが、旧a の領域が他で使われていないかを気にせず、無頓着に使うと append でおかしいことになる…

Go で Cygterm っぽいことをやりたいので、ソケットサーバーを書いている(勉強中)

go

(続きの記事 あり) serv.go : package main import ( "fmt" "net" "os" "strings" ) func handler(conn net.Conn) { defer conn.Close() var buffer [255]byte for { n, err := conn.Read(buffer[:]) if err != nil { fmt.Fprintln(os.Stderr, err) return …

Go Modules 使用時、最新タグよりも新しい Commit でモジュールを使用したい時

go

go mod -m github.com/<USER>/<REPOSITORY>@<COMMIT-HASH> でいいようです。</commit-hash></repository></user>

("bufio".Reader) ReadString('\n') と ("bufio".Scanner) Scan() の違い

go

違い ("bufio".Reader) ReadString('\n') 改行をカットしない ("bufio".Scanner) Scan() 改行をカットする 改行コードのない最終行の扱い 最後の行が abcd(EOF) というテキストの場合 ("bufio".Reader) ReadString('\n') "abcd",io.EOF という戻り値となる (…

go mod 試験導入

nyagos の依存パッケージである zetamatta/go-texts/mbcs に不具合があったので、それをちゃんと import するよう、go modules を設定してみた。 そのメモ。間違っている箇所があればご指摘歓迎 go-texts 側 go modules を使用するモードに切り替える set GO…

NYAGOS開発ノート:新補完API(試作中)

現在の補完APIは Lua 側の負担が重いので、bash と同じくらいにお手軽な新補完APIを試作中してます。以下は git のサブコマンドを補完する例: nyagos.complete_for["git"] = function(args) if #args == 2 then local base = args[#args] local len = strin…

Gopher人類とGenerics【Golang帝国興亡史】

go

我々Gopher人類は「Genericsは不要」と強調しすぎたのかもしれないな。「GenericsないからGoはダメ」に対する反論だけど、実際は「7~8割のケースではGenericsは要らないけど、2~3割やはりGenerics欲しい」というところだ。そこをつかれて「おまいら矛盾し…

NYAGOS保守ノート:OpenSSH でパスワード入力中に Ctrl-C で中断すると画面が乱れる

これな Stopping OpenSSH with Ctrl-C on password prompt, Escape sequences and etc. are disabled. · Issue #353 · zetamatta/nyagos 症状 nyagos から OpenSSH を起動して、パスワードプロンプトで Ctrl-C を押下すると、nyagos に復帰してこなくなる(…

NYAGOS保守ノート:DropBoxの共有ファイルをVMの共有フォルダー越しに ls すると、意図せずダウンロードが発生する

症状 ls causes downloading online files on the DropBox folder · Issue #350 · zetamatta/nyagos nyagos と VMware と DropBox - 標準愚痴出力 DropBox のフォルダーを \\vmware-host\Shared Folders\経由で VM から参照できるようにすると、仮想マシン内…

VS2017のC++プロジェクトを\\vmware-host\Shared Folders\ 以下に置くと

普段、仕事で VMware の Windows-VM 内で開発しているのだが、 VisualStudio 2017のC++プロジェクトを、ホストとの共有フォルダー \\vmware-host\Shared Folders\ 以下に置くと、「LNK1123 - COFF への変換中に障害が発生しました: ファイルが無効であるか、…

NYAGOS 4.4.0_1 を公開してました

パッチリリースとして 4.4.0_1 を公開しました。クリティカルな不具合修正はないので、必要性を感じなければ慌てて UP する必要はありません。 (一応、マイナーバージョンアップは1ヶ月サイクル。不具合修正レベルのパッチバージョンアップは基本1周間単…

nyagos と VMware と DropBox

有償版 DropBox にはスマートシンクという、ディスクを節約する機能があって、「エクスプローラーからファイルは見えるけど、ローカルディスク上に実態は存在しなくて、ファイルを読むアクションをした時に自動ダウンロードする」という機能がある。 この機…

NYAGOS 4.4.0_0 を公開してました

Release 4.4.0_0 · zetamatta/nyagos 4.4_beta からの改変点は βを外した バッチファイルを呼ぶ時に、/V:ON を CMD.EXE に使わないようにした /V:ON だとCMD.EXE の環境変数の遅延展開がオンとなって、デフォルト状態が変わってしまうという問題があった。実…

slack へポストするコードを書いた

go

秘密鍵書けないので、呼び出し元の main 関数は省略するが、下記のようなコードで出来た。 package main import ( "bufio" "bytes" "encoding/json" "fmt" "net/http" "os" ) type Message struct { Text string `json:"text"` Channel string `json:"channe…

今日の学び:CMD.EXE での遅延評価

nyagos では、バッチファイルを呼び出す時、環境変数の変更を取り込むため %COMSPEC% /V:ON /S /C "call "バッチファイル名" & set "ERRORLEVEL_=!ERRORLEVEL!" & (cd & set > 一時ファイル名) " ということをしていた。 が、これ、ERRORLEVEL の値を参照す…

NYAGOS 4.4.0_beta を公開してました。

Release 4.4.0_beta · zetamatta/nyagos Linux サポート(実験レベル) ドライブ毎のカレントディレクトリが子プロセスに継承されなかった問題を修正 ライブラリ "zetamatta/go-getch" のかわりに "mattn/go-tty" を使うようにした msvcrt.dll を(直接syscall…

syscall は deprecated だったのかー

go

syscall - The Go Programming Language Deprecated: this package is locked down. Callers should use the corresponding package in the golang.org/x/sys repository instead. (雑な訳)非推奨:このパッケージ(syscall)は凍結(?)しとります。ユーザ…

io.Reader のプリプロセッサな io.Reader を作る

go

( io.Reader のプリプロセッサな io.Reader を作る - Qiita より転載) 任意の io.Reader を受け取って、それを加工した結果を、別の io.Reader として読み取れるようにしたい時、どうするのがベストな方法だろうか。 具体的には、当初「文字コード(ShiftJI…

【恒例のポエム】NYAGOS 2018年総括

もうさすがにネタ切れかなと毎年思いつつも、頼んでもないのに忘れた頃に大改造してしまうニッチな和製コマンドラインシェル、それが NYAGOS (Nihongo Yet Another GOing Shell) NYAGOS とは(復習) Windows向けの UNIX風コマンドラインシェルです。 C++ で…

os.exec の (Command) Start で、ドライブ毎のカレントディレクトリが継承されない

go

カレントディレクトリは Windows/UNIX ともに1プロセスにつき一つだけ存在するということになっている。だが、DOSの頃はドライブごとにカレントディレクトリが設けられていたことを覚えている人も多いだろう。そして、現在も CMD.EXE ではあたかもドライブ…

.NET の Dispose メソッドの引数について(復習)

基本は implements IDisposablse を定義した時に挿入される Visual Studio のテンプレートのコメント通りにすればよい。 基本、下記のとおり 常に絶対実行しないといけないもの アンマネージドなリソースの解放 これがある時は、コメントアウトされている Fi…

CMD.EXEの引数での引用符の扱いを完全に理解した

go

multipost →Qrunch CMD /? で出てくるヘルプを一部引用する: /C または /K が指定されている場合、スイッチの後の残りのコマンド ラインがコマンド ラインとして処理されます。次のルールが引用符 (") の処理に使われます: 次のすべての条件に一致する場合…

nyagos でのバッチ起動方法を軽量化した

nyagos では、子プロセスのバッチファイルが変更した環境変数を取り込むのに @call バッチファイル 引数1 引数2 … @set ERRORLEVEL_=%ERRORLEVEL% @(cd & set) > 一時ファイル名 @exit /b %ERRORLEVEL_% といった踏み台バッチを毎回作っていた。 これはこ…

nyagos で、行番号シェルつくった

多分理解されないと思うけど、あの「入力が数字から始まっていたら、即実行中ではなく記憶しておき、runとタイプされると数字順に実行する」という「古代 8bit BASIC」のシステム、 意外とコマンドラインシェルで便利かもね。nyagos の Lua で書いてみたけど…

What file is it ? - ファイル識別コマンド wfile を作った

go

これな> zetamatta/wfile: wfile is a command like file of UNIX. ファイルのマジックナンバーを元にして、ファイルの種類を自動判別するツールである。 EXEファイルならば、 32bit or 64bit GUI or CUI Windows or 他のOS など $ wfile wfile.exe wfile.e…

テキストデータ加工関数集 go-texts をようやくまとめた

go

(qrunch.ioより転載) これな > zetamatta/go-texts: go-texts is the utility package for text-data "go-texts".SortedKeys string をキーとするマップのキーの配列をソートして得る(Perl の sort keys と同じ。キーに対する値の方は何でも大丈夫。refl…

nyagos 4.3.3_3 を公開しました。

Release 4.3.3_3 zetamatta/nyagos (#310) copy と move の宛先でショートカットをサポート (#313 reopened) git blame FILES | type | gvim - & で gvim が空バッファで始まってしまう問題を修正 壊れたジャンクションに対する rmdir ができなかった問題を…