2ペインテキストビューア、いろいろ作ってます。

go

20年くらい前にOS/2で eff , ell という「テキストビューア」群を作ってましたが、それと同じような感じのものできないかなーと思って、Go言語で簡単なフレームワーク go-twopane を作ってみました。 コンソール画面を2分割して、上に件名一覧、下に詳細を…

(続々) std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない

(半日も経ってませんが、(続) std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない - 標準愚痴出力からの続きです) 前回 std::function を使って、コールバック関数を関数オブジェクトにし、呼び出しを簡素にしてみたわけ…

(続) std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない

(前回:std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない - 標準愚痴出力) 関数オブジェクトで、少し改善できました。 #include <iostream> #include <vector> #include <functional> #include <set> template <class E,class T> class enumerator { E m_cursor; E m_end; p</class></set></functional></vector></iostream>…

std::vector / std::set 両方からデータを取れる関数をあまりテンプレートにしたくない

というような主旨のことを述べたら、boost::any_range をオススメされました。 が、弊社では外部ライブラリの導入がめんどくさいので、boost といえど、あまり使いたくない(未だに Visual Studio 2010 がメインに使われてるようなところだからね) とすると…

ExcelVBA のソースを .xls ファイルから抽出する JScript を書いた

Excel VBA の保守をしなければいけないんだけども… そのアプリは 開いただけで自動的に VBA が自動的に起動してしまう xlt ファイルなので、名前を変えないまま保存できず、毎回自分自身を選択しなくてはいけない こういう場合、Ariawase という Windows Scr…

ガーディアントラップ完成

ここ最近 GitHub の緑が明らかに減っています。 ↓ 主にコレのせい そう、マインクラフトでガーディアントラップを作っていたのでした。シーランタンと呼ばれる発光するブロックがあるのですが、これは危険に満ちた海底神殿の建材か、あるいはその周辺に湧く…

nyagos 4.4.5_0 を公開しました。

4.4.4_4 は欠番になりました。今回の修正は、パッチリリースというには、少し修正が多めになりましたので。 Release 4.4.5_0 · zetamatta/nyagos 今回の修正は、~/.nyagos の簡素化がメインです。 Lua関数: nyagos.dirname() を実装 これは UNIX の dirname …

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…