Wednesday, December 23, 2009

Timezones in our CF app - ICU4J




I posted this recently to our Vancouver User Group blog, I thought I'd repost here. I'd love feedback!

In my main gig, we've been working on this particular enterprise application for almost two years.

Like any development team, we took the lessons that we learned from our previous applications. We were quite fortunate that we were able to start pretty much from the ground up, and tried to make wise decisions about things like:
  • Using a code framework
  • Integrating or building CMS functionality
  • Finding a balance between having processing in the database vs CF queries and objects
  • An approach to caching
  • Globalization

I thought I would focus on some challenges we faced with respect to globalization, in particular, timezones.

Our application is a what they call a multi-tenant application, where a single code base and database serves multiple client sites. We knew that globalization was an important aspect of the project.

As part of our efforts towards globalization, we made sure to store dates and times in UTC. This way, dates and times could be independent of the front end usage.

Now we needed to work out how to take those UTC dates and display them in a particular timezone.

We created a front end algorithm to determine a user's timezone. This is encapsulated into a function so that we can expand as required. For example, our application focuses much more on a single timezone for each site (as opposed to user specific settings), so early versions could focus on this simplified approach. We store a user's settings in the session scope.

As an aside, getting a visitor's timezone from their browser isn't as straightforward as one might expect. It is easy to get a number representing the offset from UTC, but this doesn't necessarily reveal their actual timezone or daylight savings settings.

Here's a link to a recent blog post about one method of determining a visitor's timezone at blogs.windwardreports.com.

Now that we had what we needed, it was time to present and retrieve data based on the required timezone.

This is where ICU4J came in. ICU4J is a java library for International Components for Unicode, for Java, and can be found at site.icu-project.org. Obviously, since it is in Java the library integrates well with ColdFusion.


So we connected ColdFusion to the jar by instantiating the timezone component in the application scope. We created helper functions to display dates and times in the correct formats and timezones. By sitting atop functions like the ICU4J CastFromUTC, we were now able convert properly.

There is a great blog about globalization in ColdFusion at cfg11n.blogspot.com.

So we thought all was well. We were wrong.

In our application we had a particular balance of database stored procedures and CF business logic. Many queries required date comparisons, for example reporting. We began passing converted dates into the queries and stored procedures, converting them to UTC before using them at the database level.

Sometimes it felt like a hack, but it worked.

Or maybe not everytime. In one place we generated a large calendar from the database. This calendar had to look at each day, but each day was defined based on the timezone settings of the user. Passing a timezone in wasn't always enough - consider months where the timezone offset changes due to daylight savings.

The database needed to have some of this timezone information available. We obviously needed to have some sort of timezone intelligence on the database side. However, depending on your database of choice, there might not be much in the way of timezone functionality built in.

So we began to consider ICU4J integration. It turns out that for our database platform, this had already been done.

Article at CodeProject.com.

So using the ICU4J libraries, we can generate and update tables to store all the information we might need about timezones, offsets and daylight savings boundaries. Powerful stuff.

There are some real benefits to this usage, including:
  • Consistency - we're using the same library on both ends
  • Maintenance - we need to stay on top of updates for one library only (ICU4J)
  • Flexibility - we can play to the strengths of CF vs DB and select the best environment for any particular task.


That's the path we're working towards. So far it was been much more work than we expected but it has also been rewarding. We take it step by step, and keep each piece modular so that we can expand over time. We have a strong feeling that we are headed in the right direction - at very least we are trying to carefully consider our options at each phase.


Tuesday, August 18, 2009

CFUnited 2009 - Day Four

I'm a bit late with my last day post - the lack of sleep caught up with me and I have a bit of work backlog to deal with.

I didn't get a lot of sleep the last night of the conference, so I struggled to get up and checkout of the hotel. I decided when I got to the conference that I would try to attend the sessions that were put on by the major speakers.

I snuck into Ben Nadel's "Extending Custom Tags" function, and was pleasantly surprised. He's a great presenter, and I love that he talks about solutions that are practical. There aren't many other developers that would base a whole session on Custom Tags, since they are sometimes seen as one of the older features of ColdFusion, but Ben showed reminded us of how much we can actually do with them.

He touched on:
  • Recursion
  • Looping and workflow logic
  • The GetBaseTagData() function
Ben also showed us how we could use Custom Tags to call CFCs, allowing us a little more portability in our code and even how to execute components as Custom Tags. A really interesting presentation.

I also attended Peter Bell's "Estimating Requirements" session. He is also a great presenter, and I was again surprised at the amount of new tips that I took away from his speech.

He focused on three types of projects:
  • Configuration - small, common projects where the price can include the spec
  • Customization - medium sized projects
  • Exploration - larger projects that require some research and often require fairly open specs
Peter suggested that in order to get a handle on projects, we should look at these elements:
  • Business intent - WHY is the project being done
  • Audiences and functional roles
  • Objectives - what does the audience want
  • User stories - "as an X, I want X, so that X"
  • Use cases - screens, actions, steps, and alternate and error paths
Some other highlights of the session:
  • For small projects, sometimes the writing of the spec can be part of the development
  • Capturing requirements using Intent Driven Design
  • Focussing on "why" a project is being done, breaking too many intentions into separate projects
  • Use cases are especially important for "fixed bid" projects
  • How to handle "dark matter" - the unexpected things that come up
  • Ways in which you can ensure that if it is not in the spec it is NOT included
  • Agile approaches like Scrum, Lean, Emergent Design, etc
  • The importance of minimizing 'work in progress' - there is no such thing as 90% done
It was a good session.

No better way to end the morning than with another jQuery session by Ray Camden. I thought I had heard all he had to say about Ajax and JavaScript, but at least I knew it would be interesting. Considering I don't know jQuery that well, it was really quite informative. It was nice starting with the basics (selectors) and moving quicking into chaining, matching and filtering. I enjoyed hearing more about the $(document).ready function and a summary of his favourite jQuery plugins.


In between sessions it was also nice running into Jose in the morning, and getting to thank him again for helping me get to downtown DC. I had lunch with him at a table with a bunch of great presenters (Lisa, Dee, Jason, Ben, Simon and more) so it was nice to be able to say thanks and goodbye to these funny and hardworking folks as I headed off to the airport.

I left a lot of time to get to the airport, and just took the trip home slowly, enjoying as much as I could the downtime. The flights were long, but it was great to get home. It was certainly a great conference and wonderful experience.

(Image from afagen on Flickr)

Saturday, August 15, 2009

CFUnited 2009 - Day Three

... And the conference only gets better.

It was another day of free coffee, a great lunch and better company. The vibe at day three of CFUnited was a bit different today, since quite a few people seemed be headed out while a new batch of people were arriving for the weekend session.

Paul and I managed to bump into Sam Farmer and Ben Nadel and a whole bunch of other exciting members of the community. I'm really struck by how some people come to the conference and DON'T network - this community is so exciting, but would be even more so if people took a moment and the risk (it's really no risk) to introduce themselves!!

My first session was with Simon Free listening to him talk about Facebook apps in ColdFusion. There wasn't much here that I didn't know, but his talk certainly demystified FBML for me. He had good tips about:
  • How to handle the bug with the FORM field name fb_sig in CF8 (due to auto form validation)
  • How Facebook processes the pages you create
  • How some features (CFFORM, CFDUMP) won't work within FB pages
  • What "proxied_email" is and why it's there
  • How the new extended privacy policy affects app developers
He was very positive about Facebook without being a fanboy - the platform has it's problems but it is a very valuable tool for reaching many people. His code examples were clean and realistic.

I attended his session on Developing APIs later in the day (man, this guy is busy!), which was another really good one. He described RESTful concepts well, and talked about the problems in creating an API:
  • It takes a lot of planning
  • They might be used/consumed by people in many different languages and environments
  • You have to be careful about scopes (esp cookies and sessions)
  • APIs require good documentation
  • Security is an immediate issue
Simon gave good examples using Apache rewrite and mentioned the code snipped 'GetPageContext().GetOut().ClearBuffer()' as a tool in handling excess whitespace. I loved how he made a template for API method documentation available - good stuff!

I attended Terry and Dip's session about the new Microsoft tools available in CF9. Although I wasn't blown away, there were a couple good things about the session. It was really easy to use the CFEXCHANGE tag, the Sharepoint integration was interesting, and Terry made a great point about how the ability to convert stuff to PDF opens up a whole new world to CF developers due to the amazing PDF functions - extracting text, images, thumbnails, etc.

Mr Ray Camden was hilarious as always in his Ajax CF/911 session. He sold the audience on Firebug and ColdFire (which we already use) and pointed out a few "gotchas" that trip up developers using Ajax:
  • Whitespace
  • How debugging works in Adobe ColdFusion
  • Cross domain concerns and JSONP
  • onRequest in Application.cfc blocking Ajax requests

I attended a session by Selene at RiteTech. It wasn't really for me, but it's interesting hearing someone's thoughts about "build vs. buy" when it comes to e-commerce. I've built many different types of e-commerce applications and I agree with her that the "build" option is not very compelling. Unfortunately, I thought she missed a whole type of solutions - hosted solutions that are developer friendly, like GoodBarry and Shopify. Some hosted options have gotten much more advanced than Miva. I would have also LOVED to see a mention of FoxyCart, one of my new best friends.

My last session of the day was INTENSE - Marc Esher took us on a crazy ride through his development techniques where he avoids "monkeywork", makes the computer the slave and works more productively. He introduced snippets, Launchy, Ant and JMeter and talked about how developers need to avoid the noise - best quote of the session:

Developers accept noise graciously, thus Twitter

Good point Marc.

Man this guy was excited and passionate. Whoever he works for is LUCKY - based on how fast the guy talks and works, he probably gets more done in his 9-5 than some do in a week. A very inspiring session.

The day ended (other than my DC adventure) with a round of great demos by the CF community and a hilarious video. There are some awesome projects out there. Thanks to the CFUnited team and the entire community for bringing us a THIRD day of inspiration. One more day left.

Friday, August 14, 2009

CFUnited 2009 - Day Three, DC edition

I haven't written out my CFUnited Day three notes yet, but I thought I'd quickly write some notes about my evening trip to Washington DC.

After the demos, I walked to the front of the Lansdowne resort. No other CFUnited attendees had responded to my tweet about heading into the city, so I was a bit torn. I'm not a traveller, and I feel so lost - I would be kicking myself if I didn't at least try to see the sights. The shuttle to the "Metro" (like a train or subway to DC) pulled up, and I hesitantly got on. I had no camera or anything from my hotel room, but this was my best chance to get there.

One other conference person got on and introduced himself as Jose. I mentioned my plan to head to the Smithsonian area by myself, and he gave me some tips. I was a bit worried, but he helped me figure it out. We chatted about DC, the US economy, health care, web development, all the light topics.

Just over 90 minutes later I reached my stop. I climbed the escalator to "The Mall". Wow.

It was a really warm night, and even as the sun set there were tourists and excited visitors everywhere. I had NO idea where I was, but I saw the familiar Washington Monument and so I started walking. It is a very strange feeling being in a strange place with no idea of direction or location - but it was a very cool place to be stranded.

An hour and a half later I managed to see the monument, World War II memorial and fountain, Lincoln's Memorial and the White House. The buzz from the tourists, even so late in the evening, was almost tangible, and staring up at some of the historic monuments I could almost feel where some of the Americans get their pride of their country. The sights at night were pretty much breathtaking.

I grabbed a quick sandwich from a souvenir shop and hustled back to the train. I didn't make it to the train station in time (it closed early for repairs or something), but some tourists helped me find my way to the next station.

I got settled for the long ride back - after a train ride, a shuttle ride and a taxi ride, I managed to make it back after almost three hours. What a memorable adventure, even if the actual DC visit was short. Thanks to Jose, wherever you are, for being such a great help!

Photo by ehpien on Flickr

Thursday, August 13, 2009

CFUnited 2009 - Day Two

Another really full day - composing this as I sit in the resort lounge waiting for the "pool party" to start. I'm not a pool party type of guy, but I'm really enjoying talking to some of the people at this conference. So much excitement, so much information to absorb.

Today started nice and early with a CFBuilder lab. Other than the fact that the audience was woefully unprepared and a bit rude to the ladies that were hosting the lab, it was pretty awesome. The help system in CFBuilder works quite well, and you can pull it up at anytime with Crtl-space. The code introspective worked nicely too and the ability to map and manage your servers was impressive.

I hit the Model Glue session after, just to hear Mark Drew speak. He's a great presenter, and since I'm not very familiar with Model Glue it was quite interesting. He took a lot of time to explain design patterns - I found it interesting to hear that he breaks the classic MVC (model view controller) pattern into three smaller patterns:
  • Strategy pattern - detaching your business logic
  • Observer pattern - decoupling parts and having events broadcast to listeners
  • Composite pattern - not always applicable for web apps, but having a code made up of other subparts that can be rearranged but still separate

The keynote for the second day featured Joe Reinhart talking about whether ColdFusion was dead or alive. His conclusion - ColdFusion is obviously very much alive, but not in the form we think. Selling ColdFusion as a scripting language that can connect databases to the web is EXACTLY why the world thinks CF is dying. This aspect of the language is many years old. However, selling CF as an "Enterprise hub" really highlights how far ahead it is of many other web languages. He said that the CF community needs to get excited and start pushing the boundaries of the newer aspect of the language.

His demos of modern CF applications like SlideSix really showed us how far we can push it.

Next Paul and I attended the two ORM session - Introduction to ORM and Advanced ORM. Terry Ryan's intro session was perfect, and it set the tone for Hemant's later session. I loved his frank comparison of the different methods of coding and their resulting number of lines of code and ease of use. The ORM version was less code, and extremely simple and maintainable.

Hemant (I hope I got that name right) dug us deeper, and crammed an amazing amount of information into a single hour. He showed us really meaningful examples of Hibernate in action - relationships, inheritance, mapping and transactions. There was no falling asleep in this session!

I ended up in Barney Boisvert's CFGroovy session. Great presenter too - he didn't lay the groundwork well, but the session ended up being pretty much self explanatory. Groovy is a JVM based language that shares it syntax very much with Java. CFGroovy is a tag that allows CF developers to use scriptlets and embed Groovy code right in their CF files!

At one point, he showed us a CF file that took a CF variable, and embeded:
  • Groovy code
  • PHP code
  • Python code
  • Ruby code
  • More CFML code
At the end of the file, it dumped out the variable and sure enough, each language acted on the variable as expected. Wow. The best part was that it was ridiculously simple and easy to read, and didn't appear slow in any ways.

Anyways, off to the pool party. I'm so tired, but it's worth it. Thanks CFUnited!

Wednesday, August 12, 2009

CFUnited 2009 - Day One


Wow. What a day. In the opening keynote, organizer Liz mentioned that despite a few small issues, this conference was setup exactly as she imagined. I haven't attended CFUnited before, but I can believe it.

The snacks, coffee and refreshments were everywhere, the people friendly and the venue fantastic. The sponsors were excited and talkative, and the food that was served was top notch. If the next few days are like this one this was a VERY worthwhile conference.

So a quick summary of some of the stuff I encountered today. First, some highlights from the keynote:
  • Formation of a non-profit called 4CFF to support Open Source CF projects. I saw Jason Delmore at their booth later.
  • Official rule - all attendees must call Ben Forta "sir" or "master" (WWBD)
  • Terry Ryan as new ColdFusion and higher education evangelist
  • Quick code demo using entityLoad() function and outputting to spreadsheet in a couple lines of CFSCRIPT
  • Announcement of new Adobe licenses for the cloud and creation of official Amazon EC2 AMI

I then attended a session about SQL Server reporting. It seems like a powerful tool, but the session was a bit introductory for me. The ability to allow power users to create Ad-hoc reports based on report models was interesting.

My next session was about Design Patterns. The speaker, Dan Blackman didn't stop to take a breath; he hit us with a continuous stream of useful theory on how to create general, reusable solutions to recurring problems. The session was also very interactive and he encouraged questions and dialog.

The flex stuff was above my head, but there were some great tips on the "ideal" process:
  • Build databases using ERDs
  • Generate class diagrams from ERDs
  • Create CFCs from the class diagram
  • Generate Business Delegates to expose services
  • Build Gateways to package into typed data
  • Create services for CRUD
  • Use mediators and commands to take requests from views
  • Discussed the concept of 'facades' that map out commands in the controller
  • Set up proxies to grab and store data

I then sat in on a "Subversion for Smarties". The presenter, Cameron Childress was fantastic and consistent. Some notes:
  • He spent too much time talking about Git (distributed source control), which was actually quite appreciated
  • Introduced us to the concept of "changelists" in the newer versions of Subversion. These sound like a great way to organize code in your working copy.
  • We heard about the Perforce concept of "ClientSpecs" to allow metadata to be stored in the repository
  • Learned a bit about svn:keywords and keyword substitution, a topic that always confused me a bit
  • We didn't get enough time spend on "hooks" - the thought of pre-commit and post-commit hooks is amazingly powerful

I attended a quick session about building and deploying applications. Pretty standard stuff, but the presenter did a great job. The third-party RIAForge tool 'datamgr' sounds quite impressive, although it might not be as important with the upcoming ORM features in CF9. We also had some amusing conversation about CFENCODE.

My last official session was renamed to "Fusebox - Past, Present and Future". Adam Haskell worked to dispell some old myths about Fusebox and then announced that due to differences with the owners of Fusebox he was resigning as lead developer. He announced that the code was immediately forked as "FuseNG" (next generation). There are already some great features being added. It was a bit of an awkward session, and Adam is a pretty blunt guy, but it was good to hear that the world of Fuse* might get a bit of a refresher.

Closed the evening with an open bar and great conversation with Jim at Grape Stack. That guy KNOWS his stuff. Actually, he knows EVERYONE's stuff. The Railo guys rock too. I'm super excited about things like ORM, ColdBox, and Railo. Paul and I sat in on the CFML Language Advisory meeting before leaving for the night.

Wow, a full first day. Looking forward to tomorrow.
Ready for the CFUnited keynote. Forta speaking. Great conf so far, it sure is warm here!

Tuesday, August 11, 2009

Made it to Vegas for the first flight, got lost. Big airport, had to take monorail. Now waiting for my flight to DC.

Saturday, August 08, 2009

Big family gathering for father's 60th. Couple unexpected guests, good times.

Friday, August 07, 2009

What started as a disappointing BC Lions game has become pretty sweet. BC up 22-14.
Walking down Hornby from work, headed to BC Lions football game with MikeI and the boys. My son's excited.

Thursday, August 06, 2009

There is a restaurant in Berkley called Dig's Bistro that watches and feeds your kids while you dine with spouse. Awesome idea.
Got to watch the Snowbirds and a fighter jet fly in formation over Lions Gate bridge and our office building. Crazy tight together. Cool.

Sunday, July 12, 2009

Another Virtual OS - G.ho.st


After I tweeted about my old Symantec GoEverywhere OS article, I got a reply from someone talking about the G.ho.st Virtual Computer OS. I gave it a quick spin and I have to say I was was really impressed.

First of all, to clarify, a "virtual OS" (I've heard it called a "webtop") is an application where your entire desktop lives on the Internet.

G.ho.st is free, and feels quite secure. They give you 15GB of storage, and it all uses the Amazon network for safe storage.

Things I liked:
  • It looks great
  • It ran great, in this case in Google Chrome
  • There were quite a few nice apps and web-service integrations
  • I love that there is a Groove Shark link for audio
  • It was easy to use and access, yet felt secure
  • Their sync tool sounds great
Things I may have expected more of:
  • I love Google Docs. Zoho is nice, but it's not my preference
  • Like all Virtual OSs, it mostly piggy backs on other services
Great job G.ho.st people!

Friday, June 19, 2009

Preg sister is in hospital. Doing totally fine, but interesting blood work, small chance of being induced this weekend. Wish her well!!

Saturday, April 04, 2009

Great morn with kids, walked in sun, first time Baby T went in mall play area.
Great anniversary dinner and movie. Saw Knowing, odd but good movie. Steak for dinn. Yay!

Thursday, March 12, 2009

We have five kids in our house, crazy fun. They all slept so well, funny listening to their chatter and conflict, older three off to school.

Saturday, March 07, 2009

Bye Vegas, twas fun. Missing the kids.. ready to head to airport.

Friday, March 06, 2009

Another good day, sunny Saw Excaliber show, lots of casinos. Paris is nice. Headed to Blue Man now.
Great sleep, off to grab quick bite and work our way to Paris and Luxor. Missing kids a bit.

Thursday, March 05, 2009

Mystere show was intense, dinner at The Steak House was amazing and expensive. Great night.
Wife has great haircut and makeup, going to get dressed up for show and dinner. Yay!
Good day, great weather in Vegas. Saw Secret Garden and had buffet breakfast.

Wednesday, March 04, 2009

Walked much of the strip by Mirage, very cool. Casinos not inspiring, buildings very fancy.
Touchdown! In taxi to hotel. Cool place so far, great flight.
Made it to Seattle airport, relaxin in terminal w wife, coffee, nice view. Vegas or bust.

Friday, February 27, 2009

Finished Atlas Shrugged by Ayn Rand. Great book, amazingly well written compared to the average novel these days. Long, but satisfying.

Monday, February 23, 2009

Pursuit of kid friendly gmail

Little T developed a fascination with spreadsheets recently, and wanted to make lists of everything. I remember "back in the day" * when someone gave me an old banking computer that had nothing on it except some sort of basic spreadsheet program. I catalogued everything I owned. Which wasn't much. I guess he comes by it honestly.

I use Google Docs for much of my document and spreadsheet work, so I figured I'd create a Google account for him. I gave him a name and Gmail address that have no personal information in it, and set him up. He's so happy.

First I set it so that I get a copy of all inbound e-mails. This can be done in the 'Forwarding' settings area.

One thing I wanted to do was replace his existing kids Pikluk account with the gmail account. Pikluk is great but I love the Gmail interface and I find the service too restrictive for a g33k family like ours. One of the Pikluk features was a whitelist - if an address was not in a specific list that I maintained he was unable to send to it or receive from it. I found this great article from Kang about creating whitelists in gmail.  Then, I created a filter that archives/removes any e-mail that isn't in my list of approved addresses.

Not foolproof, and he can change it if he gets daring, but so far so good.

He's been on it, he likes the interface although it's a bit cluttered for him, and he's been creating spreadsheets and playing with the Google Contact tool by adding all his friends and family members.

Anyone have any other Gmail tips for kids? Any extensions that would simplify the interface nicely?


* "back in the day" - it was a Wednesday, in case you didn't know




Friday, February 20, 2009

Not sure where to stay in Vegas, never been. Considering Treasure Island, middle of strip, sub $100 per night. Any thoughts?
Just pulled up carpet in most of the upstairs, wife did much of the work while I was downtown. Just cleaning now. New flooring tomorrow!
Woke up and heard sirens and copters. walked to bus - there must be 10+ firetrucks on 100th, cops everywhere.

Thursday, February 12, 2009

What is Cloud Computing?

So, what is Cloud Computing?

First, what is "the cloud"? The term "cloud" is often used to describe the Internet. It is a complex structure that wraps so much of what we do with computers, yet it remains separate to some extent from our desktops.



From Wikipedia, Cloud Computing is defined as:

... Internet-based use of computer technology, whereby dynamically scalable virtualised resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure that supports them.

So cloud computing is where users can run applications (or perform other computing) from servers on the Internet. They don't need to worry about the infrastructure or operation of these servers, but the application is usually "virtual" and "scalable".

What do we mean by "virtual" and "scalable"? Scalable refers to the fact that the service provider can add many more instances of the application or many more servers as needed without any overhead to you - you can expect decent performance all the time no matter the load or traffic. The term "dynamically" implies that this can happen behind the scenes, automatically and without any downtime.

With most cloud computing providers, you only pay for what you use. If you have a small web application that no one uses, you only pay for a small amount of storage and small amount of bandwidth. If this application becomes popular, the cloud model can handle the increase load easily, and you only pay for the increased usage when it is incurred.

Virtual refers to the fact that you aren't always running something exactly the way it seems. If I set up an Amazon EC2 account and run a Windows server in the cloud, I'm not REALLY running my own little Windows machine within Amazon. I'm simply running to a "virtual" windows instance within what I can only imagine to be a massive complex arrangement of servers.

Think about running your e-mail client over the Internet (like hotmail or gmail) - you have no idea what is running in the background.

What is different between cloud computing and any regular Internet hosting or service?

This is a tough one. The lines are blurry and this is a reason that people are quite critical of the concept of cloud computing. The major difference is the focus as defined above:
  • Users do not concern themselves with the inner workings of the application, and
  • The application is built to be "dynamically scalable", often using virtualization

So what kind of applications are good candidates for cloud computing?

My opinion here is that the ideal application that could take full advantage of cloud computing would include:
  • Applications that have peaks of traffic or use, since the cloud model allows it to scale to handle peaks in traffic or load seamlessly.
  • Applications that are created to take advantage of the scalability. For example, if I'm using an application that allows me to manage files, the application better be sure that as it is scaling those files are always available.
  • Security should be taken into consideration - are there special security issues if you are hosting an application in this environment?
  • Cloud computing is a great way to potentially save money by minimizing overhead - however, approach this carefully as the savings are not always as great as you might think especially while this concept is still maturing.

That said, I think most applications would work in the cloud, and as much as it is a buzzword I am excited about this technology.


Some references:

I like this article on Sys-con where a few major Internet consultants talk about what 2009 will hold for Cloud Computing: The Future of Cloud Computing

I follow Dexin on Twitter because she posts fantastic Cloud-related links

HowStuffWorks has a good article as well - How Cloud Computing Works


Symantec GoEverywhere is pretty cool

OK, so those who know me know I sign up for everything online. If it's Google-related, I'm usually trying to be the first in line like a greedy kid in an ice cream shop.

I recently was approved for a beta account with Symantec GoEverywhere. It's another one of those "webtop" applications where your entire desktop lives in the cloud. GoEverywhere includes integration with the major webmail vendors via shortcuts, and a bunch of Zoho shortcuts as well. Security appears to be well thought-out - there are "safe" and "open" areas available for file storage. A shortcut to Meebo is included for full IM functionality.



I thought I'd give my first impressions.

Things I like:
  • It's fast, as fast I could've ever expected
  • It's secure; at least, it gives the impression of security in Symantec style. I like the use of secret questions and confidence images
  • Tagging is a major part of it so searching files should be powerful
  • It's very clean and intuitive

Things I don't:
  • It's kinda boring looking
  • I'm not a Zoho fan (yet?) so the Zoho integration doesn't mean much to me
  • I don't really know how necessary the webtop concept is
  • I could (and I kind of do) use the services they have shortcuts to, so it's not quite as valuable to me

I created an application shortcut in Google Chrome, so that it opens in a chrome-less window, it's great. It feels like a proper thin-client - it would be great for use on a cheap netbook laptop like an Eee.

So it all seems a bit pointless, but very cool. It makes me want to check out PsychDesktop/LucidDesktop, which is a Webtop PHP/Ajax application that you can install on your own webserver.

Wednesday, February 11, 2009

Upgraded to latest TitanReloaded ROM for my phone, working great. Add Google Latitude and new Google Sync... awesome.
Interesting seeing Symantec getting into the 'webtop' / cloud hosted desktop market with GoEverywhere http://ping.fm/C4nFn
New windows going in right now, thanks to Centra. Great company, enthusiastic to get your business and nice installers! Windows look great!
Received my [free] gmail stickers today. Pretty cool - thanks #google! http://ping.fm/dM9Ci

Sunday, February 08, 2009

Wife and Little D getting ready for baby N's shower. Pink and lots of flowers. Congrats Mike & Carmyn!

Thursday, February 05, 2009

Free online game creators

So many people like those little Flash games, I have to admit I'm not a big fan. However, with Little T growing up, he's at the age where creating his own games would be a pretty big thing.

Compiled this list of free online game creators. They all look very cool in their own way:
http://www.popfly.com (Silverlight)

The cool thing about these sites is that they all try to give game creators a way to share their games and even start a revenue stream.

I'd love to explore creating educational games, maybe embedding them within e-learning courseware?

Does anyone have any opinions or other alternatives?

Someone sent this timelapse video of baby playing over 4 hours. Awesome & funny. Baby T is like this. http://ping.fm/bK93o

Wednesday, February 04, 2009

Chance to upgrade cell plan... wondering if $55/mo for unlimited web/txt, callerID, VM, 6pm evenings and 200 daytime minutes is good enough?
Epoch countdown - coolepochcountdown.com, the next y2k? Feb 13th, the epoch time will be 1234567890.

Monday, February 02, 2009

Today is #ColdFusion on Twitter day (#CFotd), see @andyj. Spread the word, join twitter and the CF twitter groups - http://ping.fm/abPiz

Thursday, January 29, 2009

Hoping to do CF9 beta demos and a coding contest at our next Vancouver #Coldfusion and Flex User Group meeting http://ping.fm/3Q788
For two days I haven't been able to escape my main contract to look at the small contracts I have on the go... stuff starting to pile up!

Wednesday, January 28, 2009

Watching my son graduate to green belt. He has his lazy moments but his sparring was great! Packed house, lots of kids moving up a belt.

Tuesday, January 27, 2009

C'mon #coldfusion people... come to Ceili's for a drink! Enjoying the time with CF coworkers...
Due to the snow last month, the small amount of snow in Greater Vancouver seems to have people in a bit of a panic.
Vancouver #coldfusion and flex user group casual meetup is tonight. Yay! http://ping.fm/kKUMe

Friday, January 23, 2009

Help me twitterverse! If I had 2 free tix from Vanc to any US location for wife and I in Spring... where? Hawaii and FL not incl...

Friday, January 16, 2009

Co-workers took my to birthday lunch - I chose Fajita Salad at White Spot. Thanks everyone!

Thursday, January 15, 2009

Meetup for the Vancouver #ColdFusion and Flex User Group - http://ping.fm/cYqtl . Looking forward to meeting and planning next event.
Just placed Facebook and LinkedIn ads. Both easy and cheap, but will it be effective? FB easier to post, but LinkedIn targeting very cool.

Tuesday, January 13, 2009

It's "Middle-name Day" at the office today - working alongside Andrew, Celeste, James, Jonathon, Denise, Paul and others. Call me Chuck.

Monday, January 12, 2009

Looking for 3rd party chat tool for integration in #coldfusion app - know about 123flashchat, Meebo, Userplane, Cocomo - anyone have others?
Posted an Ajax and Google Maps task to SerebraConnect: http://ping.fm/Asny5 - wonder if I'll get any bids?

Friday, January 09, 2009

Long night at work, shrinking a database that bloated to 11GB after 8 years. Lesson = better maintenance procedures, keep less raw data
Having a delicious turkey wrap at Urban Fare w coworkers. Yay.

Thursday, January 08, 2009

Someone called Baby Einstein videos crack for babies. Wow, Baby T doesn't know how to react! Crazy!
Anyone else see the Palm WebOS data coming out of the CES in Vegas and think Palm might just be able to pull this off? http://is.gd/eTMY

The guy who can get stuff


We all have talents.

There's this guy at the office who is like Red from the Shawshank Redemption. He's the guy who can get stuff. If you need to find anything, or you need to get a deal on something, contact him.

Seriously, he can get anything. Odd batteries? Done. Mario Kart or Wii accessories? No problem. Deals on paper towels? Probably.

His e-mail is... nah, I can't do that to him.

More on Crowdsourcing and the Virtual Workplace

I twittered recently about fairsoftware.net - a really neat concept in crowdsourcing where you can find people to team up with for software projects. Shortly after, a new twitter buddy dexin posted this link - How the Virtual Workforce is Changing Everything. It's a good article talking about how telecommuting and outsourcing has morphed into crowdsourcing, also referred to as the Virtual Workplace. From the article:

Companies should not view this new work style [crowdsourcing] as a cost-saving, short-term measure, as there are start-up costs involved.

A big distinguishing factor of this model is that it is a call for work. Many people will reply. Many of them may have a full time job doing other things.

"I don't know if it will ever become the replacement for an employer and an employee in the traditional sense -- but this work style is now a part of the ecosystem. It's sort of a third way," he [Jeff Howe, contributing editor for Wired Magazine] said. 

Neat. I like how it warns companies not to see it as a short term plan but also lets them know that this, to some extent, is here whether we like it or not.

Tuesday, January 06, 2009

What does it mean that the metal/hard rock song 'Indestructible' by Disturbed is our family RockBand song?
Well over 2 ft of built up snow in some places, now it's raining and melting. Welcome to the soup we call home.

Monday, January 05, 2009

Spent a lot of time at home lately. Been playing a highly rated board game w wife - Agricola - http://ping.fm/oVz7x . Great game!

Friday, January 02, 2009

Updated my HTC phone with Titan Reloaded from http://ping.fm/c4PvC . One word - fantastic! Thanks bitserve!!!
Run Google Chrome for weeks without restarting - FF would have hung w mem issue, IE would have crashed my explorer... Yay Chrome!
Friend sent me a link to fairsoftware.net - great idea! Build a project alongside other people and revenue share. Like crowdsourcing...

Thursday, January 01, 2009

Happy New Year to everyone! Kept the (sick) kids up, played games, RockBand and decorated cookies. Good way to end the year.