Monday, July 22, 2019

How to connect from Linux to BleemSync 1.1

After installing BleemSync 1.1 on my PlayStation Classic, I could connect to the BleemSync UI from Windows but not from Linux (Ubuntu 19.04). Google Chrome reported "unable to connect," and ping to 169.254.215.100 reported a network error.

dmesg showed that Linux identified the device, and RNDIS networking started

[23945.137399] usb 1-3: new high-speed USB device number 31 using xhci_hcd
[23945.286069] usb 1-3: New USB device found, idVendor=04e8, idProduct=6863, bcdDevice=ff.ff
[23945.286075] usb 1-3: New USB device strings: Mfr=3, Product=4, SerialNumber=5
[23945.286079] usb 1-3: Product: classic
[23945.286082] usb 1-3: Manufacturer: BleemSync
[23945.290633] rndis_host 1-3:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-3, RNDIS device, 8a:04:6f:1c:f9:72
[23945.291271] cdc_acm 1-3:1.2: ttyACM0: USB ACM device
[23945.339113] rndis_host 1-3:1.0 enp0s20f0u3: renamed from usb0

However, ifconfig showed it did not have an IPv4 address. This indicates a DHCP failure.

$ ifconfig enp0s20f0u3
enp0s20f0u3: flags=4163  mtu 1500
        inet6 fe80::adf4:a447:4b1d:f96c  prefixlen 64  scopeid 0x20
        ether 72:b7:b8:ae:c8:00  txqueuelen 1000  (Ethernet)
        RX packets 8  bytes 536 (536.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 81  bytes 12347 (12.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

I bypassed DHCP by manual IP configuration.

sudo route add -net 169.254.215.0 netmask 255.255.255.0 metric 1024 dev enp0s20f0u3
sudo ifconfig enp0s20f0u3 169.254.215.2
ping 169.254.215.100

Now Google Chrome, ping, and even telnet worked.

Note: your interface name may vary. Mine was enp0s20f0u3.

This solution worked until rebooting Ubuntu. Later I found a permanent solution: BleemSync 1.0 on Ubuntu thanks to DDFoster96.

Monday, January 28, 2019

SAS Message Log with ODBC: COMMIT performed on connection #

When using SAS to develop high-performance queries against remote SQL databases, it is helpful to see the exact ODBC messages that SAS passes to the driver. Sometimes the implicit SQL poorly translates a query, which can be optimized. To see these message, enable the SAS trace like this:

options sastrace=',,,d' sastraceloc=saslog nostsuffix;

However, when closing the SAS process, there can be a pop-up dialog window with the title "SAS Message Log" with entries like this:

ODBC: COMMIT performed on connection #6.
ODBC: COMMIT performed on connection #5.
ODBC: COMMIT performed on connection #4.
ODBC: COMMIT performed on connection #3.
ODBC: COMMIT performed on connection #2.
ODBC: COMMIT performed on connection #1.
ODBC: COMMIT performed on connection #0.

When running SAS interactively, this is a minor nuisance. When running SAS in an automated batch, this can be a serious problem because the dialog will wait indefinitely for human interaction, so the sas.exe process will never terminate.

Estimating token counts from character length

When programatically using an AI chatbot API, it is easy to run up big bills. To avoid this, carefully moniter token usage, but resist the u...