Category: Uncategorized

  • This is Dumb – eBooks

    Amazon v Apple, both pressuring publishers on ebook concessions. It’s big business, and it could easily be good or bad for consumers.

    Should we have some regulation here? Is the public better served in any way if books are limited to some retailers and not others? Deals have been cut like this for all time, and these “exclusives” sometimes result in better deals for consumers and sometimes not.

    Personally I hate to get government involved, but I almost feel like this is a place where business does not serve the world. Making a deal with another business that cuts out other businesses feels like monopoly. And setting pricing limits, like no one can sell lower, almost starts to feel like collusion in pricing.

    Amazon has moved e-reading forward. And I think without some serious pressure, book publishers would be like music publishers, they’d resist putting out digital products and try to retain tremendous control.

    Both sides need to give. Amazon needs to recognize that not only are they not the only retailer, but that forcing suppliers or customers to them for certain products doesn’t breed customer loyalty. It breeds resentment.

    Publishers need to realize that not every customer is a pirate and that ebooks truly do cost less. They cost less in inventory, less in risk ( no investment in books), and less to a distributor. They ought to cost less, and less than just the difference of the paper.

    It’s annoying to me and I think that ultimately here this is delaying to progress of e-books, and potentially hurting the reading industry. You’re not just fighting other books, publishers, you’re fighting other entertainment as well. Raising prices on books can easily move the casual reader to get more movies or TV shows instead of books.

  • Changing Storage for your SQL Server

    A friend pinged me the other day with a question on SQL Server storage. He works as a Windows consultant, a fairly high end Windows/Hyper-V/Exchange guy, and knows a lot. However he likes to double check his plan with an area expert, which in this case was me. It’s a good plan, and it’s one that I use as well. If I need to make Windows changes, or network changes, I’ll call a friend that is an expert in that area.

    Anyway.

    In this case, he was replacing the storage for a SQL Server. The instance was on a Windows Host and a new set of LUNs from a new SAN were being presented to the server. This was a SAN replacement, and the equivalent of adding new drives to your machine, and yanking the old ones.

    Fortunately this wasn’t a simultaneous replacement (add/remove in one step). He plan was:

    • backup all user databases
    • shut down SQL Server.
    • add new LUNs, map to new drives in windows
    • copy SQL Server mdf/ldf files over
    • remove old LUNs
    • map new LUNs to the same drive letters as the old ones
    • start SQL Server.

    In this case the system dbs and SQL Server itself were installed on local drives, so they were unaffected. He wanted to make a minimum of effort and changes to the system.

    I replied this was a good plan. SQL Server depends no Windows to present storage to it, using simple drive letters or mount points. If you change the underlying storage, but keep the drive letters or mount points the same and SQL Server will just pick up where it left off. As long as the path is there, SQL Server will be fine.

    I still would recommend that you detach the databases first and then attach them after. Changes like this shouldn’t matter, but just in case, I like to make sure I can recover to the new storage easily.

  • SQL Saturday – A Few Lessons for Future Events

    I’ve been to a few SQL Saturdays, and while most have run smoothly, I have a few comments on a couple issues I’ve seen multiple times that might help others.

    Signage

    In every event that I’ve attended, SQL Saturday or Tech Ed, the majority of people don’t really know the venue. They don’t know where things are, and they struggle to find them. Even maps in a booklet can be hard to comprehend when your frame of reference isn’t set.

    Don’t spend a lot here, but print out a schedule for each room and post it by the door. Print out basic room names and arrows on regular printer paper and post them at every intersection. They’ll help a lot. If you change buildings, put a list on each door of what rooms are inside the building (and what tracks).

    Space

    Get more rooms if you can. Not larger rooms, but more of them. It’s hard to figure out what to offer, and invariably some speakers will cancel. What I’d recommend is that you duplicate some of your sessions that you think are popular, on the schedule. Give people a couple chances to see something interesting.

    Spare Presentations

    Make sure that you have a few spare presentations. You can ask speakers if they can bring an extra, just in case, and I’d recommend the organizer not get on the schedule. Have something ready that you can jump in with, but you’ll be busy. Don’t schedule a presentation if you don’t need to.

    Raffle / Prizes

    Usually there’s a bunch of swag to give away at the end of the day. This has been handled in a few ways, but my suggestion is keep it simple. Just pull names or raffle tickets out of a box. I’ve seen various fancy attempts to automate this or make it fun, the reality is that the quicker you can give out 30 prizes, the better. It’s been a long day, let people get out of there.

    I’d make sure you have 3 volunteers here. One calling numbers, one handing out prizes, and one pulling up new prizes to keep things flowing.

    After Party

    As much as I think that having an informal, social get together after the event is great, it’s not a party. It’s not an excuse to get drunk, it’s not a cut loose after the week event, even though it is on a Saturday.

    It’s a networking event.

    So schedule is somewhere that you can get some decent space, and where it’s not loud. It doesn’t have to be private, IMHO, but it shouldn’t have a band or loud music. Let it be a place where people can sit down in chat, in small or large groups.

    Heck, a set of picnic tables in a park would be great if you can find a waiter to bring drinks by 🙂

  • Tracking data about your instances

    I saw a post recently asking how to build a daily report for each instance that tracks the metrics deemed important. My response was this:

    • Create small db on every instance to hold data.
    • write scripts to gather metrics, separate table for each metric. Use a separate job to schedule each set of metrics as needed (some daily, some hourly, etc.)
    • Put a report table in the db that just holds char fields, an instance name, and an ordering field
    • Write a proc that "builds" a report, putting lines of data in the report table, ordering them as needed, and including the instance name. This gives you a report daily, on each server.
    • Write a script (SMO/Powershell/LinkedServers/etc) to roll up all reports from all instances to one central server.

    Seems a little silly, but this was the fourth of fifth evolution of a monitoring system, and I even had Patrol and Unicenter on top of those at times. However this worked better.

    Why?

    1. Each server captures it’s own metrics. Critical in the case of communication errors. I’ve had servers disconnected (not down, but off the network) for ten minutes while someone replaced a cable. And that 10 minute window is ALWAYS when I’m building a report or looking for metrics.

    2. Customizable. I can write separate scripts for anything I need, and even update them over time. For example, one thing I used to do was capture sp_configure information. I didn’t want it on a report unless something changed. So I stored the data every day, loaded a new copy the next day, compared them for changes, and then wrote out to my report table anything that was different.

    3. Separate schedules for metrics. I might want CPU every 5 minutes, but sp_configure every day. I can easily have separate schedules.

    4. I get one report a day, and I stored off the list of servers in this central instance. If I didn’t get a report from a server, I’d go looking for it. New ones were reported to me and people soon realized that if they let me know of their new instances they didn’t ever have to worry about them.

    5. I have the raw data and the report stored off. This satisfied my ISO 9001 requirements, which was great for me.

    I’m not knocking the purchased monitoring solutions, and they work great for having a central team monitor things, but they’ve always required some customization to work for me, and in the same amount of time I could build my own reporting system easily. A few scripts covered all sorts of things that often weren’t built into large systems, or cost extra.