Mark Patten

Mar
24,
2009
by Mark Patten

The Philadelphia Business Journal once again named Delphic Sage to its top 25 Philadelphia Systems Integrators list. The list is made up of several types of integrators including hardware, software, web and other flavors across several industry specializations such as defense and financial.

Delphic Sage was recognized for the work we do for our clients that require systems integration work primarily via Web Services to external web application and data as well as internal software and applications. Our experience has been broad in providing these types of services including connections to other data sources as well as applications such as ERP, perfomance management, subscription services, MLS, public records, product catalogs, financial systems, payment gateways and so on.

(Or insert your favorite Regular Expression enabled text editor here).
This is part one of a multi-part series of tools that we use to get the job done, whatever that job may be.
Oftentimes our work is not always "here's a spec, create it", but at other times that work is "here's an export of our database for you to work with". In an ideal world, we would like to receive this in something that is easily imported into a relational database., but more often than not we just get a straight "dump" (usually multiple CSV files) of the production data. The major challenge that we often face in this scenario is of how to maintain the original data integrity, and how we do it without blowing our budget. That's where using the regex replace functionality that is part of EditPlus comes in very handy.

Here's a sample of what the data dump might look like:

Where ID (the first column) might be the Primary key of the item on their system, and foreign keys always refer to different IDs than what's on your local system. At first this was impossible to do while keeping the data accurate, so I had to ask for the data that the foreign keys referenced. So now we're all set.  Read on for the solution

So longHello
Outlook GMail, Google Calendar, TadaList
Office Google Docs
Trillian/AIM Google Chat
Project FogBugz, BaseCamp
Traditional CRMs SalesForce
PhotoShop LE, Picture Viewers, etc
 flickr, picasa

In the last few years, major developments have happened in the application world that have enabled me to completely abandon many of the win32 client programs that I have depended on for years. I have been reading about this phenomenon for a long time now, but we seem to be at a significant tipping point. At first, I never really bought into the fact that that web applications could even compete with traditional win32 and mac desktop applications.

The Astronauts

Sometime around 2001, I was working on my first AJAX enabled web application and saw first hand the limitations of trying to do anything overly interactive within a web browser (heck, we were dealing with netscape 4.7 and IE 5 at the time). In fact, it wasn't even yet called AJAX at that time, I think we were calling XML Sockets or something to that effect. Anyhow, around this time many of the big thinkers (or architecture astronauts, as Joel calls them) out there on the internets were beginning to tout the end of desktop computing as we know it. They talked about how in the future, we would store all of our files and applications online, and that we could access them from anywhere. I think "Passport" was actually supposed to be a significant step toward this utopian computing ideal. At the time, I thought it sounded like a great direction, but I wasn't about to hold my breath due my experience in developing rich web applications and first hand knowledge of how terrible and inconsistent the world of web browsers was (and still is, although improving).

Fast Forward a Whole Bunch of Years

Lambda Expressions via msdn.com:

A lambda expression is an anonymous function that can contain expressions and statements, and can be used to create delegates or expression tree types. All lambda expressions use the lambda operator =>, which is read as "goes to". The left side of the lambda operator specifies the input parameters (if any) and the right side holds the expression or statement block. The lambda expression x => x * x is read "x goes to x times x."

> more

Overview of Lambda Expressions

One of the new .NET 3.x language features that we have been enjoying recently is Lambda Expressions. These expressions are essentially the next iteration of the anonymous methods that were offered with .NET 2.0, with one of the major differences being the simplicity with which you can construct inline methods. When used appropriately, these Lambda Expressions let us get more done with less code and less redundancy.

Lambda Expressions In Practice

Let's say you run into a situation in which you want to write a method that takes as an argument an object of a particular type and a property on the object you want to work with. For example if we take the example below and want to make the redundant parts (in blue text) a shared method, except the different property (in red text) being used is potentially holding us up. (Continue reading for example code).

SMercer

Mar
07,
2008
by SMercer

One of my major complaints about RSS in general is that with all of the fresh content that is delivered, I can never tell which stories are deserving of my limited time and attention span. With each new interesting blog and news feed that I subscribe to, the problem gets worse. One of the things that I have grown to appreciate when I visit CNN.com for example,  is that the most important news receives the highest priority one the page. Sometimes these stories even receive a dramatic red background that is impossible to ignore.  With an RSS reader, a story about N. Korea's nuclear ambitions recieves the same treatment as the latest celebrity hijinks of Tom Cruise. 

This got me thinking about the ways that content can be visualized, especially syndicated / aggregated content. One of the things I stumbled accross is the idea of a NewsMap, which takes aggregated news content (in this case Google News) and displays them in a hierarchical manner. Ok, so after trying to acually read the news via the NewsMap I realize that is not really the best solution. I fact, it's actually quite headache inducing.

Perhaps the best answer would be a rating system for syndicated content that would allow peoples readers to prioritize and display information based on how the rest of the internet world see it.

Results Per Page 
Page: 1 2 

DELPHIC DIGITAL PHOTOS

TWEETS

Powered by Twitter