The Hecklers
"Two roads diverged in a wood, and I took the one less traveled by and that has made all the difference."

We had to postpone it last month, but it’s ON!




The full details behind the idea and planned execution can be found here (HackFest – Thanks For Sharing!), but to quote one of my favorite movies of all time, “Let me sum up”: this is an unofficial, un-sponsored-by-anyone virtual gathering of friends and soon-to-be-friends just pounding away on their Java code. JavaFX? Sure! Java SE or ME Embedded? Check. Another JVM language? Bring it! Join into a planned project (Hendrik Ebbers is cooking up something special for any who’d like to contribute to it) or BYOP – Bring Your Own Project. Whether you’re diving to new depths in a familiar area or tinkering with a new idea or API, it’s all fair game.


I plan to set up a Google Hangout and keep it open for the duration. Join in for as long (or as little) as you like! Here are the details:


Begins: 1200 (noon) UTC/GMT on Saturday, November 16th
Ends: 1200 (noon) UTC/GMT on Sunday, November 17th
Where: Google Hangouts

Calendar reminder and invite will be sent to all who want to join in the fun.


Please spread the word (it’s easy, just use the Share/Save button below), and let me know if you can attend, whether for a half hour or all 24! Just email me here to “sign up” and be kept in the loop of any updates, new news, or post-HackFest (subsequent HackFest(s)?) announcements. Looking forward to hearing from you (yes, YOU!) and hanging out, learning, growing, & sharing.


Keep that (Java) code flowing!


Tags: , , , , , , , , , , , , , , , , ,

I’ve been testing various “embedded platforms” lately to provide infrastructure for my IoT configurations. In doing so, I’ve installed and configured the GlassFish 4 Web Profile to run successfully on the Raspberry Pi Model B (512M). This post is not meant to be exhaustive or even necessarily prescriptive, but rather an iterative log of what I’ve done and do to configure a Raspberry Pi to “run with the big dogs”, i.e. Java Enterprise Edition (EE) 7.

GlassFish 4

Raspberry Pi Logo

Please check back (or subscribe to my RSS feed for IoT) to monitor updates. The Internet of Things (IoT) is a very dynamic space and will likely remain so for some time! The only constant…is change.  :-D

Document version 1.3 (This number will change as I make updates and is for reference only)

Steps to Install/Configure GlassFish 4 on the Raspberry Pi

  1. Download the latest version of Raspbian Wheezy from here. You can install NOOBS, Arch, or some other distro, but I chose Raspbian. Note that this distro includes the Java SE 7 JDK, which simplifies things a bit. If you wish to use an previous Raspbian build that doesn’t already include the JDK, simply run “sudo apt-get update && sudo apt-get install oracle-java7-jdk” from your Pi shell.
  2. Make a bootable SD card by doing the following (on my Mac; Windows steps will vary a bit):
    1. Unzip/decompress the downloaded image from step 1
    2. Open a Mac terminal window
    3. Run “diskutil list” to see drives
    4. Plug SD card into SD card slot
    5. Again run “diskutil list” to see drives, now including the SD card
    6. Run “sudo diskutil unmountDisk /dev/diskn“, where n is the disk number of the SD card (as reported by diskutil)
    7. Issue the following command, being very careful to ensure the of= parameter points to the SD card! If not, you can overwrite something you’d rather not…like your boot drive: “sudo dd if=<path/name_of_Raspbian_image.img> of=/dev/diskn bs=1m”
    8. Once dd completes, issue “diskutil eject /dev/diskn” to eject the SD card
  3. Plug the SD card into the Pi, plug ethernet cable and power into the Pi to boot.
  4. At this point, you’ll need to determine current (dynamic) IP address of the Pi. I plugged in my Atrix Lapdock and did this “on the Pi”, but you can also use nmap or connect it to HDMI (TV) and USB keyboard.
  5. Run “sudo raspi-config” and set the following:
    1. Expand the file system to take the entire SD card (not just what the image initially does)
    2. Under Internationalisation Options, change Locale, Timezone, & Keyboard layout as desired
    3. Overclock to High (950MHz). I’ve tried Turbo, but it seems prone to flakiness & data loss…at least for me.
    4. Under Advanced Options, change Hostname to desired Pi name, Memory Split to 16 (as a server, we can skinny the GPU memory allocation to maximize “main” memory), and enable SSH. You can also “Update this tool” (raspi-config) to the latest version, never a bad thing.
    5. Select “Finish” to reboot the Pi & use the new settings
  6. Ensure the Pi has a static IP by doing the following (recommended for any server):
    1. Run “ifconfig -a” and “netstat -nr” on the Pi to gather the following information: current IP (if you want to keep it), netmask, gateway, destination, and broadcast. Jot these down.
    2. Make a backup of /etc/network/interfaces by running “sudo cp /etc/network/interfaces /etc/network/interfaces.orig
    3. Modify the interfaces file. I used vi, but use whatever editor you can & are comfortable with! The vi syntax is “sudo vi /etc/network/interfaces”
    4. Change the line that reads “iface eth0 inet dhcp” to “iface eth0 inet static” and add the following lines:
      • address 192.168.1.nnn (this is the IP address you want the Pi to have & keep)
      • netmask (or whatever was shown in ifconfig -a above)
      • network (or whatever was in the destination column, 2nd line from netstat -nr above)
      • broadcast (as shown in ifconfig -a)
      • gateway (or what was shown in either ifconfig or netstat)
    5. Save the file
    6. Reboot the Pi (“sudo reboot”)
    7. NOTE: You’ll also need to tell your network DHCP device/router that the IP address you statically assigned to the Pi is off-limits for assigning to another device
  7. Download GlassFish 4 Web Profile (or full EE platform) from here. I chose the Zip installer.
  8. Copy the GlassFish .zip file to the Pi (“scp pi@raspi:.”). I have an entry in my Mac’s /etc/hosts that points “raspi” to the Pi’s static IP address.
  9. On the Pi, “install” GlassFish by doing the following:
    1. Run “sudo mkdir -p /app/glassfish” to create GlassFish app parent directory
    2. Run “sudo chown pi /app/glassfish” to assign directory ownership to the pi user. Not absolutely necessary, but you typically don’t want root to own everything (although honestly at this stage & for this install, it’s not critical)
    3. “cd /app/glassfish” as the pi user to change directories into the “install” directory
    4. Run “unzip ~/” to extract the GF files into this directory
  10. Now to configure GF to allow for remote administration/configuration using its web console app:
    1. “cd /app/glassfish/glassfish4/bin”
    2. Run “./asadmin change-admin-password –user admin” to assign a password to the admin user. The admin password defaults to a blank password, a no-no for GF remote admin.
    3. Run “./asadmin start-domain” to start the default domain (which comes preconfigured in GF)
    4. Run “./asadmin enable-secure-admin” to enable remote administration using the web console
    5. In order to take utilize remote admin, stop the domain by running “./asadmin stop-domain”, then…
    6. Start the domain once more with “./asadmin start-domain”
  11. From your workstation/laptop, plug this into a browser address bar: “raspi:4848″ (substituting the name of your Pi per your /etc/hosts file) or “192.168.1.n:4848″ (substituting the IP address or your Pi) to load the GF admin console
  12. Login and relish the fact that you now have a full Java EE 7 stack (or web profile) running on your Raspberry Pi server!

I’m capturing this from memory, so it’s possible I’ve missed a step I performed or have related it not-exactly-perfectly…but if you spot something that isn’t quite right or have questions, please let me know! I’ll update this document accordingly. YMMV (Your Mileage May Vary), especially if you’re using a Linux or Windows machine for your workstation, but hopefully, this will get you that much closer to your own tiny Java EE 7 stack for your own growing IoT empire.

All the best,

P.S. – Follow me on Twitter at @MkHeck for more Java/IoT adventures…yours and mine (and ours)!


Tags: , , , , , , , , , , , ,

“But little Mouse, you are not alone,
In proving foresight may be vain:
The best laid schemes of mice and men
Go often awry,
And leave us nothing but grief and pain,
For promised joy!”


From “To a Mouse” (translated), by Robert Burns


As Burns so nicely stated, it was a great plan. Still is, actually, just not for October 12th! The inaugural Thanks for Sharing Informal International HackFest will be rescheduled for a later date – sometime in November, in all likelihood – due to a last-minute assignment on a short-suspense Java EE project. When duty calls…


Anyway, please check back (or keep your eye on my Twitter feed @MkHeck) for updates. Looking forward to a good time with great friends soon, creating & seeing some fun & useful projects. Until then!


All the best,



Tags: , , , , , , , , , , , , , , , , , ,

Do you love programming in Java (or for the JVM)? Learning new things? Do you enjoy just hanging with friends and exploring new ground, sharing in discoveries small and large? If so, consider yourself invited to the first, uh, periodic Thanks For Sharing Informal International HackFest, a virtual event scheduled for October 12-13, 2013!

Digital Dreams 200

The Genesis

Some of us were chatting on Twitter about how fun it would be to get together and just jam at the keyboard. So I thought, why not? Yes, that’s all there is to it. Good doesn’t necessarily have to be complex.  :)

The Idea

First of all, this isn’t a conference; it’s a hackfest, up to 24 hours of friends and soon-to-be friends around the world just hanging out and banging out code for fun. No pressure to “bring your A game”…in fact, the central theme of this particular gathering is to pick out something you’ve been planning to explore and just haven’t had the chance yet. BYOP: Bring Your Own Project! Want to know more about CSS? RESTful Web Services? Cryptography? Java SE or ME on the Raspberry Pi? Whether you want to explore JavaFX custom controls or lambdas, OpenJDK or Jetty, pick something and plan to pound away at it…all in great company.

This isn’t an official event sponsored by Oracle or anyone else; it’s just a gathering of like-minded developers. Chat a lot, say nothing at all, stay an hour or all 24. It’s up to you!

Ground “Rules”

Well first, there aren’t any. Nothing hard and fast, anyway.

But here are some suggestions, if I may:


  • Sometime before October 12th, think of an idea, something fun you can work on for a few hours and gain something from the experience.
  • Log into the Google Hangout whenever you can – it’s okay, we’ll be there 24 hours!
  • Explore, chat, ask questions, offer helpful advice…be as social as you’d like! Or not. Quiet is fine, too. :)
  • It would be really nice of you to post any useful code you come up with to GitHub. No pressure, don’t feel you have to do…but even code you consider very rough or “exploratory” may be helpful to someone else. And the more we all share, the more we all learn!

That’s it, really. Just a bunch of folks getting together to tinker with code and hang out. What are you waiting for?!?

The Details

Oh yes, the details! Here they are:

Begins: 1200 (noon) UTC/GMT on Saturday, October 12th
Ends: 1200 (noon) UTC/GMT on Sunday, October 13th
Where: Google Hangouts

Calendar reminder and invite will be sent to all who want to join in the fun.


This is your part! If you’re interested in participating, drop me a line by clicking this link. And please share, repost, and retweet to others who might like to be a part. Come on, it’ll be fun! Join us for the first Informal, International HackFest…and Thanks For Sharing.  :D

All the best,
Mark at TheHecklers dot org
Mark dot Heckler at Gmail dot com
or click here for public keys to send a message via PGP!

See you at the HackFest!


Tags: , , , , , , , , , , , , , , , , ,

We’ve recently added the capability to send/receive secure, signed and/or encrypted emails.


Simply put, we have nothing to hide. To paraphrase a movie line, we aren’t even very exciting. :-) But just as we don’t put pictures of our underwear & sock drawers online for just anyone to see, we aren’t all that enthused about perfect strangers poring over our grocery lists, family emails, etc. I suspect most people aren’t.


It’s pretty quick and easy to secure your email using PGP/GPG (Pretty Good Privacy and the Gnu Privacy Guard). Here are some links you can use to “get secure” in a matter of minutes on most platforms:


GPGTools, available here.


GPG4Win, available here.

GMail in Chrome

Mailvelope, available here and in the Chrome Store.

The Bottom Line

If you’ve never used PKI (Public Key Infrastructure) solutions before, you may want to read up on them a bit. The summary version, though, is that you have a private key that you keep (PRIVATE!) and a public key you publish for others to use when sending you mail. To email someone else, you either retrieve their public key from a central key server or simply copy/paste it from an email or website into your keychain, then address your email to them and choose to sign, encrypt, or both. That’s it.


If you’d like to send us a test email, please feel free to either download our public keys from the server or just go here to get them. Good luck, and all the best to you in a more secure future!



Tags: , , , , , , ,

Powered by Wordpress
Theme © 2005 - 2009
BlueMod is a modification of the blueblog_DE Theme by Oliver Wunder