SQLFriends Lunch How-To Guide

As lunch “how-to” guides go, this one is a bit different. Nothing here regarding which fork to use for each course, what to do with your napkin when you get up from the table, or how to create a distraction so that you can check if there’s spinach in your teeth by using your spoon as a mirror. No, none of that. Instead I’m going to share three simple things I wish I had done while attending last month’s SQLFriends Lunch.

But first, a bit of background. SQLFriends is a community event organized by Aaron Lowe (blog|twitter) with an emphasis on discussion and networking. The inaugural event was a lunch in downtown Chicago last month. You can read Aaron’s own review of how it went here and Bob Pusateri (blog|twitter) reported on his experience at the event here. It was a sold-out event, and from observing the buzz in the room it seems to have been a fantastic success.

I had a great time getting to meet some folks who aren’t able to make it to the evening downtown SQL Server User Group meetings, discussing SQL Server issues, asking questions, etc. Before I knew it the event was over and we were all heading our separate ways. I really like how Aaron measured the vibe in the room and saw that people were engaged, so he just let things happen rather than trying to follow a set agenda.

Still, I wondered what I could have done to personally get more out of the event. As I reflected on this, three things occurred to me.

  1. Bring a list of questions – This event’s registration form had a box for questions you’d like answered. However, I should have gone beyond that, printed out those questions and brought them to the event. Better yet, bring several copies of those questions so that I could have handed them out to folks at my table or even other tables. While we didn’t seem to run out of discussion topics, this would be a way to get things moving if there had been a stall, and it would be a great icebreaker for meeting new people.
  2. Business cards – Yes, this is obvious. However, it had been a busy morning and I dashed out for the event without stopping to take a quick inventory. Thus, I arrived at the event with just a few business cards in my pocket. For an event like this I should have been carrying more like 50 of them and made sure each attendee received at least one. This would have ensured that I met each person at the event. Which leads to the third item.
  3. Who’s got your back? – I was so focused on my own table that I didn’t know who was sitting directly behind me until the event was ending and people started getting up to leave. Even if it required obnoxiously pushing my chair back and standing up, at some point, perhaps between courses, I should have looked to see if there were familiar faces or new friends to make sitting behind me.

Now, in case you haven’t heard, registration is open for the next SQLFriends Lunch! Information is available here and this time it’s in Lombard instead of downtown. You can follow this event on twitter with the #sqlfriends hashtag. Also note that the upcoming SQLFriends Lunch is on Friday May 18, 2012, which is the day before Chicago’s SQLSaturday #119.

Do you have additional ideas on making the most of this event? If so then please feel free to add them to the comments below!

Posted in Professional Development | Tagged , | Comments Off

Favorite Non-Tech Books Read in 2011

Paul Randal (Blog|Twitter) recently blogged about the books he read in 2011, which reminded me of my list from last New Year’s Day of favorite non-tech books read in the prior year. That post also mentioned the books I had queued up and ready to read. So let’s hit the bookshelves for a repeat exercise.

Favorite Non-tech Books Read in 2011

I started off reading the queued-up books mentioned previously, then added some as the year progressed. Here are the favorites.

Zero History by William Gibson – I started 2011 by reading the final book in Gibson’s latest trilogy. Lots of hiding and running around being chased for the characters in this one. While I appreciate Gibson shifting his writing from the future to current day, this book left me wanting some futuristic fiction. Thus, my next choice.

The Jump 225 Trilogy by David Louis Edelman – This trilogy starts off with Infoquake. Once I began reading it, I immediately ordered the remaining novels, Multireal and Geosynchron so that I could read all three without interruption. The main character is an entrepreneur and programmer dealing with bureaucrats, clients and competitors in a world shaped by bio-technology and terrorism.

The Great Shark Hunt by Hunter S. Thompson – Little did I know that the shark hunt took place in Cozumel, the destination of SQLCruise 2010!

Kingdom of Fear by Hunter S. Thompson – After reading the above book I was ready for more of Hunter’s work. This book starts with Thompson’s first run-in with the law at age nine, and ends with a strangely romantic scene where Anita diagnoses his problems in life while he speeds his Cadillac along a Pacific coast highway under a full moon.

Invisible Monsters by Chuck Palahniuk – The third of this author’s books I’ve read (the others being Fight Club and Survivor). A wonderful read but not for everyone.

When I Grow up: A Memoir by Juliana Hatfield – As I mentioned in last year’s review, I gave up on this book during a previous attempt at reading it. It was just too exhausting and depressing. But with Claire’s encouragement I finally picked it up again this year. The book’s mood did change, plus the chapter on the Telecommunications Act of 1996 and how it changed the music industry was fascinating.

Non-tech Books Queued for Reading in 2012

There are lots of non-technical books ready for my attention this year. So many that they won’t fit on my nightstand, so I had to find room for a bookshelf next to my bed! I’m not going to list all of them, but here are the ones at the top of the stack.

Fear and Loathing in America by Hunter S. Thompson – Okay, I cheated and have already started this one. So far, a truly amazing collection of Hunter’s letters.

The Proud Highway by Hunter S. Thompson

Songs of the Doomed by Hunter S. Thompson

The Informationist by Taylor Stevens

The Russian Debutante’s Handbook by Gary Shteyngart

By the way, I am painfully aware that I dropped out on my SQLCruise2011 book list commitments. After that first review where I announced that I was joining The President’s re-election campaign headquarters staff, things changed for me on many dimensions. Perhaps if I go third SQLCruise someday, I can get another chance to try keeping up with the book list commitments!

Posted in Books | Tagged , | Comments Off

It’s Easy to Trash Your Reputation

It’s New Year’s Eve and tomorrow many people will be cleaning up the trash leftover from parties. Along those lines, I have a story of trash and reputation.

Over the recent holiday season I was visiting with relatives who live in a rural area where trash removal services are provided by small private operators (e.g. a guy with a truck). The latest news among these family members was that their trash collector had announced the week before Christmas that he was retiring immediately and would no longer provide his services. Ever. He was done. Even though people had paid him through the end of the year and he owed them another week trash collection services in 2011.

I heard this story recited over and over again to anyone who would listen. Given how little I was around to hear it, I can only imagine how widely this event has been discussed in this rural community.

What wasn’t mentioned. Lots of things that I can think of. That unlike some of his competitors, this small operator hadn’t been banned from county dumps for bringing in improper materials. That he would drive all the way down your private lane and pick up trash right at your house instead of requiring you to take your trash to the main road. That for years people could count on him to collect their trash right on schedule.

But that’s not what will be remembered.

Instead, he’ll be the guy who quit and owed people a week of service. Or worse, as the story spreads, a week will become a month and so on.

Okay, not the happiest story to end the year with. However, it’s been on my mind so I wanted to pound it out on the keyboard before moving on to something more fun. Have a great time ringing in the New Year tonight!

Posted in Professional Development | 2 Comments

T-SQL Tuesday #024 – When Procedures Are Stored

November’s T-SQL Tuesday is brought to us by Brad Schulz (blog). Brad’s topic is Prox ‘n’ Funx. In other words, procedures and functions. In the database. Yes, code in the database. This concept alone can bring out strong opinions. In a prior post (see item 3 of July’s T-SQL Tuesday Best Practices post) I discussed this briefly. In many situations  I’ve had good results using stored procedures and functions, but they are a concept that can be abused, overused, etc. One such situation I encountered is what I’ll relay here today.

I was working with a firm that had scaling issues. The architecture was such that each of the firm’s clients had their own database, and each of these client databases had identical database objects. So when the firm got a new client, a new database for that client’s data was cloned from a template database that contained these identical  database objects (e.g. empty tables plus views, stored procedures, functions, triggers, etc.).

Among the problems that were upsetting the CIO was the rate at which he was having to purchase new servers to host these client databases. By “new servers” I’m referring to 1U servers with two 20GB SCSI drives in a RAID1 array (this was many years ago). The CIO was looking at an Excel spreadsheet provided to him by system administrators showing space being used on these servers. The CIO said to me “Look at this, brand new clients, we don’t even have data loaded for them yet, but all of this space is already being consumed. That makes no sense!”

At which point I said “Well, it starts to make sense when you learn that each client’s database has over 27,000 stored procedures in  it.” You can only imagine his shock and disbelief when learning this. But little by little, this had happened over time.

Everything imaginable in these client databases was done via stored procedures. Each table had a stored procedure for every type of function that could be done on the table. So every table had a store procedure each for INSERT, UPDATE, etc. as well as variations that provided extra features. Tables could only be modified through these stored procedures. Every table had a stored procedure for variations of queries. Views had one or more stored procedures for access. These stored procedures were then called by application code. Imagine ORM implemented through stored procedures. However, the data-access application code was also auto-generated via a solution that was tied to tables, so these stored procedures always seemed like an unnecessary layer of indirection to me. In any case, each table had a bunch of stored procedures tied to it for access and modification. So adding a table meant adding multiple new stored procedures. All queries and business logic were implemented in stored procedures, and each client database had every possible one of these stored procedures, even if that client would never need the functionality provided by them. In other words, if one client needed a stored procedure for some specific feature, all client databases contained that stored procedure. Some of these procedures were very large and unwieldy, so they would be broken up into smaller stored procedures that called one after another in sequence.

Rather than saying whether all this is good or bad, I’ll just say “Watch out.” This situation probably started off fine in the early days when there were two or three clients and a database had 25 tables or whatever. But with hundreds of identical databases, each containing hundreds of tables, this became an issue.

Stored procedures. Procedures that are stored, right? What is storing code (as opposed to data) going to mean for your solution over time? You need to think about such things when deciding that stored procedures are going to play a key role in your solution design.

Thanks to Brad Schulz for hosting T-SQL Tuesday #24, and thank you Adam Machanic (Blog|Twitter) for creating this monthly blog event and keeping it going for two years!

Posted in T-SQL Tuesday | Tagged , | Comments Off

Ubuntu 11.10 Upgrade – Getting Back to Work

The new Ubuntu 11.10 version (Oneiric Ocelot) has arrived. I was happy using Ubuntu 11.04 (Natty Narwhal) with the classic GNOME desktop environment, but it’s always hard to turn down an upgrade to the new flashy toy when it just takes a click of the mouse.

So I said “yes” to the upgrade, and when it was done I was sad to  see the classic  desktop was gone and replaced with Unity. For browsing and light activity on my netbook Unity is fine, but I was having trouble getting any real work done with it. I like moving forward and learning new things, but this interface is downright frustrating to me. I wanted my old experience back, or at least something close to it.

Fortunately, it wasn’t hard to find out how to do this because so many others feel the same way. After reading several posts,  I found one that was loaded with ad pop-up junk, but it was quite straightforward with advice for “falling-back” to a classic Gnome  experience. From a terminal I just entered “sudo apt-get install gnome-session-fallback” at the command line. After that, log out then log back in choosing “GNOME Classic” (click on the little gears on the login screen to get this choice) and things will look more familiar.

After that I added some applets to the upper panel (Alt-right click on the panel and choose “Add to Panel…”) to add some other things I like having there, for example “The main GNOME menu”, Show Desktop, Shutdown, Trash, and some commonly used application launchers.

I fired up the Nautilus file manager and returned some of the features I prefer there. I like seeing a tree structure in the left panel, so I brought that back by clicking View in the menu, then Sidebar -> Tree. I don’t like icon views, so on the menu I chose Edit -> Preferences select List View as the Default View. Finally I selected View -> Statusbar to get back the status bar on the bottom of Nautilus.

In a few minutes I was able to return my experience to something much more usable. So far it seems fine, and I’ll probably report back here if I run into any issues.

Posted in General Technology | Tagged , | Comments Off