Category Archives: Technology

From Web SQL to IndexedDB. What’s next?

I just spent the past couple of days wiring up a persistent data store in the mobile web app I am developing. I want to move the app with Phonegap to iOS and I realized that persistent data storage was a must. Even not being a native app, giving users of mobile web apps the ability to function when they have no or poor internet connectivity is a must if you are going to achieve a level of customer satisfaction that approaches that of a true native app.

So I didn’t read between the lines and I spent the past couple of days learning how to implement SQLite for the web. SQL is a comfort zone me and many of us who’ve been in this tech game for a while. The data I am working with maps well to tables and is easily manipulated with joins. I got my prototype working and when I stumbled across the raging debate over WebSQL vs IndexedDB.

 

NEWS FLASH: Web SQL was Deprecated in Nov of 2010. So I’ll admit I’ve been hiding under a rock but this debate continues to rage. I’ve been glued to the back and forth happening at HTML5ROCKS and this great thread by Kevin Dangoor on Google+.

For starters, html5rocks is where I found the most useful tutorial on developing a simple web database. They followed that up with a great post by Ido Green on how to migrate from Web SQL to IndexedDB. But man this move by the W3C just isn’t sitting well with people. I guess if I was a 20-year DBA and staring at the NoSQL tidal wave, I’d be nervous too. Personally I am just getting back into development after a long hiatus and find the rock throwing amazing but counterproductive.

Adventures in iOS Land –> HTML5 CSS3 and JQuery Mobile

DockMaster MobileMy Adventures in iOS Land have stalled. Why? Because I’ve been diving into HTML5, CSS3 and JQuery Mobile. The requirements for the app I am developing seem to be more suited for mobile website rather than a native app. I am developing a business app that connects to server code running on either a Linux or Windows-based server. The connection method is a SOAP web service. Thanks to Mateo Casati for his excellent post on SOAP clients using AJAX. We have adapted this code to work with an ASP.NET web service. We also created a wrapper around Mateo’s foundation that allows for cross-domain calls.

JQuery Mobile has proven to be an adequate platform for the user experience I want to create thus far. I am only at the beginning of this project and may need to look at PhoneGap or some other kind of solution to migrate what I’ve done on the web to a native app if native controls become necessary. Eventually I want to explore using the XCode Interface Designer as a mobile layout platform. There are some tools out there that claim to convert the .xib files produced by Xcode to Javascript files. Has anyone had success taking this route?

Adventures in iOS Land – Day 1+

One-calendar-day1My first day digging into Titanium didn’t quite turn out like I had planned. Setting up XCode (once I received by Apple Developer Program credentials) and Titanium Studion was very straight-forward. I am using Xcode 4.2 and Titanium Studio 1.0.7. I also installed the Android SDK. The help and SDK installers seem to have improved since I tried installing Titanium on Windows XP.

Appcelerator has done a great job preparing tutorials and videos in what they call AppU. Three starter videos are provided upon installation: Preparing for Mobile Development, Getting Started with the Development Environment and Sample Projects.

My first project is a business app. I’ve already created the basic prototype using jQuery Mobile. You can find it here. This app will communicate with a .NET XML SOAP web service running on a Windows Server. Since we are developing mobile apps to facilitate business management systems, it is key that the app work with a web service supporting Windows business applications. Given this backdrop, it became apparent that I needed to bone up on SOAP, Javascript and jQuery.

I bought the jQuery Cookbook some time ago, but hadn’t cracked the cover until recently. I started working through the basic examples to get an understanding of jQuery and Javascript basics. You can find the tutorials here. I then started looking specifically at jQuery client side examples using AJAX to communicate with an XML SOAP web service. Here are some that were helpful to me:

Posting XML SOAP Requests with jQuery

Using AJAX with jQuery Mobile

Creating a Javascript Soap Client

Even though I’ve made much less progress that I had hoped, I’ve learned a lot about jQuery and SOAP. On our Windows server I am using a slick testing environment called SoapUI. Blogger Jason Cohen is involved in this project and I’d like to give him a big shout out for not only helping to create a great tool, but for writing some great posts on the business of software.

Adventures in iOS Land – An Introduction

XCodeAs I am waiting for XCode 4.2 to download on my new iMac I decided to chronicle my experience. This series of posts will outline my journey in what is a brave new world for me: iOS Development. Since developing cross platform apps is a key requirement for my work in mobile app creation, I’ve elected (as of this writing) to use Appcelerator. First a little background on me.

I am 47 years old. In the iOS development space this puts me in the senior citizen category. I run a company with 24 employees that generates millions per year in revenue. I graduated in electrical and computer engineering decades ago. My first job out of college was at Motorola developing in assembler. That lasted all of 18 months before I decided that sales and consulting engineering was the place for me. With that backdrop, why the hell would I attempt this.

The answer is two fold really: 1). I like tinkering. I’ve been doing adhoc web development (HTML, CSS) and maintaing various sites developed in Django, JQuery and PHP. 2). I believe that if you have chosen technology as your journey in this life you had better walk the walk. In other words, if building and marketing technology products and services is your craft, then you’d better know the ins and outs of what it is you are peddling.

I have no delusions here that I am going to become a master programmer. I wasn’t that good at it when I got paid to do it. I will likely pay someone to develop the complex pieces of the projects I create (e.g database backend, interactive graphics, complex UI functions). However I believe I need to know and be in competent using the tools of the trade. It’s like the guy that has a woodworking shed behind his house. For him it’s a fun hobby. He is not dependent upon woodworking to make a living. But if someone loves their craft and gets good at it they may be able to sell some of their creations in the local swap meet. I am a believer in the notion that many successful businesses, especially those that Tim Ferriss calls muse businesses, come from a hobbyist that turns their labor of love into marketable art form.

Well I believe that XCode is downloaded now, so here goes…

Windows at work, Mac at home

iMac iPad and iPhoneI resisted the notion of buying a Mac for a long time. I own a business software company. All of our products are built on Microsoft technology. My migration away from Unix-based systems to Windows happened back in the mid-90s when I began to actively seek employment with a company that had business applications (specfically software development business apps) that ran on Windows NT. I didn’t realize that one day, more than 15-years later I would come full cycle and embrace Unix-based operating systems once again. What surprised me is that the transition happened at home.

On nights and weekends I began to dive into what was happening in the open source community. I am an investor in Eldarion, one of the leading Django development companies anywhere and developer of the open source Pinax framework. I used Pinax and Django on our DzineBox website. I maintained this site on an old IBM Thinkpad running Ubuntu. Since DzineBox is written in Django, Ubuntu (or any variant of Linux for that matter) made for an ideal development platform. But it wasn’t until I decided to start focusing on mobile app development that my need for MacOS grew to the point that I finally had to shell out the $1,200 for an iMac.

Now look at me. I am definitely late to the party but with my iMac, iPad and iPhone, I’m like an Apple commercial. I am using the Trackpad with my iMac and really like it so far. Not sure if it’s more effecient than a mouse yet, but it is really intuitive. So far I wouldn’t say that owning a Mac is transforamtional. Some people talk about these Zen like experiences they have when they get their first Mac. However I had the original Macintosh and many of the fundamental concepts are still in place. Furthermore, since I already use the iPad and iPhone, the UI was seemlessly for me. I know some people who only have experience with Windows platforms really struggle with the Mac.

I was using Appcelerator on my Windows XP machine in an attempt to start working with the Android SDK. It took some effort just to get it to work. But after it crashed my machine when I uploaded an update to the Android SDK I said enough. I will give Appcelerator a good college try on the iMac, but if it also proves flaky I am off to XCode and my dreams of building cross platform apps will be dashed (at least for the time being).

Adventures with Appcelerator

Appcelerator

I developed my first mobile app prototype using Jquery Mobile (http://jquerymobile.com/) after spending lots of time reading threads about building webforms vs native mobile apps. Since the app is basically a mobile interface to my company’s server side business management system, webforms seemed to be the way to go.

Grab an iPhone or Droid and to go this URL from your browser to see my first attempt at it here: (http://mobile.dockmaster.com). The great thing about JQuery Mobile is that it was built in HTML5 and CSS3 from the ground up to be touch/swipe enabled as opposed to point/click. It also renders to different form factors from iPad (largest) to Blackberry (smallest). The problem (for me) was load times. I found that it worked great on my new iPhone 4S but load times are a dog on older devices (e.g. iPhone 3G).

So after attending the Launch Pad conference in CA that Jason Calacanis organized and after speaking with a number of top app developers, I decided to install Titanium (Appcelerator). Appcelerator is basically a customized version of Eclipse. I installed it on a Windows machine (because that’s all I have at the moment) and started messing with the Andriod SDK. I will be loading on MacOS over the Holidays.

Installing on Windows has some known configuration issues that took me days to figure out. NOTE: I am using it on Windows XP, haven’t tried on Windows 7 yet.Read these threads and save yourself a shit-pile of time if you use Windows:

FIRST check out: http://developer.appcelerator.com/doc/mobile/mobile-build-windows (You don’t have to install Python and Git but it’s highly recommended. I personally love Git. I keep all my Dev stuff in GitHub.com. Also, having “Git Bash” allows you to use Unix commands in Windows!)

Problem #1: Appcelerator and more specifically the Android SDK has trouble with the Windows file system. It doesn’t take kindly to spaces.  The SDK typically gets installed in “Program Files”. This path name must be converted to “PROGRA~1”.http://stackoverflow.com/questions/6638713/android-emulator-is-not-…

Problem #2: Emulator couldn’t find path to SDCard. This may or may not happen to you. But if it does here’s how to fix it. http://developer.appcelerator.com/question/124530/how-do-i-manually…

Lastly – Tim Poulsen at Titanium is a good resource.http://developer.appcelerator.com/question/112621/adb-devices-retur…

My favorite iPad apps

Like most people I enjoy games and fun apps on the iPad. But to me the iPad is more than just a toy or entertainment console. I seek out business apps that help me be more efficient and stay connected. These are the iPad apps that I use almost daily to run my business and my daily life. I have not included the “base” apps like Email, Calendar, Safari and Contacts. Those are the staples. (Note: Some are fun apps. All work and no play makes Cam a dull boy).
 
notetakerpagesevernotedropboxgoodreadergotomeetingyelprealizertextasticetude

 

 

 

 


NoteTaker HD
– I credit this app with moving the needle for me on the iPad from “toy” to “essential”. I have since discovered many more great apps, but this app replaced all of my random notes, notebooks and scraps of paper I used to keep track of my life.

Pages – This is the iPad version of Apple’s desktop Pages document processor. Elegant and easy to use. Had some trouble at first making the transition from being an MS-Word user to Pages, but Mac users will have no problem.

Evernote – I use Evernote on my PC constantly, so having it now on my iPad made me that much more efficient. Some limitations compared to the PC version, like being able to “Evernote” a page directly from Safari.

Dropbox – This tool also has become my family’s defacto insurance policy. We use Dropbox on both our Windows and Ubuntu laptops, as well as our iPhones and my iPad. Its just works!

GoodReader – A great general purpose file reader that can be launched from many applications. I use it a lot on conjunction with Dropbox when I want to read and or email a document.

GoToMeeting – We use GoToMeeting in my company all the time for sales presentations, conference call with partners and for basic training. Their iPad app is a great extension of a valuable service.

Yelp – I am new to Yelp but I have found it extremely useful while on the road.

Realizer – Just started using Realizer to take schematics that I create in NoteTaker HD and make them come alive. It’s a great prototyping tool to help me conceptulize an app prior to writing the first line of HTML or CSS.

Textastic Code Editor – Kind of a geek tool, but it allows me to edit any text file while on the road. If I have to make a hot fix to a website or even write some code (in a limited fashion) I could. Still haven’t found an FTP product I really like though. Will Eclipse ever be avail for the iPad?

Steinway Etude – An iPad app from a 150-year old company? You bet! This app allows people to learn piano pieces that they download from their libary of “sheet music”. It’s a good user interface and an ingenious idea based off of the Kindle model.