Friday, November 4, 2011

Side Effects

Last month we hosted a CS Extras event at Keynetics, inviting all CS students, but focusing on freshman and sophomore students. The Keynetics team put on a great presentation. They focused on describing what kinds of things students can expect in the workplace, what a typical work day/week/month is like, why they love their jobs and the industry, what tools they use, etc.

The November presentation itself was a success, but I wanted to focus on how small events like this can indirectly result in long lasting returns.

To someone on the outside an event like this might seem like a waste of time or a futile effort. "How will talking to 20-60 students for 2 hours increase the number and quality of software professionals in Idaho?". This is a great question, and one I constantly ask myself as it can often feel like we are fighting an uphill battle.

This presentation, and the events following it helped solidify my motivation and confidence in our program.

At the BBQ after the presentation, two students told me they had been considering switching to an Electrical Engineering degree, but now they were motivated to stick with Computer Science and excited about the opportunities. That provided a warm fuzzy feeling and I was more than happy to take that as ample justification for the event. But that isn't why I'm writing this.

It wasn't until two weeks later that I realized the full impact of the event. This is a circumstance of one small act of giving turning into something much bigger than itself.

Amit, a professor at BSU, told me that the students came back to class and asked him about automated testing (which was mentioned in the presentation). As Amit uses tests to verify the students programming assignments, he was able to expose an interface the students could use to run his tests against their programs before submitting them.

If you work in the software industry, you understand the significance of that last paragraph. We now have first year CS students that understand the value of automated testing and how it can be applied to almost any program. This is a fundamental career skill that will not only help them with programming tasks in college, but that they will take with them into the work force.

We have a situation where one event, that was easy to coordinate, and took only a few hours of each volunteers time, instilled a process that will likely stick with these students (and possibly the curriculum) for years and years to come. In addition, the benefit of the presentation has now filtered to all students in that class, not just those who attended CS Extras.

Perhaps I'm being too optimistic, but these are the kinds of positive side effects that you just can't plan for but that can make the entire endeavor worthwhile.

To keep up with CS Extras events; like our Facebook page, subscribe to my blog, or watch the ITC website for event updates. To volunteer, post on the ITC LinkedIn discussion group and I will contact you.

Update: Be sure to check out the comments on this post, more good side effects.

Tuesday, August 2, 2011

Hello Tomorrow

I started at Extended Systems in the fall of 1995 during my second year of college. I was immediately placed on a team with incredibly smart people working on fun products. That trend has continued for the past 16 years and I have had a wonderful time. Great coworkers, cool customers and constantly changing technologies have kept things interesting for a very long time.

I’m also excited to take on some new challenges and with that in mind I have accepted a position at a local startup and will be saying goodbye to my friends at ESI/Sybase soon.

While the last few years I have been the public face of Advantage via blog posts and screencasts, this product is much bigger than one person and is in great hands. The development team is strong and works with an equally experienced sales, support and marketing team. I know Advantage will continue to thrive.  

I still plan to continue writing, however the content will likely shift a bit towards different software technologies. I look forward to continuing our conversations and friendships.

Wednesday, June 22, 2011

iPhone oData Client, Part 3

In Part 2 of this series we moved our service query to a background thread and added “pull to refresh” functionality. In Part 3 we take a quick look at insert, update and delete functionality.


You can view (or right-click and download) the screencast here.


Thursday, May 26, 2011

iPhone oData Client, Part 2

In Part 1 of this series we set up an XCode project to use the Objective-C oData client and pulled some rows into a grid. In Part 2 we will move our service query into a background thread to keep our UI responsive. In addition, we will add some visual feedback and “pull to refresh” functionality.


You can view the screencast here (or right-click and download) (61MB).


Tuesday, May 17, 2011

Getting Started with iOS Development and Advantage

The Advantage Web API makes it easy to expose your Advantage databases via the oData protocol. The oData protocol includes a variety of clients, including an Objective-C client for iOS devices (iPhone, iPod Touch, iPad, etc.).

I’ve posted an introduction to using the Objective-C oData client with Advantage. This 20 minute video shows how to download the client, configure a new XCode project, and display the contents of a table. You can stream the presentation (or right-click and download) here.

While this presentation is targeted towards Advantage developers getting started with iOS development, aside from the first 3 minutes the rest of the presentation is provider agnostic and applies to all oData services, not just those provided by the Advantage Database Server.

Update: If you’d like to use SSL, I’ve submitted a patch to the oData client you can download and use (as opposed to disabling SSL in the web api conf file). The patch provides a new switch for odatagen (/trustServer=1) and a new trustServer parameter when initializing your WindowsCredential object:

WindowsCredential *cred = 
  [[WindowsCredential alloc] initWithUserName:@"adssys" password:@"" trustServer:true];



Monday, March 21, 2011

CS Extras #1 and #2

CS Extras kicked off in February with its first presentation. Seven industry volunteers collaborated to teach an introduction to web development fundamentals. Over sixty students from area universities participated in the inaugural event.

The second CS Extras presentation will be held Wednesday March 23rd from 6pm to 8pm in the BSU Micron Engineering Center, room MEC106. In this session, Patrick Lee from will be focusing on web form creation fundamentals and persisting and retrieving data once a form is submitted. In addition, I can't hold out until April to give away these Apple TV's, so we will be giving away one of the three Apple TV's at the end of the night! If you attended the first session, and you are at the second session, you will be eligible to win. We've made a couple of tweaks to the "hands on" portion based on feedback from the first event as well, and pizza will be provided again. Hope to see everyone there!

Event map and other details can be found on our Facebook page as well at

Wednesday, February 2, 2011

Delphi Starter Edition Database Support

The Delphi Starter Edition was released February 1, 2011 as a low cost entry-level version of Delphi. The starter edition is a great addition to the Delphi product line, but only includes database support for IBExpress and the deprecated Borland Database Engine (BDE).  It does not include a simple in-process database or support for client/server databases like SQL Server, MySQL, Oracle, etc.

Unlike these other database offerings, the Advantage Database Server components for Delphi are fully compatible with the Delphi Starter Edition, and you can start using them today for free. The majority of database support was removed from the Delphi Starter edition by eliminating support for the dbExpress database layer, but Advantage does not use this extra database layer, and therefore works very well with the Delphi Starter Edition.

BDE issues

Many Delphi developers and enthusiasts have been pointing out that beginners should not be learning to use Delphi with a deprecated database engine. Michael Rozlog mentions the BDE hasn’t been developed for 10 years and there is not a 64-bit migration path. This is untrue if you use the Advantage Database Server (ADS). In addition to being a fully functional client/server database and a great in-process local database, replacing the BDE with Advantage provides a clear and sustainable 64-bit migration path. Advantage already has 64-bit servers, supports a variety of 64-bit clients (ADO.NET, PHP, OLE DB, ODBC, etc.) and is ready to provide 64-bit Delphi support as soon as the Delphi compiler is available.

Free Local Engine

The Advantage Local Server is also included  with the Advantage Components for Delphi, and is a free in-process database library that fits perfectly with the starter edition concept. The local server is not limited to local drive access and can operate on and serve data via network shares just like the BDE (only without lock file and concurrency headaches). The Advantage Local Server is free to use and distribute, and as your product grows and puts more demand on the database, the full ADS version is available with no code changes (simply change a server type property on the connection).

Starter Edition Installation

The Delphi Starter edition does not allow the use of the Delphi command-line compiler, which the Advantage installer generally needs. With this limitation the Advantage design-time components will work fine in the Delphi IDE, but when an application is built the compiler will fail to find adsdata.dcu. A future update to the installer will address this issue, but for now this is easily resolved by opening the Delphi Tools->Options menu, clicking on the Delphi Library item in the tree view (shown below), and updating the Advantage Library Path from “…\DelphiXE\win32” to “…\DelphiXE\win32\source”.






NOTE: With this path change, if you are utilizing user access control in Windows, you may need to run Delphi as the administrator the first time you compile an Advantage enabled application.