将棋プログラミング

(将棋に関する)ソフトウェア開発のノウハウ等。

Windows:プログラムの終了

Windows で、MFC を使い、プログラムを終了する場合、次のコードを実行する。 ASSERT(AfxGetApp()->m_pMainWnd != NULL); AfxGetApp()->m_pMainWnd->SendMessage(WM_CLOSE);ただし、このコードは、タイマーから起動された場合等で、異常終了する場合がある。…

Android: Gradle と Java のバージョン

新しい PC で、Android Studio (Giraffe | 2022.3.1) をインストールし、従来のプロジェクトをビルドしようとしたところ、次のエラーが表示されるようになった。 Gradle project sync failed. Basic functionality.Unable to make field private static fina…

Android Studio のプロファイル

Android アプリのある機能の実行が遅く、 「***」は応答していませんが表示されていた。入力イベントに対する応答が 5 秒以内にないと、この ANR ダイアログが表示されると説明されている。developer.android.comそれで、Android Studio のプロファイルを…

java.lang.NoSuchFieldError: No field Companion of type Lokhttp3/RequestBody$Companion;

Android で使っているライブラリを更新したところ、次の Crash が起きた。 java.lang.NoSuchFieldError: No field Companion of type Lokhttp3/RequestBody$Companion;次のように、com.squareup.okhttp3:okhttp: のバージョンを上げる必要があった。 depende…

第33回世界コンピュータ将棋選手権の戦型分析

今年(2023年)の第33回世界コンピュータ将棋選手権の棋譜266局の戦型を分析しました。 1.棋譜の入手 棋譜ファイルは、次の CSA のサイトから入手できます。www2.computer-shogi.org 第33回 (2023年5月3,4,5日) から wcsc33_kifu.zip をダウンロードし、展…

iOS WKWebView のクッキーを処理する

Objective-C のコード例が殆どないので、記録しておく。 1.WKWebView のクッキーを取得する if (@available(iOS 11.0, *)) { [WKWebsiteDataStore.defaultDataStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *aCookies) { NSLog(@"aCookies=%@", aCookies</nshttpcookie>…

Android Studio の警告を表示しない

Android Studio を Electric Eel に更新したところ、表示される警告が多くなった。 Commented out code 特に、2行以上のコメントに対して、weak warnings が次のように表示されるので、これを表示しないようにした。 コメントの weak warningsFile - Settin…

Android SDK Platform-Tools の更新失敗

Android Studio で Android SDK Platform-Tools を更新しようとして失敗した。 次がログの一部である。 "Install Android SDK Platform-Tools (revision: 33.0.3)" failed. Failed to complete operation using com.android.tools.idea.sdk.install.patch.Fu…

Android Studio で日付けを入力する

開発中に、日付けの入ったコメントの入力はよく行うので、日付けの入力は自動化したい。 通常、マクロを使うが、開発ツールによって方法が異なる。Android Studio の場合は、Live Templates を使うしかないようだ。 File - Settings のメニューを実行し、Edi…

iOS の Objective-C で UTType を使う

iOS の Objective-C で、例えば、次のように UTType を使う場合、 NSArray *theTypes = [UTType typesWithTag: @"extension" tagClass: UTTagClassFilenameExtension conformingToType: nil];次の import が必要だった。 #import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>リンク時、次のエラーになっ</uniformtypeidentifiers/uniformtypeidentifiers.h>…

Android 12 対応

アプリをアップデートしようとしたところ、次のエラーが表示された。 現在、お客様のアプリは API レベル 30 を対象にしています。セキュリティとパフォーマンスが最適化された最新の API を利用するには、API レベル 31 以上を対象にする必要があります。ア…

iOS - UITableView の detailTextLabel を更新

UITableView の表示を更新するためには、通常、次のコードを実行する(UITableViewController の場合)。 [self.tableView reloadData];以前は問題なかったが、 Xcode 13 で作成し、iOS 15 で実行すると、なぜか、このコードを実行しても detailTextLabel が…

Visual Studio 2013 で、オンライン サービスは使用できません。

Visual Studio 2013 を使用中に、次の画面が表示された。 Visual Studio にサインインいつもは、サインインすればいいが、今回は、サインインを実行しようとすると、 オンライン サービスは使用できません。後でやり直してください。と表示され、サインイン…

第32回世界コンピュータ将棋選手権の戦型分析

今年(2022年)の第32回世界コンピュータ将棋選手権の棋譜279局の戦型を分析しました。 1.棋譜の入手 棋譜ファイルは、次の CSA のサイトから入手できます。 www2.computer-shogi.org 第32回 (2022年5月3,4,5日)から wcsc32_kifu.zip をダウンロードし、展…

Visual Studio 2010 で .NET アセンブリ Microsoft.Vsa が見つかりませんでした

Visual Studio 2010 で、マクロを実行しようとすると、次のエラーが表示されるようになった。 .NET アセンブリ Microsoft.Vsa が見つかりませんでした。Microsoft.Vsa が見つかりませんでしたWindows 10 のアップデイトで、C:\Windows\Microsoft.NET\Framewo…

AWS EC2 で C5 より高速なインスタンスタイプ C6i が使用可能に

AWS EC2 の東京リージョンで、2021年12月13日から、C5 より高速なインスタンスタイプ C6i が使用可能になった。aws.amazon.comaws.amazon.com C6i インスタンスは、オールコアターボ周波数 3.5GHz の第 3 世代インテル Xeon スケーラブルプロセッサー (コー…

CHtmlView を IE11 互換にする

MFC の CHtmlView を使い、Web にアクセスする場合、デフォルトでは、IE7 互換となる。 IE11 互換にする場合、レジストリで Browser Emulation を設定する必要がある。 HKEY_CURRENT_USER SOFTWARE Microsoft Internet Explorer Main FeatureControl FEATURE…

Android でビルドエラー:A problem occurred ...

ある日、Android Studio で、次のビルドエラーが出るようになった。 A problem occurred configuring root project 'MyProject'. > Could not resolve all artifacts for configuration ':classpath'. > Could not download j2objc-annotations.jar (com.goo…

Windows Server 2019 と Windows 10 の違い

C++/MFC で開発したソフトを Windows Server 2019 で実行すると、 Windows 10 と一部、動作が異なることに気がついた。 1. GetTempPath() GetTempPath() で、一時パスを取得した時、 Windows Server 2019 では、 "C:\Users\(ユーザ名)\AppData\Local\Temp\…

Objective-C での iOS 15 対応

Xcode 13 で、iOS 15 に対応する際に必要になった変更をまとめる。 最近のコードの例は、殆ど Swift なので、Objective-C のコード例が役に立つ人もいると思う。 1. ナビゲーションバー・ツールバーの色が変わる scrollEdgeAppearance を指定する。developer…

iOS 13 以降、UITableView の scrollToRowAtIndexPath が正しく動作しない場合がある

iOS 13 以降、UITableView の scrollToRowAtIndexPath が正しく動作しない場合がある。 最初に気がついたのは、iOS 13 になったとき、iPad では、scrollToRowAtIndexPath が正しく動作しなくなった時であった。 この時、animated が NO だと問題があり、YES …

Xcode 12 でシミュレータを対象にビルドし Framework not found (2)

App Store へアプリをアップロードする際、Xcode 12 で作成することが必須になった。 そこで、Xcode 11.7 から 12.5 へ乗り換えた。 そして、以前にも書いたように、シミュレータを対象にビルドしたとき、次のエラーが表示された。 Framework not found ***…

iTunes Connect と App Store Connect

Apple の App を販売する "App Store Connect" は、以前は、"iTunes Connect" だった。 それで、ブラウザのブックマークにも "iTunes Connect" として記録されていた。最近、"App Store Connect" にログインするために、"iTunes Connect" のブックマークにア…

第31回世界コンピュータ将棋選手権の戦型分析(2) 2次予選と決勝

コンピュータ将棋選手権の1次予選は、棋力の差が大きいですが、2次予選以降は、レベルが高いです。 それで、2次予選と決勝の棋譜 163局 の戦型を分析しました。 2次予選と決勝 1.統計計算 平均手数等は、次でした。 2021年 先手(下手)勝ち: 72 後手(…

第31回世界コンピュータ将棋選手権の戦型分析

今年(2021年)の第31回世界コンピュータ将棋選手権の棋譜298局の戦型を分析しました。 1.棋譜の入手 棋譜ファイルは、次の CSA のサイトから入手できます。 コンピュータ将棋 各種大会 棋譜集 www2.computer-shogi.org 第31回 (2021年5月3,4,5日)から wcs…

Android:Google Play Billing Library V3 の落とし穴

2021 年 8 月 2 日以降、すべての新規アプリでは Billing Library バージョン 3 以降を使用する必要がある。 2021 年 11 月 1 日までに、既存のアプリのアップデートはすべて Billing Library バージョン 3 以降を使用する必要がある。 android-developers.g…

MFC:ワーカスレッドから UI を操作する

多くの OS では、ワーカスレッドから UI を操作できない。 例えば、Android では、AsyncTask の doInBackground から Toast.makeText を実行すると exception が発生する。今回、MFC で、ワーカスレッドからツールバーを操作したとき、ツールバーが消えるこ…

MFC のプログラム名が日本語の場合の HTTP 通信のトラブル

数年前に起きたトラブルである。 以前は、プログラム名に日本語は使わなかったが、もう日本語を使ってもいいだろうと思い、プログラム名に日本語を使った。 実行 PC の OS が Windows 7 の場合、問題が無かったが、OS が Windows 10 にアップデイトされたと…

Xcode 11: Your session has expired, please login

Xcode 11.7 で、 Distribute APP を実行したところ、 Your session has expired, please loginが繰り返し表示され、ログインできない状態となった。 これは多く人で起きているようで、次のようにすると問題がない。 (1) Xcode 11 で Archive を作成する。 (2…

Xcode 12 でシミュレータを対象にビルドし Framework not found

Xcode を 11.7 で問題なかったプロジェクトを 12.3 でシミュレータを対象にビルドしたとき、次のエラーが表示された。 Framework not found ***検索すると、多くの解決策が表示されるが、僕の場合は、次の設定で解決した。 1. Architectures で "Any iOS Sim…