My n4sgjgrandmother, Pearl, better known to her HAM radio friends as N4SGJ passed away a few hours ago. In ham radio language, she became a Silent Key, or SK for short.

I was lucky enough to have known all of my grandparents, and have had great relationships with all of them. My mothers parents passed away in the late 90’s, however my grandfather John, KI4SH (Pearl’s husband) lived until last October of 2007. Earlier this year my grandmother had a bout with cancer, but had whipped it, although early it looks like she passed away from a case of heart failure.

Pearl was an avid sewer, she especially enjoyed quilting. My kids each have a quilt she made for them, and I still have the quilt she made for me as a teenager (camouflage with a blue back, very manly!). She always got a kick though out of the fact my kids “borrowed” it from me and use it as a snuggle blanket, refusing to give it back.

She was also quite active in the ham radio community, having served as club secretary and been involved with several hamfests. I think one of the things I’ll miss though is her caramel popcorn. Every year she would make a big batch of home made caramel popcorn and give it out as gifts to all the family. I feel a bit sad, knowing this batch I have now will be the last I’ll get to enjoy, but I also feel privileged to have had her in my life as long as I did.

SQL Saturday – Atlanta

I just found out there’s going to be a SQL Saturday in Atlanta (http://www.sqlsaturday.com/eventhome.aspx?eventid=17). You still have some time, it’s set right now for April 25th, but that’ll be here before you know it. This will go well with the SQL Saturday planned here in Birmingham, tentatively scheduled in March.

The Diplomacy of Social Networking

I’m going a bit off my normal track of technical blogging to get involved in the world of international politics. One of my Twitter friends, @C_Collins, pointed me to a posting on the American Foreign Policy Council’s website where someone was taking a state department employee, specifically the Deputy Assistant Secretary for Public Diplomacy one Colleen Graffy, to task for her use of Twitter. The original poster was apparently worried that somehow someone might mistake her posting as @Colleen_Graffy and confuse that for official state department communications, and was taking her to task for it.

I posted a reply, which for some reason has not yet made it to the site. I will assume with this being the holiday season no one is checking in to moderate posts. My own blog however is under no such restrictions, so rather than delaying any further I will first direct you to the original site here, http://zi.ma/diplomacy. Go ahead, go read it and the comments so far, I’ll wait.

Back now? Great, here’s my reply to Ilan, the blogger:


I can appreciate your concern over the lack of clarity in message from the state department. To add to the confusion when there is a change in administrations there is a shift in message. In addition, I’ve always thought the state department was doing it wrong. Their communications always seemed targeted towards either the heads of state, or toward a mass audience.

Perhaps then, having personal communications eclipse official ones is exactly what SHOULD be happening. True ideals, such as democracy and personal freedom spread best one person at a time. The internet, for all it’s warts, has done one miraculous thing, it gives all of us an equal voice through which we can connect with others.

Through my blog I reach thousands of people on a daily basis (I average about 2,500 hits a day). Through my twitter account (@arcanecode) I converse with people all over the globe each day. Many of these people I consider good friends, even though some I may never meet in person (but hope to). Quite an accomplishment from my old laptop, sitting here on my back deck in sunny Alabama.

I firmly believe it is the fear of these personal communications that causes other countries to try and block the internet. It’s easy to spread a message of hate when that hate is directed against an amorphous blob like ‘those dirty Americans’ or ‘those evil westerners’. It’s extremely hard though, when there are personal relationships built between individuals.

I am not so much of an idealist not to realize there are some people in this world who are haters, and would love to eradicate others. They need dealing with in strong terms. But there are an awful lot of “average joes” in those same areas who hate because they are taught to believe in hate, and have no information to disbelieve what they are taught. Thats where the internet comes in, as a tool to bring information to everyone.

Perhaps I am just a hopeless romantic geek, but if the world is going to become a better place in the long run it’s not going to be through state diplomacy but through personal diplomacy, one person at a time.

Robert (Arcane Code)

There you go, feel free to leave your own thoughts below.

Oslo – Not just for Norwegians any more

I’ve been looking heavily into Oslo, the new technology announced at PDC 2008. So what exactly is Oslo? Well I couldn’t find a simple explanation, so after digging into it all weekend let me see if I can take a stab at it.

If you are familiar with Sharepoint, you know that it provides you a bunch of web templates. You can take these and create certain types of lists. Documents, lists, forums, etc. What many don’t realize is that all of this gets stored in a “repository” that is in SQL Server.

Oslo takes this concept to the next level. It allows you to create your own “lists” if you will, of fairly complex data types. These are stored in a repository in SQL Server. Along with your data is a lot of meta-data. Oslo also provides a query tool to easily get data back out of the repository, along with runtime components you can use with your favorite programming language. Or, because it’s all in SQL Server you can bypass Oslo runtimes and go directly into the SQL Server repository using traditional tools like ADO.NET or Linq To SQL.

So how does Oslo accomplish this? By providing several tools to us: M the programming language; Quadrant, the graphical tool; and the Repository itself. Lets take a brief look at each one.

M is a new programming language that has three components: MSchema, MGrammer, and MGraph. MSchema is used to define a new chunk of data, it is a representation of how you want the data stored. The product of an MSchema definition is directly translated into T-SQL as a Create Table statement and stored in the Repository.

MGrammer is used to create a translation between one layout of information and the schema created with MSchema. Let’s say you had created an MSchema definition for album names, artists, and ratings. Then let’s say you had an input file that looked something like:

The Thirteenth Hour by Midnight Syndicate rates 5 stars.

Greatest Tuba Hits of 1973 by The Tuba Dudes rates 1 star.

You could create a language template in MGrammer that looked for the words “by” and “rates” and divides up the input into the appropriate fields in your schema. Then run the input file through the MGrammer layout and you’ve now got all that data into a format known as MGraph.

MGraph is a tree like structure that represents the transformed data. If I understand it correctly, you take your data, run it through the DSL you setup with MGrammer and it produces an MGraph. This MGraph can then be loaded into a database schema created with MSchema, passed off to a calling routine, and more.

Quadrant is the tool used to look at data once it’s in the Repository. You can browse data, and create different representations of the data in a tool similar to what you see with Office. For example, you can render a table created by MSchema as a tree, as a grid, as a list, or even as a graph. You can use it to show relationships between MSchemas, and write queries with it. Quadrant could be used by developers or advanced users to create a template representation of the data that could be given to other users to do their data analysis.

Quadrant is also highly extensible and customizable. You can write your own modules to add to it. Although to do so you have to write them in Python, which I have to admit leaves me scratching my head. I don’t have anything against Python, but I would have to imagine most developers who work with Microsoft tools are much more familiar with VB.Net or C#. I have to wonder why they picked a language most Microsoft developers are unfamiliar with and would have to learn in order to extend the Quadrant tool.

The final piece of the puzzle I have mentioned several times, it’s the Repository. The Repository is a database that holds everything about your schemas and data. Currently Oslo only supports SQL Server as the database for a Repository. Interesting thing though, Microsoft will be distributing Oslo under the OSP (Open Specifications Promise). This means a third party vendor could develop a back-end Repository engine so that an Oslo Repository could be stored in something like MySQL or Oracle.

Finally I will mention Oslo will be callable from your favorite .Net language, indeed the Runtime components as they are called are a critical piece of Oslo. There are .Net APIs which can be used to get and retrieve data from the Repository.

Microsoft is serious about Oslo. In a Channel 9 interview about M, I believe it was Chris Anderson who said there were 180 folks working on the Oslo team. Even though it’s early in its development, I get the strong impression Oslo will be a key factor in future of Microsoft development technologies, which is why I intend to invest time now to get up and running with it.

For more information about Oslo, and to download the current Oslo SDK CTP, see the site at http://msdn.microsoft.com/oslo .

Step 5 – Guard your credibility

Around 100 BC the Latin author Publilius Syrus wrote “A good reputation is more valuable than money.” 2,900 years later those words are still just as true. Your reputation, including your online reputation is the most important asset you have and you should guard it jealously. An article at onrec.com states that 25% of HR managers reject applicants due to what they find on their on-line profiles. Sure, it’s OK to have the occasional fun post, or have some humor in your blog, but make sure it’s in good taste. Avoid posting those pictures of you and your friends drinking straight from the keg.

Just as bad as reckless fun can be the rant. Remember not every thought needs to be uttered, or even worse put to the web. One bad outburst, one blog post made in anger can give you the reputation for being a hard to work with hot head. Don’t be “that guy”.

Finally, no matter what remember the web is NOT Las Vegas. What happens on the web does NOT stay on the web. I’ll bet this guy wishes he’d have remembered that.

What was he thinking?

Step 4 – Show up in the community

Community involvement is one of the most, if not the most important thing you can do to increase your marketability. In yesterday’s post I stressed the importance of public speaking. Whether we realize it or not, we are constantly speaking in public, even if the public is a small crowd. A meeting with your boss, the project team, staff meetings, even simple group lunches are all places where we speak before small crowds. User groups, code camps, and conferences are places where you can practice the kind of public, technical speaking that will make you valuable. Nervous? Do it as a group. Partner up with one or two friends so none of you has to speak more than fifteen or twenty minutes. Or participate in something like the recent IPSA Idea Spark, where each presentation is limited to no more than five minutes. Don’t worry about whether a user group will want you. As a leader in several user groups I can assure you we are constantly in need of speakers, and will gladly welcome first timers to our meetings.

But community extends beyond the borders of a user group. Blogging can be a very effective way of communicating your ideas and participating in the community. Even better you can do so freely or inexpensively via sites like WordPress.com, who offer free hosting to blogs. You can also participate in forums. In addition to those on MSDN and TechNet, sites like SQL Server Central offer forums focused on a particular discipline.

You can also participate with your coding skills. Sites like MSDN Code Gallery allow you to post samples for your particular expertise. I have two sites there myself. Or you can participate in one of the many open source projects on such sites as Code Plex or Source Forge.

Finally, consider joining an on-line community at someplace like Twitter. I have met many, many good people through Twitter, and using it can communicate with them on a regular basis.

The critical point here is that community builds relationships, and these relationships are vital to your career. Sometimes these will help you find good people to work with. Sometimes they can help you find answers to difficult questions. Sometimes it’s just about good friendships. And yes, sometimes they can even help you find that next job. It is these relationships that will form the cornerstone to your success.

Step 3 – Understand the business

By far, the people I see who make the most money in the marketplace are those that have a good understanding of both technology and business. I’ll never forget an important business lesson I learned many years ago, from a former boss. Businesses are there for one reason: to make money. It may sound a bit harsh, but let’s face why else would you go into business. Hopefully the business is the type that wants to do so in a moral, ethical way, and in a fashion that makes both the business and the customer feel good.

If you’re like me, you got into technology because it’s “cool”. We love making the electrons sing and dance within the computer at are whim. However, our bosses, or customers, our internal business partners don’t necessarily share our love of tech. In order to get the approval to implement our new whiz-bang project, we need to be able to do two things. First we need to determine the benefit to the business. How much money will the company ultimately save by implementing your project? What will the increase in productivity be? Being able to identify the benefit to the company is crucial.

Once you have identified the benefit, you need to be able to communicate it. Avoid techno-jargon, all it will do is make your listeners eyes glaze over and cause them great confusion. Learn how to speak in terms the business understands. In order to learn the language of business, once per quarter read a book on business strategy. If you don’t have time for reading, consider an audio book. Unlike programming books, business books work well in audio format. Listen in on your Zune as you work out, drive to work, or do those household chores.

In order to communicate clearly, I would highly suggest the Toastmasters organization. Just think of them as a user group for speakers. Going through the program will help you learn to organize your thoughts in a clear and coherent manner.

Having a good understanding of business, in addition to technology, will help you succeed in the highly competitive marketplace of today.