Category Archives: Education

Atlanta SQL Saturday – Full Text Searching

Let me start with a big thank you to everyone involved in the Atlanta SQL Saturday. It was a great event, well run and well organized. Also a big thanks to all those who attended my sessions, and put up with my cold.

Here is the information for the Full Text Searching presentation. Still working on the getting started with SSIS details, if you want to see the 2005 version it’s at http://code.msdn.microsoft.com/SSIS . I’ll add the 2008 base in the next day or two.

First off, the slides and sample code can be located at the Code Gallery site I setup specifically for Full Text Searching with SQL Server:

http://code.msdn.microsoft.com/SqlServerFTS

Look on the downloads page to see various projects around SQL Server Full Text Searching. I’ve created one “release” for each of the projects around FTS. Be sure to look on the right side at the various releases in order to see the various projects.

Next, you can get started with the basics by reading these entries on my blog:

Lesson 0 – Getting the Bits to do Full Text Searching in SQL Server 2005
Lesson 1 – The Catalog
Lesson 2 – The Indexes
Lesson 3 – Using SQL
Lesson 4 – Valid Data Types
Lesson 5 – Advanced Searching

After that you’ll be ready for some advanced topics.

Can you hear me now? Checking to see if FTS is installed.
Exploring SQL Servers FullTextCatalogProperty Function
Using the ObjectPropertyEx Function
Using FORMSOF in SQL Server Full Text Searching
Creating Custom Thesaurus Entries in SQL Server 2005 and 2008 Full Text Search
Creating and Customizing Noise Words in SQL Server 2005 Full Text Search
Creating and Customizing Noise Words / StopWords in SQL Server 2008 Full Text Search
Advanced Queries for Using SQL Server 2008 Full Text Search StopWords / StopLists

Finally, you can find some videos I did for JumpstartTV at:

http://www.jumpstarttv.com/profiles/3177/Robert-Cain.aspx

Microsoft Virtual Tech Days – April 1, 2009

Microsoft is hosting a free, 24 hour virtual event this April 1st. There will be free training in languages, web, windows, Office, Sharepoint, and moblie development. For those unable to attend in real time sessions will be downloadable later for all registrees.

For session names and schedule, as well as to register, see their website at http://www.msfttechdays.com/public/home.aspx .

SQL Saturday 7 is Coming!

I’m getting excited, Birmingham’s SQL Saturday is rapidly approaching. I’m lucky enough to be on the planning committee and we’re really getting jazzed up. It’s still early and we’ve already filled over 25% of the available seats.

It’s not too late though, we still have opportunities! First of all, we still have some slots left for speakers. We’ve received quite a few submissions so far, but there is still a few slots left. Get your submissions in quick if you want to be a part of this event.

Sponsors are also vital to the success of the event, we have some but still need more. We want to create a win-win environment to hook up local DBAs and SQL Developers with your company or school. This is a great chance to meet the folks in the community.

Most of all though, we need YOU! Yes, you the local DBA or SQL Developer. This is a great chance to not only get a free day of education, but hook up with your peers in the community. And if that’s not enough, we have some great swag lined up.

Don’t wait though, the Atlanta code camp filled up quick, and it looks like Birmingham is on the same track. Head over to the SQL Saturday site and register for SQL Saturday 7 now!

If you’d like more info, or are interested in sponsorship, speaking, or volunteering, please don’t hesitate to e-mail us at sqlsaturday7@sqlsaturday.com.

SQL Server Full Text Searching at the Atlanta Code Camp

On March 14th, 2009 I presented “Getting Started with SQL Server Full Text Search 2005/2008” at the Atlanta Code Camp. This post has all the links relevant to my talk.

First off, the slides and sample code can be located at the Code Gallery site I setup specifically for Full Text Searching with SQL Server:

http://code.msdn.microsoft.com/SqlServerFTS

Look on the downloads page to see various projects around SQL Server Full Text Searching. I’ve created one “release” for each of the projects around FTS. Be sure to look on the right side at the various releases in order to see the various projects.

Next, you can get started with the basics by reading these entries on my blog:

Lesson 0 – Getting the Bits to do Full Text Searching in SQL Server 2005
Lesson 1 – The Catalog
Lesson 2 – The Indexes
Lesson 3 – Using SQL
Lesson 4 – Valid Data Types
Lesson 5 – Advanced Searching

After that you’ll be ready for some advanced topics.

Can you hear me now? Checking to see if FTS is installed.
Exploring SQL Servers FullTextCatalogProperty Function
Using the ObjectPropertyEx Function
Using FORMSOF in SQL Server Full Text Searching
Creating Custom Thesaurus Entries in SQL Server 2005 and 2008 Full Text Search
Creating and Customizing Noise Words in SQL Server 2005 Full Text Search
Creating and Customizing Noise Words / StopWords in SQL Server 2008 Full Text Search
Advanced Queries for Using SQL Server 2008 Full Text Search StopWords / StopLists

Finally, you can find some videos I did for JumpstartTV at:

http://www.jumpstarttv.com/profiles/3177/Robert-Cain.aspx

Alabama Code Camp Pictures

I took some photos of last weekend’s code camp, here are the best of them… Click on them to see a bigger image.

 

DSC_0002

Bruce and Glen get ready to kick things off.

 

DSC_0003

The crowd gets ready…

 

DSC_0004

Anticipation fills the room as the eager crowd waits for it to start…

 

DSC_0011

Glen kicks things off with the keynote.

 

DSC_0019

From the database track, Keith R presenting.

 

DSC_0024

“The Elder” doing his magic.

 

DSC_0027

William gave an interesting session on database hiearchies.

 

DSC_0031

Lunch time!!!

 

 

DSC_0032

The crowds are hungry

 

DSC_0033

Our first contestant in speaker idol.

 

DSC_0037

Our judges, made up of MVPs and Glen the Microsoft DE.

 

DSC_0038

The crowds enjoy the speaker idol presentations

 

DSC_0043

Another speaker idol contestant

 

DSC_0049

Todd giving his after lunch presentation

 

DSC_0055

Glen gives his “What’s in SQL Server 2008” presentation.

 

DSC_0060

I love T-SQL!

 

DSC_0064

Ryan presents on SQL Server Reporting Services. He was also the winner of Speaker Idol!

 

DSC_0070

Everyone gathers for the prize give-a-ways.

 

DSC_0072

Here’s what I won! 😉

Presenting SQL Server 2005 2008 Full Text Searching at Alabama Code Camp

On January 31st, 2009 I am presenting “Getting Started with SQL Server 2005/2008” at the Alabama Code Camp that is taking placin Montgomery, Alabama. This post has all the links relevant to my talk.

First off, the slides and sample code can be located at the Code Gallery site I setup specifically for Full Text Searching with SQL Server:

http://code.msdn.microsoft.com/SqlServerFTS

Look on the downloads page to see various projects around SQL Server Full Text Searching. I’ve created one “release” for each of the projects around FTS. Be sure to look on the right side at the various releases in order to see the various projects.

Next, you can get started with the basics by reading these entries on my blog:

Lesson 0 – Getting the Bits to do Full Text Searching in SQL Server 2005
Lesson 1 – The Catalog
Lesson 2 – The Indexes
Lesson 3 – Using SQL
Lesson 4 – Valid Data Types
Lesson 5 – Advanced Searching

After that you’ll be ready for some advanced topics.

Can you hear me now? Checking to see if FTS is installed.
Exploring SQL Servers FullTextCatalogProperty Function
Using the ObjectPropertyEx Function
Using FORMSOF in SQL Server Full Text Searching
Creating Custom Thesaurus Entries in SQL Server 2005 and 2008 Full Text Search
Creating and Customizing Noise Words in SQL Server 2005 Full Text Search
Creating and Customizing Noise Words / StopWords in SQL Server 2008 Full Text Search
Advanced Queries for Using SQL Server 2008 Full Text Search StopWords / StopLists

Presenting SQL Server Full Text Searching at Alabama Code Camp

This Saturday, January 31st is the Alabama Code Camp in Montgomery AL. I’ll have the privilege of once again presenting one of my favorite subjects, SQL Server Full Text Searching. Don’t think this session is just for DBAs, I think developers will find it useful as well since I will include a demo code sample that calls a full text search query from a C# application. My session is currently scheduled last session of the day, and rumor has it attendees might have an extra chance at a give away at the end of my talk.

Speaking of give a ways, don’t forget the Speaker Idol contest. Still no entries, they are due to my in-box by noon this Friday the 30th! Five minute talk gets you a shot at a 1 year Premium MSDN Subscription.

See ya’ll there!

Alabama Code Camp with Speaker Idol

Update: Due to a scheduling conflict, the date of the Alabama Code Camp has been pushed back to January 31st. We apologize for the inconvenience but hope the extra time will make it easier for everyone to plan to attend.

The next Alabama Code Camp will be Saturday January 17th 31st, 2009 in Montgomery Alabama. Call for speakers is open, so check back to the site soon for registration, session schedule, and more.

Also at this event we’ll be having the Alabama Speaker Idol contest. The object of this contest is to encourage new speakers to step up to the Code Camp level. During lunch we’ll be giving new speakers each five minutes to do a presentation. The detailed rules are below, but the big news is the grand prize: a 1 year MSDN Premium Subscription!

Update: Registration for the event is now open, you can register at http://www.clicktoattend.com/?id=134437

Alabama Speaker Idol Rules

1. Presentations are targeted to be five minutes in length, presentations can vary from 4:50 to 5:10 without penalty. Presentations under 4:50 or over 5:10 will be penalized.

2. As the object of the contest is to encourage new speakers, professional speakers, MVPs, and speakers at previous code camps are not eligible. However, someone may participate and also be a speaker at the Jan. 17th 31st, 2009 code camp as long as this is their first time speaking at a code camp.

3. In addition to length, speakers will also be judged on clarity, technical accuracy and content.

4. In addition to the judges, code camp attendees and other members of the pubic may be in the audience during presentations.

5. Judges will be composed of attending MVPs and other notable attendees. As with most of these things, scoring is largely subjective. The result of the judges is final. No whining, crying, or complaining.

6. To participate in the contest you must e-mail your name, title of your presentation, and contact cell number (just in case) to arcanecode@gmail.com with Alabama Speaker Idol in the subject header. All submissions must be received by noon, central standard time, Friday January 16th 30th. (edit to reflect date change)

7. Due to time restrictions, the contest will be limited to 15 participants. In the event more than 15 submissions are received, 15 contestants will be randomly drawn from the pool of submissions. All others will be placed on the stand by list. In the event of a no show on the day of the contest, we will randomly draw a replacement speaker from the standby list.

8. The order of the speakers will be drawn at random just before the presentations begin. All presentations will take place during lunch at the code camp.

9. The winner will be announced at the end of the code camp day.

10. These rules may be amended as the Code Camp Committee deems fit in order to facilitate a more orderly, better code camp.

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.

Step 2 – Learn iteratively

There are many ways to learn. Attending a presentation or live webcast is great because you get what I call “condensed knowledge”. You get the results of someone else spending thirty to forty hours of learning and working to condense it into a one to two hour presentation. You also get immediate feedback, you can interact with the presenter and ask questions. On the downside, if you missed something, you missed it (unless the presentation is recorded). These are great for getting an overview, however you won’t really get deep technical understanding out of a presentation like this.

The next step beyond a live presentation is a recorded webcast or video, such as those produced by DNRTV. These are great because you can pause them, rewind, and listen multiple times. However, you lose the ability to get immediate feedback from the presenter, and like live presentations it’s condensed knowledge.

Online reading is the next area available to us for learning. Blogs, MSDN, TechNet, etc. These have a much deeper level of information than previously mentioned formats. Plus they tend to be updated as changes are made. However, there do tend to be some limitations. Content is not quite as polished as a book as often it does not go through professional editors. Also, while the content will be more in depth than a presentation, it will still be limited in scope. It will be rare to find the equivalent of a book given out for free in a blog. Most of the time it will be equivalent to a really long magazine article.

This then, brings us to good old fashioned books. For true topical mastery, there’s nothing like a good thick book filled with code examples for learning. Some pundits are already predicting the death of the print book. However, in my opinion print is simply a medium. Books could be read online, or downloaded to something like a Kindle. Whatever the form, it’s still an in depth presentation of content.

So does this mean you should favor books over other forms of learning? Absolutely not. If you recall yesterday’s post, I mentioned being able to keep up your base. Podcasts, webcasts, user groups, and blogs can be great ways of doing just that, while using books for honing your expert skills in some topic.

Deciding on a delivery mechanism for your learning is the first step. Now you need to decide the process. Learning is a gradual process. It takes learning a little something every day for it to take hold. Even as little as 20 minutes a day can rapidly bring your understanding up to new levels. Avoid cramming, cramming works for short term but studies show long term retention is not good. For ultimate learning, start with a goal. Decide what you want to know. Then gather the materials you’ll need: books, articles, manuals, blogs, etc. Next, schedule the time. As I mentioned you want at least 20 minutes a day devoted to learning. Turn off your e-mail, close your twitter, turn off the radio, close the home office door, and focus on the material.

Practice what you read as well. Type in the code samples, run them, debug them, step through the code line by line. Make changes and see how it affects the flow of the code. Find the patterns and practices for your environment and try them out.

Using an iterative process you will soon be on your way to expert level knowledge.

Step 1 – Become an expert

Last week I did a presentation on “How to become a more marketable software developer”. I thought I would spend this week going over each of the five steps. Today we’ll discuss the first step toward becoming more marketable, “Become an expert”.

image While “Become an expert” sounds obvious, there are several things to consider. First, you need to pick an area that is viable. I don’t see much call these days for Microsoft BOB experts. For me, it is a mix of SQL Server Full Text Searching and SQL Server Compact Edition. For a friend of mine, Shawn Wildermuth it is Silverlight and his Silverlight Tour that is his current expertise. But Shawn’s story is one that beautifully exemplifies my next point: don’t be afraid to change your expertise!

While Shawn is known today for Silverlight, it wasn’t that long ago he was known as “The ADO.NET Guy”. Before that he was known as a co-author to many of the .Net MCTS/MCPD study guides. You need to constantly be flexible and react to the needs of the market. Don’t be afraid to retool your skill sets as new technologies emerge on the marketplace.

While you focus on an area of expertise, don’t forget your base skills. I recently heard someone describe your skills as a pyramid. Your expertise is right at the top, but it’s built upon a broad, wide foundation. Don’t forget to take some time on a regular basis to work with the basics, write some code, listen to some podcasts, read a “general programming” book so you keep in touch with the core development skills in your area.