Tuesday, September 24, 2013

JavaOne 2013: (Keep On) Making the Future Java

Mark Twain apparently never said "the coldest winter I ever spent was summer in San Francisco". But after Saturday, the weather has been great. So here we are in sunny, warm San Francisco for JavaOne 2013. We have been commuting on the Ferry from Alameda to Fisherman's Wharf. This has to be the Best Commute in the World.

It has always seemed a waste of resources to make the bodywork of cars different every year for no reason other than appearance. So it doesn't bother me that Java One was not re-themed this year but was again tagged with "Make the Future Java". Apparently the future is still not here, so we all need to keep working on it, at least for another year.

Again this year I was fortunate to speak, in collaboration with my long time collaborator in such things, Jim Wright, in BOF 7452 on the topic of SmartStat Micro, an open-source HVAC thermostat. This is an ongoing project and a topic for future posts.

This year things started with a Java.net community leads meeting and excellent dinner (Hotel Nikko food seems to me to be a cut above their neighbor hotels), MC-ed by Sonya Barry, who is currently battling cancer (read about that in her blog). This year events proper kicked off on Sunday. Today is Tuesday and here are some random impressions.

This is the first year that wireless has actually worked well! Kudos to the subcontractors who set it up. This has got to be hard: providing wireless to accomodate 60,000 people. Actually the JavaOne portion of that is a lot less: maybe 10,000 (just a guess), but still that is a lot of traffic.

Web Fundamentals by James Ward (at 8:30 this morning, groan) was fabulous.  In a dense hour he laid out what hours of googling and reading books (online and print) has failed to give me. He works for TypeSafe and they have some nice looking web tools which I am now inspired to try. It's a 200 MB download... good thing the wireless works.

Sun SPOTs are dead. When current stock is gone no more will be made. This is the final chapter in a sad story. SPOTs could have been the Arduino for the Internet of Things. But at a commercial license fee of $100K, what can you expect? Suppose Arduino had a $10K license fee for commercial use? It would have flopped too. Now SPOTs are open source, but no one seems to care. There are better options out there: you guessed it, mostly based on Arduino. $400 gets me two wireless SPOTs and a base station, or for $75 I can get a pair of Arduino WiFi Spark Core devices.

You never have to go more than half a block in San Francisco to get a decent latte. And at JavaOne you can get as many as you want for free in the "Buzz Shack". Someone got this right!

There is emphasis this year about "embedded Java"  - and here we mean some attempted rejuvenation of Java Micro Edition- and I attended several sessions related to this. Judging by attendance it may be too little, too late. Sun let Java Micro Edition languish for years, and seemed to care only about Java ME on phones. Now, what is the compelling use case? On the other hand, "embedded" these days can mean a $45 BeagleBone Black with orders of magnitude more power than an embedded device of yore. So Java SE Embedded is more apropos with current hardware. "SE Embedded is the new ME".

In past years Oracle was pushing SE Embedded on the Plug Computer which is pretty cool for around $100, but it is not hackable or embeddable. The only I/O interface is: USB. So forget about adding your own low-cost sensors, or controlling devices. No I2C or SPI, so you can't add your own OLED displays or color touchscreens

Oracle this year seems almost obsessed with the Raspberry Pi. Pi is cool - don't get me wrong - but it is for educational use only, and is not intended or appropriate for commercial use (a whole other topic, Google it if you are curious, or just try to get a data sheet for the Pi's Broadcom processor). Instead there are newer embedded Linux systems such as BeagleBone Black which are intended for OEM use, so I would expect Oracle to be all over the BBB. Maybe next year. In any case, if it will run on the Pi it should also run on the BBB. So if it can be made to run acceptably on Pi, it should run that much better on other more capable targets such as BBB. That's a wonderful side effect of both Pi and BBB running embedded Linux.

So *why* should we run Java on a small embedded Linux system? What is the compelling use case? At JavaOne there is sometimes the "we should do it in Java because Java is cool" mentality, sometimes with little consideration for whether it is practical or benefical. Ten years ago this held some weight. But now Java is the status quo and newer languages (e.g. Python) are claiming better ease of use and programmer efficiency. 

For one thing, SE Embedded and Netbeans have some impressive debugging, monitoring, and tuning tools such as VisualVM and VisualGC which were featured in the presentation Deploy: Getting Up to Speed on Oracle Java SE Embedded, TUT7730. These are pretty impressive tools, if you care about what your application is really doing: how much memory is it consuming, where performance bottlenecks are occuring, and so on. Remote debugging is possible on the stable Java 7 SE Embedded, too, but only with the latest NetBeans 7.4 nightly builds. 

Which brings me to the point that Oracle sometimes takes a long time to make a decision and actually do something, but if they ever reach that point, they tend to do it well, and they tend to stick with it. By "do it well" I mean including a pretty robust JVM and usable tools for debug, monitoring, and tuning. (Such tools are grossly lacking in the Arduino world). Sun would often change focus every year,  driven by the current winds of marketing hype. This never played well with industrial developers who typically have to maintain and support systems for at least five years, and often at least 10. Embedded Java developers have been burned in the past so we are now more than a little shy about considering Java again. What if Oracle changes their mind in a year or two? Witness the dead end which Sun SPOTs have now become (in fairness that is not Oracle's fault, but you get my point).

This is one aspect of Arduino which helps make it popular: the whole Arduino IDE and its libraries are open source, and since the code is all standard C/C++ and the underlying compiler is GCC, how badly can you be stuck in the unlikely event the Arduino.cc developers abandon further work? If we only have access to the binary releases of the JVM for ARM, what do we do if Oracle abandons the effort?

More thoughts on this to come...




Saturday, June 2, 2012

mSecure: Finally a password manager for Android (and iOS) with multi-PC (Mac and Windows) synch

Finally I have found and am using a decent and affordable password manager for Android. It successfully synchs across multiple PCs (2 in my case: work desktop and work notebook) and at least one Android device. The first version I purchased early 2012 had some issues which would cause the Android app to crash near the end of the synch process. The synch actually had occurred (new and updated items were transferred) but the Android app crashed near the "validating database" part of the synch. mSecure support responded within 24 hours (how common is that these days?) and after some initial frustration on my part trying to validate that yes, this really is a repeatable failure, they released a  new Android version which seems to have solved the problem.

Check it out at https://msevensoftware.com/ where you will find iOS, Android, Mac, and Windows versions (3.1.0). Synch is via (secure) WiFi and I am successfully using Android 2.3.4 (mSecure 3.1.4) and Windows 7 pro 64-bit on two PCs.

Entries are called Items and there is usually a note field where you can enter freeform text.  Groups are the higher-level categories such as BusinessWebsite Logins, and PersonalTypes are the lower-level categories such as Bank AccountsCredit Cards and Web Logins.  Yes: website login entries which are not strictly Business or Personal will be Group "Website Logins" and Type "Web Login".

You can easily edit existing Groups and Types. You can also add new Groups and Types.Oddly missing is a "Password" type, so I added that.

On Android, the database is stored on SD card, so you have a way to easily move to another device. I recently had to do that when my phone flaked out and got replaced.

Yes there are other password managers out there. I was using secForms but they failed to work on Android 2.3.4 and now seem to be out of business. Others don't claim to support multi-PC synch or lacked a decent desktop PC version altogether. KeePassDroid had issues with customization and a UI which I found awkward. Why did it take this long to get back to what I had with TopSecret on Windows and Palm OS devices 10+ years ago? I think they call that progress.




Monday, January 16, 2012

Highly Recommended: Bullzip PDF printer

Many programs let you export to PDF, but many others don't. For this, you need a PDF printer, which lets you print to PDF just as if you were printing to a physical printer. For this, my favorite program is currently the free Bullzip PDF printer. Get it at bullzip.com - no advertising or crapware is included. It works with all recent Windows versions including 64-bit. Donations are accepted. It's fast, simple, and works well.

Tuesday, October 25, 2011

My Review of Seattle Sports H2Zero Diamond Dry Bag - Large - Special Buy

Originally submitted at REI

A clear diamond-shaped window in this large dry bag makes it easy to view its contents.


Good bag for quick-grab raft/kayak/canoe

By water on the brain from SLC, UT on 10/25/2011

 

4out of 5

Pros: Sturdy clip, Waterproof, Strong Material, Good Capacity, Good size, Surprisingly durable

Best Uses: Paddling

Describe Yourself: Casual/ Recreational

Was this a gift?: No

Had this bag 2+ years and used it on several multi-day trips. It has held up better than I expected. No leaks or holes so far. Good for holding mid-size camera, glasses, keys, other small things that you want easily reachable through the day. Transparent window is handy.

(legalese)

Sunday, June 19, 2011

My Review of NRS Cargo Net with Straps

Originally submitted at NRS

Our cargo net is one of the most versatile rafting accessories on the river. It can be secured over the top of your gear to keep it in the boat, or hung between two crossbars to create a cradle for loose gear. Built with a border of 2" webbing for strength and strap on points for securing misc...


Definitely worth it for truck and raft

By Bruce from Salt Lake City on 6/19/2011

 

5out of 5

Pros: Fits full size pickup, 9 straps are great, Seems plenty sturdy

Best Uses: Rapids Paddling, Truck on way to river, Rivers

Was this a gift?: No

This was purchased before a high water Green River and then a Yampa trip. We also used it on the pickup bed on the way to the river. It seems very well made, and the large size is just right for a full size 8-foot pickup bed. It makes securing gear on a 16-17' raft a lot easier although more D-rings on the raft would be nice. It's a little big for a raft not really heaped up but I just rolled up the edges. Way better than the cheapo bungee-type net I had gotten at a tool outlet. Seems like it will last a good long time, and it was great to have nine straps included. Someone at NRS thought this through pretty well.

(legalese)

Wednesday, June 15, 2011

I drank the Apple Kool-Aid: iPod Touch 4G: what? Only synch to one desktop?

So I am at last sipping the Apple Kool-Aid and bought an iPod Touch 4G 8 GB for $200 at Target. So far so good. There are lot of things I like about it. My kids love Angry Birds! So I installed iTunes on the family PC and expected to be able to also synch to my work desktop and notebook (something Palm has had for, oh, 15 years). Nope! I cannot easily copy music, podcasts, photos etc to another PC. What is up with this? Why is desktop synch in 2011 so hard when it was so easy in 1995?

Wednesday, March 9, 2011

Hardware UARTs under Windows 7: Yes, it is possible

There are many reasons to want a real hardware UART on a desktop PC. In my case, we use a number of embedded systems and devices (e.g. Cisco 678 DSL modem, UARTs on TStik) which require an asynchronous serial connection at up to 115200 baud. In addition we need to be able to use some legacy software (e.g. javaxcomm which is recently changing under Oracle), as well as scriptable serial terminal software (e.g. RealTerm) to communicate with embedded systems, sensors, and devices.

Similarly, we have the need for a true hardware IEEE1284 parallel port with EPP mode to use with ;egacy  JTAG adapters for Xilinx and legacy hardware such as JStamp and JStik.

BUT most new PCs have only USB (and things like RS232 handshaking signals are sometimes not properly functional on USB virtual COM ports) and Windows 7 no longer includes Hyperterminal (no great loss IMO). So the common (mis)perception is that hardware UARTs and software to access them are difficult or impossible under Windows 7. Ditto for IEE1284 true parallel ports with EPP mode (not just printer-capable ports).

Today I am building new Windows 7 64-bit PCs and wanting a solution for this, along with many of our customers. I'm using the MSI 890FXA-GD70 motherboard

And I am happy to say that real hardware UARTs are possible under Windows 7.

Here is the Rosewill RC303 at Newegg. This under-$20, PCI-bus card has two serial and one parallel port. So far I am able to use the hardware UARTs with RealTerm. I will add to this with more information as it develops.