Now that a lot of the logic behind Shockey Monkey has been solidified I decided it was time to optimize the interface performance a little bit. Truth is, there is a lot of minor updating that goes on behind the scenes that should not be calling for the entire page to be reloaded. Enter AJAX.
I was talking with Pablo the other night about XHR and told him I was trying to use Script.aculo.us libraries but couldn’t really wrap my head around some of the stuff. So he showed me his blog which is tricked out with the Yahoo UI library (which I find ugly but to each his own) and explained to me how the whole thing works. Funny how its thing fall into place when someone explains it to you.
So for the past day I have been Ajax crazy trying to nail down some of the effects and events. One of my cornerstone values for Shockey Monkey is that it be lightning fast. If I have to wait to get or input data I’ll open up Notepad (used to be Outlook before 2007 started getting non-response-happy all the time). And even though its a web app I have to say that I’ve really done a good job at keeping it very lightweight and fast.
Speeding it up by slowing it down…
So the AJAX premise is that you can speed up the interface by doing partial page rendering. The smoke and mirrors of it is that in order to enable all the cool effects, events and transitions you have to load up a very hefty Javascript file (mine comes out to about 268Kb).
So yes, the partial screen rendering will be very fast because I am only loading some text into a <div> but what happens when they go from page to page? You’ve guessed it, JS reloads. Because the documents themselves change often I have a no-cache directive for the entire page meaning every time someone clicks on something that triggers the page reload the entire mountain of javascript gets pushed down. Click through four pages and you’ve pulled down over 1 Mb which would effectively make the entire web app crawl and put quite a sticker shock on the bandwidth bill at the end of the month.
Guessing the right Google search string…
There is no way that Google, Yahoo and all the other big league Web 2.0 players are constantly pushing down megs and megs of data during each session. Let’s face it, the events and effects code is in libraries which will rarely be changed so why make it take the pipe trip every time? After a little bit of searching I found a way to do selective javascript caching from Ajaxian. The answer is actually in the comments but the question is outright scary:
Our users have to download a 2MB ajax application every time they visit our website. It would be much faster if we could cache 90% of our application in the browser cache using this LRU Cache so that the next time the user visits our website, they only need to download a small 10K file!
The answer comes further down from Vasili Sviridov:
### activate mod_expires
ExpiresActive On
### Expire images and javascript 1 month from when they’re accessed
ExpiresByType text/javascript “access plus 4 weeks”
Dumping that into the .htaccess file to override default server config (hi Schrag) takes care of the problem completely. Just have to make sure you’re sending your Javascript as text/javascript and not part of your inline text/html page code and voila.
Read the whole post...
It’s been a few days since I wrote the article about the disappearance of the free community resources. The article has generated a lot of positive commentary (ok) but it has also caused a lot of people to identify themselves with some of the problems that we face and wondered what it is they can do to make sure a nurturing and professional environment exists for the long time to come (GREAT!)
So.. not a prolific public speaker? Not that much of an in-depth genius on any particular technology? Not a vendor whore? Not a social type? Standing in front of a crowd make you akward? Fear not, I have a solution for all of you.
You can still make a difference. You can contribute in so many ways and I’m about to give you a few ideas on how to go about it. The only thing you have to try (and when you do, keep on trying)
How can I contribute to the community?
Let’s start by blogging, www.wordpress.com, takes 3 minutes.
The easiest, least time consuming and least privacy intrusive way to go about participating in the global SMB community is to join the conversation. There are probably close to 100 SMB bloggers out there that in turn represent thousands of people.
Blogging is an open ended stream of consciousness, where you make your opinion and argument. Instead of an endless (and at times midnless nitpicking over details, semantics and “he said, she said”) banter you write an article about your position, link the supporting evidence and facts and the others pick up on it. They respond through comments, email, phone calls, etc.
You don’t have to be a Pulitzer winning novelist, as a matter of fact, the further you can get from that fine arts degree in writing the better. Write in the way you would talk, your audience is expecting a human not a PR or a haiku. On the other hand, its free, who cares what they are expecting - they are reading your opinion so just make it. I never even bother to run my blog posts through a spell checker. Does it make me seem like an uneducated bafoon? Maybe, but I have enough useless papers on my wall proving to the contrary and I’d rather let people hear the real me than some paraphrased, abbridged, rehersed version of what I am not. You can’t sound like an encyclopedia online and show up as Larry the Cable Guy in real life.
The biggest obstacle to blogging is what to blog about.
Writers block. Lack of inspiration. Lack of anything you feel unjustifyably passionate about. There are two easy ways to go about this.
You can either share your expertise or your experience. They are two very different things.
Sharing your expertise is the more difficult of the two, it involves you writing about something you are really good at. For example, a very technical post about the problem you recently encountered and solved. Happens on a daily basis to all of us. But there is that little voice in the back of your head saying “Will others think I’m an idiot if I post this” - I can’t help you with your self-esteem, thats a tough one. The only thing I can assure you of is that the Internet is full of idiots, and you will eventually find one that will read your “idiot” article and you will make their day by solving their problem. Hopefully, you are decent enough of a human being to be proud of your craft and proud that you can impact people. Before I started writing Vladville articles I felt many of them were common sense that everyone else knew. I wrote them just as a reference for myself, so when I’m an idiot in the future I can go back to them. Those articles, to date, have been downloaded tens of millions of times and have brought emails and comments from fellow professionals that gave me a whole new appreciation for what I do. Self actualization doesn’t come the second day your blog exists on the Internet but it will. Want an example of such a post? Check out the SBS Blog, official blog of the Microsoft SBS team. Is that simple or what? Now, ask yourself how many times they had to answer that one before Justin finally decided to sit down and document it.
Sharing experience is the easiest thing you can do. It is also a very lucrative commercial move. You are an IT Professional, you do things in IT at least a few hours a day. You patch, you back things up, you put new things into production…. talk about your experience. Remember when you had to get a job and someone asked for your resume? You tried to put together a resume based on what you currently do and what you did in the past. An experience sharing blog is the same thing, that keeps on building, indefinitely. This can also face your customers and give them an impression that they have someone that is constantly learning. It can face your employeer, show them that you’re improving. It can face the world - and represent the experiences of people you affect and reach. Again, being able to talk to your audience about what you do and about what you learn stands as the testiment to who you are and what you are about. It builds credibility. It builds character. It builds a track record.
Ok, blogs up - whats the first story?
Hopefully you already have an idea of what you want to say. Perhaps an introduction? Give your anonymous audience a picture of who you are and what you do.
Then stare at the ceiling. Something hopefully comes. If it doesn’t, turn to your calendar. Quick, whats the first IT event you’re going to. Wouldn’t your local area appreciate knowing when it is? Why not tell them why you’re going. So now that you’ve built your blog and introduced yourself to a bunch of strangers, tell them what you’re up to.
“I’m going to XYZ Tech Marathon Bootcamp on VoIP services on July 1, 2007! Hope to see you there.” Your local folks will appreciate this. The XYZ Tech Marathon guys would REALLY appreciate that. Anyone that didn’t know about this event and started researching would absolutely like to get a point of view different than the ad copy that XYZ Tech Marathon distributed. Go to the event. Meet people. Find out whats going on. Take notes. Go home. Ok, now you’re back in front of the computer - what was that event like? Who cares you may ask? Well, the people that didn’t know whether it was worth it or not and decided to stay at home. The people that wanted to go but couldn’t make it. People that lost the directions. They will all love to hear about it - so tell them. Was it good? Did it suck? Would you ever go again? What was the best thing? The worst thing? You can write about it endlessly.
Now you’re done. Post is up there - now tell your peers about it! Believe me, for something I have no knowledge of I would love a third party assessment to find out if its worth my time. You just saved me a day away from work, you also helped me decide if I must see this next time its around.
Attend a local user group
Although more resource intensive than blogging (you have to get out of the chair, shower, go somewhere) it is fullfilling on a different level because it gives you more angles than the ones presented by your monitor! I am not going to write about what you’ll see at a user group meeting or why you should go, thats for you to find out for yourself. You will NOT be disappointed.
Where do I find one? www.sbsgroups.com
Can’t find one? Well, thats easy enough, just start one! Whoa, whoa, WHOA. Wait. Wait. Stop. I did not just go from telling you that going to a social technology event easilly translates into running an organization along with all the supporting roles that come with it (”space meeting beggar, cleanup crew, presentation gatherer, main point of contact, etc”). Let’s slow it down for a bit, nobody is asking you to start a new chamber of commerce.
Instead, take your phone book. Take the few competitors, partners, associates or people you just met and single out one person you’d really like to have lunch with.
Vlad: “Hey Bob, want to go to O’Boys? I got no plans this Friday and I thought it would be cool to talk shop with someone”
Maybe Bob says no. Big deal, you’re not trying to sleep with him (if you are, this is the wrong way to go about it but thats another post altogether). More likely he’ll say yes.
This is where brilliant marketing comes into play (and I promise, this is the only time it is ever acceptable to use words “brilliant” and “marketing” in the same sentance). Call the third guy on your list.
Vlad: “Hey Rich, a few of us are getting together, we wanted to talk about this new thing thats comming out, you want to join us for lunch?”
No? Call the next guy. Yes? Awesome! Next.
Sooner or later you’ll find yourself at a lunch with a few of your acquintances talking about what you do. You’re no longer a guy (or girl) in vacuum staring at the screen, you’re now a group of like minded individuals that are there talking about the business and chosen profession and how you deal with it. You’re not showing them your business plan, you’re not giving them your customers, you’re not opening up the patent secrets that have made your company a part of Fortune 500 (lets for the sake of argument assume you’ve got a LOT to lose) - you’re just talking to people that have the same interests you do.
Hey, you like that phone?
Did you install that latest patch?
I need to find new office space…
Wonder whatever happened to McAfee?
The list goes on.
Your investment? $6 for the lunch of the first guy that said yes.
My Local Community ™
Now that you’ve got your local user group (what, you thought it would be infinitely more complex than that?) promoting it to others becomes easier. Met someone new? Invite them in.
“Oh, you don’t know about it? I think you’d really find some value in it, you should come over, its fun.”
The bigger the group, the more diversity, the more angles and opinions and experience you get. Besides, you aren’t selling them anything. You aren’t tricking them into anything. You aren’t deceiving them into something they would rather not do. Most importantly, you are not promising them anything. They can show up or not, they can open up or not, they can ignore you. Does it matter, in the long run? No. You tried to do something nice for someone, thats all that matters. And if they take you up on your offer and benefit from it - they will be thankful. What more could you ask for than another friendly professional in your space that you can now relate to (or bounce ideas off of).
The most important thing here is that you’ve tried to elevate your profession, elevate your local community to a new level of cooperation and collaboration. When it takes off its beautiful. And believe me, nobody wants to be the stubborn angry guy behind a computer screen their entire life.
Now, who should you invite over? Well, you can invite people that could benefit from it, personally. You can also invite people that can benefit from it, professionally. Know of a vendor that will be in town? Think your peers would like to meet this person that you have a great relationship with that could use some leads and your fellow ITPROs that could use someone decent to deal with? Again, everyone wins.
These are the cornerstones of the successful user group. Large, distributed and diverse group of individuals that are like minded and can appreciate some social interaction with their peers. That, hopefully, can include all of us. And thats all that builds a good…well, great group. Everyone working together and bringing little bits to the table - not one guy braindumping and playing wedding planner in his alternate universe.
Are you interesting?
Has anyone ever taken your technology advice? Why?
The nature of an engineer is to propose solutions to problems. Nearly all IT people are engineers of a sort - system, software, sales - we all live day to day to find solutions to problems, to fix things.
Think you can talk to another person about what it is you do? Think you can have a conversation with two people in a bar setting? How about a small crowd at a table? What about the packed room of people waiting for your next word?
People get afraid of this. I’ve been there, many times. It took me a long time to realize that my job as a presenter is not to be professor Vlad and to nail into people’s heads what I think they ought to know. Nobody cares about what I think.
My goal, or your responsibility, as a presenter is to get the people to think about what I am presenting. I am not lecturing, not training, not preacing. I am presenting.
Here it is. What do you think about it?
Nothing? Ok, here is what ***I*** think about it. Anyone disagree? Why do you agree with me?
I hope you can take that back if you have an irrational fobia of being in front of people. “Oh god, what if someone asks a question I don’t know an answer to?” You’re not defending your thesis, you’re trying to start a conversation - you better hope someone asks a question.
Thats the big secret.
So thats the secret to a community - everyone has to bring in a little bit. That is the big secret. When everyone brings in a little there is no dictatorial control and there is no need for one - we’re all sharing and trying to get better at what we do. Sometimes few brave individuals will take it upon them to show the others around them the value of sharing little tidbits. When those individuals are encouraged, rewarded, supported and appreciated the others start taking notice… and start leading. Leading by opening their mouth (or wallet, or powerpoint, or remote desktop section or calendar or phone call or ___) and saying “Hey, what about ‘em _____’ “
When you can only give a little bit and get a lot back, everyone benefits. It’s not a zero sum game. When nobody wants to give even a little, and rather chooses to question, direspect, refuse to support or tries to belittle those that try to lead… well, lets hope nobody ever has to find out.
I have hope for the good that can come out of people just giving a little. I hope this gets you started of giving a little bit of yourself, of your time, of your money, of your effort and of your consideration to make yourself more successful, your profession more respected, your community more vocal, yourself more represented.
It’s not about you, it’s about us.
Read the whole post...
Dave Sobel was all over System Center Essentials at last years TechEd and frankly, I dismissed it way back then as another mee-too Microsoft entry in a hot market with an offshoot of SMS/MOM crippled down to the SMB without any of the features that make SMS/MOM somewhat of a success in the enterprise. We use all of these tools to manage our Own Web Now network so I’m trying my hardest to use the words that don’t inspire confidence in these things being actual solutions to the problem.
This year I tried my hardest to attend the many System Center presentations to see the progress (still on MOM here) and what I saw justified my previous position. Don’t get me wrong, they have improved to the point at which they might kill Level Platforms, the integration of System Center Essentials into the upcoming Microsoft servers (if/what/when) might give it a little bit of attention but what I saw in these tools had clear prints of the many failed Microsoft enterprise solutions when cripled/pushed down into SMB. I watched this presentation in which the presenter tried his hardest to explain how System Center Service Manager would help the company mange its support requests. While that tool might be great for the helpdesk to fill out on behalf of the user and get it right half the time, throwing a 50 page questionaiire clearly designed by a retarded CRM developer (you know the kind, that throw every available control onto a 6 mile long page) at a user will just result in people ignoring it.
Now there is some press about SCE being used to deliver managed solutions, but the story is still the same – license System Center Operation Manager in your network and then make everyone else buy into SCE. Riiiight.
If you ask me, and we’ll pretend you did since you’re reading my blog, Microsoft lost the SMB managed space by mismanaging it for close to a decade. One half-baked idea after another, one patching nightmare after another, making product support costs shoot through the roof where you only seem to buy the application framework but are left on your own to put together the pieces and make them work togheter… those kinds of moves have made loyal Microsoft customers either make it work themselves (middleware) or go with a third party solution.
And now, moreso than at any point over the last 10 years, people are using competitive solutions that actually solve the problems. Those third party solutions for security, spam, VoIP, network management, email, etc are not going to be managed by SCE and will likely keep the third party tools in dominance. Absolutely nobody I spoke to (outside Microsoft) at TechEd was using the Edge Role on their Exchange 2007 network. Even the most devout of MVP’s had Blackberries. And don’t get me started on the circumcised Forefront (bad TechEd 2006 joke). People are buying Asterisk VoIP, they are adding Macs, they are buying Vmware, they are buying third party appliances… and Microsoft is living in a realm in which only their solutions exist and only their solutions need to be managed.
Manage that.
Read the whole post...