“Taking Inventory”

Posted: January 16, 2013 in Uncategorized

Hello World,

CES 2013

Well CES (Consumer Electronics Show) in Las Vegas was a blast! As expected, we simply couldn’t do it all in a day … not even in three days but we certainly did our best. I spent the first third of my time exploring the CES floor, satisfying my “tech geek” hunger to see the newest technology. I then shifted into Application Developer mode for the remaining 2 thirds of my time at CES – viewing all the technology I encountered though the lens of an application developer. I was inspired by most, prompted to explore by many, and working to use and integrate a select few. I hope to provide more details in a future posting.

The MoDev Hackathon at CES was the biggest eye openers for me. My business partner and I entered the contest with a dynamite idea in hand. Although we didn’t expect to win the grand prize we had high hopes that we would win at least one prize. Sadly we didn’t win at all. It was a huge disappointment for us. We knew we had a winning app idea (still do). We knew we had a winning presentation. However after reviewing the video footage of our demo I objectively came to the only conclusion about why we lost: the app’s overall interface SUCKED! Truthfully speaking, I was ashamed of what I saw and that motivated me to analyze, evaluate, and take action. So what happened?

Simply put: I used the wrong tools, with my current skill set, for the right job. First let’s talk about my current skill set. I have been developing software applications for over 30 years. It started with Assembler on a Commodore 64 and now rests in various Web Technologies. Along the way I’ve spent years using languages and tools such as PowerBuilder, Coldfusion, Flash, Flex, HTML, CSS, and Javascript (and many Javascript-based libraries). Last year I discovered a mobile app development, testing, and deployment platform that makes creating HTML, CSS, and Javascript mobile apps very easy. My team and I were able to win prizes in 3 out of the 5 Hackathons using this platform. I got to the point where I believed appMobi was the perfect tool for all occasions. How WRONG I was! I forgot my own rule in application development (and in many areas of life): “Use the right tool for the right job”. If we had planned to build a standard mobile app using standard mobile interface widgets then appMobi (with jQuery, jQuery Mobile, etc) may have been the perfect tool to use. However what we planned to build was not a standard mobile app, it was more game-like in nature and that meant using tools that were more suitable to the task.

So to that end I am spending the next few months evaluating and learning the  languages, IDEs, platforms, and paradigms (my tools) I currently use to develop apps. In addition I will be evaluating other tools used in the development community. I find that the best way to do that is to create one or more small projects that tests the capabilities of each of the tools. In most cases I may need to combine two or more tools in order to complete my learning objective. At the end of each evaluation I will try to post a short tutorial that will explain what tools I used and how. First up …

Sencha Animator

Sencha Animator

I admit that my knowledge of advanced CSS3 topics (animation, fluid layouts, etc) is below average. Right after the Hackathon in Vegas I began looking at Visual IDEs (Integrated Development Environments) that will enable me to create highly visual, HTML/CSS/Javascript based apps by dragging and dropping elements. Sencha Animator is one such tool. So, for the next 7 days I will evaluate Sencha Animator by reading their documentation, watching their tutorials, and creating a working app. At the end of the 7 day period I will post my findings along with the resources I used, the source code, and maybe a screencast demonstrating my efforts.

I will be evaluating a different combination of tools each week and posting my finding. So keep an eye on this site. You never know when you might discover something that could help in your application development efforts. And if you do please share your comments and views. I’d love to hear what you have to say.

// CIAO –>

Advertisements

Hello World,

Less than two days from now (it’s Jan. 3rd, 2013) I will be taking a trip to the city that *really* never sleeps … Las Vegas, NV!! Recently, I won an All Expenses Paid trip to attend the Consumer Electronics Show (CES) and the AT&T Developer Summit in Las Vegas. While there I will be enjoying ALL that Vegas has to offer including participating in my 5th Hackathon, the CEA/MoDev Hackathon, held at CES and sponsored by the Travel Channel. You can get more information here – http://www.meetup.com/modevdc/events/94385142/comments/142895202/?itemTypeToken=COMMENT&a=ed1_17&reply=1&_af_eid=94385142&_af=event

What’s a Hackathon you say? It’s a competition where developers, designers, and other I.T. students and professionals gather together to network and create software applications within a specific amount of time. I find these events to be a lot of fun and very challenging (I love a challenge). You get to meet a lot of really smart people and learn about various technologies. It also tests your knowledge and skills and reveals how well you perform under such trying conditions. In the end you can end up with a potentially commercial application. At worst you will learn what to do and what not to do when challenged with such a difficult deadline. All in all … you will either love it or hate it.

Yes, I competed in 4 previous Hackathons – one in New York City and three in Virginia. My team and I won prizes in 3 out of 4 of these events including taking the global grand prize in the 2012 AppOlympics in held in New York City! So what plans do I have for the upcoming Hackathon in Vegas? While I can’t tell you what we will be creating at the Hackathon (’cause then I would have to wipe your memory – wink) I will give you a summary of the technologies we will be using:

Intended OS/Platform:   iPhone and iPad using HTML5, CSSS3, and Javascript for Mobile

Development Tools/Platform:

appMobi XDK – testing and deployment,

WebStorm – source code editing,

Adobe Fireworks – graphics design

Javascript Language/Libraries:

jQuery libraries OR jqMobi libraries (I still can’t decide which I will use),

Sprite3D.js – 3D visualizations and animation

CSS Libraries:

Twitter Bootstrap – easy element styling,

jQuery OR jqMobi (I still can’t decide which I will use)

Cloud Services:

appMobi XDK – app deployment and push notification

 Kii Cloud – cloud data storage, access to Facebook, and access to Twitter

I can tell you that it will be a travel related app and that we have dozens of pages of hand-drawn sketches describing our app (Rule #1: No coding before the Hackathon begins). After 4 successful Hackathons I have found that this combination of tools and technologies enable us to quickly create a working application prototype. However I am always open to suggestions and I am always willing to learn more (such as Angular.js and Sencha).

So stay tuned to this site as I submit updates about my experiences at the AT&T Developer Summit, CES, and the CES Hackathon. What about my free time? Well somethings have to stay in Vegas.

Ciao

Hello World,

Many of you may recognize the reference to a well known movie in my post title. Yes, I am a huge Hobbit and Lord of the Rings fan. However I used that title not to discuss the merits of the movie but to look back on my own “Unexpected Journey” as a Software Developer. I thought the best way to look back upon that journey would be in the form of my answers to these few questions:

1. How did you get started in app development? What’s your background?

My career as a software developer started way back in 1985 on a Commodore 64. I returned home after being homeless on the streets of New York City, only to find that my parents turned my old room into their home office. While looking for work during the day I played games on the Commodore 64. Unsatisfied with the games available on the C64 I set out to create my own. Along the way I discovered that I can do so much more with that modest home computer than just create and play games. I discovered the Assembly language and I was hooked – “Phenomenal cosmic powers. Itty-bitty living space”. From that point on I set out to learn all I needed to know about creating applications that would benefit first my parents and then the community.

My first full-time programming job was at Providence Hospital in Washington DC using an RPG-like language (so long ago I don’t remember the name). A few years later I got a position as a Technical Trainer at Howard University. I taught the teachers how to use the “cutting edge” applications of the time (MS Word, MS Excell, etc). During that time I also created a small application for the Howard University football team using FileMaker. This was my first, but short lived, introduction to the world of Macintosh computers.

Years later the world was introduced to the drag and drop, point and click, graphical interface known as Windows 3.1. Not long after that pivotal point in computer history I was introduced to the drag and drop, point and click, integrated development environment known as Powerbuilder. The idea that I could create applications by designing the interface was a Eureka moment for me. I was hooked and spent the next 10+ years developing exclusively in Powerbuilder. During those 10+ years I worked hard to create highly visual applications for organizations such as Providence Hospital and the State Department. I started and ran a Powerbuilder users group as a way to give back to the development community. I taught Powerbuilder classes at the Dept. of Agriculture. Powerbuilder was king and I was loving it! Towards the end of this period I entered a contract with the National Institutes of Health (NIH) to create and support existing Powerbuilder applications. This was in 1999 and I began to see how pervasive and powerful the world wide web was becoming – I could create applications that the entire world can see! I then met a man who would change my development career forever.

In the late 90s I started to become disillusioned with the path Powerbuilder was taking. Sybase bought Powersoft and it seemed as though developers such as myself were abandoned. While workin at NIH I met a developer named Scott who was a ColdFusion developer. I was intrigued with the concept of creating server-side code that would deliver web content to the browser. I was hooked and thus began my conversion from client-server development to web-based development. Although I continued to support existing Powerbuilder applications I dove head long into the world of ColdFusion web development. I created dozens of applications using ColdFusion but I missed the rich GUI application interface builder that Powerbuilder gave me. So I began to learn Flash. I focused on creating Rich Internet Applications using Flash on the client and ColdFusion on the back end (I couldn’t escape the client-server paradigm) . Again I spent the next 15+ years creating highly visual web apps not only for NIH but also other clients. During that time I became a certified ColdFusion developer, gave hundreds of presentations at user groups, and gave several presentations at local developer conferences. I also engaged myself in other related technologies and platforms such as Flex. Upon the release of the Flex Builder IDE I thought it was uncanny how simular Flex Builder was to Powerbuilder. The spirit of Powerbuilder lives again! I though I would be spending the rest of my career developing Flex applications with a ColdFusion/MS SQL back-end … until I started working with my next and still current client.

This client hired me to be a part of their Research and Development team. I created a few prototype applications using Flex with Erlang on the back-end. I was asked to use my knowledge and skills as a game developer (so man years ago) to create bleeding edge, 3D representations of their vision using Flex and Away3D. We soon found these tools to be too limiting and not scalable enough for what we needed to do. We needed an app that was cross-browser, cross-platform (desktop, laptop, and mobile), and cross-OS (Windows, Mac, iOS, Android, etc). So I put Flex aside and eventually reclaimed my knowledge in web development technologies.

Currently I am focusing on creating apps (web and native), on various platforms, across multiple OSs using web technologies such as Javascript (jQuery, jQuery Mobile, jqMobi, PhoneGap, Knockout, Sprite3D, and many others), HTML 5, and CSS3. Where do I expect to be in the next 10 years? Who knows. The seas of technology is ever changing I must listen to the wind and stay on top of the wave or be left watching from the shore.

2. Why did you choose to create the kind of apps you’re creating (health, games, education, etc.)?

My inspiration for the applications I’ve created came first from my mother’s need for applications that would help her run her business and then later from my role as a husband (of over 20 years) and father of two. Throughout my career I have created and supported all kinds of applications, from puzzle type games, to serious productivity, to educational apps, and even a large singles dating site. No matter what I create I always ask these two questions from a user’s point of view, “Why should I use this application?” and “Would someone in my family use it?” The answer to these questions drive the design and development of all the applications I have ever created and continue to build.

3. What are some of the obstacles you face as a developer that you wish you could change? Are there resources you would recommend?

One of the biggest obstacles I have encountered during my career as a software developer is the development community itself. A proliferation of software platforms, frameworks, and libraries have given us unprecedented freedom of choice. However with that we have lost some degree of standardization and synergism. Poor or lack of documentation just seems to exacerbate the situation. I’ve spent a good part of my career having to read, understand, and modify other developer’s code, many times with no apparent structure within their own code. So many times I’ve seen code that is not modularized  or componentized resulting in what is commonly known as “Spaghetti Code”. I admit to, at times, being guilty of such “crimes” myself. I don’t wish to see a reduction in the choices we have in our development tools nor do I wish to take away any personal expression of development styles. I only ask that we ALL consider the fact that there will always be someone else who will be working in “your code” (or some version of it) long after your gone.

4. Some of the latest technology is exhibited at CES. What would you like to see as the best new technology at CES 2022?

Wow! 2022 is like a technological lifetime away. I believe that by 2022 a great deal of the power to create and deploy applications will shift to the users themselves. Tools and platforms will arise that will allow the non computer programmer to design and build applications. These application will communicate, collaborate, process, and live in all kinds of devices and objects, including those you would never think of having computing power. Imagine a hardware and software solution that delivers highly localized, pertinent information to you through an small earpiece no matter where you are in the world. Or being able to exchange digital information with another just with the shake of  your hands and immediately access it through special glasses that create a virtual interface in front of you. Can you tell I watch a lot of science fiction movies? It’s not science fiction, it’s becoming science fact. We’ve already started living in the world of Star Trek with cell phones as communicators and medical tricorders. I am still waiting for my Jet Pack and Hover Car though.

5. What do you, or app developers generally, need most in order to have continued success?

I believe that the most important factors for continued software development success are: Support, Collaboration, and Focus. Support – This includes documentation and forums that are created and maintained not only by the tool creators but also by the development community itself. Collaboration – It has been proven time and time again throughout history that we as a society thrive and benefit more by working together instead of against each other. Focus – I believe that software designers and developers we should seek to maintain focus within their apps. Do one thing well and excel at what you do, my mother taught me. I’ve seen so many applications and technologies grow to become so much more than it was ever intended to be. The result is a bloated, uber tool that does everything good but nothing well.

Well, if you’ve gotten this far I can assume that you either read my entire post or you “skimmed” through this post to get right to the spoilers. Sorry, no spoilers here. We must all take our own journey and discover and learn from those experiences along the way. I hope to chronicle my continuing journey in the posts of this blog – to seek out new software and new platforms and to go where no software developer has gone before (cue rise in music).

CIAO

I’M BAAAACK!

Posted: December 9, 2012 in Uncategorized
Tags: , , , , ,

Hello World,

I am back from my self-imposed sabbatical from the blogosphere. During that sabbatical I have spent (and continue to spend) a lot of time designing with, developing on, and exploring brave new technologies. During this time there have been major changes in my development career:

Windows to Mac

I have crossed over to the LIGHT. I am now a committed Apple user and developer. This happened as a result of my current project with my current client. I entered the project group as a Windows user and developer surrounded by Mac users and developers. One day my client surprised me by buying me my own MacBook Pro. Since then I never looked back.

phpnodejs

My current client had no use for ColdFusion. The other developers on our team started using Erlang (and now Node.js) and so ColdFusion was dropped from my development toolkit. I now embrace PHP and Node.js.

jquery_logo

I was called to join the team because of my Flash/Flex skills and game development experience. We explored and developed several prototypes using the Flex platform using external libraries such as Away3D but found them unable to scale to the type and size of our project efforts. Because our requirements include the need for cross-platform, mobile apps we are now working with Javascript-based platforms and libraries. I am now able to leverage my longtime web design and development skills to produce web and mobile applications across many platforms using technologies such as: Javascript (jQuery, jQuery Mobile, jqMobi, PhoneGap, Sprite3D, Knockout, and more), CSS3, and HTML 5.

So although I’ve been absent from my blog for over 3 years it’s been a very busy 3 years full of learning, growing, designing, developing, Hacking (I won prizes in 3 Hackathons – World Grand Prize in one), and teaching. And it’s only just begun!!

Stay tuned to this blog as I continue to bring you The World Wide Web According To …

Cheers

Hello World,

My choice of browsers has always been Firefox. However as a web developer my clients expect me to deliver solutions that work in the current popular browsers – that includes Firefox and IE. Well, last night I decided to upgrade my “old” IE7 to the latest version – IE8. I did so not expecting what I found next.

Firebug has always been my developer tool of choice but it was only available for Firefox and not IE. Ok, I know what you’re thinking. Firebug Lite has been available for IE for sometime now. However I found that the differences between Firebug (the Firefox extension) and Firebug Lite (a Javascript add-in) are almost like night and day. In addition to that, in order to use Firebug Lite you need to insert a reference to a JavaScript file in your code. Now, with the release of IE8, I can finally see the light of day. IE8 includes a tool called Developer Tools. This is actually an improved and integrated version of the Developer’s Toolkit available as a IE add-on. All of the tools I have become accustomed to in Firebug are now available to me in IE8 – out of the box! Some of the Developer Tools include:

  • Debugging HTML and CSS
  • Debugging JavaScript
  • Profiling
  • Element Outlining
  • Controlling Cache and Cookies
  • Testing in Different Document Modes
  • Testing in Different Resolutions
  • and many more!

If you haven’t upgraded to IE8, visit this Microsoft site and take a look at some of it’s features. I think you’ll be impressed! In case you are not familiar with Firebug visit this site – you won’t be sorry.

“Let’s keep making this world a little better one app at a time”

Ciao

Hello World,

A few weeks ago Adobe released Flash Builder 4 (beta) into Adobe Labs. No, this is not a new version of the Flash Professional IDE. This is the newest version of Flex Builder which, has been re-branded to Flash Builder. This is the same IDE that enables developers to very rapidly build Rich Internet Applications (RIAs) using the Flex framework. This is the same Eclipse-based development tool you’ve come to know and love – but with a several new features.

The name isn’t the only thing Adobe changed. This version also includes many new features that focus on design, data, productivity, and testing. These new “feature themes” include:

  • The designer and developer workflow – tight integration between Adobe Flash Professional and Adobe Flash Catalyst
  • Data-centric development – easily connect and bind to server-based data and service models.
  • IDE productivity and testing – getter and setting generation, conditional breakpoints in the debugger, Flex Unit support, and many more!

In my next series of articles I will introduce you to many of Flash Builder’s new features. Each article will focus on one features set and provide screen shots, code examples, and additional resources. In the meantime, check out these Adobe resources:

Download Adobe Flash Builder 4 beta

Adobe Labs – Tutorial and Demonstration Videos

What’s new in Flash Builder 4 beta?

What’s new in the Flex 4 SDK beta?

Differences between Flex 3 SDK and Flex 4 SDK beta

Ciao!

HELLO WORLD,

A long awaited product has finnaly been in Beta, Attest 1.5. This application, released by PXL Designs and Rich Desktop Solutions, can help you prepare to take the Flex 3 with AIR Certification Exam. I have been waiting for this release for quite some time. I was very pleased when I found that version 1.5 Beta was finally released on March 26th. In addition, I was pleasantly surprised to find that the product is free for non-commercial use.

You can download Attest 1.5 beta from the following location: http://software.pxldesigns.com/attest/index.php?id=main

Enjoy!