This Site & Me
I'm a technologist, mobile specialist, experienced software developer, author, public speaker & an SAP employee. My thoughts, ideas, rants, comments & most of the code you'll find here are my own. Feel free to use any of this, but be sure to identify the source.
Topics You'll Find Here
This site contains content on a bunch of different topics including Mobile, Mobile Development, IBM Lotus Domino and other topics that strike my fancy. I've written a couple of mobile development books, so mobile and mobile development tend to dominate.
Like What you See?
Like what you see here? Found something useful?
If you benefited from anything I've posted here, please think about buying one of my books or taking advantage of one or more of the ads on the page.
- Category: Mobile Development
- Published on Thursday, 03 July 2014 08:52
I keep hearing from readers who have just started reading my PhoneGap Essentials book. That book was published more than two years ago and PhoneGap has changed dramatically since then. The code in the book should still work - not much has changed on the API side of things. The content covered in the first half of the book however is no longer valid.
I rewrote the first half of PhoneGap Essentials last year and released it as Apache Cordova 3 Programming in December. That book takes the first 150 pages dedicated to PhoneGap development and PhoneGap tools and updates it for Cordova 3 plus expands it out to about 250 pages. There's an additional 50 pages on the APIs that covers them at a high level, but if you have the Essentials book you have the same information (just a little older). You can read more about the book at www.cordovaprogramming.com.
The second half of PhoneGap Essentials was all about the Cordova APIs, about 150 pages worth. I just finished rewriting that content (and expanding it to about 300 pages) and published it as Apache Cordova API Cookbook - the book will be in stores in about a week. You can read more about the book at www.cordovacookbook.com.
With these two books, you've got 600 pages of coverage for Cordova 3.
I think what’s happening, please correct me if I’m wrong, is that while the people I work with use Cordova, much of the world only knows of it as PhoneGap. I’m wondering whether not having PhoneGap in the title of my latest books is somehow hurting sales. As PhoneGap is a distribution of Cordova, you’d think that a book on Cordova would address both markets. If I change future book titles to have PhoneGap instead of Cordova in them, I may lose out on an audience that’s interested in Cordova and not PhoneGap. Sigh.
I tried to post a comment on the Amazon listing for PhoneGap Essentials letting folks know there was an updated version of the book available. Amazon refused to publish it.
I’m getting ready to start work on Apache Cordova 4 Programming, with a planned release of very late this year (December at the earliest) but probably early next year. I’m planning on expanding this book considerably and hope to get about 400 pages of content in there. When I get done, between the two books, I’ll have published more than 700 pages of content on Apache Cordova.
- Category: Miscellaneous
- Published on Monday, 30 June 2014 07:32
I mentioned this on twitter a while back, but I’m consistently amazed by how much effort is made by hackers to hack into my personal web sites. I’d be really interested in seeing what percentage of internet traffic is taken up by these types of efforts (not on my sites, but on content management systems overall). I plan on doing some analysis of this, but simply haven’t gotten around to it.
Anyway, I had some issues with the CAPTCHA on this site, and my comments plugin provider isn’t responding to any forum posts on the topic so I had to just leave the comments on and use the plugin’s moderation capabilities to weed out the spam. What’s interesting about this is that I generally only get spam on just one of my posts as shown in the figure below.
I don’t know what it is about that particular topic that attracts the spammers, but it sure does (to the tune of about 50 spam comments a week).
Apparently there’s some known bug in GeSHI and/or Joomla and the botnets are trained to look for it to see if they can capitalize on it. All the spam comes from the same botnet I think because the format of the message is always the same, just the topic and target change. In the old days, the comments would be entered by a human, or at least written by a human, so the messages had a real subject and real content. I’m really not sure why anyone things that comments with random characters in the subject and body of the comment wouldn’t raise red flags and get the comment deleted, but that’s what’s happening time and time again.
What I’ll probably do is switch out the comment plugin for another that actually works with Joomla’s built in CAPTCHA (see, CAPTCHA is an acronym so I’ll spell it that way, spam isn’t, so you won’t see me capitalizing spam that way). This is the second comments plugin I’ve used, and I hate to whack all the existing comments again, but I don’t get that many comments (only spam) so it probably isn’t a big deal.
People are reading these articles, right?
- Category: Miscellaneous
- Published on Saturday, 15 March 2014 21:18
My dad was a tool geek, I’m a gadget geek. All my life I’ve been drawn toward technology. When I was a kid, I was constantly biking to Radio Shack to pick up one of their assemble-it-yourself electronics kits. I build radios, sound generators and anything I could get my hands on. I wanted to be an Electrical Engineer, but my grades weren’t good enough, so I went into Physics and Computers – go figure.
Anyway, my son’s a gadget geek as well. He’s 10, so all he knows is smartphones and tablets – every time I get a new device, he goes crazy for it and tries to show me how it works. Doesn’t he understand that I’m in the smartphone business and will always know more than him for at least a few more years?
Anyway, I’ve been playing around a bit with the Raspberry Pi (I’ve posted several articles here about my experiences) and I’ve always wanted to play with some programmable microcontrollers. My neighbor got me to take a look at some microcontrollers from Texas Instruments, but I’ve not done anything with them yet. I’m most interested in the Arduino, but again haven’t had time to play much with it...until now.
My son and I were discussing possible geek projects to work on and we decided to trick out a…well, it’s a secret, but I’ll write about it as soon as I can. We decided we needed a very small package for this project and I knew the Arduino was going to be too big. So I started looking around at smaller versions of the Arduino to use. The first one I found was the Teensy (https://www.pjrc.com/teensy/), its super small, and I think this is the one we’ll ultimately use for our ‘project.’
I wanted to breadboard this out first, so I picked up an Arduino Micro (http://arduino.cc/en/Main/arduinoBoardMicro) from Adafruit (https://www.adafruit.com/products/1086) – very nice, very small (although bigger than the super small Teensy). This one comes with headers (the Teensy doesn’t) and fits nicely into a breadboard as you can see from the following figure.
For this particular project, the Arduino needs to know how it’s oriented in space, so I picked up a Arduino Accelerometer module from Adafruit (https://www.adafruit.com/products/163). The 3g one seemed good enough, but since I bought that one the Adafruit team came up with a 16g so I picked up one of those as well. I imagine the 16g model will make it into our ‘project.’
I planned on working on our project this weekend, but of course forgot to pick up a breadboard. My son and I headed off to Radio Shack (oh, the memories from when I was a kid), picked up a breadboard, battery holder and a battery and got to work.
I first installed the Arduino IDE then connected the board to the computer and tested it worked by running the blink sample application. Next I wired up a single LED and got that working. After that, I wired in 5 LEDs, showing my son how to use the breadboard and make the circuit. With 5 LEDs working, I started playing around with the application code to see if we could come up with some cool blink patterns. I did them the hard way, turning each light on and off as needed individually, so I could show my son how the code worked. He quickly got bored, so when he went off to play with his friends, I refactored the code, added arrays and loops and created some pretty tight code. Tomorrow I’m adding a cylon pattern, it will be fun.
Next I added the headers to the accelerometer module; I wish it came with headers pre-installed because I quickly mucked up that task. Anyway, with the accelerometer wired in, the project can tell its orientation in space. Tomorrow my son and I will start programming different behavior depending on the project’s orientation in space. Like I said, I’ll write all about it once I get it all done.
- Category: Miscellaneous
- Published on Tuesday, 11 February 2014 08:39
In my previous post, I wrote about one of my biggest software pet peeves – registration forms that have specific password requirements that are not communicated to the user until AFTER a password has been entered. This morning I found one that was even worse than the Google Coder one I showed earlier.
I was playing around with the Intel XDK development tools for web applications. After I got it installed, it prompted me to create an account. I filled in all of the fields and went looking for any indicator that the form had password requirements. None found, so I clicked the Submit button only to find out that for some unknown reason, Intel requires a special character in the password as shown at the very bottom, in small print, in the following figure:
So, I dutifully added a special character (I’m not telling you which one) and clicked Submit again only to find out that they had yet another requirement. Apparently you also have to have a number in your password, but Intel made no effort to inform me of any of this.
At this point, I’ve failed twice and I still don’t know if my password with a special character AND a number will actually fulfill the requirements. I crossed my fingers and clicked Submit for the third time only to find out that I had actually, unbeknownst to me, complied with the password requirements. Woohoo!
Developers, when you have an input form that has specific input requirements – TELL ME WHAT THEY ARE. I shouldn’t have to guess what your password requirements are; you know what they are, so tell me BEFORE I start typing in my password. I know you have limited screen real estate for listing out the requirements, but there’s no reason you can’t give me a button or a link to click on to view the requirements.
I’m assuming you like your users and actually want us to use your development tools – so don’t make it so hard for us to actually use them.
- Category: Miscellaneous
- Published on Tuesday, 04 February 2014 09:00
I recently learned about a cool web development server for the Raspberry Pi. I want to teach my son about computer programming and this seemed like an interesting way to do it. The server is called Google Coder and it’s delivered as a Raspbian image for the Pi. Pretty cool; I’m hoping to learn more about it and write a bit about my findings here.
As I set it up and started playing with it, I was hit by one of my pet peeves. First you fire up the server then connect to it via your desktop browser (right, it’s not something you use on your Pi, but instead something you host on your Pi and connect to it from your desktop PC). When you connect to the server, you’re prompted to provide a password in order to access the system as shown in the following figure.
Honestly I’m really not sure why I need a secure connection to my Pi (notice the HTTPS in the browser’s address field) and I’m also not sure why I need a password, but I’ll dig into that at some later time.
Anyway, so it wants me to use a password so I went ahead and typed on in. After clicking the ‘Save My Password’ button shown in the figure, what I see next is the following:
There it is – one of my biggest developer pet peeves. If you know that you’re going to want me to include upper case, lower case and numbers in my password, why not tell me BEFORE I tell you the password I want to use?
I see this all the time and it makes absolutely no sense to me. You’re asking me for input and you know exactly how you want that input formatted, why don’t you share that information with me so I can save a little time here? After all, it’s not like you have a hidden camera and you can get some pleasure from watching me type in a password only to later learn it doesn’t meet your requirements.
Developers, if you have any input, password or any other requirements you’re obligated to tell me what they are BEFORE I provide you with the input. There’s no other way. You took the time to type in the requirements into the error message shown in the second figure, why not copy and paste the exact same information into the original input form?
I know why it was done this way, some designer designed the password form and it had to look cool and clean. The error warning was an afterthought or was implemented by someone AFTER the design of the password form had been completed. Rather than think through the process and your requirements for the system, they left the input form clean and muddied it up later ONLY if the user didn’t accidentally type in a password that met the requirements.
Do your users a favor and think through the whole process before doing the coding. Give the designer all of the requirements so they can be taken into account from the very beginning. That way you’ll make happier users.
- Category: BlackBerry
- Published on Monday, 03 February 2014 22:26
If you’ve been reading around here you should know that I love BlackBerry, but BlackBerry 10 is really starting to annoy me. For all of BlackBerry’s focus on quality and design, I’m find BlackBerry 10 to be really, really hard to use on a day to day basis. So many of the things I loved about BlackBerry just aren’t in BlackBerry 10 and I’m finding the UX to be…klunky.
I went out of town this weekend to hang out with some friends. I have a BlackBerry Z30 device, and it has a HUGE battery, so I expected to get a whole day’s use out of it, but no go. Around 7 PM, after starting the day with a full charge, the battery was on its last legs.
Fortunately for me, the folks at Adobe gave me a free USB battery at PhoneGap Day 2013, so I pulled it out in order to give myself a boost. I only got a few minutes out of the battery, but that’s not what I’m here to talk to you about.
As the battery started to lose its charge, the warning shown in the figure below started to appear. Not a big deal, I like being notified that I’m running low on juice. The problem is that I couldn’t get the darn thing to go away.
Here’s what happened, I was trying to charge the device, but my USB battery was out of juice itself. So, the BlackBerry knew it was connected to a power source of some kind, but since it wasn’t getting any juice itself, it threw up that warning. It would display for a while, go away for a few seconds then immediately come back – over and over again. The problem is that it’s really hard to use the device with this message constantly popping up and going away. The touch screen is essentially unusable as long as this behavior continues.
I was trying to meet some friends and my battery dying and this stupid continuous warning was really annoying. I finally figured out that when I unplugged the USB battery, the message would go away and I could again use the device. Ugh.