2017年5月28日日曜日

Rust / FizzBuzz

fn main() {
    for n in 1..101 {
        match (n % 3, n % 5) {
            (0, 0) => println!("FizzBuzz"),
            (0, _) => println!("Fizz"),
            (_, 0) => println!("Buzz"),
            _ => println!("{}", n)
        }
    }
}

Rust / Hello

fn main() {
    let name = "Rust";
    println!("Hello, {}!", name);
}

VS2017 and Cargo

Visual Studio 2017(with C++) をインストールした環境で
"cargo build"すると、link.exeが見つからないというエラーが発生します。
note: the msvc targets depend on the msvc linker but `link.exe` was not found
note: please ensure that VS 2013 or VS 2015 was installed with the Visual C++ option
error: aborting due to previous error
Cargoは、まだVS2017のパスを認識できていないようです。
とりあえず、以下を実行することでビルドできるようになります。
\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat
(32bitの場合はvcvars32.bat)

詳細は以下を参照してください。
https://github.com/rust-lang/rust/issues/38584

現在の開発環境

  • Scala: Scala IDE 4.6.1 RC1
  • F#: Visual Studio Community 2017

W10Wheel.NET 2.3

https://github.com/ykon/w10wheel.net/releases
  • コンパイラーをF# 4.1に更新
他の変更点はありません。

W10Wheel 2.3

https://github.com/ykon/w10wheel/releases
  • コンパイラーをScala 2.12.2に更新
  • JNAの拡張を内部に取り込む変更
v2.3以降、lib/win32ex.jarは不要になります。

2017年5月21日日曜日

W10Wheel 2.2.2

https://github.com/ykon/w10wheel/releases
  • 管理者として実行して、エクスプローラーを再起動すると、タスクトレイのアイコンが消える問題を修正
動作確認してみたい方は、
W10Wheel.exeを右クリックして「管理者として実行」で起動、
タスクマネージャーでエクスプローラーを右クリックして
「再起動」するとテストできます。

2017年5月20日土曜日

W10Wheel 2.2.1

https://github.com/ykon/w10wheel/releases
  • エクスプローラーを再起動すると、タスクトレイのアイコンが消える問題を修正
動作確認してみたい方は、
タスクマネージャーでエクスプローラーを右クリックして
「再起動」するとテストできます。

2017年5月14日日曜日

W10Wheel 2.2

https://github.com/ykon/w10wheel/releases
https://github.com/ykon/w10wheel.net/releases

共通:
  • Injectされたクリックを無視する
  • EventWaiterの同期改良 (LR系トリガーに影響)
Java:
  • 一部の変数をvolatileからAtomicBooleanに変更
  • ライブラリの更新: SWT 4.6.3, JNA 4.4.0, Logback 1.2.3
.NET:
  • メニュー名のタイポを修正

Injectされたクリックの無視は、他のソフトで挿入されたクリックを
トリガーとしていなければ、影響がありません。
# SetPointの「ボタン切り替え」などには影響しません。

この変更で何か問題が発生するようなら、
元に戻すか、選択できるようにするかもしれません。

W10Wheelの既知の問題

稀に他のプログラムと、何らかの処理が重なった時、
スクロールモードのまま戻らなくなったり、クリックが効かなくなります。
カーソル変更が有効の場合は、カーソルが戻りません。
この状態に陥った場合は、Escapeキーを押しながらクリックをお試しください。
それでも駄目な場合は、Ctrl-Alt-Deleteを押して、
タスクマネージャを起動すると、復帰できます。
# 復帰できない場合は、プロセスを終了してください。
# "W10Wheel.exe --sendExit"で終了することも可能です。

スレッドの問題か何かで、正しく状態が遷移していないと思われます。
再現性が確実ではないので、治すことが難しいです。
100%再現する、何かがあれば教えてください。

2017年5月13日土曜日

W10Wheelの使い方に関して

質問などがあったら、コメントしてください。

W10Wheelの動作報告に関して

  • *ソフトと一緒に動かすことができた
  • *ソフトを一緒に使うことで動作した
  • *設定で競合を回避できた
  • OS: *バージョン / VM: *バージョン / 設定: *で動作した
  • 他、何でも他の人が見て有益になりそうなこと
などがあったら、コメントしてください。

W10Wheelのコードに関して

  • コードが汚い (もっと綺麗に書き換えられる)
  • コードに問題(バグ)がある
  • APIの使い方が間違っている
  • より適切なAPIが存在する
  • スレッドの使い方が間違っている
  • スレッドセーフではない
  • ScalaまたF#の流儀に沿っていない
  • より関数型的なコードにするには
  • 他、技術的な何か
などがあったら、コメントしてください。

W10Wheelの今後に関して

  • 環境を更新してビルド (Scala 2.12 / F# 4.1)
  • 設定を普通のGUIダイアログにする (検討段階)
  • Readmeを書き直す (汚いので)
  • コードをより関数型に近づける
  • ネイティブに移植する (Rustで実装)

W10Wheelの改良案に関して

何かあったら、コメントしてください。

W10Wheelの問題に関して

何か気になる点があったら、コメントしてください。
  • Java版もしくは.NET版のどちらを使っているか
  • Infoから確認できるバージョン
  • 現在の環境(OSやVMのバーション)など
できるだけ詳細にお願いします。

テスト

こちらは、コメントのテストとして使ってください。