‘/’ アプリケーションでサーバー エラーが発生しました。

症状

ASP.NET で、データの編集を行った場合、次のエラーが発生。

‘/’ アプリケーションでサーバー エラーが発生しました。

‘nvarchar’ 付近に不適切な構文があります。
スカラー変数 “@ID” を宣言してください。

説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.Data.SqlClient.SqlException: ‘nvarchar’ 付近に不適切な構文があります。
スカラー変数 “@ID” を宣言してください。

原因

SQLサーバーの列名にスペースが含まれている場合に、更新のSQLコマンドが正しく生成されないVisual Studio のバグ。

対策1

SQLサーバーの列名のスペースを削除するか、’_’ で置き換える

対策2

Updating イベントで、CommandTextと、ParameterName を置き換える。

例: 列名 [test data]の場合
e.Command.CommandText で、”@test_data”となっているが、
一方、e.CommandParameters では、”@test data”となっている。このため、パースが失敗して、アップデートに失敗しているものと思われる。
そこで、この名前を一致させる。

        protected void SqlDataSource1_Updating(object sender, SqlDataSourceCommandEventArgs e)
        {
            e.Command.CommandText = e.Command.CommandText.Replace("@test_data", "@testdata");
            foreach (System.Data.Common.DbParameter p in e.Command.Parameters)
            {
                if (p.ParameterName == "@test data")
                {
                    p.ParameterName = "@testdata";
                }
            }
        } 

Unknown C++ exception from OpenCV code

Symptom

When I ran my OpenCV code and the following exception was raised.

Unknown C++ exception from OpenCV code
File …, line …, in … keyboard = cv2.waitKey(1) & 0xFF

Unknown C++ exception from OpenCV code
File File …, line …, in …cv2.imshow(‘frame’, frame)

Version

macOS Monterey 12.3.1
python: 3.9.12
OpenCV: 4.5.5
opencv-python: opencv_python-4.5.5.64-cp37-abi3-macosx_11_0_arm64

Cause

The code was not invoked in the main thread. Moving the code to the main thread and then it worked. So, I’m assuming that OpenCV on macOS shall run on the main thread.
Please note that the code worked perfectly on Windows 10. So, it is only on macOS.

Solution

On macOS, run OpenCV code in the main thread.

[{‘code’: 324, ‘message’: ‘Not valid video’}]

Symptom

I created a twitter bot with ffmpeg-python. When I uploaded a video created by ffmpeg-python to twitter, it returned [{‘code’: 324, ‘message’: ‘Not valid video’}] error.

Cause

The video was encoded by mp4, which is obsolete for twitter.

Solution

Use the h264 codec for twitter.

ffmpeg.output(video, video_out, vcodec=’h264′)

FileNotFoundError: [Errno 2] No such file or directory: ‘ffmpeg’ when called by launchd

Sympton

FileNotFoundError: [Errno 2] No such file or directory: ‘ffmpeg’ when called by launchd.

It works as expected when called from shell.

Cause

PATH for /usr/local/bin/ffmpeg is missing.

sys.version: (‘3.10.0 (v3.10.0:b494f5935c, Oct 4 2021, 14:59:20) [Clang 12.0.5 ‘
‘(clang-1205.0.22.11)]’)
shutil.which(“python3”): ‘/usr/bin/python3’
os.getenv(“PATH”): ‘/usr/bin:/bin:/usr/sbin:/sbin’
os.getenv(“PYTHONPATH”): None

Solution

Explicitly specify the PATH environment variable in the plist.

shutil.which(“python3”): ‘/usr/local/bin/python3’
os.getenv(“PATH”): ‘/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin’
os.getenv(“PYTHONPATH”): None

Note:

launchctl unload and load is required to update the PATH.
PYTHONPATH is not required.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>test_launchd.test</string>

        <key>EnvironmentVariables</key>
        <dict>
                <key>PATH</key>
                <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
        </dict>

        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/python3</string>
                <string>/users/uchukamen/Desktop/Python/test_launchd/test.py</string>
        </array>

ML Image Classifier not giving expected results on simulators

Symptom

I created an Image Classifier app, “Chichibu Unkai Watcher”, and it returns right results on a real iPhone device. Also it returns right results on mac catalyst. But, I found that the iPhone/iPad simulators do not return expected results.

XCode Version 13.1 (13A1030d)
Simulator Version 13.1 (970)
Create ML Version 3.0 (78.6)

Fig.1 iPhone real device: Unkai confidence level is ~0%.
Fig.2 mac app on macOS Catalyst: Unkai confidence level is ~0%.
Fig.3 iPhone Simulator: Unkai confidence level is 69%
All of those are using a same image data, and the Unkai confidence level should be ~0%.

Discussion

I tried some GPU settings on the simulator app, also some compiler settings changes, but it does not resolve this symptom. I found an article on the Stack Overflow which says it might be caused by the simulator. At this moment, I’m assuming this is caused by the simulator.

Reference

https://stackoverflow.com/questions/65642606/action-ml-classifier-not-giving-expected-results/69974393#69974393

Per Sheldon, he is suggesting to run one on a real device.

Fig.1 iPhone real device

Fig.2 mac Catalyst app run on a real mac

Fig.3 iPhone Simulator

Twitter「一部の画像/動画をアップロードできません。」

OpenCV で動画を作成し、Twitterに動画を投稿しようとすると、「一部の画像/動画をアップロードできません。」のエラーが発生する。

fourcc = cv2.VideoWriter_fourcc(* ‘mp4v’)

ではなく、次のように h264 コーデックを使用する。

fourcc = cv2.VideoWriter_fourcc(* ‘h264’)

Error: unrecognized selector sent to instance

Error

2021-07-17 17:22:01.168937+0900 MaskedBlur2[19987:9237645] -[NSConcreteValue X]: unrecognized selector sent to instance 0x2835e0690

2021-07-17 17:22:01.172931+0900 MaskedBlur2[19987:9237645] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[NSConcreteValue X]: unrecognized selector sent to instance 0x2835e0690’

*** First throw call stack:

(…)

libc++abi: terminating with uncaught exception of type NSException

*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[NSConcreteValue X]: unrecognized selector sent to instance 0x2835e0690’

terminating with uncaught exception of type NSException


Cause

Unexpected data type was passed for a parameter.
In this case, forKey:kCIInputCenterKey is expecting CIVector, but CGPoint was passed.

OK

    var location: CIVector= CIVector(cgPoint: CGPoint(x: 0, y: 0))

    radialMask.setValue(imageCenter, forKey:kCIInputCenterKey)

Error

    var location: CGPoint= CGPoint(x: 0, y: 0)

    radialMask.setValue(location, forKey:kCIInputCenterKey)

Message from debugger: Terminated due to signal 9

Symptom

Create a SwiftUI app which support two languages (ex. English, and Japanese). Run it in the simulator with debug mode. In the simulator, from the “Settings”, switch the language to another language.Then, XCode displays “Message from debugger: Terminated due to signal 9”.

Discussion

It happens even if a simple initial app as shown below. When the simulator switches a language to another, it restarts the some process and it might disconnect the debug communications. I think it can be ignored in this case.

import SwiftUI

struct ContentView: View {
    @State var message = "Hello, world!"
    var body: some View {
        Text(message)
            .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}