Hecklers in Development
Code, coffee, & camaraderie. Collection, unordered. ;)

At JavaOne last week, several people asked me how my work at Pivotal was going, and it occurred to me: I had been so busy diving into all the new toys that I hadn’t written anything about it! This is a first step toward remedying that.  🙂

 

At the risk of this post sounding like a short commercial, I’m deeply impressed with the consistency of vision and the depth and breadth of capabilities Pivotal offers innovative organizations and developers. The various Spring offerings solve real problems, and they solve them in ways that are “developer first”…ways that make sense not just conceptually, but also when pounding out code in an IDE (or vi/emacs, if you prefer). You hear a lot about an “opinionated” approach, and that could be chafing if there weren’t such flexibility to do it it your way anytime needed/desired; but the goal is always the same:

 

Offer a way to get things done cleanly and easily by following a prescribed (opinionated) approach…

…but get out of the way quickly when another approach is warranted/desired.

 

Best of both worlds.

 

With regard to Pivotal Cloud Foundry…I once heard it described as the “travel adapter” of cloud services, and that explanation is brilliant. In short, Pivotal Cloud Foundry (PCF):

  • Works with a variety of underlying infrastructures (VMware, OpenStack, Amazon, Azure, Google Cloud)
  • Runs on-premises or public
  • Provides a single, elegant API for developers, regardless of infrastructure
  • Provides a single, elegant API for developers, regardless of siting (on-premises or public cloud)
  • Provides a true Cloud Native platform: drag, drop, run

If you’ve used other cloud platforms (and not yet used Pivotal Cloud Foundry), you’re probably reading and re-reading that list with some combination of skepticism and guarded envy. Don’t believe me; believe yourself: sign up for a free 60-day trial here and kick the tires. No better way to see the future than to create a small Spring Boot application (or bring your own) and deploy it to PCF. You’ll wonder why other vendors make it so difficult when it can be so straightforward.

 

In summary, I’m working on a great team in a great company with products from the future. What’s not to love? 😀

 

Cheers,
Mark

 

For everyone I met and re-met (!) at JavaOne, thank you for your friendship and commitment to this great community! Looking forward to our paths crossing again, and looking forward to meeting new “old friends” soon.

 

Please check back here (or follow me on Twitter: @MkHeck) for periodic ponderances, quick tips, and everything in between. Keep that code flowing!

 

Share

Related Posts:

  • Please check back for related posts!

pivotal:

  1. Of, relating to, or serving as a pivot.
  2. Being of vital or central importance; crucial.

As has been widely reported, last week I was among those at Oracle who were “let go” – a sanitized expression that is meant to diminish the indescribable impact of being fired due to circumstances far outside one’s knowledge or ability to influence. Details aren’t important, but suffice it to say that my teammates and I were…surprised. 🙂

 

The Java community is so much more than one company. It is many companies, organizations, not-for-profits, JUGs, individuals…so many who make it the vibrant, sharing community we all love. I’ve spoken with several, and I’ve had some wonderful conversations with organizations with a vision. This community is very much alive, and great ideas are flowing, with more on tap!

 

Pivotal

Which brings me to some exciting news! I’ll soon be joining the team at Pivotal. I won’t name names, as there are simply too many outstanding colleagues to mention without inadvertently leaving someone out. But you know them: they’re thinkers, innovators, and doers. Pivotal has some great tools in their toolbox, and I can’t wait to put every one of them to good use! I feel like a kid in a candy store. 🙂

 

I still have some good friends and colleagues within Oracle, and I respect them deeply for doing amazing things with Java and the community. They are awesome, and those individuals deserve your support. But this is a pivotal (you knew that pun was coming, didn’t you?!?!) moment for me, and I look forward to some pretty amazing things moving forward!

 

Whether you’re an old friend or new, or a soon-to-be one, if you happen to be at a conference where I am, please catch up with me and say “Hi”. I’m looking forward to it. 🙂

 

Onward & upward,
Mark

 

Follow me on Twitter (@MkHeck) for updates as the journey unfolds!

Share

Related Posts:

  • Please check back for related posts!

JavaOne: I'm Speaking

 

There are some absolutely SUPERB conferences dedicated to Java (the language, the platform, the ecosystem) around the world, and I’ve been privileged to speak at some of them. No two are alike, and that is a good thing! JavaOne San Francisco holds a very special place in that lineup, bringing together a phenomenal mixture of vision, direction, community leadership, and grassroots innovation that is nearly impossible to describe. You just have to be there!

 

This year I’m pleased and honored to be presenting in three sessions, sharing the stage with some of my favorite people from around the world: Jim Weaver, Sean Phillips, David Heffelfinger, Geertjan Wielenga, Jens Deters, José Pereda, and James Gosling. As I said, it’s a genuine honor!

 

Here are the sessions in which I’ll be taking part:


Creating Our Robot Overlords: Autonomous Drone Development with Java and the Internet of Things [CON1863]
Tuesday, Sep 30, 2:30 PM – 3:30 PM – Hilton – Continental Ballroom 4

Who wants a mindless drone? Teach it to “think,” and it can do so much more. But how do you take it from Toy Story to Terminator? This session’s speakers discuss their new open source library, Autonomous4j, for autonomous drone development. Combining this library and some components from their mad science toolkit, they demonstrate how to get your Internet of Things off the ground and do some real cloud computing. In the session, you’ll learn how to write an autonomous drone program with Java 8; deploy it to the drone’s “positronic brain,” an onboard Raspberry Pi; have the Pi guide an AR.Drone to accomplish a task; monitor it via a JavaFX console; and create your own robot overlord. Demos are included: you’ve been warned!

With Jim Weaver & Sean Phillips


Debugging and Profiling Robots with James Gosling [CON6699]
Wednesday, Oct 1, 1:00 PM – 2:00 PM – Hilton – Continental Ballroom 4

James Gosling recently stated that “being able to debug and profile robots out at sea is a truly life-altering experience.” He uses a set of tools—consisting of editors, debuggers, and profilers—that are part of the NetBeans IDE. In this session, Gosling and other speakers introduce you to these tools and show you how easily and quickly you can program and interact with devices via Java tools. Come see how well integrated embedded devices are with the Java ecosystem.

With Geertjan Wielenga, Jens Deters, José Pereda, & James Gosling


Java Platform, Enterprise Edition Lab 101: An Introduction [HOL1827]
Wednesday, Oct 1, 10:00 AM – 12:00 PM – Hilton – Franciscan A/B

For anyone familiar with the Java language but without direct Java Platform, Enterprise Edition (Java EE) experience, the capabilities and APIs in Java EE can seem daunting. Documentation is helpful, and well-written books can make it easier to come up to speed, but isn’t the best way to learn something to actually do it? This session’s speakers hope to smooth the path for anyone curious about Java EE by offering a gentle, yet useful, introduction to four key concepts:

 

• JavaServer Faces (JSF)
• Contexts and Dependency Injection (CDI)
• Java Persistence API (JPA)
• Enterprise JavaBeans (EJB)

 

Using NetBeans and the bundled GlassFish application server, the speakers present each new concept with live code and then help attendees complete hands-on exercises.

With David Heffelfinger (and gracious assistance from Sven Reimers, Josh Juneau, Bob Larsen, & Bruno Borges)


I’ve said it before: There’s no better place to see what’s happening in the world of Java than JavaOne. Hope to see you there!

 

All the best,
Mark

 

Cross-posted from The Java Jungle.

Share

Related Posts:


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

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

 

MarkToon

 

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!
Mark

Share

Related Posts:


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.  😀

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 255.255.255.0 (or whatever was shown in ifconfig -a above)
      • network 192.168.1.0 (or whatever was in the destination column, 2nd line from netstat -nr above)
      • broadcast 192.168.1.255 (as shown in ifconfig -a)
      • gateway 192.168.1.1 (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 glassfish-4.0-web.zip 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 ~/glassfish-4.0-web.zip” 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,
Mark

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

Share

Related Posts:


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

Powered by Wordpress
Theme © 2005 - 2009 FrederikM.de, heavily modified by Mark Heckler
BlueMod is a modification of the blueblog_DE Theme by Oliver Wunder