strings.EqualFold はどの程度の速度か

Go

Big Sky :: Go で大文字小文字無視の文字列比較ベンチマーク strings.EqualFold について言及がなかったので、測ってみました。 追加行: func isDevNull4(name string) bool { return strings.EqualFold(name,"nul") } func BenchmarkS4(b *testing.B) { te…

そのソリューションを開くべき Visual Studio のバージョンは?

ソリューションファイル(*.sln)の記述 Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HOGEHOGE", "HOGEHOGE\HOGEHOGE.vbproj", "{E951CFF8-148E-40D5-93CD-17…

VMware Workstation 12 のイメージがディスクを圧迫してきたので整理した

どうも VMware はバージョンやエディションによって、インターフェースがだいぶと違うようで、ググっても違う製品向けのものが出てきてしまう。 試行錯誤の結果、下記の手順でディスク消費を減らした。 (10個ちかく VM があったのだが、500GB くらい浮いた…

*.vcxproj/vbproj/csproj のパーサーを書いているが、$(VCTargetsPath)の導出元がわからない

Visual Studio のプロジェクトで生成されるプロダクト(実行ファイル・DLLファイル)のパスを生成する機能が vf1s.exe に必要なので、"encoding/xml".Unmarshal関数 で読み取っていました。 Unmarshal 関数は、タグに合わせてフィールドを用意した構造体に解…

NYAGOS 4.4.4_1~3 を公開していました。

nyagos 4.4.4_0 を公開しました(その2)の続き、連続で参ります。 4.4.4_1 Linux 版バイナリがビルドできなかった問題を修正 Linux のバイナリつけるの忘れてただけでなく、ビルドも出来ない状態でした。でも、まったく苦情は来ませんでした(そりゃな) 4…

nyagos 4.4.4_0 を公開しました(その2)

NYAGOS 4.4.4_0 を公開しました(その1) を書いたのに、「(その2)」を書く前に、4.4.4_1~4.4.4_3 をリリースしてしまったー。とはいえ、一応、書いておかないと気持ち悪いので、書ける体力があるタイミングで残りを駆け足で書いておきますね。 Linux用…

Git のセットアップ for Windows & nyagos

Git は普通に Gir for Windows をダウンロードしてインストールする(ここは別に小細工はない) .vimrc の設定 コミット時の文字コードを UTF8 にする au! FileType gitcommit setl fenc=utf-8 .nyagos の設定 git.exe のあるフォルダーを %PATH% に追加 loc…

Go言語のセットアップの覚書 for Windows & nyagos

今更だけど、PCがクラッシュしたら忘れるかもしれないので アーカイブの展開 MSI はインストーラーが意外と遅いので、アーカイブは *.zip ファイルを使う。 % cd / % ren go go.bak % unzip ~/go1.12.7.windows-amd64.zip vim の設定 *.go を開いた時、デフ…

std::vector の emplace_back が使えない状況で、軽い push を検討する

C++

Visual Studio 2010 では std::vector の emplace_back がバグっているという話なので、負荷の軽い方法を検討。 でも、検証プログラムのためにわざわざソリューション作るのもめんどいから、gcc で検証してみよう(おい #include <cstdio> #include <string> #include <vector> class</vector></string></cstdio>…

Visual Studio のコマンドラインクライアントのラッパー vf1s を作った

Visual Studio のコマンドラインクライアントのラッパー vf1s を作った。 zetamatta/vf1s: vf1s - Visual Studio Commandline Client 開発経緯 そもそもは 会社のルールでバイナリもsvn commitするが、Release版だけでなく、Debug版も用意しなくてはいけない…

NYAGOS 4.4.4_0 を公開しました(その1)

記念すべき「令和元年」最初のリリースになります。括目せよ!(しなくてよい) (#233) \\host-name\share-name を補完できるようになった 宿願である2年越し issue の補完を実装しました。 仕事を VMWare 上の Windows で行うことが多いのですが、ソースを…

Subversion で git show とか stash とかの動作をエミュレーション

あまりしっかりテストしていないので、ご利用はバックアップをとった上で、自己責任で… (自分の用事が終ったら放置モード) svn-show.cmd svn diff -r1000:1001 とかやっていられないので、svn-show 1001 で同じことをする。 @echo off setlocal if "%1" ==…

NYAGOS 4.4.3_0 を公開していただと…

連休前の話ですが、NYAGOS 4.4.3_0 公開したので、更新内容をご説明します。 (#116) readline: Ctrl-Z,Ctrl-_ による操作取り消しを実装 3年前に issue を起案してた UNDO をようやく実装しました。やってみたら、意外と簡単でした。まぁ、技術的に難しいと…

【解決編】UNCパスの補完機能の強化のためにコンピューター名一覧を出したいんだが、違うそうじゃない

UNCパスの補完機能の強化のためにコンピューター名一覧を出したいんだが、違うそうじゃない - 標準愚痴出力 記事を書いたら、自己解決する法則でもあるのかなぁ。 // +build run package main import ( "fmt" "unsafe" "golang.org/x/sys/windows" ) const R…

UNCパスの補完機能の強化のためにコンピューター名一覧を出したいんだが、違うそうじゃない

いまひとつうまくゆかん。 // +build gorun package main import ( "fmt" "unsafe" "golang.org/x/sys/windows" ) const RESOURCE_CONNECTED = 1 const RESOURCE_CONTEXT = 5 const RESOURCE_GLOBALNET = 2 const RESOURCE_REMEMBERED = 3 const RESOURCETYP…

NYAGOS保守日記: 空白文字が含まれたパスの補完とチルダ

補完の際、Windowsでは空白を打ち消す文字の定番が決まってないのでパス全体を引用符で囲む。すると ~\Program Filesは "~\Program Files" みたいになるが、~ が先頭でなくなってしまうので、 ~ を%USERPROFILE% に変換できなくなってしまう。 かといって、~…

VC++で書いたアドオンDLLの中で独自ダイアログが表示できなかった件

とあるアプリのアドオンを VC++ で書いていたんだけれども、自作のダイアログを出そうとしてもなぜか DoModal が素通りしてしまう。 しかも、Visual Studio 自体もなぜか不安定で、クラスウィザードのクラッシュも多発して、原因の切り分けができない!!! …

NYAGOS 4.4.2_1 を公開しました。

4.4.2_0(報告記事リンク)を出して間もないのですが、看過できない不具合がありましたので、修正版を公開しました。 Release 4.4.2_1 · zetamatta/nyagos(ダウンロードページ) 修正点は以下の2点 diskfree: 行末の空白を削除 これは大した問題ではなく、…

NYAGOS 4.4.2_0 を公開してしまいました

Release 4.4.2_0 · zetamatta/nyagos まだまだ修正する気満々だったのですが、リリースバイナリに未反映の修正がたまりすぎると不具合が発生した時、マスターと開発版をまた別管理しなくちゃいけなくなったります。それは避けたいので、4月になったし、いい…

NYAGOS保守ノート:more が Ctrl-C で死んでしまう

Ctrl-C kills nyagos.exe itself when more runs without redirect · Issue #342 · zetamatta/nyagos more が Ctrl-C で nyagos ごと死んでしまうという不具合です。これは常に発生しているわけではなくて、nyagos の中から nyagos を呼んで、その中の more …

Windows でジャンクション作れない・リベンジ編

go

前回 → Windows でジャンクション作れない - 標準愚痴出力 「DeviceIoControl用の構造体」を作るのに、Microsoft ご本家の Go 言語パッケージ Microsoft/go-winio: Win32 IO-related utilities for Goを使ったら、うまく動作するようになった!やったね、た…

Windows でジャンクション作れない

go

junction_go.run: package main import ( "os" "unsafe" "errors" "golang.org/x/sys/windows" "golang.org/x/xerrors" ) const ( _MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384 _FSCTL_SET_REPARSE_POINT = 589988 _INVALID_HANDLE_VALUE = ^windows.Handle(0…

appveyer の Go が 1.12 になってくれない

go

もうパッケージの多くが、Go 1.12 名指しになってるのに! go.mod を騙し騙しで調整し、Go 1.12 で追加された関数の使用を我慢しつづけてきたが、さすがにもう待てん! というわけで、Go 1.12 をビルド時にダウンロードさせるようにした(→ appveyer.yml: do…

Go Modules 使用時に「他人のレポジトリに来てるマージされてないプルリク」の影響を予め検証する

go

自分のプロダクトが依存しているパッケージ T についてプルリクエストが来ているようですが、まだマージされていません。 その修正の影響がどの程度こちらに影響にあるかあらかじめ検証したいと思いますが、go.mod にその修正をどう書くのが正解か、よくわか…

ネットワークドライブを維持したまま、管理者モードに昇格したコマンドプロンプトを起動する

setlocal call :"%1" endlocal exit /b :"install" powershell "start-process -FilePath 'cmd.exe' -ArgumentList ('/s /c '+[char]34+((get-wmiobject win32_networkconnection | %%{ 'net use '+$_.LocalName+' '+[char]34+$_.RemoteName+[char]34 }) -jo…

Windows のコンソールと、Unicode のサロゲートペアとゼロ幅文字

(2019.03.20 追記:Windows7 の Chrome では Unicode の合字が表示されないので、合字を画像に変えました) という文字を nyagos に貼り付けると、文字化けするだけでなく、カーソル位置もおかしくなるという問題 Zero width char deletion problem? · Issu…

nyagos と文字の幅問題

文字の幅については nyagos において頭が痛い問題です。 mattn/go-runewidth でカーソルを戻す時に発行するバックスペースの個数を算出しています。ですが、Windows のコンソールでの実際の文字幅は Unicode の規格のものと微妙に違うので、文字によってはカ…

ホームディレクトリ以下にある空白入りのファイル名の補完は難儀だなぁ

~\Share\Program Files というパスを補完する場合を考えよう。 bash だと ~/Share/Program\ Files と補完する。 UNIX だとワード単位で独立した引数としてコマンドに引き渡されるので「/home/USERNAME/Share/Program Files」をそのまま引き渡すことができる…

Lua のかわりに anko を組み込んだ anko-nyagos を作ってみました。

nyagos は lua53.dll → GopherLua への切り替えの際、組み込み言語のインターフェイスをある分離して、切り替えられるようにしたのですが、それを利用して、mattn 先生が開発された、Go製スクリプト言語 anko を組み込んだ anko-nyagos を試験的に作成してみ…

最近(4.4)の nyagos の方向性

ビルドバッチ(make.cmd)でかすぎ。簡略化する ソース、どこから読んだらいいか分からん。整理する 残イシュー多すぎ。はよ片付けろ CMD.EXE依存エイリアス撲滅(mklinkやren) セマンティックバージョニング対応は 4.5 以降から。具体的には 4.5.x_y を v5.x.y…