Tag: syndicated

  • SQL Inspire NYC – 2011

    The lineup for SQLInspire

    I spoke at the SQL Inspire event this last weekend and it was a greart experience. This event was sponsored by Linchpin people (founded by Andy Leonard, Brian Moran, and Matt Velic) and supported by Robert Pearl, Melissa Demsak, and others in the New York/New Jersey area.

    The event is modeled after the TED events, which was inspirational and informative talks that bring people together to discuss ideas and thoughts about various topics. In this case all the speakers were technologype focused people, but bringing different points of view or frames of reference to our SQL world.

    The event was held at the Microsoft office in Manhattan, the same place as the SQL Saturday event held there last year. I arrived just as the event was starting, and had breakfast. There was plenty to go around, which was good as I’d forgotten to pack the protein bars I normally eat in the morning.

    There was plenty of coffee as well, and I had a cup while watching the event start with Robert Pearl talking about telecommuting. He had some good ideas for people that want to work from home, including some data and arguments that you could give to your boss.

    The event was structured as a series of 20 minute talks, with a few breaks throughout the day. Tom LaRock had come down from Boston with his daughter. He had a great talk about “Someday”, which as he noted, “isn’t one of the seven days of the week.” Tom cautioned people against waiting too long to do things, or putting off the parts of their career that are important to them, or even the simple things that need to be done in every environment, like making sure you have good backups. He had one point in the talk where he was looking forward to things in the future, and he choked up while mentioning the chance to walk his daughter down the aisle at her wedding. It was a touching moment, and I was choked up as well thinking about my little girl.

    SQL Someday

    Michael Coles talked about the job market, Andrew Brust talked about Big Data, and Brian Moran talked about Linchpin people and how he is trying to change the way that people view their work and their business. Michael Corey had a great talk about how he had grown his career from DBA to CEO of a consulting company and how he runs a successful, moral, well balanced place to work. I grabbed a card from him and will keep NTirety, his company, in mind if I ever need a job. They seem to work the way I’d like to work.

    My talk was right after lunch and titled “Finding Balance”. My focus was on the ways in which we can all manage to improve our careers, get raises, promotions, etc., while still managing to have a life. I’ll blog about it more, but the main ideas were three things I think are important to balancing out your life.
    – Learn to say no
    – Play your own game
    – Balance

    The entire event was video taped and recorded, and I believe that the videos will be available in a few weeks for people to view. There were about 60 or so people there throughout the day, and they seemed to enjoy the talks. Quite a few people came up to me and other speakers at the end to thank us for the information we presented, and they seemed to be making notes or engaged with the speakers during the day.

    Video by And Now Video

    There were a number of sponsors that helped bring this event to fruition, including my employer, Red Gate Software, along with Confio, Embarcadero, and Microsoft.

    This was a much different type of event than many SQL Saturdays. The talks focused on abstract, more soft-skill topics, that were designed to inspire you, and get you to re-think the way that your career is progressing. I hope there are more of these events, or even that they can be held alongside other SQL Saturday events as a change of pace from the strictly technical presentations.

    New York City was great, with mild weather on a November weekend. The sun shined as I went for a run out to Central Park on Saturday morning. I stayed at The Pod hotel, which is a hostel, and an ecclectic change of pace from many other places I’ve visited. We had a few people come out after the event to share a few beers and talk about the event, life, and a few other topics.

    My thanks to Andy, Brian, and Matt and I hope they are able to run a few of these events in other places in 2012.

  • Quite a salary

    If this article is true, and I suspect it is for some software engineers, why aren’t more people learning programming?

    I think that we have a few problems in the industry, and I have an editorial coming out soon on this. One is that this type of money is rare. So many people work for companies and they make a good living, but they work hard. We have a perception issue of this industry being geeky, long hours, not a lot of respect, etc. I hear so many complaints from people that it’s hard sometimes to decide if they really like their jobs or they’re stuck in them, much like I hear complaints from people in accounting, or sales, etc.

    The other issue is that we haven’t done a great job of getting younger people interested in computers. We require more computer work in schools, and my kids use computers as much as I did when I was 12 and a geek, but they’re using computers as tools to produce an end product, not as a way to build another tool.

    We need to advocate, interest, and excite more kids about technology as a career if we want it to grow.

  • A view has no data

    I have seen quite a few posts and questions lately from people that are trying to change the data in a view, or move data in a view.

    A view has no data.

    It’s that simple. If you have something like this in AdventureWorks:

    SELECT firstname
    , lastname
     FROM HumanResources.vEmployee
     

    And this view is defined as:

    CREATE VIEW [HumanResources].[vEmployee] 
    AS 
    SELECT 
    e.[EmployeeID]
    ,c.[Title]
    ,c.[FirstName]
    ,c.[MiddleName]
    ,c.[LastName]
    ,c.[Suffix]
    ,e.[Title] AS [JobTitle] 
    ,c.[Phone]
    ,c.[EmailAddress]
    ,c.[EmailPromotion]
    ,a.[AddressLine1]
    ,a.[AddressLine2]
    ,a.[City]
    ,sp.[Name] AS [StateProvinceName] 
    ,a.[PostalCode]
    ,cr.[Name] AS [CountryRegionName] 
    ,c.[AdditionalContactInfo]
    FROM [HumanResources].[Employee] e
    INNER JOIN [Person].[Contact] c 
    ON c.[ContactID] = e.[ContactID]
    INNER JOIN [HumanResources].[EmployeeAddress] ea 
    ON e.[EmployeeID] = ea.[EmployeeID] 
    INNER JOIN [Person].[Address] a 
    ON ea.[AddressID] = a.[AddressID]
    INNER JOIN [Person].[StateProvince] sp 
    ON sp.[StateProvinceID] = a.[StateProvinceID]
    INNER JOIN [Person].[CountryRegion] cr 
    ON cr.[CountryRegionCode] = sp.[CountryRegionCode];

    The SELECT statement is the same as running

     SELECT 
     c.[FirstName]
    ,c.[LastName]
    FROM [HumanResources].[Employee] e
    INNER JOIN [Person].[Contact] c 
    ON c.[ContactID] = e.[ContactID]
    INNER JOIN [HumanResources].[EmployeeAddress] ea 
    ON e.[EmployeeID] = ea.[EmployeeID] 
    INNER JOIN [Person].[Address] a 
    ON ea.[AddressID] = a.[AddressID]
    INNER JOIN [Person].[StateProvince] sp 
    ON sp.[StateProvinceID] = a.[StateProvinceID]
    INNER JOIN [Person].[CountryRegion] cr 
    ON cr.[CountryRegionCode] = sp.[CountryRegionCode];
    

    Note this is exactly the same thing as the view definition with fewer columns included. Or it could be written like this:

    SELECT firstname
    , lastname
     FROM 
     (
    SELECT 
    e.[EmployeeID]
    ,c.[Title]
    ,c.[FirstName]
    ,c.[MiddleName]
    ,c.[LastName]
    ,c.[Suffix]
    ,e.[Title] AS [JobTitle] 
    ,c.[Phone]
    ,c.[EmailAddress]
    ,c.[EmailPromotion]
    ,a.[AddressLine1]
    ,a.[AddressLine2]
    ,a.[City]
    ,sp.[Name] AS [StateProvinceName] 
    ,a.[PostalCode]
    ,cr.[Name] AS [CountryRegionName] 
    ,c.[AdditionalContactInfo]
    FROM [HumanResources].[Employee] e
    INNER JOIN [Person].[Contact] c 
    ON c.[ContactID] = e.[ContactID]
    INNER JOIN [HumanResources].[EmployeeAddress] ea 
    ON e.[EmployeeID] = ea.[EmployeeID] 
    INNER JOIN [Person].[Address] a 
    ON ea.[AddressID] = a.[AddressID]
    INNER JOIN [Person].[StateProvince] sp 
    ON sp.[StateProvinceID] = a.[StateProvinceID]
    INNER JOIN [Person].[CountryRegion] cr 
    ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
     ) a
     

    In this case I’ve moved the view definition into the FROM clause of my SELECT query.

    A view is literally a stored query that you can use to make it easier to write code. There is no data in the view, so if you need to change the data, or “refresh” the data from another database, you need to move the data in the tables that are referenced in the VIEW.

  • Slide Decks for PASS, SQL in the City, and SQL Server Connections

    I’ve sent my slide decks to the organizers, but I know they don’t always get posted. So I’m putting a few links up here for my talks.

    If you check the page for my Preparation for Disaster talk, you’ll find I have links for the two recent events to the decks. I often version the decks after talks, and so I’ve decided to keep all versions live.

    I’ve also uploaded the decks from PASS if you’re interested.

    PASS Summit 2011

    SQL in the City – LA 2011

    SQL Server Connections