“zsh: No match found” error

zsh attempts to expand any potential filename wildcard characters (such as ‘*’ and ‘?’) used in a command before executing it. This can lead to the confusing error “zsh: No match found” error. What makes this confusing is if you’re trying to execute a grep or something where you are trying to find or match something, since the error implies your search is not working, whereas the error is about the patterns zsh is attempting to expand in the command string, and not from executing the command itself.

Depending on what you’re trying to do, the easiest workaround is to wrap parameters in quotes or escape characters like ‘*’ and ‘?’.

e.g. for curl, wrap urls in quotes.

Using a Unisys VT terminal with VT132 as a wifi modem

I just picked up a Unisys TO300G VT terminal to use for a few retro projects, and tried connecting it to my VT132 and use it as a wifi AT modem. Initially I wasn’t getting anything echo’d to the screen, then remembered I needed to set the speed to 115200, and then started getting a response from the VT132.

Here’s the menu, with the speed initially at 19200 8N1 :

Now we’ve got responses echoing back but there’s a bunch of CR/LF chars:

Turns out they’re echo’d to the screen if you have the Monitor Mode set to ON, so turning this option off fixed this. Also, the backspace key wasn’t working, and the Recognize Del option set to ON fixed this:

Now using ATD to dial up bbb.fozztexx.com and we’re in business:

Loving the amber glow of the text on this terminal, and the smooth scrolling is <3

Packet Radio: ax25 node logon message: updating for a cleaner menu

After logging on to an ax25 node, you’re shown a message like this:

DAVBBS:KK6DCT-6 Welcome to KK6DCT-6 network node

Type ? for a list of commands. help <commandname> gives a description
of the named command.

--

@kk6dct-6 20:52:01>

This is what is shown by my node that I’m currently setting up. I’d like to show a list of the apps I currently have configured. You can see the configured commands by entering a ? as the message tells you, but the formatting is not ideal, especially as I’m adding more apps and this list is getting cluttered. This is what the ‘?’ command shows for my currently configured apps:

@kk6dct-6 20:52:01> ?
DAVBBS:KK6DCT-6 Commands:
?, Advent, Bye, Connect, Escape, Finger, Help, HItchhikers, HOst
Info, Links, Mheard, NLinks, Nodes, PIng, Ports, Routes, Status
TAlk, Telnet, TIme, Users, W1-WeatherDavisCA, W2-Weather5DaysDavisCA
W3-WeatherForCity, W4-Weather5DaysForCity, Z1-Zork1, Z2-Zork2
Z3-Zork3, ZConnect, ZTelnet

When you logon, the first part of the welcome message that’s displayed is configured in /etc/ax25/node.motd (message of the day). Editing this file I can now more cleanly format the menu (and I might come back and change some of the names of the apps to make the menu options clearer later) :

DAVBBS:KK6DCT-6 Welcome to KK6DCT-6 network node
  W1		- Weather in Davis, CA
  W2		- 5 day weather forecast: Davis, CA
  W3		- Weather in specified city
  W4		- 5 day weather forecast for specified city
  Advent	- Adventure / Colossal Cove
  Z1		- Zork I
  Z2		- Zork II
  Z3		- Zork III
  
Type ? for a list of commands. help <commandname> gives a description
of the named command.

--

Much better!

Mapping xml to Java POJOs with Jackson

Jackson is typically used for Json serialization and deserialization, but with the jackson-dataformat-xml dependency you can also use Jackson to easily map to/from XML too.

Maven dependencies:

	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-core</artifactId>
	    <version>2.12.4</version>
	</dependency>
	  
	<dependency>
	    <groupId>com.fasterxml.jackson.dataformat</groupId>
	    <artifactId>jackson-dataformat-xml</artifactId>
	    <version>2.12.4</version>
	</dependency>

If you have additional elements and attributes on elements that you’re not interested in, similar to Json, just add the ignore annotation at class level:

@JsonIgnoreProperties(ignoreUnknown = true)

In some XML docs you can have elements with the same name at the same level without a parent to exclusively group those elements. For example you can have xml that looks like this with a grouping:

<example>
    <name>example1</name>
    <items>
        <item>1</item>
        <item>2</item>
    </items>
</example>

This would be automatically handled by Jackson if your POJO class has a list of Item called items:

private List<Item> items;

but sometimes you’ll have a doc that looks like this:

<example>
    <name>example1</name>
    <item>1</item>
    <item>2</item>
</example>

To map this you need to use this annotation:

@JacksonXmlElementWrapper(useWrapping = false)
private List<Item> item;