Good ol’ code!

Almost 10 years ago I built a data access layer in Java based off design patterns from a book written by Clifton Nock. Recently I have been working on a very complex data ingestion process that needed a highly complex Object Relational Map, so I decided to resurrect the code. It was really good to look back on code that was already 10 years old and realize that I actually did a pretty good job.

What a change!

Things have been very quiet from me for a while, but I have had one of the most tumultuous, yet exciting 12 months of my life. Some of it has been amazing. Some of it has been frightening. All of it has been an amazing growing experience. Exchange Web Services After my last post on Exchange…

Exchange Web Services Example – Part 4 – Subscriptions and Notifications

Now that we have succeeded in creating, updating and deleting calendar items and mastered Exchange Impersonation, it’s time to turn our attention to having Exchange notify us about what it is doing. Part 4 of this series is going to provide a detailed code walk-through of some code that leverages the Subscription API.

The example includes two code examples – one for Java programmers and one for OpenEdge programmers. The OpenEdge version writes updates through the OpenClient via the OpenEdge AppServer to an OpenEdge database.

Exchange Web Services Example – Part 3 – Exchange Impersonation

In part 3 of this series on integrating Exchange Web Services with Java and OpenEdge, we’re going to talk about a technique for accessing mailboxes called Exchange Impersonation. The first part of this article is going to talk about what it is, how it works, and the very serious risks it can potentially introduce to your enterprise. We’ll talk a little about how you can mitigate those risks, how to set it up from an administrative point of view, and then we’ll actually use it.

As with the other articles in this series, there is also a set of sample code that you can download and install to follow along later in the article.

OpenEdge GUI for .NET – Testing the Bridge

Progress Software Corporation has been running a program to test the OpenEdge GUI for .NET bridge with controls that have no user-interface. My company, Intangere, is very interested in this program because we are looking at releasing a control that would make it possible for OpenEdge developers to communicate directly with a Microsoft Exchange Server and receive mailbox updates for an OpenEdge client.

Intangere thus signed up for the program and created a control that mimics the behavior of a real Exchange Web Services control. This test has been surprisingly successful, and this article provides some information about the test and the code and a document that describes its use.

Exchange Web Services Example – Part 2 – Creating Appointments

In part 2 of this series, we are going to spend some time looking at the CalendarItem API, how it works and what it takes to create, get and delete an appointment. Before we start, you should make sure you have your environment set up per the explanation in part 1. If you have done that, you can download the example code for both the Java portion and the OpenEdge portion so you can follow along as we walk through this code together.

Part 2 of this series of articles is dedicated to giving you an overview of the process of connecting to Exchange and doing some basic Calendar item work. Through the sample code, you will learn how to:
– Connect to the Exchange Web Service from Java;
– Create calendar items on the Exchange Server;
– Get calendar items from the Exchange Server;
– Delete calendar items from the Exchange Server; and
– Connect to the Java service from OpenEdge to perform the same operations.

The Java functionality will be exposed as a Web Service so that other platforms can also leverage, which is how we will get at it from OpenEdge. The OpenEdge code leverages the new GUI for .NET and object-oriented extensions, so you may find the example interesting if you have not done this before. [...]

Exchange Web Services Example – Part 1 – Introduction and Set up

A few weeks ago I wrote about my experiences starting out with the Microsoft Exchange Web Services API and on using the subscription API. In the second article, I said I would write a code walk through that shows how to do the stuff. I had thought of doing a complete walk through like the Dynamic OpenClient code that I did back in November last year, but I wasn’t as busy back then as I am now, and I had the time to actually write up the example properly.

This is part 1 of a multi-part series that will cover the process of connecting to Microsoft Exchange Web Services, submitting requests to Exchange, receiving notifications from Exchange, creating appointments, tasks, and e-mail, and using Exchange Impersonation. There will also be OpenEdge examples interspersed within it. Each part in the series (except this one) will have a downloadable zip file with the code in it that actually runs (at least in my environment) [...]

Research and Innovation and Enterprise Architecture

The thing that sets one business apart from another is the special added value that it brings to the table. It does something different. It has come up with an idea that no one else does quite the same way, or so the business believes. Even when someone else is doing exactly the same thing, the thing that differentiates the two is the way that they do it. This is the “special sauce” that makes a business special.

But how do companies go about finding that “special sauce?” And more importantly, what can they do to maintain it?

While I don’t believe for a second that all the special sauce in the world comes from technology, technology can often be at the very heart of making that special sauce, especially when we are talking about building customer relationships.

Technology can be a huge support in this area, and that’s where research and innovation come in. Using technology to build better business relationships is where the focus of technical growth is, and learning how to apply technology to do so is where research and innovation come in. [...]

Tools of the Trade – Infrastructure and Process

This post is a follow-up to my last post in which I spoke about the software that I use to build software. In this post, I want to talk about some of the hardware and operating system infrastructure that I have in place and the roll it performs.

As I said in my last post, I do not like to do work that could be automated. A large part of the work that should be automated is the work around the build process. More than anything else, successful software development depends on being able to produce a repeatable build process where the code that is built is thoroughly tested, installed and verified before it is considered stable. To get to the point of understanding how this all works, the hardware and network infrastructure is pretty important. So that’s where I am going to start. [...]