All posts by mwparks

Cloudforce 2012 Rocked in Atlanta


Attended Cloudforce in Atlanta, held at the Georgia World Congress Center on Thursday, November 1st. I’ve attended all of the past Cloudforce events in Atlanta and I have to say this year was the best and the biggest! I have no idea how many attendees were there but it must have been thousands…well 2000 at least. The marketing extravaganza at Cloudforce is always amazing…but this year was taken to a new level…blowing off the doors with glitzy videos and music pounding out a message…of what I’m not sure…but the effect was awesome…I was pumped!

There were keynotes on different product lines, Cloudforce expo with a couple dozen 3rd party vendors on display ready to answer questions and demo products, numerous break out sessions, and the main keynote featuring Vivek Kundra, former chief information officer for the USA, now a senior VP at Salesforce.

At the Cloudforce main keynote I learned about new products and features like the ipad app, Chatterbox (file sharing),,, and Chatter Communities. But the thing that always impresses me most at these Cloudforce events is the customer testimonies. We heard from GE, Toyota, E-Trade, Coca-cola, Virgin Airlines, and Commonwealth Bank (largest bank in Australia) just to name a few. Most memorable was the Toyota “social car”  which they termed the “iPhone of cars” and Coca-cola’s freestyle machines where you can create your own custom drink and then share it with friends.

Two  breakout sessions I enjoyed were “Social in Government” and the Salesforce Platform keynote. In the government session we heard from GSA’s region 4 IT exec on how the GSA used to consolidate 1700 legacy applications into 15 and then built 26 new applications in less than 6 months. All 17,000 GSA employees and contractors are on Force. We also saw examples of how Salesforce platforms are being used throughout the CDC, FDA, and New Jersey Transit Authority. In the Salesforce Platform keynote we heard from the Intercontinental Hotel Group and Home Depot where both companies built field inspection applications with In viewing the demos I also picked up a cool new feature I didn’t know about called schema builder…not to mention two free books.

The most exciting thing I learned overall at Cloudforce was the new Salesforce Touch platform, which drives Salesforce mobile apps and allows enterprises to build their own mobile applications for Android and iOS platforms in either native or HTML5 hybrid modes. One of the free books provided to attendees of the Salesforce Platform keynote was the mobile development guide for the touch platform. I’m looking forward to giving this a try ASAP!


Drupalcamp Atlanta Was the Best and Biggest Yet!

I’m still pumped from this year’s Drupalcamp…held on Saturday October 28th at the Galleria Convention Center in Cobb County where they were able to register everyone who wanted to attend in a much larger venue. As a result this was the largest Drupalcamp in Atlanta ever! This year’s schedule included pre-camp training sessions held on Friday. I attended an outstanding intro to Drupal training class from ostraining….which really helped me get more out of my Drupalcamp experience held the next day.

After the morning keynote I attended several breakout sessions throughout the day. My favorite was “Designing for Content Management Systems” by Jared Ponchot where Jared effectively explained concepts like make mantra, user types, content types, and visual hierarchy as part of the step by step process of site design. This one session totally justified Drupalcamp for me. Other sessions I enjoyed were “Beginners Guide to Views” by Steve Burge and “Lets Dig Into the Omega Theme” by Kendall Totten. For me this was by far the best Drupalcamp yet!

Group Photo

SQL Saturday #111 in Atlanta (well Alpharetta)

SQL Saturday #111 was held at Georgia State’s Alpharetta campus just off State Bridge road (hwy 120) from 9am until 5pm on a beautiful spring day in Atlanta. The event was packed…every session I attended was completely filled (no seats available) so you had to arrive early if you wanted a seat. Since my work nowadays with Microsoft SQL Server is mostly about coding T-SQL stored procedures I limited my time to the T-SQL sessions. While the entire event was outstanding…well organized…good lunch…great speakers and session topics…the entire day was made worthwhile for me by one session I attended  called T-SQL Brush-up by Jen McCown. I don’t have a ton of experience coding up T-SQL stored procs and so some of the commands Jen covered like OVER and PARTITION BY were like revelations to me. It’s always a great feeling when you are sitting at a learning event hearing things that immediately make sense and are applicable on your very next day of work. So thanks SQL Saturday #111 and Jen especially…as soon as I publish this post I’m going to start re-writing my T-SQL procedures to incorporate the things you showed me…work life suddenly became much easier!

CodeIgniter, FuelPHP, and Sparks Oh My!

The Atlanta PHP meetup in February was a good one. Nic Rosental gave an entertaining and informative talk on the ecosystem surrounding the CodeIgniter PHP framework. Nic gave a brief overview of each of these platforms:

  • CodeIgniter
  • Sparks (package manager)
  • Bonfire (framework bootstrap)
  • FuelPHP (yet another framework)
  • PyroCMS (free/commercial CMS)
  • ExpressionEngine (commercial CMS)

Before the main presentation Logan Gray gave a quick demo of CodeIgniter.

My impression of CodeIgniter is a lightweight and easy to use framework for PHP which I plan on getting into during 2012. I learned about FuelPHP for the first time at the meetup and and will definitely take an exploratory dive into this promising framework sometime soon.

The sponsor for the meetup, Thompson Technologies, provided catering from Willy’s Mexicana Grill and a Kindle Fire for the end of meeting raffle…nice!

First PHP Meetup of 2012 was a good one!

Strongbox West PHP User Group Meetup

Really enjoyed the January 2012 meetup of the Atlanta PHP User Group…held on January 19th at Strongbox West. This was a joint meeting with the Atlanta MongoDB user group and the presenter was Richard Kreuter who gave an entertaining and informative talk on the fundamentals of MongoDB. Interesting to learn that MongoDB is the database used by both Craigslist and Foursquare…who knew? The sponsor for this meetup,, provided much appreciated pizza and chicken strips as well as MongoDB coffee cup swag for all attendees. Before the meeting I hung out as usual at MidCity Cafe on West Peachtree where the feature is 1/2 price pints from 4 to 7pm was in effect! Looking forward to February’s meetup!


API Fun with Quickbase and Mailchimp

Things have certainly changed in the past 2-3 years as business process automation technologies have evolved from primarily being on premise technology stacks by companies like IBM, Microsoft, and Oracle requiring on site system administrators to keep them running…to a new public cloud technology model from companies like Salesforce, Intuit, Google, and Amazon. These new public clouds are focused more on providing solutions rather than infrastructure. More and more often nowadays the job of creating business process automation solutions entails piecing together a smorgasbord of technologies from a variety of vendors most of whom are in the cloud.  Whereas in the past developing these solutions required developers to know a great deal about the underlying operating systems…today the process is more about creating solutions without having to know anything about the underlying platform running the solution. Automating systems is now often more about writing small amounts of code to connect different cloud platforms thus creating unique and innovative solutions to business problems.

In this vein I recently had the opportunity to develop an interface between Quickbase and Mailchimp. Quickbase is a cloud platform from Intuit for building custom database applications and Mailchimp is a cloud based email marketing service.

In this business scenario Quickbase is a customer relationship management (CRM) system where new leads are collected into a Leads table via direct input, mass import, and web forms from company websites. Mailchimp is used for email marketing campaigns and periodic newsletters.

The problem was to create an interface between Quickbase and Mailchimp so new leads collected in Quickbase could be automatically synced with mailing lists in Mailchimp.

I chose to create a PHP script with the Quickbase API to query a Leads table in Quickbase and sync the result set with a  subscription list in Mailchimp. On the Quickbase side I took advantage of a PHP wrapper developed by Joshua McGinnis, a Software Engineer  at Intuit, Inc.  based out of  Waltham, Massachusetts. On the Mailchimp side I was able to take advantage of  the Galahad MailChimp Synchronizer, a PHP wrapper provided by Chris Morrell.

My PHP script simply had to read the result query array from Quickbase and write the data elements into a new array in the format required by the Galahad Synchronizer.

Once completed I ftp’ed the script onto a LAMP hosting account, setup a Cron job to execute it hourly, and tested by adding new Lead records into the Quickbase table.  Then an hour later confirming the new Leads are added to the Mailchimp list as expected.

This system assumes the list in Quickbase is the master so once a lead is removed from Quickbase it is also removed from Mailchimp.

Here’s the code if you are interested:

require_once 'Galahad/MailChimp/Synchronizer/Array.php';
require_once 'MailChimp/MCAPI.class.php';
require_once 'quickbase/quickbase.php';
// =============================================================================
// =============================================================================
$apiKey = '9072e9b2028444af-us1'; // mailchimp api key
$list = 'c150f6eba1'; // mailchimp list ID
$quickbase = new QuickBase('userid', 'password',true, 'bgmk5dsfc');
// setup the query to quickbase > field id 112 equals yes
$queries = array(
'fid' => '112',
'ev' => 'ex',
'cri' =>'yes')
// quickbase api query with field id list
$res = $quickbase->do_query($queries,'','','','');
// write array elements from $res into a new array $users in the format required  by Galad Synchronizer
 foreach($res->table->records->record as $record)
            foreach($record->f as $value)
$users[$j] =
array('EMAIL' => strval($field_name[0]), 'FNAME' => strval($field_name[1]), 'LNAME' =>
strval($field_name[2]), 'MERGE3' => strval($field_name[3]),
'MERGE4' =>  'bgmk5dsfc', 'MERGE5' => strval($field_name[4]), 'MERGE6' => strval($field_name[5]),
'MERGE7' => strval($field_name[6]),
'MERGE9' => strval($field_name[7]),
// =============================================================================
// =============================================================================
// call the synchronizer
$Synchronizer = new Galahad_MailChimp_Synchronizer_Array($apiKey, $users);
$Synchronizer->sync($list); Dev 501 Class

The week of October 10th I was fortunate to have the opportunity to attend’s Dev 501 class in Atlanta. This class went beyond the declarative capabilities of covered in Dev 401 and expanded into APEX and Visualforce controllers.

Apex is an object oriented  programming language,  similar to Java and C#,  for building software as a service (SaaS) applications on top of’s customer relationship management (CRM) functionality.  Apex gives developers access to’s back-end database and metadata objects to create third-party SaaS applications. These 3rd party applications are offered for sale or free of charge in the Salesforce AppExchange marketplace, similar to the Apple and Android app stores.

Visualforce is a framework that includes a tag-based markup language,  similar to HTML or ASP.Net.

In the Visualforce markup language, each Visualforce tag corresponds to a user interface component, such as a section of a page or a field. The behavior of Visualforce components can be controlled by the same logic used in standard Salesforce pages, or developers can create  their own logic with controller classes written in Apex.

The Dev 501 class covers an amazing array of topics…just a few of which are APEX triggers, IDE Eclipse plugin, development sandboxes, SOQL queries, DML (data modeling language), deployment from sandbox to production organizations, consuming web services, and unit testing Apex classes.

Format of the class was lecture mixed with hands on exercises reinforced by formal questions answered out loud by attendees at the end of every lecture and exercise.  This was actually the most challenging formal training class I have attended since college…and also one of the best.



August Salesforce Meetup was the best one yet!

I’ve attended a few Salesforce User Group meetups in Atlanta over the past couple of years and being a big fan of Salesforce enjoyed each one. First unlike most other local technology meetup groups they are held in the morning not the evening. Second meetings are held at different venues around Atlanta…places like Home Depot, St Joseph Hospital, and Manhattan Associates. It’s interesting to get a glimpse inside all these different organizations.  Third they normally have a sponsor who provides breakfast and most important…coffee! Last but not least and the main reason I go to these meetings is the learning experience from 2-3 speakers on a wide variety of Salesforce and subjects. Talks are typically short 15-30 minutes each with demonstrations and time for questions. I always learn something new at each meetup but this August meeting was the best so far. The very first talk was by a pre-sales consultant (sorry can’t remember his name) from Informatica who walked us through a demonstration integrating two end points…Salesforce and an on-premise Oracle database. Coincidentally I’m starting a new project where I need to connect Salesforce to an on-premise Microsoft SQL Server and so needless to say I was transfixed by what I was seeing…the perfect solution to my current biggest problem! After the meeting upon returning to my office at Georgia Tech I immediately signed up for an account at Informatica, downloaded and installed the free lite version of their small footprint “agent”  onto my local Windows 2003 server where my SQL Server database is running. And by the end of that day I was syncing my Salesforce org with my local SQL Server…whoohoooo! Now that’s what I call getting value from a user group meetup!

Two 0ther presentations at the meetup covered exception reporting by James Martucci an instructor at Salesforce, and the Salesforce partner portal  by Venkat Polisetti, Senior Applications Developer at Fiserv Bank Intelligence Solutions. Both presentations contained useful information that I should be able to apply at work over the next few weeks.

Props to Venkat Polisetti who runs these meetings and always does a great job lining up speakers, coordinating with event sponsors,  and communicating the specifics out to group members.




Learning to build apps in the Cloud with

Just got home after a great week attending a Salesforce class, Building Applications Using and Visualforce. The class was held at MicroTek training center located at 230 Monroe street downtown Chicago. This is first of two main dev classes for covering mostly the declarative aspects of Force as well as Visualforce pages. By declarative I mean “point and click.” While contains a full blown object oriented programming language, APEX, and follows the MVC (model, view, controller) software architecture…this class didn’t cover programming…although we did get a good introduction to Visualforce pages.  Visualforce pages are a combination of html, javascript, and APEX tags that enable  the creation of custom pages (views) that utilize standard controllers. What we didn’t cover in this class was creating custom controllers with the APEX language.

For learning to develop custom controllers using APEX Salesforce offers another 5 day class,  Dev-501 – Apex and Visualforce Controllers…which hopefully I’ll get to experience sooner rather than later.

So now I’ve got a week of in depth training…a Salesforce account with 10 seats…a couple of big projects on the horizon at work where I can apply my newly learned skills…which makes me all set for an interesting Fall I think.

I stayed at the Hampton Magestic 22 West Monroe…a short walk from where my class was held at Microtek. (see photos below).  This was an outstanding place to stay…conveniently located in the middle of the Theater and Financial districts and only a couple of blocks away from Grant Park and the lake. Clean, reasonably priced…great breakfasts every morning too! I’m staying here every time I’m in Chicago from now on!

Every day after class I went for a run along the shore of Lake Michigan and the Chicago River (see pics below). Even though it’s August the temp each day was pleasant with a cool breeze blowing in from the lake…pure heaven coming from Hotlanta…especially this Summer one of the hottest on record.  And I wasn’t alone there were hundreds of other runners, walkers, and bikers on the same paths with me…very cool!

I tried to sample some traditional Chicago food…a slice of pizza and a hot dog…other than these two “samples” I went with fish and chips every evening. It wasn’t the healthiest week of my diet this year that’s for sure but I survived!

One observation about Chicago I have to mention…NO SMOKING inside any building…not a bar or pub or anywhere! And no smoking within 15 feet of any entrance either so you weren’t forced to hold your breath as you entered buildings. What a great idea! Who knows maybe Atlanta will get up to speed on eliminating this health risk one of these days too! But I doubt it.

Last but not least (well maybe so 🙂 I gained two Foursquare mayor ships in Chicago…Microtek and a small French restaurant along the Chicago river running path. It was a good week!


The "Bean" in Millenium Park was very cool!
The CTA blue line took me from O'Hare almost to my hotel door for only $2.25!!!

The Hampton Magestic was a great place to stay...highly recommend!

Street scene from the Microtek building at 230 Monroe Street
Fish and chips from Millers pub was absolutely yummy
The water fountains at millenium park were something different for sure!
Running path along the Chicago River
Cyrano's on the river along the running trail...I became mayor of this place! 🙂
Scene along the Chicago river running trail
Running path along Lake breeze even in August.
Another scene along the Chicago River running path
Fantastic hot dog (Chicago Red Hot) at Halsted Street Deli
The "Bean" at millenium park
Everyone takes their pic in front of the Bean!



Is Social Media The New Web?

Walking into Whole Foods on Ponce de Leon the other day and saw this sign at the entrance. It reminded me how most of the 2011 Superbowl commercials listed only their Facebook page at the end of the commercial. Makes me wonder if social media sites like Facebook and Twitter are becoming the new web? An added point…while driving past Lenox Square Mall every day to work I notice the main sign out front lists their Facebook page and Twitter handle…not a website URL anywhere to be seen.