Nov 14 2008

Award Winner

Tag: General, TechnologyJosh @ 8:24 pm

I’m pleased to announce that the newsroom application I wrote for the Governor’s office won the 2008 eC3 Excellence Award in the category “Innovation in the use of social networking to enhance citizen involvement in government”.

Gov. Mike Beebe’s Information Network of Arkansas encourages citizens to help craft a positive vision for their state. Arkansas.gov offers numerous online services and an e-newsroom with audio/video, podcasts, four different electronic newsletters, listservs and RSS feeds.

I actually wrote this application for Gov. Mike Huckabee, then updated it a bit when Gov. Beebe entered office last year.  Then we did a major enhancement earlier this year to integrate with content from Picasa and YouTube.  Thanks to this application, Governor Huckabee became only the 2nd Governor in the U.S. to have Video podcasts in iTunes!

Of three awards given by the eC3 (National Electronic Commerce Coordinating Council) this year, Arkansas won two!  We also won the award for “Innovation in protecting the privacy and integrity of citizen information” for a write up in which my friend and co-worker David described the security initiatives we have implemented.

Read more about eC3

Share/Save/Bookmark


Sep 15 2008

Software Development Methodologies

Tag: TechnologyJosh @ 9:34 pm

I’ve been reading about Agile Software Development this evening. I’ve never really categorized my preferred style of development, but I’d say it closely resembles the Agile style.

Basically, Agile development involves short iterative cycles of development with frequent deliverables.  There is minimal planning and the stakeholder is frequently consulted for feedback.  The goal is to have a working release at the end of each development iteration with minimal bugs.  The iteration is complete when it passes tests.  Then it’s time for feedback and the next iteration of feature development.  Working software is the primary measure of progress.

It seems that with the Agile development methodology, you are more likely to have a Mission Statement than a Project Plan.  You are working toward an end goal, but the path may not be predictable.

I find this quite interesting.  In my office, our Project Managers want to have project plans that boil down to: Development will begin on ??/??/???? and end on ??/??/???? and will take X hours. Testing will begin on ??/??/???? and end on ??/??/???? and will take X hours. Deployment will occur on ??/??/????.  The end result will contain features 1a, 1b, 1c, 2a, 2b, 2c1, 2c2, 2c3, 2d.

This method of strict project planning isn’t all bad, but it isn’t very darn likely either.  Crap happens. Features change.  We learn something new. This is why I lean more toward the Agile development philosophy.  It makes allowances for unexpected circumstances.  Nay, it expects crap to happen.

I’ve worked on many different projects this year.  A couple stand out as being particularly complex and high profile. The first one followed a strict project plan.  No wiggle room.

“We must have the project finished on this date. Create a project plan that fits this end date, then make sure you hit the date, no matter what.”

So that’s what we did.  The business owner started wanting changes almost immediately, but it was too late by then.  We didn’t deliver anything for testing until just before the end of the project.  There was no time to change/add functionality based on feedback from the stakeholder at the last moment.  Had we made small deliverables all thru the development cycle, we could have flushed all of that stuff out before the due date.  Instead, it was a single massive deliverable with no room for changes.  The software worked as requested, but the business owner didn’t request everything that it needed to do.  Now we’re faced with large sets of feature enhancements for an application that just went live in what was supposed to be it’s final form.

The second project had a looser project plan, but still a firm date. It was approached a little differently.

 ”Here are the goals of the application, and a simple flow chart. Here are the milestone deliverables.”

Instead of working strictly toward the end result, I developed iteratively with the end result always a distant thought.  I delivered the first milestone within a few days.  It didn’t do much, but it worked. All other functionality would derive from that.  Over the next several weeks, I delivered more components of the application in iterations.  Each iteration was a working application that was immediately ready for user testing and feedback.  These quick iterations didn’t completely fulfill the goals of the project, but each got us closer. And each iteration kept the stakeholder involved and giving feedback. After completing a particular iteration, I discovered the project was done.

We shifted directions a couple times on this second project, but those direction changes evolved from our understanding of the project and requests from the stake holder, and contributed to a successful deployment without a slew of changes shortly thereafter.  I attribute this to the fact that the application evolved during the development phase to be exactly what it needed to be.

 

 

Share/Save/Bookmark


Sep 14 2008

Test Data Generator

Tag: TechnologyJosh @ 11:01 pm

I frequently have the need to enter fake data when developing/testing an application.  Things like names, addresses, credit cards, etc. To assist with this, I’ve been working on an application to easily produce test data.

Currently, it generates the following:

  • Full Name (First, Middle, and Last.  First and Middle names are for same gender, though the gender is randomly chosen)
  • Address (Street Address, City, State, Zip, County)
  • Phone Number
  • Credit Card (Type, Number, Expiration)
  • Bank Account (Bank Name, Account Type, Routing #, Account #)
  • Date of Birth
  • Driver’s License (Number, State, Expiration)
  • SSN
  • Email Address
  • URL
  • Company Name

It can generate any of the above items individually, or you can generate a “Person” with all of these data elements included.  If generating a person, the email address will contain the person’s first name, with the domain matching the company’s name.  The area code of the phone number will be correct for the City/State of the address.  The State for the Driver’s License will also match the person’s state.

The credit card and banking numbers will also pass basic validation algorithms (luhn/mod10).

I should note that this is similar to what can be found at http://www.fakenamegenerator.com, which I discovered after I started working on this project. The difference is my solution is more robust, and can be used programmatically instead of having to visit the website.

Currently, this is only a basic PHP class that can be called to generate the data.  The next step is to expose the methods as a Soap Web Service (so it can be used by any programming language).  I’ll also build a GUI front-end that will allow download of the generated data in a delimited format.

When I originally wrote this, I intended to use it for work.  However, I’ve written it completely from home, and I’d like to keep it for my own and license it under LGPL.  I’ll still use it for work, but I want it to be “my” project and not my company’s.  Of course, I remember something from the paperwork I signed when I started working here about my employer owning any thoughts I have during my employment.  It is for this reason that I’ve tried really hard not to have any thoughts for the past 3.5 years.

I figure I’ve given them enough of my soul already.  Surely they’ll let me keep this one small thing?

Share/Save/Bookmark


Jul 24 2008

Native iPhone Wordpress

Tag: TechnologyJosh @ 10:14 pm

Testing native wordpress application for iPhone.

Share/Save/Bookmark


Jun 09 2008

iPhone Web Apps

Tag: General, TechnologyJosh @ 11:03 pm

If you’re an iPhone user, you’ve probably already read that the iPhone 2.0 software is coming in early July - later than the original June estimation. You probably also know the 2.0 software will have support for built-in applications. While I certainly welcome this new functionality, I’ve been getting along quite well with the various iPhone/mobile web apps that are out there.

Here are some web apps that have made my iPhone experience more pleasant.

IMDb Mobile
http://nolanbrown.org/imdb/#_home

Not officially sanctioned by IMDb, this little web app provides a nice mobile lookup tool

NewsGator Mobile
http://m.newsgator.com/

I live between the worlds of Mac and PC. Thanks to NewsGator, I can sync my RSS subscriptions between NetNewsWire (Mac), and FeedDemon (Windows). I recently found NewsGator has an iPhone version of their RSS reader as well, http://m.newsgator.com/.

Twitter Mobile
http://m.twitter.com

While not strictly an iPhone web app, this light-weight interface does work well on iPhone.

Moviefone
http://iphone.movies.aol.com

Features iPhone-specific interface for finding show times for your favorite movies.

Weather Underground
http://i.wund.com

Not a particularly attractive interface, but it gets the job done with much more detail than you get from the built-in iPhone weather app.

Google
http://www.google.com/m

If you visit the Google home page in mobile Safari, you get the mobile version of Google by default. This interface is quite nice, and is much easier to navigate than the full version on a small screen. I am, however, quite disappointed that using mobile Safari’s search box takes you to the full Google instead of the mobile version. What gives, Google? You are already using browser detection to determine I’m on a mobile device. Why not implement this same functionality when searching from the tool bar?

Share/Save/Bookmark


Jun 08 2008

First post in several months

Tag: General, TechnologyJosh @ 11:24 pm

If there’s anyone out there who still subscribes to my blog, you may be surprised to see I’m actually posting new content… yeah, yeah, I know. It’s been awhile. Get off my back already, I’ve been busy.

There was a time when I was really fired up about working on personal stuff like this after work and on weekends. But since I do essentially the same thing at work 10 hours a day (at least), it gets old and I haven’t been all that inclined to work on my blog lately.

I’ve kicked around dumping Wordpress as my blogging platform and writing my own software, but what’s the point? I just updated my Wordpress install tonight, after realizing I was several major revisions behind. It takes about 2 minutes to update vs how long to write my own from scratch? And I haven’t even bothered to do the upgrade?  And why bother if I’m not going to blog anyway?

BTW, while I was upgrading, I also installed a new theme. Hope you like it!

Web-stuff is still my job and my passion, and I recognize the need to spend more time keeping up-to-date on what’s going on in this Web 2.0 world.

In that spirit, I’ve been playing with Flickr and Twitter lately, and have pretty much embraced Flickr as my online photo gallery (I’ll post more on that later).

As for Twitter, I’m not so sure.

For those of you who have been living in a cave, the whole idea of Twitter is a micro-blog to answer the question “What are you doing?”. You are encouraged to tweet (”write”) what you are doing frequently, and a whole host of tools are available to allow you to quickly tweet (email, sms, web site). Your friends can subscribe to follow your tweets, and always know what you are up to at any given moment.

My primary problems with Twitter are:

  1. If you spend all your time writing about what you are doing, how do you have time to do anything?
  2. Who actually cares to know what you are doing all the time?
  3. There’s some serious stability problems with Twitter, causing it to be down frequently.

I’ll probably either find or create a plugin for Wordpress that will show my Twitter updates, just for the experience of doing so, but I make no promises my Tweeting will be any more frequent than my blogging.

We’ll see.

Share/Save/Bookmark


Dec 19 2007

Google Charts

Tag: General, TechnologyJosh @ 9:32 pm

I ran across this tidbit today. Google has made it’s charting API public.  Using the service, you can display several types of graphical charts on your own web page by passing parameters to the API url. For example, putting “http://chart.apis.google.com/chart?cht=p3&chd=s:hW&chs=250x100&chl=Hello|World” in an img tag, you get the below chart.
Google Chart - Simple     
 A more complex example:

Google Chart - Complex 

Ignoring all the “practical” uses for this tool, I have to wonder: Could this be the next ASCII Art

Share/Save/Bookmark


Jul 25 2007

bootloader usb init?

Tag: General, TechnologyJosh @ 10:18 pm

Last week, I took a couple days off work to take the Wife and Kids to Silver Dollar City in Branson, MO for a mini vacation. My in-laws went with us, and helped watch the kids so we could actually ride some rides. Unfortunately, we had a casualty. My Razr phone got a little damp soaked on a ride that was a bit wetter than I anticipated.

After it dried out, it would boot, then show “bootloader usb init” in the display. I read somewhere that you could clear that error by pressing # + * when turning it on, but that didn’t work. The Alltel rep said the phone was hosed and all I could do is get a new one. Because I’m still under contract and didn’t have insurance on the phone, I’d have to pay full retail price.

Retail price on the cheapest phone he had was $140. Retail price on another Razr: $360. No thanks. Instead, I stole my wife’s Razr and had my phone number moved to it. Problem solved!

Share/Save/Bookmark


Jul 25 2007

Technical Difficulties

Tag: General, TechnologyJosh @ 8:15 pm

My website has been offline for the past week or so. For some reason, nobody outside of my local network could access it. I contacted my ISP and they searched diligently, but could find no fault in their system to explain it. They did find that all incoming network ports to my IP address were blocked.

I was a little perplexed by this, because I have made no network changes on my network that would explain this. After double checking all of my firewall settings, I thought I’d take a shot at a firmware upgrade on my router.

Surprise! That fixed it! I’m still not sure why upgraded firmware would fix a problem that seemingly appeared out of nowhere, but it’s working now, so that’s good enough for me.

Share/Save/Bookmark


Jul 04 2007

MacBook Speakers Disabled

Tag: TechnologyJosh @ 2:35 pm

For you Macbook users:

I had a really strange problem last night. The internal speakers on my MacBook Pro stopped working. When I went to sound prefs, it showed optical digital audio output was enabled. When looked into the head phone jack, I could see it emitting a red light, which I had never seen before. Somehow, the digital audio mechanism had been activated, even though I have never inserted a digital audio device.

The fix was really high-tech… I inserted and removed my headphones a couple times until the red light went off and my internal speakers started working again.

Weird.

Thank you to MacRumors.com for the fix.

Share/Save/Bookmark


Next Page »