This year, I have decided that I will give myself a gift. Normally, I just give gifts to my kids, my Mom, you know, the usual suspects. But this year, I'm giving myself a gift:
I'm going to write an Android Application.
Now, why would I do this? For starters, I've wanted to do it for a long time, but I didn't have an Android device. Second, I think mobile computing is the future of enterprise Java (or at least should be a key part of any enterprise's overall Java strategy). Mobile computing is just cool. Finally, Android apps are written in Java. And I love Java. I have wanted to write a mobile application in Java for some time.
Until recently I had an iPhone. I loved it, I'll be honest. But it started to show its age, and began to reboot itself nearly every time I was on a call (I'm sure the auto reboot behavior wasn't limited to calls; that's just when I happened to notice it). So, thinking back on my desire to write a mobile app in Java, I got a smartphone that runs Android (Motorola Atrix, which runs v2.3). I installed a few apps, got familiar with the interface. Now I'm ready.
I just need an idea. Oh, I'll come up with something. And I'll post various entries here on the blog as I progress.
You're welcome to participate, of course. But look for regular (hopefully) updates about how I'm progressing.
Hopefully my gift to myself will turn into a new skill I can market to the ever-expanding pool of companies that need mobile computing programming experts.
I saw an article at ZDNet about webOS going Open Source
. I agree with the author that the details are sketchy, but I'm willing to go a step further: I believe this is the kind of disingenuous garbage that contributes to what is wrong with IT (and why nobody trusts it). HP just can't come out and say, "Hey, look, we've dumped a ton of money into this thing, but seriously, between iOS and Android, we're getting our butts kicked. So we're dumping the platform." Not THAT would be honest.
Nope, instead, HP wants to appear to be good stewards of a failed endeavor (for better or worse) by releasing their intellectual property (under a license that is TBD) to the world. Yeah, right. My guess is this is just a flier to see how well received this will be. They're planning to dump the project, no doubt about it. Why all the hype?
I don't get it. I'm not picking on HP. Other companies do this too. But why? Why is failure so scary? Is it so wrong to admit that you shot at something, but it just didn't work out (for whatever reason)? That you tried but failed? That the timing was wrong? That (fill in the blank)?
Now THAT would be honest. And it ain't gonna happen. Ever. (sigh)
I've always wondered if people learn better through playing games. This idea struck me as I was watching the 1994 Michael Douglas movie "Disclosure". You know, the one with all the Virtual Reality stuff in it? I thought, "If people could play a game while they're learning, they would learn faster and retain more." (Don't try and figure out the connection between the movie and the idea... it's just how my brain works, and it's weird, admittedly).
Okay, so, I'm learning Android programming. And I'm thinking of ideas for games. My company, Makoto Consulting Group, does IT training of the traditional sign-up-then-i-teach-you-and-10-of-your-coworkers-about-something sort of classroom style training. It works well, but I've also taken some Computer-based training (CBT) classes during my career and I liked the at-your-own-pace-when-you-get-time style of learning too.
What if people could play a game and learn about, say, how banks use loans to increase their asset portfolio? Or how the total price of a prescription drug is calculated? Or how the retail price of a doorknob is derived from the wholesale price?
Just something to think about. My problem is that I don't have any ideas. I have skills to write software. (sigh)
So, what IS the next big game idea? C'mon. I won't tell anyone. :-)
I love Google. Okay, there, I said it. I love the way they do things. I love their innovative (and relatively open) approach to how they do things. I love the name. I love the name of the place they are located (Mountain View. I mean, what a cool-sounding name). If I was 12 years old (and sans serious commitment issues), I WOULD MARRY GOOGLE.
So when the Chromebook came out a few months ago, I took a look at the reviews. (Duh. Did I mention I love Google?) Not extremely positive.400 USD for a web browser appliance seemed a little high. Sure, I know the Chromebook is more than a web browser. But not much. Still, I would have bought one. Until I read that it has no Bluetooth. Now, I don't know how you feel about bluetooth, but I LOVE it. Until it's replaced with, say, Greenteeth (or whatever they call the next rev), I'll stick with it as my short range communication protocol for nearly everything COOL in my life. Thank you very much.
Okay, so I'm reading this review
at ZDNet about the Chromebook and how it's dropping in price (no surprise there, btw). I'm thinking, "Tell me it has bluetooth! Tell me it has bluetooth!" Nope. no bluetooth.
How can Google so seriously miss the boat on this? No bluetooth? No ethernet port? I mean, my Android phone has bluetooth, so don't tell me it's a space issue!
Are you getting a Chromebook? How much would you pay? Did I mention it has no bluetooth capability?
I was reading this article
at ZDNet, and it got me to thinking about how much HYPERBOLE we are exposed to. I live in the United States, and it's a presidential election year, so I can't turn on my television set without seeing one side attacking the other with the most outrageous (and in many cases, false) claims. I've sort of grown, well, numb to hyperbole.
The aforementioned article is about Android and the potential for Malware - specifically of the Trojan variety - that can piggyback onto a perfectly functional app by using the Ads that run with the app. So, a moment of clarity overtook me as I was reading the article about this. And I wondered, "How big a problem is this really?" I mean, I don't know a tremendous about the ad APIs you can use when developing a Droid app, but I'm pretty sure that when you click through an Ad, it runs in the browser, which has its own set of permissions. And the running ad may have access to the same permissions as the app it's running inside of, but isn't this sort of thing self-policing?
The strength of a Trojan and other malware is *you don't know where you got it*. But with an Android app, wouldn't the "smoking gun" be a little more obvious?
I mean, I don't know. Maybe this is a potentially huge problem. Personally, I think it's a way for companies like F-Secure (who supplied much of the fodder for the ZDNet article, btw) to trumpet their usefulness.
What do you think?
I saw this article
at ZDNet.com about Enterprise Gamification, wherein the premise is that if people can participate in solving an objective together (think crowdsourcing), they learn more, the objective is achieved faster (and cheaper) and it's a lot more fun. Who wouldn't love that?
The idea of using games to enhance learning is nothing new. But with computing power achieving unprecedented levels (not just in terms of speed, but scalability and reachability as well), getting lots of people to play their way to a business objective is becoming a reality.
Doubtful? I was too. But the article states wins for Enterprise Gamification such as crowdsourced redesign of a protein
as evidence that it works.
There are also a number of gamification platforms and tools such as Bunchball
, and IActionable
. I think this is a far cry from WOW, or XBox, but it's a start.
What do you think?
I've been on a new engagement for the past three months, and my customer's IT department uses a UI framework called Vaadin. If you're thinking, "Great! Just what we need: another UI framework!" then you're thinking what I was thinking when I first started.
However, the more I use Vaadin, the more I like it. Mainly for three reasons:
First, Vaadin is easy to use. It's so easy to write a UI it's almost unbelievable. It took me about three minutes to stand up the basics for the application I'm working on now (i.e., to generate the complete, "Hello World" skeleton I am currently building on top of).
Second, there is LOTS of sample code for doing all of the basics on the Vaadin Sampler Site
. If you're like me, you LOVE sample code. Need to know how to use a radio button? No problem? A drop down list box? Combo box? List view tied to a Database table? No problem. No problem. No problem.
If you're interested in Vaadin, start here
or by reading The Book of Vaadin.
Greetings. I've been a professional software developer for a long time now. Almost as long as the ages of some of the people I work with. In that time, I've been able to make a few observations, one of which I recently voiced to a colleague (a programmer at a client site).
The conversation went something like this:
Him: I'm feeling stressed, man.
Him: Because I've got to get this (feature) to work, and it's due next week and I just can't figure it out.
Him: Yeah, and I felt so good this morning when I came in because I just got (some other feature) to work before I left yesterday!
That's the nature of software development. One minute you're on top of the world ("I am the GREATEST PROGRAMMER EVER!"). The next you're at the bottom of the ocean ("I will never get this to work, I'll get fired, and be disgraced!"). Congratulations, and welcome to software development.
I've noticed that as I navigate the waters of any given software project that I have ups and downs. Almost manic/depressive in nature. One minute I'm the greatest programmer ever for getting (some feature) to work or figuring out some really tough problem (usually with the help of a forum post or two, I probably should mention that, huh?). The next, all I can see is how I cannot get (some other feature) to work and I should just give up, quit software development altogether, and just take that night manager job at McDonald's.
So what makes some of us like that? I don't suppose knowing the answer to that question would make any difference, or prevent it from happening. But it's a curious little tick of most software developers I know (arguably most of whom are overachievers). Whenever it happens that I'm down (depressive), I try to remember to tell myself that the feeling is illusory and that while I may not be the greatest programmer ever, I'm competent and I will figure the problem out. And when I'm up (manic), I try and remember that this too shall pass and later today (or tomorrow or next week) I'll run across some seemingly insurmountable problem and round it goes again. And again. And again.
Now, if you'll excuse me, I have to get back to coding. I just figured out (some really difficult problem) and feel like I'm the greatest programmer EVER! I am, right?
Greetings. I have recently gone through a significant amount of pain (the good kind, where I get to learn stuff) to get JBoss EAP 5.1.2 to work with JPA 2.0 as implemented by Hibernate.
"But Steve, why not just use JBoss EAP 6 or higher?" I can hear you say. Well, I frequently work on projects where I am either not the HAIC (Head Architect In Charge) or come in after decisions (like which version of JBoss to use) have already been made. So, stuck with using JBoss EAP 5.1.2 and JPA 2.0, what's a poor programmer to do?
You may think it's not possible. But I am here to say it most certainly is. Unless you like pain (yes, the good kind, where you get to learn stuff), read on.
First, download Hibernate 3.6.10 (final). It supports JPA 2.0 nicely and doesn't have any of those annoying JBoss dependencies (like JBoss logging, UGHHHHH!!!!).
Next, use class loader scoping. What's that? Basically that is where you cordon off your application so that you may use a different version of some library that is part of the app server's stack (like Hibernate).
Finally, deploy your WAR file (or EAR file, though I've only tested this so far with a WAR file).
Get Hibernate 3.6.1 here
Learn about JBoss Classloading here
Learn about JBoss Classloader Scoping here
It works. It really does. You will still get to learn stuff, but if you follow the recipe outlined above (make sure to include a jboss-web.xml as outlined in the last article on scoping), you will be able to get it working.
I was reading this article
at JavaWorld.com, and in it the author credits a Spanish proverb with
the wisdom that is the subject of this post. I'll repeat it again for
Slow down, I'm in a hurry.
If that makes no sense, then neither will the rest of this post. Thank you. Have a good day.
for those of you that get this, and the beautiful, simple, genius of
it, welcome to the rest of this post. How often have you worked with a
colleague (usually young, but not always) who, in their sincere desire
to solve a particular issue, is in a terrible rush? I've worked with a
lot of people over the years, and this happens with alarming regularity.
The well-meaning colleague is panicked, throwing information at you so
fast that it takes ten times longer to help them than if they had just
slowed down, thought through how to present their dilemma, and taken
their time in solving the problem.
What is it
about being panicked that causes us to think less methodically then if
we were calm? Ironically, when the situation demands quick action the
effect is magnified. So that when we most need to think clearly, calmly
and methodically, we are the least likely to do so.
teaches us how to temper this effect. I've wasted so much time
attacking the problem like a rabid Jack Russel terrier, when, if I had
just slowed down and gotten to the heart of (whatever the particular
problem was), I would have solved it SO much more quickly.
Here's another one: "haste makes waste". I love that one too.
Experience is that knowledge you get just after you need it. Fortunately for us, history repeats itself.
Hey, don't you have work to do?
I was reading this article
at ZDNet.com where the author claims there is a rumor floating around that Google is working on a version of Android that supports multiple users on a single installation.
Many of you know that I am a huge Android fan (well, a huge Java fan, which extends out to Android, to be more precise). So I think this is good news.
Many of you also know that I hate Windows (detest, despise, etc). Unfortunately I am often required to use it (at the request of my customers). At home I use Ubuntu Linux and LOVE it. But I promise if there was a multi-user version of Android out there for AMD 64 bit processors, I would install it. "What do you mean, Steve? Android is Java, isn't it?" Well, yes, and no. Android, as many of you know, is built on the Dalvik VM, which would have to be implemented on every target platform.
So provided that Google is either going to abandon the Dalvik VM in favor of a different one (hm, isn't there some sort of lawsuit pending, I digress), or implement it for all the major platforms, I think this is a really cool idea.
What do you think?
I was reading this article
at InfoWorld.com. In it the author makes a compelling case for the decreasing premium certifications offer.
It got me to thinking about certifications in general. I'm not a fan of them. I've had several and, honestly, never felt like I was any better qualified to practice my craft than before I picked up the study manual (and let's face it, isn't that what we all do? Just study to pass the test?).
I've worked with people over the years, some with certs, some without. It doesn't seem like the "cert chasers" were any better at what they do than the ones who just learned the old-fashioned way (on-the-job training).
Not to mention the cost of certifications.
So my question to you is this: is it worth it? Why (or why not)?
Thanks for reading.
I for one, am OVER the whole Windows 8 thing. Why? Well, for
starters, I'm having flashbacks to the Windows 95 launch. That was back
when I really liked Windows (okay, so for enterprise desktop
development, there weren't really a lot of choices).
I am really tired of Microsoft Hype Machine(TM). Seriously, if they
were as good at putting out software as they are at talking about it, I
wouldn't despise Windows the way I do (though, I must admit, Windows 7
is almost as stable as XP, so it's tolerable).
I don't think Windows will ever be as stable as Linux (I personally
like Ubuntu). Period. In fact, just this morning, I got to my desk and
had to reboot because Windows wouldn't connect to the wireless network
(this unfortunately requires a reboot). Ugh.
for the enterprise, it will be a decade before the jump to Windows 8
(e.g., every large company I currently work with uses Windows XP). For
the consumer, they just have to suffer through whichever version is
preloaded on the computer they get from Best Buy.
So, I guess my question is: WHO CARES?
But this article
at ZDNet.com, where the author points out the outrage that is apparently being generated over the advertisements in place in some Windows 8 apps, has me thinking about whether or not advertising is just going to become more and more prevalent, and thus something we should simply accept.
Remember those scenes in the 2002 Tom Cruise film "Minority Report", where everywhere people walk they are barraged with customized (and constant) advertising? Granted, that is a somewhat dystopian view of the future of advertising, but could some version of that become a reality? Whiter teeth? Why, I would LOVE that!
But, I digress. Is Windows 8 to blame for this? Hardly. Everywhere you go there are ads (except, I should point out, at IBM DeveloperWorks). Blogs, emagazines, web sites, email. Everywhere. And this has been true for years. I can't even watch a YouTube video without sitting through an avert.
So, should we be angry? Are ads going to become more and more prevalent in all things cyber?
Probably. And we should accept it. Or turn off our computers.
p.s., this blog entry brought to you by....
I am a HUGE Android fan. I don't mean that in the sense that I have a hundred Android devices and constantly install the latest Android OS beta updates. What I mean is that I'm a huge fan of Java, and that extends to Android, which has a pretty cool (if somewhat overly complex) SDK. That's why I love Parallax' Javelin Stamp
: I can build my electronics projects using a language with which I'm familiar (but I digress).
Anyway, I'm reading this article at ZDNet.com
, where the author is (justifiably) bemoaning the sad state of Android update cycles, which goes a little something like this: everything works great/poorly, you install an update and now everything runs worse/better, then you install another update and everything is (mostly) better/worse.
Anyone who has run Windows (Windoze) for any significant period of time is familiar with this sort of Update Toggle (I've even seen it with early updates of Flash on Ubuntu, but the issues have been long since worked out).
This is why I am not an early adopter. I'll stick with Windows XP at work (mainly because I'm forced to) and Ubuntu 10.04 LTS at home (I installed 12.04 on my shop PC and HATE IT).
I have two Android devices: a Motorola Atrix 2 (meh) and an Acer Iconia (love it). Both run ICS (Ice Cream Sandwich, 4.0.x). Jelly Bean (4.1, 4.2) has been out for a while now. I could probably finagle it onto both devices, but I'm not going to. Why not? Because I really believe "If It Ain't Broke, Don't Fix It".
So in protest to constant updates, I withdraw my brainpower from the collective effort (frustration?) of early adoption. I don't have time for it. I have things to do, produce, and create. No time to help Google (or Microsoft or Canonical) fix their broken stuff. If you do, good for you. When does the cycle of mediocrity end?
Who Is John Galt?