“Found unsupported keytype (18)” Error While Connecting to Kafka

Looks like older versions of Java, even often used ones (like SE 8), can generate this error if your JCE jar files are not updated. To be precise, JCE jars refer to Java Cryptography Extension Unlimited Strength Policy Files. Updating your two JCE jar files might help.

Grab a .zip of the files from Oracle. There should be two jars inside: local_policy.jar and US_export_policy.jar.

Copy/paste them to your JRE’s lib/security folder and overwrite the older ones. Your path will vary, but on a Windows machine it could be something like: C:/Program Files/Java/jdk.1.8.0_151/jre/lib/security/.

“Module not specified” Error in IntelliJ.

This happened after I renamed the modules to more descriptive logical names in IntelliJ 2018.3, Ultimate Edition. As a result, my two Maven module folders were no longer marked as modules in IntelliJ (no blue square in the bottom right corner of the folder icon in the Project panel). To solve the issue, I did the following:

  1. ”Unmark” any resources, java or test folders in each module folder (“Right click/Cmd+click, choose “Mark Directiry As”).
  2. Go to File > Project Structure, select Modules under Project Settings.
  3. Click the Copy icon (next to the + and – icons).
  4. In the Copy Module dialog that pops up, select the source folder for your module under “Module file location”, click OK.
  5. Open your Run Configuration screen. If “Use classpath of module” still only offers “no module”, back up any of your Run Config settings & options, then delete the old configuration and Add New Configuration (+ icon).

 

 

Digital Signage Touchscreen Displays with a Mac Mini?

Use Case

First of all, why would you want to? Digital Signage isn’t always just a video playing in a loop, which can run off a built-in media player (like on a Samsung DM55E screen with MagicInfo S3 Digital Signage Software) or a BrightSign player with it’s overly convoluted content management system. Sometimes you have an HTML5 application that can run in Google Chrome as a full screen app, other times you have a complex Unity3D desktop app that also needs to run off more of a serious machine than a typical media player.

You’re certainly better off with a PC in this situation. Intel’s NUC and others now even allow the small form factor that Mac Mini used to rule.

Mac Minis weren’t originally designed for touchscreen displays, but what if you’re stuck with venue or client that has already purchased a Mac Mini and now you have to use that equipment because the budget’s been spent?

One option that works

Assuming there’s budget and you have some leeway in choice of touchscreens, rent an ELO touchscreen. Something like the 4202L 42″ Interactive Digital Signage. ELO does provide drivers for Mac that work with single touch (at least).

Note: ELO’s site provides drivers for lower versions of Mac OS / OS X and says “MAC OS X (10.12): Contact Tech Support for Max OSX 10.12”. Unofficially, their latest driver at the time – UPDD_05_01_1482.dmg – worked for me on Mac OS 10.12. Their tech support never got back to me, so keep that in mind.

Up and Running with NW.js on OS X

Formerly known as node-webkit, NW.js lets you convert pretty much any HTML5 project into a desktop app.

First, make sure you have the right versions of npm and node installed. I updated npm and ended up updating node via nvm to maintain various versions of node and getting the right one for NW.js.

To launch the test app, I ran this command via Terminal:

open -n -a nwjs --args "/Users/your_usr_name/path_to_project/html_nwjs_test"

There’re a few other options on the project’s Github page. Do check it out.

If your package.json has a “window” node that looks like what I have below (aka no window chrome, no taskbar functionality), keep in mind that on OS X you can just launch Activity Monitor and use that utility to shut your app down when you’re ready:

{
  "name": "HTML5 Desktop Test App",
  "main": "index.html",
  "window": {
    "title": "HTML5 Screensaver Test",
    "frame": false,
    "toolbar": false,
    "fullscreen": true,
    "always-on-top": true,
    "show_in_taskbar": false
  }
}

I’m sure Windows Task Manager or Windows Explorer has a similar option.

When the app’s ready, nw-builder seems like a good option to create executables for multiple platforms (win32, win64, osx32, osx64, linux, etc). It seems a bit annoying that for Windows, nw-builder outputs a bunch of .dll files along with the .exe.