I posted about our upcoming adventure on a few car/tiki forums today, it was interesting to read the responses. Overall, the responses were very positive and I heard some great ideas for places to live.
However, some people sound like they would find fault in winning a million dollars they are so pessimistic! Sorry, that's not me. I'm going to assume everything will be ok. Are people who worry really this unhappy all the time? It must be soooo tiring to be depressed and negative.
Some good news today - the insurance company coughed up for some hail damage on the roof and we're getting a brand new roof next week. Perfect of course for selling a house. Also, I framed in a bathroom cupboard last night and re-did some wiring so the sheetrock guys will be coming on Thursday for finishing. Bathroom 1 is flying along, hopefully finished at the weekend.
Interesting factoid that you might not know; the mountains along the coast in CA make a big difference to the temperature and air quality. You can drives 20 miles inland and the temperature goes up 20 degrees! Living in Ventura (as an example) which is on the coast barely gets above 75 - but it's around 70 all year long.
A funny quote heard today: "Yeah, California rain - those 6 days a year are a bitch".
When Tara and I moved to Atlanta in January 1998 with our two very young daughters it was a big deal I guess, but I remember it being a lot of fun too. I had sold my small software company to one in Atlanta and that made the whole trip financially a great deal - I was being paid twice as much and it seemed that everything was half price so we were pretty happy!
Now it's time to do it all again; the Big Step. This time, we're moving to Los Angeles. I start work there 28 days from now. Gulp.
It's a move I've always wanted to make, moving to the West Coast where we finally get back to the beaches and the hot rod capital of the world. Moving away from Georgia's humidity isn't going to hurt one bit either.
But, it's SO EXPENSIVE everyone says. True, but luckily house prices have dropped there far quicker and deeper than most other places too, so now is probably the best time to do it. The hardest part will be just getting through the transition. We need to remodel three bathrooms before we can sell our house, and I want that done before I leave.
Then, i'll be driving cross-country (3 days?!?!) leaving the family behind to sell the house. That could, of course, take 12 months but I'm hoping (obviously) for less. In the meantime, the flight home every other week or so is going to be a bitch. We're expecting some pain in the short-term, but in the end we'll look back and laugh, as always.
As I've said before, life is not a dress rehearsal. Some things you just have to do and handle what happens next.
First steps? Yesterday I ripped off all the sheetrock, cement board and tiles from bathroom 1, tonight is putting up new cement board so Tara can tile tomorrow. In the meantime she's painting a bedroom. I tell you, it's all happening here!!
..and, if anyone reading this lives 20-30 miles from Chatsworth, please give me a holler :)
It's time for me to come clean about my "other job" - I've always had things going on, on the side so to speak, but for a year now I've been into e-commerce websites. Yeah, that whole "making money online" thing.
I've been a StomperNet member since March last year, paying..well, paying a LOT to be a member of an amazing community with real experts on staff to help with all aspects of growing an online business.
By "experts" I just mean people who make tons of money from real customers, not people who make money from "teaching" people how to make money. I am only convinced when I see the teachers have e-commerce sites making a lot of money. Like one making $26mm/year. It gives them a lot more real-world knowledge that I can stand behind.
So, yes, I'm a big StomperNet fan. I'm actually a moderator there too now. And although everyone keeps talking about the bad economy my 5 e-commerce websites are making more now than ever before. My last month was my best yet, and we're 6 months into the recession now? I started a new website 4 weeks ago and this week made almost a sale every day.
This sounds like one of those lame sales letters that I hate. Hopefully you guys know me and can let my enthusiasm slide. I love this stuff.
The point of this post is that for the first time StomperNet is allowing Joe Public to join the members at the normally private bi-annual Live event, held here in Atlanta at a very posh hotel. For 3 solid days (Fri-Sun) we meet each other and the faculty and have one-on-one time with people who are making lots of dosh from this internet thingamajiggy.
It's not cheap, but I still remember my first event last April - I came away with 50 pages of notes and ideas that I hadn't heard anywhere else. My favorite parts are hearing proof why common "SEO truths" are complete myths. Faculty members run hundreds of sites just to test this stuff, and make $$millions, so in the words of Bob Hoskins in The Long Good Friday, "It's a little more than an 'ot dog, if you know what I mean.."
Anyway, as tweeted: check it out, and if you come I'll meet you at the airport..yes, the beer flows pretty good at these events too. :)
First, an aside: Just one blog post since leaving Telligent? wow. Even more surprising, how many times a day do you think I check Google Reader now?
In fact, I don't remember the last time I checked "the feeds I'm really interested in and never miss". Long story short, I just don't read blogs any more. I also have Pidgin IM open with MSN/Yahoo/AOL all signed in and waiting for IM's. I don't get any. Well, maybe one a week.
Nowadays, it's all Twitter, all the time. It's taken over the conversation and socializing that used to happen on IM. It's taken over Google Reader's job too - if someone that I follow posts to their blog, they tweet it and I see it.
So, for now at least, this blog is reserved for longer posts that I can't distill into 140 characters (which as I've proved, isn't many).
http://www.twitter.com/JamesShaw is me, obviously.
(and just to prove my point, I'll be twittering that I posted this :)
Now to the real question. In a brief lull between the hectic launches at my current gig I want to streamline the deployments to our web servers.
I'm thinking of using TortoiseSVN on the server to simply update the web sites, but I'd like your opinion on a few points:
- Should we update to the *live* web site folders? Sound insane, but that's exactly what has been done for every deployment on a collection of very large, very busy websites (that you probably know) for years now. And the devs still swear by it - but rollback seems problematic to me.
- Or we briefly considered updating a separate copy of the sites and then use BeyondCompare to push the changes live? Is there a point to this extra step? Is it really any safer? And rollback is non-existent.
- Or my current favorite; keep two web sites fully configured on the server, update the non-live one with SVN and switch IIS to use it. If it fails, switch IIS back - a perfect and instant rollback. Seems an even more obvious solution now that I've written it down.
- We don't check-in binaries today, since we always build fresh before deploying. But pushing from SVN obviously means we have to check-in the dll's too. Perhaps even pdb's too, on staging. Which brings up another question - since we share the server between live and staging sites here, is there still a problem with uploading debug assemblies on a live server, even with separate app pools? Opinions vary alot..
Comments below appreciated (or on Twiiter, lol)
I recently moved my sites to Windows 2008 server and although I am repressing the memory of the pain and suffering caused by my lack of knowledge of IIS7 (assuming it really is me, not IIS7 that makes some simple tasks so much harder), after it was all done I happened to have Task Manager open. I can't remember why I did, but it was very lucky.
At that point, I hit one of my web pages and the CPU hit 80%.
Eighty per cent.
Then, back to zero.
I refreshed the page - same result. Holy shit, I have a big friggin problem here. The server is brand new and kickass, I'm running the latest and greatest everything and my CPU is pegged refreshing one normal aspx page.
Now, on this site I make heavy use of nvelocity (huge thanks again to scottw for that tip many moons ago) - the same scripting engine used in Telligent's Graffiti CMS. Immediately I thought of that. Recently I've been moving more and more of the page rendering into nvelocity's hands - had I overdone it?
Coincidentally (really, this was pure fluke) that same day I got an email from Chris Massey at Red Gate introducing himself and sending me an updated license file. I ran over to their site to see what the latest SQL Compare included (how could it get better?) ...and noticed ANTS Profiler.
Hmmm, profiling. I literally haven't done this for (I'm guessing) 6 or 7 years? I used it extensively in the C, C++ days but I think I grew out of it around the time C# came along. Optimization was never the best use of my time - almost like a way to spot a newbie developer; "Ooooh, let's optimize this loop and maybe save a millisecond every 100,000 iterations".
Uh, no. Compilers just aren't Turbo C 1.5 any more. Let them worry about crap like this.
Now, don't get me wrong, bottlenecks are a different thing. And cache the crap out of everything. But if you build the foundations of an application correctly I believe you can pretty much ignore optimization until something bites you in the ass.
Like a CPU at 80%.
So, like I said, finding ANTS Profiler was fortuitous. I downloaded it, installed and ran it, expecting something that had a lot of buttons, switches and swinging needles. I'm a very optimistic guy, but I somehow thought I'd be here for a few evenings.
..But of course you know what I'm going to say - and you're right. It was EASY. dumb, in fact. You couldn't dumb this down if you tried. You, er, have to type in the URL of your web app and hit Start.
I'm not kidding. I don't think there are any options on that main screen.
And what happens next is (I'd love to swear here) *&^#$%^$# GENIUS!
It starts recording everything that your app does while you click around your web site. I can't imagine where all that data gets stored so fast. Then you can select an area of the timeline and inspect it - although again, not much inspecting is needed since it just says (in red) <-THIS IS YOUR PROBLEM RIGHT HERE. It might even blink too, I'm not sure.
Yet again, development gets simpler and my vast experience means nothing - my mom could do this. lol
In case you are interested, I had screwed something up a few months back and not noticed. My app was instantiating a new VelocityEngine on every request - and that baby is expensive! By making it static and leaving just the VelocityContext in Context.Items my CPU load disappeared.
Of course, then I couldn't help just looking into the next "bottleneck"..and the next..oh crap...
Since we now have the tools to be personally notified of plane crashes within 30 seconds of them happening, no doubt you've already heard about Telligent's Reduction In Force yesterday. It was a crazy day, for sure, with the now infamous "knocks on the door" starting mid-morning straight after a daily standup call where we all discussed Jason's leaving the day before. One of the devs I worked with got his knock while on the phone - "oh, gotta go" were the last words heard.
By midday we were all reeling from the news, and remote workers like me were glued to IM and twitter. We thought it was over, but after a conference call, at 1:02pm my phone rang too..
Working at Telligent was a lot of fun and a lot of hard work. I've been there 3 years, 6 months which at the time seemed like I was joining the party late with about 20 employees I think. Looking back now, I feel like one of the original team! Many things have changed as Telligent has grown, and I've seen the challenges first-hand that text books discuss when a startup hits certain growth milestones. I sincerely hope they'll pull through this stage.
I've made a lot of new friends at Telligent, and I wish them all well; we'll stay in touch the same ways we always have. My social network has never been larger, and support over twitter from unknown followers has been unexpected but great.
Thanks, and stay tuned for the next exciting step! I'm already starting to look forward to this...
Aaaaaaaaaaaaah. There must have been an automatic update last night, I came in this morning to a signin screen and the computer was booting from scratch. Of course, I immediately turned around and went for coffee; it's not a quick process.
On my return, the normal things are running; Outlook, Google Desktop sidebar, Pidgin, Twhirl, SlimTimer. But Outlook looks different. Weird...oh-crap-its-clearcontext-and-its-gone!
Yes, it's 30 days since I installed ClearContext trial version. Two people had recommended it, and once I tweeted it I remember one person saying "I bet you won't have it installed in 12 months" or something. Well, he's an idiot. :)
It's completely changed the way I work with email, and made the switch to being a PM a LOT easier. Here's a list of things that I use and appreciate every day:
- The categories are just genius. Every project is a folder/category and since I color-coded every category that means that my email, tasks and calendar are color-coded. Until you see it, you don't understand. I can glance at my screen and see which project I am working with today. Super cool.
- I (or CC) automatically assign categories to most emails now. I created some rules, maybe some is automatic, I dunno. It just works. So again, emails are color-coded in my inbox.
- FWIW, I never have more than a dozen emails in my inbox. (well, technically, threads, but since they are collapsed it's still not a lot)
- ..which leads me to the magic buttons (can you hear angels singing?)
- File Thread == Awesomeness. One click and the thread gets filed into it's folder. That means (to me) that I don't need to action it.
- Make Task. If there is something to do, click this to make it a task. Put the date in. It appears on the bottom of the calendar, color-coded. This is too easy.
- I've never deferred, but there's a button for it. Personally I just leave it in my Inbox until I can action it.
- But Unsubscribe is my favorite of all. If you work in a company with more than 50 people, this is a lifesaver. We have company-all, telligent-life and a whole bunch of internal technical lists. Someone is always selling a cat, congratulating on getting pregnant or having a baby, closing with a big new customer, etc, etc, etc, etc, etc, etc. You get the idea.
AND EVERYONE REPLIES "Congtrats" or "w00t"!
Now, I just hit "Unsubscribe" on the first email - and I never see any replies. If you didn't know what you were doing and didn't use rules or CC, you could get a 100 emails a day into your inbox with just this.. er.. crap.
I haven't used the dashboard much, or probably a dozen other features, but the ones I have used have become truly indispensable. Hell, I'd buy it just for Unsubscribe, and that isn't even strictly helping me with my job.
Oh one more thing I forgot - message actions! Every time that I send an email and *need* an answer, I click the message actions and choose "remind me in 1 day if no reply received". Hahahaha - how priceless is that? My brain can relax - one less thing to try and track subconsciously.
Oooo, another big one. I used to run rules to move things around into folders - which sound like the same thing but really isn't. The key thing here is that if you run rules then your cell phone probably doesnt see them - mine only syncs with the root Inbox, not the project folders. So, now my phone "works" because on day 1 of CC I killed all my rules, and now just file the threads when I return to the office.
See, the world isn't all crappy products and ranting blogs. :D
I feel a little silly this morning. When I setup my new Vista box a few weeks ago I installed my CA Security Center that I love and uninstalled Windows Defender - or at least I thought I had. I swear I saw it in Add & Remove Programs and got rid of it.
Well, this morning it popped up saying that an update failed. ??
So I looked again and sure enough when i searched in CP for defender there was still a link to it. So I opened it and it said that scanning was disabled but run-time protection was still on. I looked in Tools > Options but there's nothing much there.
After some googling though, many people were talking about diabling run-time protection in the options page.
And of course, they were right, I'm a bozo. Look carefully below:
Just a few options right? And no tabs, so no more "hidden options" on there? Nope, I'm a dummy because they put *scrollbars* on an options dialog. Silly me. Scroll down and there are loads more options, including checkboxes for disabling real-time protection and even "Use Windows Defender" where you can disable the whole thing.
If you've even driven in Dallas you'll understand about the tolls. For visitors it appears they are everywhere - you pay to get on, you pay to get off, and you pay when you're half way there too, just for good measure. It's insane.
Locals bypass much of this madness, but visitors like me don't know how. So, the first thing you find when you drive a rental car out of the airport is a toll booth asking you for a dollar....and of course you dont have any change. It really is frustrating.
So imagine how happy I was last week to discover that Avis have implemented a new system now that includes "tolltag" in all their cars! A little gadget that allows us to drive through the fast lanes and the tolls just get added to the bill. So cool!!
This service was promoted all over the counter at the rental desk and I had a conversation with the rep about it. You don't have to do a thing - the first time you drive through a toll it gets automatically enabled and then you get billed $2.50 a day during the rental. A small price to pay.
So, of course, all week I drove throught the fast lane and smiled each time!!
Until the last day. The day I returned the car. I went through one toll that had a light that went green as you drove through. My light didnt go green. It was red. Hmmmm.
Then I got to a tollbooth with a barrier at the airport. The barrier didnt go up. WTF?
I parked at the avis dropoff and told the attendant that the tolltag wasnt working, and guess what? Go on, guess. Yes, my car didn't have it fitted.
So what happens when Avis gets a ticket in the mail? I don't know, but I'm guessing that they'll stick that and an "administration fee" on my credit card. I doubt that they'll ask permission again (I'm sure their rental agreement covers this somewhere!)
No problem, I'll call Avis this morning and clear it up. This is how it went:
- Called 800 number. very helpful lady said that I'd need to speak to the local DFW office. She gave me the number (972-574-4130).
- Called the DFW number. Chose 4 "customer service". A recording tells me they are transferring me to Worldwide Customer Service. Endless loop to #1.
- Called again. Chose "Extend my rental" - got transferred to a busy signal.
- Called again. Same result.
- Called again. Chose "Make a new reservation" hoping to get to someone who wants my money. They transfer me to worldwide sales people.She was again helpful and said to call local number but NOT choose a number. Just wait.
- Called again. Didn't press a number...and was transferred to a busy signal.
- Called again. There was a choice for "administrative offices". Oooh, real people? I got into another voicemail system, and was asked to choose from a bunch of peoples names, press 1 for Jack, press 2 for Jill, etc. Also, one choice for "airport manager" so I chose that. I got a voicemail message that - get this - asks me to "re-enter the 4 digit extension number that you were trying to reach". Of course, I dont know, I just picked a choice from a menu. "Or press 411 for a directory".
I started to press 411 - and on "4" a recording told me "goodbye" and I was disconnected.
Oh My God.
Avis, you SO FAILED.
Consider this my documentation when I have to go to small claims court to get my money back.
I started Telligent as a PM, then went into product, then moved to the Microsoft-specific "sites" team where I wrote and maintained the http://silverlight.net site.
But that ended last week as the sites team transitioned onto other projects inside Telligent. Terri wrote about it here.
So, I'm back into the Services dept as a PM now and looking forward to it. I believe that being a developer gives you a big insight into the development process that "regular" PM's don't have. Telligent has awesome devs, so some of the advantages are moot, but being able to sense developer BS and create requirements that can actually be implemented would be advantages in other companies.
So, I've been reading a lot of articles on PM and Scrum too. Most of these are posted on our intranet (kudos to Evolution) but some are simply referencing public articles.
One in particular this morning I found particularly interesting: User Story Estimation Techniques
BTW, don't write me off just yet, I'm still developing..someway, somehow I'll always be tinkering!
I've always loved Lightbox - it just looks so cool. I've used it to "popup" larger versions of images on a few sites, but only today did I notice that it causes a security warning in IE7.
Unfortunately, this isn't highlighted as an issue on the lightbox page, so I didn't know about it - and this can cause cart abandonment if it happens during the checkout process!
The fix was easy to find on their forums, but I would have preferred to have known about it in advance
So, here's your warning - if you use lightbox or are about to, follow this advice.
I was a little surprised that someone I talked to last night hadn't heard of this amazing service, and even more surprised that I hadn't blogged about this before.
If you have a router at home - and surely most of my audience does - you need to set it to use OpenDNS.
Do it today. It's free furchrissakes.
There are many reasons why it's a good thing from a technical point of view, being faster to access and faster to update than your current DNS server. But that's not the biggest reason why you should do it.
You have a family? OpenDNS is a beautifully simple way to stop any bad content getting into your house. There is no setup to do on anyone's computer. Since all traffic flows through OpenDNS you use their control panel to literally stop anyone viewing porn, drugs, gambling, even politics(!).
There's nothing they can do to get around it, unless they have admin access to your router. Although I use Vista's parental controls too on my smallest kids, I wouldn't rely on it. This router-level access means that I can't even view this stuff.
One of my fellow moderators on an Entrepreneur forum we both spend too much time on,Todd Chism, just got nominated by his colleagues for Entrepreneur of the Year - and made it to the final!
Todd's a great guy and has built a great company selling patio furniture amongst other things.
Why am I telling you all this? I need your votes to help a friend!
After the first few thousand times you get this warning it starts to get old. Real Old.
I always thought it was a badly written site like OnTime or just because I can at times have 20 tabs open in FF3 testing different versions of the Silverlight.net site all running loads of scripts and silverlight.
But today I'd had enough. I googled it, which is what I should have done a long time ago. You'll find a lot of people babbling about Firebug and other add-ins, but it's a bug in Firefox that's the issue.
Jaime explains it perfectly here.
Although Jaime is trying to explain how site developers can help, I really just want my FF3 to start behaving. The nugget is right at the bottom:
Firefox controls its time out based on the dom.max_script_run_time setting, which you can tweak via the about://config moniker; the default timeout in most recent versions is 10 seconds.
Actually, you need to type about:config into FF3 to see this config (I had no idea this existed).
I then changed both dom.max_script_run_time and the one above it (chrome something) to 60 seconds. Hopefully that will fix it once and for all. Fingers crossed.
Clever, and definately deserved more than a tweet.