Category: Blog

  • Steve Jobs 1955-2011

    It sucks getting older. There are any number of reminders of that fact on a regular basis as I move through my 40s. A kid in college, the aches and pains from moving my body too quickly, the paunch that I struggle to keep under control, and the most annoying might be having to get up most nights to go to the bathroom when I should be sleeping.

    One of the saddest reminders, however, is the all too regular passing of someone we admire, someone we know, someone we love. I haven’t had much death in my life to this point, fortunately. I lost a friend, a former boss, while away at college. A good friend, only slightly older was killed earlier this year. And I lost someone I admired yesterday.

    I never met Steve Jobs. Never saw him speak in person, never worked at Apple, and rarely used their computers. However Steve Jobs was one of the few people that I wanted on my “what three people I would invite to dinner” list. Apple has always been a “cool” company to me, one that transcended the engineering efficiency of so many technology companies to build something that you could use, but more importantly, you wanted to use.

    The comparison that came to mind this morning as I lay in bed, thoughts churning about both my day and the loss of someone I admired was the same one that Dave Winer wrote about in his memorial post: Frank Lloyd Wright.

    pastyou2The design, the clean, clear lines, the lack of anything extra was both elegant and insanely frustrating at times. However also genius, and reminiscent of not a better way to do things, but of the future.

    That’s what Steve Jobs brought with both design and form in the Macintosh, the NeXt, Toy Story, the iPod, the iPhone, the Air, and the iPad.

    The future.

    apple_20111006

  • Build Your Own Event at the PASS Summit

    There’s a bunch of stuff scheduled for the PASS Summit next week. You can see some of the events on the After Hours page, but there are a few other events happening during the week as well. Most are private, which is fine for the people that get invited, but what about everyone else?

    There are well over 1,000 people coming to the Summit, and the majority of them won’t get invited to private vendor parties, or many other events. However outside of the Gameworks party on Thur night, I have a feeling many of them will end up being “that guy”, spending the evenings alone or even working.

    Andy Warren and I have started a few events that are relatively open to anyone. We have our Monday Night Networking event, which is full right because of capacity limits. We also started the SQLServerCentral party, which I run and is open if you have a ticket.

    However we think you can start your own event. If you want to go see a band in Seattle, then wouldn’t you want to see if anyone else wants to go with you? Maybe share a cab? Perhaps you’re interested in a workout at a local dojo, or you want to attend the Underground Tour (which is very cool).

    If you want to do something, and would like to network, have a little company from people that similar interests, we’d like you to do two things:

    1. Create an event at EventBrite. It’s free if you aren’t charging. Just tell people what you event will cost and let them pay their own way. Put a limit on the number of guests, if it’s appropriate.
    2. Post your event at http://passsummitevents.info/. MVP/MCM Denny Cherry (blog | @mrdenny) has set up the site to track what’s happening at the Summit.

     

    That’s it. Post your event and let people sign up.

    If you are looking for something to do, check out the page at http://passsummitevents.info/ and see if there’s something you’re interested in. The site will tweet your event, but feel free to publicize it around.

    A week at a conference should be a lot of fun, packed with plenty of events for everyone. I hope we can get people to build their own get togethers, for anything from tasting beer at the Tap House to dinner at The Cheesecake Factory to taking a tour of the Museum of Flight.

    Whatever interests you, set something up or look for people that have a similar interest at http://passsummitevents.info/.

  • Networking for your career

    The more I learn about building a better career, and the more I talk to people that get new jobs or have success in business, the more I believe that networking is one of the most important things you can do for your career. It just seems to work better, be more reliable, and more effective than any other career improvement strategy. Even blogging, which I think really helps, isn’t as effective as having someone that’s willing to recommend you.

    I never really knew how to go about networking, but a few years ago I attended Don Gabor’s seminar at the PASS Summit and it was well worth my money. I learned a lot and have practiced some of his techniques since then. I’ve even purchased a few of his books, which contain even more information on how to better network and work with others.

    If you’re attending the 2011 PASS Summit, you can see Don’s Networking to Build Business Contacts seminar on Tuesday, Oct 11, from 3-5pm. It doesn’t interfere with the other pre-cons, and if you’re going to be in town, take this seminar. You will learn some practical tips and exercises you can use to build more contacts, grow your network, and hopefully use it to advance your career at some point. Even if you don’t need a job, at some point you will and the time to build a network is before you need it. If you’ve already registered, call PASS to add this seminar to your registration, or do it on site.

    Don has become a friend over the last few years, and was helpful in working on The Mentoring Experiment with me. I find him very insightful and experienced in the world of business and interpersonal interactions and a very interesting person. If you get the chance to sit and talk with Don, take it.

  • Basic Inner Joins – Basic Skill #4

    This post is part of a series based on my presentation The Top Ten Skills You Need for SQL Server. This post is part of Skill #4 – Joins.

    T-SQL Tuesday #23

    This post is also serving as my T-SQL Tuesday post for the month. This month the party is brought to you by Stuart Ainsworth. If you want to know more about what T-SQL Tuesday is about, read Stuart’s post as well as Adam Machanic’s original post and then join in next month.

    An inner join is essentially an intersection of two sets. If you go back to grade school, and think about sets, you can have two items like this:

    set1

    If you look at these two sets, you see that there are various elements in each set. If we were to show the intersection, it would be this set: (B). This is shown below (excuse my horrible artwork):

    set2

    In SQL, we deal with tables, but we can model this as follows:

    CREATE TABLE SET1
    ( mychar varchar(1) ) GO CREATE TABLE SET2
    ( mychar varchar(1) ) GO INSERT SET1 SELECT 'A' INSERT SET1 SELECT 'B' GO INSERT SET2 VALUES ('B'), ('C'), ('D') GO SELECT a.mychar
      , b.mychar
     FROM SET1 a
       INNER JOIN set2 b
         ON a.mychar = b.mychar
    mychar mychar
    ------ ------
    B      B

    The results are the matching values in each table. In this case each table is a single column, modeling the images above where there is a single letter in each item of the set. The matching columns are the join columns, and in database work, these would be the data items that we are storing in both tables.

    However to expand this, in a database table, we usually have multiple items, so each letter could be a series of data elements, or could have a series of other fields attached to it. Suppose I change these “sets” a little:

    DROP TABLE set1
    DROP TABLE dbo.SET2
    go CREATE TABLE SET1
    ( mychar varchar(1) , Customer VARCHAR(50) , ActiveDate datetime ) GO CREATE TABLE SET2
    ( mychar varchar(1) , Customer VARCHAR(50) , ActiveDate datetime ) GO INSERT SET1 SELECT 'A', 'Bob', '1/1/2011' INSERT SET1 SELECT 'B', 'Bill', '2/1/2011' GO INSERT SET2 VALUES ('B', 'Steve', '1/2/2011'), ('C', 'Andy', '3/1/2011'), ('D', 'Brian', '3/3/2011') GO SELECT a.mychar
      , b.mychar
     FROM SET1 a
       INNER JOIN set2 b
         ON a.mychar = b.mychar

    I still only have one matching row, but there are other data points. If I alter my diagram, they look like this:

    set3

    The matching rows, in this case the rows with a “B” in them, have different data, which seems to be an issue. However suppose set 1 was a list of customers along with their first order date and set 2 was a list of salespeople and the dates they started. Then the join might be on sales, with the letter (A, B, C, D) representing the order.

    That’s the basic of a join. It gets complicated as you look to join three, four, or more tables, but this is the basic idea of an inner join in SQL.