Maze Generator Keeps Plotter (and Kids) Busy

We can tell that [Jon Howell] is our kind of guy. After updating his vintage 1985 Hewlett-Packard plotter with WiFi and the ability to load SVG files, he obviously needed to find a bunch of stuff to run off with it. Gotta justify those hacks somehow. So he doubled down and decided support a hack with another hack by writing a maze generator to keep his plotter well fed. He was kind enough to unleash his creation on an unsuspecting Internet as an open source project, and now we all can benefit from a couple of reams worth of mazes.

The generator itself is written in Java, and should work on whatever operating system your box happens to be running thanks to the *nix and Windows wrapper scripts [Jon] provides. To create a basic maze, one simply needs to provide the script with the desired dimensions and the paper size. You can define the type of paper with either standard sizes (such as --paper a4) or in the case of a plotter with explicit dimensions (--paper 36x48in).

If you aren’t a big fan of right angles, there’s support for changing the internal geometry of the maze to use a hexagonal or triangle grid. You can even pass the program a black and white PNG “mask” which it will use as the boundaries for the maze itself, allowing for personalized puzzles of whatever shape catches your fancy. [Jon] even ran the Wrencher though his software, leading to the creation of a maze which we can neither confirm nor deny will be making an appearance on our Christmas cards this year.

Whether you need to prove to your significant other that the hours you spent fiddling with your plotter are well spent, or an easy way to entertain the junior humans in your life, you can thank [Jon] for your solution.

A Whole Other Kind Of Graphical Programming

Java isn’t everyone’s cup of tea. With all its boilerplate and overhead, you’re almost always better off with a proper IDE that handles everything under the hood for you. However, if you learn a new language, you don’t really want to be bothered setting up a clunky and complex IDE. If only you could use a simple, standard Windows program that you are most likely already familiar with. This wish led [RubbaBoy] to create the MSPaintIDE, a Java development environment that let’s you write your code in — yes — MS Paint.

If you’re thinking now that you will end up writing your program with MS Paint’s text tool and create a regular image file from it — then you are right. Once set up, MSPaintIDE will compile all your PNG source files into a regular Java JAR file. And yes, it has syntax highlighting and a dark theme. [RubbaBoy] uses a custom-made OCR to transform the image content into text files and wraps it all into few-button-click environment — including git integration. You can see a demonstration of it in the video after the break, and find the source code on GitHub.

One has to truly admire how far [RubbaBoy] went, considering the tongue-in-cheek nature of this project. And all joking aside, if you’re interested in OCR, this might just be simple enough to begin with. Or you could expand it with some text to speech functionality.
Continue reading “A Whole Other Kind Of Graphical Programming”

Even the PlayStation 2 Can’t Escape Java

Love it or hate it, you can’t deny that Java has a pretty impressive track record in terms of supported platforms. Available on everything from flip phones to DVD players, not to mention computers, Oracle once famously claimed that Java runs on three billion devices. An estimate that, in truth, is probably on the low side at this point. Especially when [Michael Kohn] keeps figuring out how to run it on increasingly esoteric devices.

[Michael] writes in to tell us that he’s added support for the PlayStation 2 console to Java Grinder, his software for taking Java code and turning it into a native binary for a variety of unexpected platforms. His previous conquests have included the TRS-80 and Atari 2600, so by comparison the PS2 is an almost tame addition to the list.

Let’s be honest, you probably don’t have any desire to run a Java program on Sony’s nearly two decade old game system. But that’s OK. The documentation [Michael] has written up is fascinating anyway, covering specifics of the PS2’s rather unique hardware and quirks he ran into when developing on an emulator and deploying on real hardware. Even if you’ll never put the findings to practical use, it’s absolutely worth a read.

In the video after the break you can see the demo [Michael] came up with booting on a real PS2 to prove the software works. To really put his mark on it, he mentions he wrote and performed the demo’s songs and even drew some of the artwork on paper and scanned it into his computer.

We’ve previously covered his work getting Java running on the Sega Genesis, as well as the venerable 6502 CPU. Oh, and one time he encoded data onto a pancake. We like this guy’s style.

Continue reading “Even the PlayStation 2 Can’t Escape Java”

FPGA Persistently Rick Rolls You

When [Im-pro] wants a display, he wants it to spin.  So he built a persistence of vision (POV) display capable of showing a 12-bit color image of 131 x 131 pixels at 16 frames per second. You can see a video about the project below, but don’t worry, you can view it on your normal monitor.

The project starts with a Java-based screen capture on a PC. Data goes to the display wirelessly to an ESP8266. However, the actual display drive is done by an FPGA that drives the motor, reads a hall effect index sensor, and lights the LEDs.

Continue reading “FPGA Persistently Rick Rolls You”

The Forgotten Workstation: Sun JavaStation

These days, conversations about Java tend to center around Oracle and Google fighting it out in court. But back in 1996, Sun was the keeper of Java and promoted it heavily. They even released a diskless workstation that only runs Java applets. The Sun JavaStation was affectionately called the “Mr. Coffee” and [Cameron Gray] wants to show you how it worked and what’s inside of it.

A single screw frees the innards from the small case. Inside looks like a dense PC from the era, although the parts inside are a far cry from a typical PC. The CPU was a 110 MHz microSPARC II soldered directly to the motherboard. The four RAM slots could take up to 64 megabytes of PC RAM.

Continue reading “The Forgotten Workstation: Sun JavaStation”

Oracle v Google could Chill Software Development

Unless you’ve completely unplugged from the news, you probably are aware that the long-running feud between Oracle and Google had a new court decision this week. An appeal court found that Google’s excuse of fair use wasn’t acceptable and that they did infringe on Oracle’s copyrights to Java. Oracle has asked for about $9 billion in damages, although the actual amount is yet to be decided. In addition, it is pretty likely Google will take it up to the Supreme Court before any actual judgment is levied.

The news is aimed at normal people, so it is pretty glossy about what exactly happened. We set out to try to make sense of it all. We found a pretty good article from [Michaela Barry] about what the courts previously found.  There were three main parts:

  • There were 37 API (Application Programming Interface) declarations taken verbatim from Java. This would be like a C header file if you aren’t familiar with Java.
  • Google decompiled 8 security files and used them.
  • The rangeCheck function — 9 lines of Java code — were exactly the same in Oracle’s Java and Android.

Continue reading “Oracle v Google could Chill Software Development”

Language Parsing with ANTLR

There are many projects that call out for a custom language parser. If you need something standard, you can probably lift the code from someplace on the Internet. If you need something custom, you might consider reading [Federico Tomassetti’s] tutorial on using ANTLR to build a complete parser-based system. [Frederico] also expanded on this material for his book, but there’s still plenty to pick up from the eight blog posts.

His language, Sandy, is complex enough to be a good example, but not too complex to understand. In addition to the posts, you can find the code on GitHub.

Continue reading “Language Parsing with ANTLR”