CodeMash Blog 3 of 10

In our continuing series on observations made at the 2012 Codemash Conference, following is our Codemash Installment #3 of 10. As a reminder, Grand Rapids based, CQL sent seven of its developers to a large software development conference called Codemash. CodeMash is a unique event that educates software developers on current practices, methodologies, and technology trends in a variety of platforms and development languages such as Java, .NET, Ruby, Python and PHP. Different than most conferences, this three-day event ‘mashes’ together ideologies and individual developer experiences to discuss, learn and even attack certain problems.

Building Social Games Using HTML5, Window 8, Azure, .NET

Using HTML5 paves the way for creating social games that run across a variety of platforms, without the pain of developing unique code for each device. Using Azure enables a potentially inexpensive way to scale big for very low cost (I’m more sold on the cloud after seeing some of it in action.) For a social game like Tankster (Scorched Earth on HTML5), Azure Compute is used to host an ASP.Net MVC 3 application in an Web Role which uses WCF to communicate to the gaming client before game startup. As players gather before a gaming session starts, the app server offloads incoming requests to be handled by a combination of an Azure Queue and another Azure Worker Role. The Worker Role process (similar in concept to a Win32 Service) creates a specially named JSON-formatted file on Azure Blob Storage (think Amazon s3) for download among connected clients awaiting the game to start (files contain game info, names, weapons). Clients poll the file frequently looking for the game start signal similar in construct to a command query pattern. According to the team’s tests, this is actually quite cost effective since it avoids costly CPU hours polling the “heavier” web app running on ASP Web Role.

Once started, the gaming clients communicate to a Node.js server running on an Azure Web Role to communicate among the gaming clients near instantaneously. Node.js is an open source single threaded, event-driven, non-blocking i/o, very fast, lightweight, perfect for data intensive real time application that run across distributed devices (hence great for games requiring real time communications online).  It’s the current “hot thing” in web socket communications (built into HTML5). Microsoft has a program manager responsible for ensuring this works in the Azure cloud.

Using Azure allows a conceptual project to scale up to support increased incoming requests by spinning up more Web and Worker roles. Surprisingly, there is no autoscaling (adding more CPU etc as load increases) built in to Azure, but 3rd-party modules can be used to implement this functionality.

As an interesting note, Azure Storage Services (Blob, Table) maintains 6 copies of data spread across two geographically separate data centers.

Why Our Customers Should Care:              Many clients are seeking cost-effective recommendations for how to scale their larger, data intensive solutions. As a software solutions provider, CQL continuously investigates available options including “cloud offerings.” Gaming solutions are large consumers of data-intensive processes, and provide opportunities to test the scalable support options that will house your next critical business application.

TDD in .NET vs. BDD in .NET

Test Driven Development (‘TDD’) gives you courage to improve the code base without breaking existing functionality.

  • Typically your unit tests should not be ordered and run independently returning the system to its former state.
  • Adhere to the “Highlander” principle….”there can be only one” thing the test is testing.
  • TDD zealots would have you believe that you write less code…I agree that certainly you write twice the code when you do TED (test eventually development…writing tests after the fact).
  • Certainly many more tenents, all Googleable.

Behavior Driven Development (‘BDD’) helps create test specifications that are easy to read even for non-programmers and allows the design of the software to be driven by its purpose. BDD enables a non-programmer to write stories (“As a admin when I enter Joe as the UserName and ‘I wish I could be at Codemash’ and press ‘add post’ I should see a page that shows ‘thanks Mr. Non-programmer, sorry you couldn’t come”) using an English-like language called Gherkin (e.g., what you just read).

In the context of a MVC web application, a Visual Studio plugin compiles it down to C-Sharp code which calls various tests you write. Running the complete test fires off a browser which increments through the steps, validating the test. Previously, only crummy tools on .Net were available. SpecFlow and Selenium are now more fully featured, compelling way to make this happen. The English-like language tests help ensure that clients get what’s expected and what works…not just what works.

BDD allows more non-technical people (e.g., project manager or project sponsor at client) to more fully participate in the software development process.

Why Our Customers Should Care:              Testing is critical in the software development process. There are different ways in which developers engage clients to perform these tests, but ultimately any testing process that makes it easier for a non-technical client to participate in the software development process is good for everyone – better outcomes for the developer (faster confirmation/feedback is provided by the client) as well as for the client (more cost effective solutions in a shorter amount of time).

Dynamics In C#

There is room for the ‘dark magic’ of dynamics in a statically typed language like C#. MVC3 is already using it with the concept of a ViewBag (replacement for ViewData["somevalue"] in older versions of MVC). Though typically we are using a more strongly typed ViewModel which I think is better anyway.

Dynamics are much better for dealing with an undetermined API (JSON from the browser, or RavenDB, or Couch, Mongo) or metaprogramming (programs writing programs. A practical example would include https://github.com/markrendle/Simple.Data a dynamically generate data access library.

Nonetheless, the drawbacks are fairly significant so care must be used. Code is much less self-documenting (no contextual documentation), no intellisense (argh!). Really to use it extensively, you better be using a solid TDD approach as a team as it requires quite a bit of discipline.

Why Our Customers Should Care:              Data is ‘king.’ Technology that makes it easier to for developers to create solutions for manipulating and exposing this data is extremely important. Customers must be aware that there are definite concerns regarding how this data is treated, and the importance of providing enough time/opportunity for developers to ‘test’ their solutions.

Check back for Codemash Installment #4 of 10.

CodeMash Blog 1 of 10

As a custom software development firm, CQL must constantly put our developers in a position to be exposed to the latest technology trends, not only within in the .Net development framework, but across multiple development platforms. Recently, CQL sent seven of its software developers to a large software development conference called Codemash. CodeMash is a unique event that educates software developers on current practices, methodologies, and technology trends in a variety of platforms and software development languages such as Java, .Net, Ruby, Python and PHP. Different than most conferences, this three-day event ‘mashes’ together ideologies and individual developer experiences to discuss, learn and even attack certain problems.

Having our developers attend this type of conference provides tremendous benefit to our customers. Even though CQL has the largest collection of .Net Developers in Grand Rapids, Michigan, we understand our approach with clients must be technology agnostic, and be willing to recommend the best platform and development language to meet the needs of our customers. Codemash offers excellent opportunities to tie together those areas of most interest to our clients, including Ecommerce, Business Intelligence, Content Management and custom web development.

In the next ten blog entries, we will provide some insights from our technologists who attended this conference on software development concepts that should be important to our customers (even if they don’t understand the underlying technology topic). Following is Codemash Installment 1 of 10:

Heroku (http://www.heroku.com/)

This was informative in a “here’s how an awesome deployment system could work” kind of way, perhaps made a bit sweeter because the presenter is a Heroku employee.  Heroku is a cloud environment that has lately been adding more languages/platforms that they can host.  Deployment is done using a git push, which then forces the system to recompile, test, and deploy the application.  Very interesting system, and I just read a blog post about someone getting a .Net app onto Heroku using Mono and a bunch of duct tape, but it wouldn’t surprise me if .Net were added in the near future.  Something to watch.

Why Our Customers Should Care:            Recently named the 2012 Technology of the Year, by InfoWorld, Heroku provides a platform as a service (PAAS) for building, deploying, and running cloud apps using Ruby. The platform includes tools for deployment and management, a runtime for scalability, fault tolerance, and an add-on system for extending the capabilities of our platform. In essence, it allows your software developer to more quickly develop and expand your software solution.

PhoneGap (http://phonegap.com/)

This was a pretty cool session.  PhoneGap lets you build an HTML + JS application that can then be packaged up and put on the various mobile app stores.  A few alternatives were mentioned (but not discussed in depth) – rhomobile, MoSync, SenchaTouch, Appcelerator.  The presenter also pointed out JQTouch as a way to make the app look and feel a bit more like a native application.  Also mentioned (very briefly) was Mulberry, which is apparently kind of like Rails for PhoneGap development.  Something to check out for sure.

Why Our Customers Should Care:            PhoneGap is an open source solution for building cross-platform mobile apps with standards-based Web technologies like HTML, JavaScript, and Cascading Style Sheets (CSS). Based on HTML5, PhoneGap leverages web technologies developers already know best… HTML and JavaScript, and provides access to native APIs. PhoneGap uses standards-based web technologies to bridge web applications and mobile devices. Something all of our clients should be considering.

CI++

This session was a bit disappointing for a few reasons totally unrelated to the content.  The presenter started out by discussing various bits of automation and testing going from standard practice up through “this-doesn’t-really-exist-but-who-knows (for example: Unit Tests for your Unit Tests and a Semantic code analysis tool that can find bugs to an impossible degree).”  He lost a few audience members while talking about some of the non-existent tools, probably still 5 minutes before he said “oh, and by the way I made up a bunch of those things.”  He discussed automating DB artifact deployment (by writing the scripts exactly like we do at CQL), and a few other parts of deployment, but then ran out of time before he could get into the stuff that I was looking forward to (although I have a feeling that his presentation was largely meant to lead into a sales pitch). Overall, it is an important topic, but the presentation simply missed the mark.

Why Our Customers Should Care:            In software development, continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. Obviously, at CQL we take this topic very seriously, as we want our customers to experience the best results with the custom software applications we develop.

Check back for Codemash Installment 2 of 10.

We’re off and rolling!

“We want ‘a Rock!” (Twisted Sister clip  Here)

Lots of exciting stuff going on here at CQL for 2012, so check it out:

The best news is that we have a new employee, Matt, who came to us from another development firm.  There, he worked mostly on a legacy e-commerce site in VB.NET Web Forms.  He also had the opportunity to develop a C# .NET MVC and that’s when he started to love working with .NET MVC.  In his free time, Matt enjoys learning Ruby on Rails and fiddling with some personal .NET projects.  Other than technology, he’s a big fan of science fiction and has been working his way through Battlestar Galactica.  CQL is thrilled to have Matt on our team.

Any good software development company must keep on top of the latest and greatest technology trends (our clients expect it, plus, we just flat out love it). We started 2012 with a bang by sending seven of our technologists to CodeMash 2012. This unique three-day event brings together a select number of developers who practice on a variety of platforms and development languages such as Java, .Net, Ruby, Python and PHP. The purpose of this event is to “mash together” all these different thought leaders into one conference where ideas can be shared, and new technologies can be explored. Check back to this blog, as we will be posting many of their notes and observations. Cool stuff.

Also, we sent another two of our team to CES (Consumer Electronic Show) in Las Vegas, last week.   This is another great way to check out what’s up and coming in the Tech World.  They did see some pretty cool stuff and their wheels are definitely turning.  I expect to see some big things rolling out of here this year.

Back at the office, it was pretty quiet around here all week.  But that doesn’t mean we weren’t busy.

The Sales team got new Dell Latitude 5520s, running with an Intel Core i5. They’re ready to roll. Our Resource Manager and PMs are now running on some very fast Solid State Drives. Some of our developers got new Dell Latitude 6520s, running on an Intel Core i7, all of which are using SSDs. We also upgraded them to 24in 1080p monitors from their old 22in monitors. Kevin decided to deck out his desktop with three 512 GB Solid State Drives in a RAID 5 configuration and now it’s screaming fast. Why should this matter to you? Simple, faster machines and better systems = more code being developed in a shorter amount of time, for you.

Last but not least, in jumping on the New Year’s resolution bandwagon, we hooked up our existing workout area downstairs.  We have new padded mats, a bunch of exercise balls and lots of new weights/bands.  The guys are also kicking it up a notch from P90X to P90X2.  This stuff isn’t for sissies.  Between doing P90X2 and training for the GR Triathlon this year, I’m willing to bet we’re one of the healthiest software shops in Grand Rapids.

A Year In Reflection

Every year at our company Christmas Party, our staff presents thank you gifts to our owners.  This year, I was in charge of giving that speech so I really got to thinking about what’s so special at CQL.  Of course, the obvious things jumped out first:

  1. Employee massages.  Yeah, we get ½ hour massages every other week and it’s definitely something that I think differentiates us from other companies.  At a time when so many companies are cutting back, we’re still getting hooked up.  As the HR person, I love seeing new employee’s faces when massage day comes and they can hardly believe it’s actually true.  I guess when we tell them initially, they think we’re kidding??
  2. Free coffee.  GOOD coffee.  No generic distributor beans for us.  Ferris Coffee is the only way to go.
  3. Pizza, pizza and more pizza.  Yes, we eat a ton of pizza in these parts.  Some actually grumble that we order it for every meeting.  WTH?

My next thought was about the great work-life balance we have here. How many companies do you know of where (almost) the entire staff participates in P90X?  We have 2 “shifts” that go downstairs each day and get their fitness on.  Yes, while at work.  We also have a bunch of bikers and runners.  In fact, I was out for a run this past summer around 3:00 in the afternoon and was thinking to myself how nice it is to be able to do this without having to worry about whether or not I’m in my designated seat at all times; aside from the hour between noon and 1:00p.

Oh, and I just happen to be the only female here at CQL.  I also have a 3 year old son, who’s always been plagued with ear infections, so I probably appreciate the work-life balance around here more than the average.  When family duty calls, I’m all over it and there’s none of the famous Mommy Guilt.  I can take care of what I need to, and have a real sense of calm about not being in the office.  Talk to any working Mom and they’ll tell you there’s always a twinge of apprehension about being at home with their kid instead of sitting at their desk.   Not me, because I KNOW how important family is to everyone here; it’s not just something was say to make us look good.

But even after all the things mentioned above, I just didn’t feel like the main reason this place is so great is because we get massaged, fed and worked out.   The thing that sticks out the most is the everyday comradery and light-hearted atmosphere of the office.  We actually LIKE each other’s company.   Everyone here is very approachable and the general air is that you can be comfortable in your own skin and your own ideas.  Practical jokes are an everyday occurrence, and actually, our President is the main culprit of most of the jokes.  I start to wonder if everything’s ok with him if he doesn’t come up with something off the wall every day.  If you’re a fan of Founder’s Brewing Company, you’re likely to run in to our guys and you’ll see first-hand what I’m talking about.  No Steve Jobs types here.  You won’t find anyone pounding desks or throwing out threats.

As I go back and read through this, I’m well aware that so far I’ve painted the perfect picture and I sure don’t want to sugar coat anything.  So, do we have our tiffs?  Of course we do.  When you’re working this hard and dealing with this much passion, there’s bound to be some blow outs, and trust me, there are.  We absolutely have our breakdowns in communication, our bottlenecks in process and situations where the right hand doesn’t know what the left is doing.  But the great thing is that we can get it out, get over it and move on.

So this year I want to just say thank you to my bosses, my co-workers and most importantly, my friends.  It’s a pleasure to come to work every day.  For real.  Our ideas, passion, patience and support is what I’ve come to expect and love about this place.

Merry Christmas and Happy Holidays from CQL!

For the second year in a row, Michigan based software development company, CQL, was a drop off location for LinkedUp Grand Rapid’s Christmas Project.  This year the non-profit they chose to support was the Grand Rapids Home for Veterans.  A large list of items was collected including new batteries, clothes, socks, and new and used books.   We were very happy that so many of our clients, coworkers, and other LinkedUp Grand Rapids members dropped off items for support.

For year two, we doubled the gifts that were received.  It was exciting to see other non-profits get in this giving opportunity.  One local church near CQL received extra supplies, and dropped off two boxes full of magazines, deodorant, lotion, and chap-stick at our giving location.

At this this time of year, most of us are able to enjoy fellowship with friends and family. We are blessed to be able to help others who are less fortunate.  So, as we wrap up another year, CQL would like to thank all of our clients, vendors, partners, and team for an excellent year.

Merry Christmas and Happy Holidays from CQL!

We’re Lucky We Can Be Thankful

One definition of the word, “thankful,” found in Webster’s dictionary is being ‘conscious of the benefit received.’ Today, is Veterans’ Day, a holiday set aside for people in the United States of America to remember and give thanks to our fellow citizens who have made the sacrifice of service to our country. The celebration of Veterans’ Day coincides with other holidays observed around the world such as Armistice Day and Remembrance Day that have their origins with the end of World War I. The significance of this holiday being observed on November 11 relates to the fact that major conflicts surrounding World War I ended at the 11th hour of the 11th day of the 11th month of 1918 with the German signing of the Armistice. In proclaiming the holiday, on November 11, 1918, President Woodrow Wilson stated, “to us in America, the reflections of Armistice Day will be filled with solemn pride in the heroism of those who died in the country’s service and with gratitude for the victory, both because of the thing from which it has freed us and because of the opportunity it has given America to show her sympathy with peace and justice in the councils of the nations.”

At CQL, we are lucky to count one of our team members as someone deserving special recognition on this day. Staff Sergeant James VanderZouwen joined the Army in 2004 and set off to be trained at Fort Benning, GA.  His initial goals were simple: stay fit, get schooling paid, and do amazing things.  Almost eight years later, he finds his goals accomplished and new goals made.  James has a degree that was paid for by the Montgomery GI Bill.

In 2006, James volunteered to be deployed to Iraq.  He arrived in Al Qayyarah (‘Q-West’) where he drove armored semi-trucks and fuel tankers.  Moving to Balad (‘Anaconda’) to drive gun trucks was a major goal of his group. As James describes, “there is a certain level of adrenaline that came with being a combat driver and my company (the 454th Transportation Company) was ready for this challenge.  We joined up with Task Force 106 of the 101st Airborne and trained to conduct convoy security by way of really awesome tactical trucks with really big guns.”  On July 7 (7-7-7), a ‘Scout’crew (lead vehicle) with a truck commander that knew how to proficiently use the radios, GPS, and Jammers, was needed. James’ crew volunteered for this mission. They drove to their destination and the convoy cargo was unloaded.  On the way back, at 2:14am, the bridge they were driving over exploded.  His team was very fortunate to sustain only minor injuries and that a recovery team was quick to assist them.  James mentioned, “I didn’t even realize I was hurt until the action was over and we were again headed back to our base.  Sitting in the back of the new scout vehicle, I began to realize my back was in pain.  When we got back to the base, I was told that my tailbone and sacrum were broken.”

James stayed in Iraq for the last two months of his tour to continue helping his company with communications equipment installations and maintenance for their continuing convoys. A Purple Heart was conferred on James for his the actions surrounding the bombing on July 7, 2007.

When he returned home, the VA took care of him through their healthcare system and by financing his schooling, as promised.  James earned his degree in computer science, bought a house and began working “my dream job” as a developer for CQL.  “The Army has done much for me in my life.  It taught me about Leadership – Loyalty, Duty, Respect, Selfless service, Honor, Integrity, and Personal courage.  I am proud to
have served.”

We could not have said it better. Thank you, James, for your service to our country, and to the multitude of others who have donned this country’s uniforms in service to protect our liberties.

CQL Debuts New Networking Application

A new application developed and designed by local software firm CQL will make its debut at a local networking event on Nov.11 at the DeVos Place from 6-9 p.m.

According to Adam Clarke, the “chief alchemist” at CQL, the application was developed at the suggestion of Michael Yoder, organizer of the online networking site LinkedUp Grand Rapids.

Yoder was interested in leveraging technology to help facilitate “face-to-face” networking at large events. The application that was developed will be synced with LinkedIn, a popular online professional networking site.

As attendees check into the event and register, information from their LinkedIn profile such as such as their name, picture, industry, employer and number of connections will be displayed on several screens.

For individuals relying on LinkedIn for business connections, Clarke indicates the information will facilitate networking by helping to make introductions easier and creating a sense of a “who’s who” in specific industries and companies.

Clarke states that future uses of the application are being explored, but he is very optimistic about its potential, especially for conventions or other large networking events where people might know each other via an online network, but are connecting in-person for the first time.

Clarke says the requirements for this application are simple, requiring only internet access, a laptop, projector and screen to use the software.

Other businesses collaborating on this event include local branding companies Deksia and Kmotion Design.

For more information about LinkedIn Grand Rapids or this event, you can visit their group site on LinkedIn. For details on the application, contact Adam Clarke at CQL.

Source: Adam Clarke, CQL
Writer: John Rumery Innovation and Jobs Editor