Installing Java on macOS 12 Monterey

For some time now, Java is not (pre-)installed anymore, let’s fix that. As I’m writing this, Java 17.0.3 is the latest LTS (Long Term Support) version and Adoptium is one of the best places to find Prebuilt OpenJDK Binaries. Adoptium was known as AdoptOpenJDK, before the project was moved  to the Eclipse Foundation. All available versions for supported platforms […]

Alicia vs Alexa

Alicia Keys, honoured with Amnesty International’s Ambassador of Conscience Award for 2017

Democratizing the creation of delightful audible content Have you ever heard an interview with Alicia Keys? She spent most of her childhood in Hell’s Kitchen, one of New York City’s toughest neighborhoods. Experiencing how much emotion she’s putting into each word and her very deliberate expressive pronunciation means you cannot just casually listen but have to […]

Even or Odd – Lambda Edition

Very recently, I showed you one of the probably easiest ways, to host your very own Java-based web-service. Remember, we added providedCompile group: ‘javax.servlet’, name: ‘javax.servlet-api’, version: ‘4.0.1’ to the build.gradle file, implemented a WebServlet, and finally dropped a war file into Tomcat’s webapps directory. I know, you’ll have a hard time finding paying customers […]

Emotion Lamp

The idea behind the Vocal-Emotion Lamp is rather simple: to use a small affordable computer that can continually recognize emotion from the human voice and then visualize the result of the analysis, effortlessly and enjoyably. The implementation of this idea uses the small and inexpensive Raspberry Pi computer, extended with a far-field microphone expansion board. The software that performs […]

Serverless compute with Java, on AWS Lambda

Serverless computing is a cloud computing execution model, in which the cloud provider dynamically manages the allocation of machine resources. Serverless computing allows running applications and services, without thinking much about servers, runtime resources, or scaling issues. A very simple serverless computing application is intended to be used as a template project, a model, or starting […]

SpeechTEK 2017, Washington, District Of Columbia

— The Einstein Memorial – National Academy of Sciences, 2101 Constitution Ave NW, Washington, DC 20418 “New uses of speech technologies are changing the way people interact with companies, devices, and each other. Speech frees users from keyboards and tiny screens and enables valuable, effective interactions in a variety of contexts.” Clearly focused, SpeechTek 2017 was intended […]

The Path to the CUI is Heavily Mined and Booby-Trapped

Cross-Post from my article in Chatbots Magazine The concept of the Conversational User Interface (CUI) is not really new. Wolfgang Wahlster of the German Research Center for AI, DFKI, wrote 12 years ago in his paper on Conversational User Interfaces: “Conversational user interfaces allow various natural communication modes like speech, gestures and facial expressions for […]

Conversational Interaction Conference

The CI-Conference is the successor of the Mobile Voice Conference, and like its predecessor, organized by Bill Meisel and AVIOS (Applied Voice Input Output Society). The two day conference (1/30-31) ran like clockwork at the Westin in San Jose, had a keynote, two keynote panels, and 26 sessions. What makes this conference unique, is how it balances academia and […]

Audio Routing and Recording

Originally, an iPod connected to your Mac, would show up in the Spotify app, allowing you to copy songs to the device and enjoy them later, when untethered. Not anymore. Fortunately, the analog loophole still exists; but admittedly, it’s a very inconvenient way to replicate the above mentioned lost functionality. Step1: Install the Soundflower kernel extension, which […]

Mobile Voice Conference 2016

The Applied Voice Input Output Society (AVIOS) and TMA Associates organize the annual Mobile Voice Conference, which this year took place at the Westin in San Jose, California on April 11 and 12. Recognizing that speech recognition, speech synthesis, as well as language interpretation has matured, the Mobile Voice Conference 2016 focused on Language User Interfaces and explored trends […]

Installing Java 8 and Tomcat 8 on Debian Jessie or Raspbian or RedHat

Apache Tomcat is a Servlet/JSP container and version 8.0 implements the Servlet 3.1 and JavaServer Pages 2.3 specifications. Please note that Apache Tomcat 8.0 requires a Java Standard Edition Runtime Environment (JRE) version 7 or later. So we start with installing a recent version of Oracle’s JRE. Install Oracle JRE 8 on Debian Linux (or Raspbian) […]

Google Cloud Messages

In the new world of micro-services and micro-applications, push notifications are an important and sometimes even the exclusive way to get information to mobile/wearable applications. The term Micro Application is not fully established yet. I use it here to describe an application that is deployed on a mobile or wearable device with the purpose to […]

JSON Schema

JSON, the JavaScript Object Notation, has a somewhat misleading name, since it is used for data exchange in a lot of places that have nothing to do with JavaScript. It has become very common that web-services encode all sorts of payloads using JSON, which is then decoded on the receiving end, using libraries like Google’s gson, which […]

SpeechTEK 2014 – New York City

I was able to attend this year’s SpeechTek 2014 conference in New York City.  Organized in four parallel tracks, the conference’s advanced technology track was devoted to topics like virtual agents, voice biometrics, natural language understanding, or speech technologies for smart devices. Bruce Balentine, @brucebalentine Chief Scientist at the Enterprise Integration Group, gave the keynote […]

Mobile Voice Conference 2014

The fourth annual Mobile Voice Conference took place at the Hyatt Fisherman’s Wharf, San Francisco, on March 3rd-5th, 2014. Opening the Mobile Voice Conference, Robert Weideman, GM and Executive VP at Nuance, stated in his keynote address that building an intelligent multichannel virtual assistant, delivering personalized customer service via a human-like conversational interface, built on […]

Lips don’t lie

To create a believable virtual agent or avatar, involves many dynamic tasks, one of which is to coordinate your character’s facial animation with a sound track. For a chat bot, a typical lip-sync process, may look something like this: Generate the voice track by synthesizing the text the bot needs to speak. Break down the voice track into […]

The iRack

Functionality and design. Taken right to the edge. When we envisioned a new shelf, to provide a place for all your home network equipment, we landed on a remarkably elegant and stable design. But it’s nearly impossible to make a rack so stylish and so tall, without sacrificing strength or beauty. Creating the stunningly tall design […]

Extended list of 8-bit AVR Micro-Controllers, easily programmable with the Arduino IDE

A couple days back, I wrote about ‘The $3 Arduino‘, how to leave the Arduino board behind and program an ATmega168 Micro-Controller directly, still using the Arduino IDE but with the AVRMSPII programmer. Of course, the ATmega168 isn’t the only MC available for something like that. In fact, I have quite a few 8-bit AVR […]

The $3 Arduino

Buying and using an official Arduino Board like the standard Arduino Uno is the perfect way to get started with the Arduino language, common electronic components, or your own embedded prototyping project. However, once you have mastered the initial challenges and have built some projects, the Arduino Board can get in the way. For instance, […]

The iLift

Creating an entirely new design meant inventing entirely new technology When we envisioned the new stand for MacBook, we landed on a remarkably elegant and stable design. But it’s nearly impossible to make a device so stylish and so firm, without sacrificing features or beauty. We could have taken the easy way out and designed […]

Arduino Pt.4

Doubling the Arduino Flash Memory once again Times really flys when you’re having fun – it has been more two years since I posted this journal entry about how to double the Arduino board’s Flash memory by replacing the ATmega8 with an ATmega168 microcontroller. Lots has changed since then, e.g. the Arduino project now includes several board designs […]

Arduino Pt.2

I have been playing with Arduino for one week now and really enjoyed the simplicity with which Wiring allows access to I/O ports. The comprehensible but mandatory structure of a program works really well as long as things are kept simple, while somewhat more advanced programs could certainly benefit from access to interrupts. However, before making things […]

Arduino Pt.1

Taking advantage of strong disagreements inside Germany, the Italian feudatories rebelled and, in 1002, elected Arduino, Marquess of Ivrea, king of Italy. He distinguished himself particularly because of his fights against the Bishop of Ivrea. Today, Arduino distinguishes itself in price, capability, openness, and ease of use – but first things first. Arduino is an open-source computing […]

Cable Modem Signal Levels

If you have a router to connect multiple computers to your high-speed Broadband Internet connection, your certainly have configured the router’s DHCP and NAT settings, using a networked computer’s Web Browser. On a LinkSys router for instance, this is done by browsing to You can also use your Web browser to find out how good your […]

How to remotely access a Mac behind a corporate firewall

Accessing your Mac remotely isn’t really that difficult, if it weren’t for your resident IT-Department. You could simply open System Preferences / Sharing, enable ARD (Apple Remote Desktop) and check the VNC viewer checkbox. By doing so, your Mac starts listing on port 5900 and you could access it via any VNC viewer, like Chicken of the VNC (for […]

How private are private fields after all?

Last week, I sent the following brain teaser: public class Foo { private int secret = 47; public Foo() { new Hacker().hack(this); } public String tellSecret() { return String.valueOf(secret); } public static void main(String[] args) { System.out.println(”How secret are private members? ..”); System.out.println(”Psst: ” + new Foo().tellSecret(); } } Can you write a void hack(Object […]

Code Inspection

I recently got the chance to participate in another code inspection, in which among other things, the following line of code was heavily criticized for using String concatenation on constants and not using a StringBuffer object for the string operation in general. FindFile.FindFileInClasspath( kPropFilePrefix + “*”+ kPropFileSuffix + kKeyProperties, vPropFiles ); This is from a J2EE […]