Frustration: That moment when you realize your web host is run by a bunch of idiots.
I had been using Hostony for the bulk of my web presences and hosting client pre-release sites for well over 15 years. In that time there have been a few bumps but they always got it worked out.
When my annual renewal came up, I re-upped as usual. Of course, it reminded me that I have between 4 and 6 websites that have been basically abandoned. Not ideal, but whatever. Maybe it was time that I went back and cleaned out a few things.
I tried to log into my root site and got nothing. It wouldn’t load. Hmm… I submitted a helpdesk ticket and got no response. I waited a week, then used the chat service to contact tech support. The tech told me my entire account had been deleted. He would try to restore it and get back to me. Another week passed. I finally got focused enough on this problem to realize I hadn’t had a working web site in at least 2 weeks. So I contacted the billing department to complain. I finally get a response. They told me all of my data was gone. And there were no backups.
So… I’m a little pissed. They took my money, deleted my account and screwed up the backups so I can’t get it back. Nice. Quality.
In short, Hostony sucks. They are incompetent. Their customer support is non-existent and their technical skills aren’t any better.
Now I need to find a new host and see if I dig up old copies of my sites. In the meantime, I’ve still got this one which is hosted on Azure.
I was reading an article last week. Something in the MIT Technology Review… Toolkits for the Mind. This article reminded me of my interest in the mappings between language and perception.
I fix things. That’s what I seem to do. People bring me problems and I find solutions. Sometimes, it’s not what others might have planned, but that’s what I do. But I do it all in code. As part of this, I have to acknowledge that all of my solutions are bounded by the languages I use to code those solutions.
I know a handful of programming languages. I started with GW Basic at about 8 or 9 in my parents basement. I picked up Pascal, C, C++ in college. In my first real job after graduating college I learned Perl. I lived and breathed the LAMP stack for years. Then new SQL variants. A few scraps of VB. Somehow, I ended up using C# and XAML for 90% of what I code today.
So how do I break out of those boundaries?
In the last year, I’ve been trying to reframe my programming. I want to leverage the larger concepts of the art of solving problems with code. The effort is more than Computer Science. It includes Philosophy, Linguistics, Neurobiology, and Cognitive Science. I’m trying to rewire my brain along the way by forcing myself to think outside of my comfort zone. AOP is a part of that effort. We’ll see how all of this turns out in the next year.
You might be noticing a theme…
This is a huge issue for me. We have wasted so much time on bad hires when it comes to our contingent workers. Having learned from experience, we no longer bring someone in if anyone on the interview team has any bad vibe about the individual. Apathy is a no vote as well. Everyone has to agree the person is additive or we don’t bring them in. It is better to be understaffed, know our limitations, and keep the code clean than to bring in someone that will only make things worse.
PS: I just finished another phone screen. I voted him down in under 10 minutes. After he couldn’t answer the second technical question, I didn’t see any point in continuing. We did continue, but it only took another 5 minutes for everyone else on the team to agree. Thanks but no thanks.
One of the few areas where I agree with Jobs. The bozos need to go. From my experience, these people tend to be project managers, business analysts, and super-users. In other words, people who think they know how to do my job, but really don’t have a clue who to write software in an enterprise environment. I don’t know how many times I have heard “Ya know… I used to code too.” Queue the eye roll. “Really, if you were any good at it you’d still be doing it which is why you’re not programming any longer. Right?” I am PC enough to not say that out loud (yet), but I have started heckling the people that use that line on me in more subtle ways. “Ya know… That headshot makes you look like a salesman. Exactly what are you trying to sell?”
Something else I read recently in a Neal Stevenson book, Reamde:
A’s hire A’s. B’s hire C’s
Which kind of explains why we have such a hard time finding the right contractors. I wants As. I don’t want people to stroke my ego. I want people that can write kick-ass code while conforming just enough to allow their code to be supported in the long-term.
It’s even better when they can teach me something.
I’m allowed to dream. Right?
I’ve been working on a series of POC projects that all went live with little time to pay off the technical debts incurred when converting a demo app to a production app. The time is finally come to start paying off the debts. This week, I’ve been refactoring an app to be DI. Last month, I had to rewrite an app basically from scratch.
We have 4 projects in flight as of this morning. I think it is 2 web apps, a WPF dashboard, and a VSTO add-in for Excel. We released another VSTO add-in a few weeks ago. So I think we are sitting at 4 apps. It might be five, if something spun up while I wasn’t looking. I am now managing code quality for all of the developers. With the expansion of our team to 11 + 1/2, my time has gone from 80% research, 10% support, and 10% teaching to something more like 50% code reviews/teaching, 20% support, 30% research thru refactoring. <ugh/>
The single most important topic is supportability. If you are writing code that doesn’t conform the general shape and style of our other pre-existing apps, I will make you redo it. The problem is where extra person has to (re)learn an app every time we get a support call. I’m trying to reduce friction so that we can get into the code, have a good idea or what’s what without spending days trying to understand the app, then make our fix and get out. To that end, I can’t let anyone slide on code quality. I have to be a dictator about it. “You will do it my way…” I hate managing people like this, but it has to be done. The alternative is very unpleasant.
Keep in mind, we have something like 17 apps already in production. Some of that code is crap. But… There are a lot of good ideas in there too. My role is now to keep all of that previously acquired knowledge in my brain and pull it out to the betterment of the team. I do this during design meetings (a pre-coding code review), during the weekly team technical meeting, and during code reviews. Doing code reviews was not exactly what I signed up for but I’m the one who cares the most of the 3 Blues.
Hopefully, I’ll hit a good groove and find the time to write more about what I have learned in the last couple months.
I needed to take a stock XAML ‘image’ for a search icon from SyncFusion’s Metro Studio and rotate it about 75 degrees but I couldn’t use the rotate transformation code to do it because all of the required data had to be contained in the path description/geometry.
If you need a reference for how to do a normal transformation, try the Transforms Overview on MSDN.
Last year, I needed to set a logo for a new app I was developing using the ModernUI shell (CodePlex/GitHub). The logo is set in as a property of the ModernWindow as LogoData. LogoData is a raw path. So I couldn’t use anything except the XAML defined geometry to describe the logo. Continue reading Rotating a XAML object without using the Rotate Transformation