John Resig just created a map of the campaign so far:
Thursday, November 15, 2007
Monday, November 12, 2007
Wireshark
I just spent a few minutes playing with wireshark, and definitely want to spend more time noodling with it next time I need to understand what's happening on the wire:
Thursday, November 01, 2007
Money isn't everything
A recent economist article reviews some research McKinsey did on education, where, unsurprisingly, how schools are managed has a great deal to do with how they perform (How to be top, October 20, 2007):
- "the best performing countries do much better than the worst and ... the same countries head such league tables again and again: Canada, Finland, Japan, Singapore, South Korea."
- Schools "need to do three things: get the best teachers; get the best out of teachers; and step in when pupils start to lag behind."
My favorite part of the article was a discussion of being selective when hiring teachers (which matters a lot, as opposed to class size, which doesn't after primary school). Being selective isn't about paying people more. It's about being selective.
This is one of the critical issues in management: blinded by a simplistic view of the efficiency of markets (and so thinking that when it comes to hiring you get what you pay for), organizations fail to devote sufficient attention to being selective, which is crazy stupid. The best people are attentive with regards to money, but compensation is one factor among many. Many, for example, will reject a 50% raise in compensation that would require them to work with ineffective bores.
Singapore and Finland are extremely selective, so that in both countries "teaching is a high-status profession". Effective and high-status does not correlate with highly paid!
Anecdotally, I can confirm this with regards to the team I work on. We can't pay people extravagantly, but we can be very selective, and we are. The results are a team that is effective and has earned the respect of the various teams we collaborate with.
Thursday, October 25, 2007
Windows Live Writer
Is it ridiculously web 1.0 of me to wonder if a desktop blogging client would be worth using?
Check it out. I took a screen shot of the post I'm writing, and pasted it into the post! I love recursion.
Thursday, October 18, 2007
Mini Blogging is the new black
But mostly it just makes me feel old. Where did all of these sites come from? When? Why so many of them?
The web has clearly morphed from a place where I sort of had a sense of how technology worked and had a small sense about how it worked into yet another unfathomably large intractable human mess of activity.
The web isn't a black swan any more. It's freaking flock of swans, all flying in different directions. My head can't take it any more.
Friday, October 05, 2007
not such a nice view
He's an avid musician, and starting to look at using different music software and hardware. And he keeps tripping over the fact that he's got Vista instead of an older version of windows.
Since I work in technology, I of course don't know anybody else who'se using Vista. I guess we all know to stay away from new Microsoft operating systems for a couple of years.
Joel Spolsky, a tech writer who doesn't hate microsoft, agrees: "I've been using Vista on my home laptop since it shipped, and can say with some conviction that nobody should be using it as their primary operating system -- it simply has no redeeming merits to overcome the compatibility headaches it causes. Whenever anyone asks, my advice is to stay with Windows XP (and to purchase new systems with XP preinstalled)."
I avoided XP for a while, and now am completely happy with it. And I expect Vista to be a fine operating system when I start using it around 2009 or 2010, when all the software and peripherals I need will have worked out the rough edges.
Tuesday, September 18, 2007
closures
In the meantime, the next best thing for understanding javascript closures may be this post:
http://jibbering.com/faq/faq_notes/closures.html
I'm not ready to claim that I totally understand closures, or scope, or exactly what js objects are. But I will assert that I've read most of this page slowly and carefully, and suspect that I will be less likely to get create closures by accident or stub my toes on scope.
Baby steps!
Monday, September 10, 2007
thinking inside the box
But XP is pretty stable, so I just need to not reboot while away from the office. The kicker was that somehow my laptop has decided recently that it can't recognize my home wireless network unless I reboot when I get home. So after I came back from the office Friday, I wasn't able to get back online until I went in again this morning. Ridiculous!
Until I realized that I still have a stack of ethernet cables that would be perfectly happy to connect me to my wireless router, and then to the Internet. So here I am, 1990's style, with a 25' cable running across the living room. And it took me less than a week to remember that I had this obsolete technology available as a failover.
I don't even want to think about what I would do in a blackout. mindlessly sit at the door, flipping the light switch on and off, over and over again?
Tuesday, April 24, 2007
Thursday, April 12, 2007
addons
The new delicious toolbar from mozilla wants to take over my bookmarks. Hopefully I won't regret handing over the keys to some yahoo subsidiary:
https://addons.mozilla.org/en-US/firefox/addon/3615
Web Developer, of course, although I wonder how long until it is completely subsumed by firebug:
https://addons.mozilla.org/en-US/firefox/addon/60
Firebug. Gosh I like firebug. When I grow up, I want to be smart like Joe Hewitt.
https://addons.mozilla.org/en-US/firefox/addon/1843
I have to use greasemonkey if I want to see what Nathan's been up to:
https://addons.mozilla.org/en-US/firefox/addon/748
If you have to use FTP, doing it from firefox is nice:
https://addons.mozilla.org/en-US/firefox/addon/684
IEtab. Still trying to figure out whether or not this one is must-have. Still on the list for now:
https://addons.mozilla.org/en-US/firefox/addon/1419
Thursday, February 08, 2007
Saturday, January 06, 2007
Envy
Their answer is that basically they've done a sufficiently good job on this that asside from a couple of sign-offs from the brass they're pretty much free to do things that seem to make sense. For the latest round, it took two people 7 months to come up with requirements for a new set of designs, and that this felt like a long time.
wow.
We just updated the UE of our external site. I'd estimate it took at least an order of magnitude more human months to figure out and document what it was that we were going to do do. Not implementing a single line of code, mind you. Just deciding what it was that we were going to do: what would the new home page look like? what should our other page templates look like?
A lot of this makes sense. The brand of the company is involved. There is a lot of mission critical business on the website, with potential customers, existing customers, investors, etc... The intranet by its nature is internal, so the marketing, support, and product teams don't really want to be part of the conversation every step of the way.
How much effort should we be putting into tracking the effort we put our UE requirements and design? Are there any industry benchmarks for this kind of thing that would be relevant?
Sunday, November 19, 2006
finding includes in html
This while statement will itterate once for each time it matches a pattern for a virtual include, letting me check to see if the include is there, slurp it up, whatever:
while ($file_contents =~ m{<!--#?include\s+virtual="([^"]*)"\s*-->}gis){
# do something with $1 (a path)
}
bidi fun
<div>‮Left-to-right</div>
<div>‭Right-to-left</div>
"dir" attribute can be used to provide block or page level direction on direction of the page:
<div dir="ltr">Left-to-right</div>
<div dir="rtl">Right-to-left</div>
A good overview:
w3c tutorial: http://www.w3.org/International/tutorials/bidi-xhtml/
Friday, November 10, 2006
when you need more ports
Listen 81
Listen 82
Listen 83
Listen 84
Listen 85
<VirtualHost _default_:81>
DocumentRoot /srv/www/port_81
</VirtualHost>
<VirtualHost _default_:82>
DocumentRoot /srv/www/port_82
</VirtualHost>
<VirtualHost _default_:83>
DocumentRoot /srv/www/port_83
</VirtualHost>
<VirtualHost _default_:84>
DocumentRoot /srv/www/port_84
</VirtualHost>
<VirtualHost _default_:85>
DocumentRoot /srv/www/port_85
</VirtualHost>
Thursday, November 02, 2006
line breaks
Script works on PC but not UNIX
It took me way longer than it should of for me to figure out what's wrong with this interpreter path today:
#! /perl/bin/perl
I'd look at the line in vi. It looked fine. Then I'd go to the command line and type:
%/perl/bin/perl
which would give me the interpreter (wierd path to match where perl is on my windows box, ln'd over to /usr/bin/perl)
And eventually it dawned on me that since I'd never run this script on a unix box, it probably had PC line breaks. In the old days, I would have seen this:
#! /perl/bin/perl^M
But I guess vi or vim or whatever is on the box is smarter than it used to be. Not me though. How many times have I stubbed my toes on this?
At least I'm smart enough to use Textpad. Save As, select Unix as the file type, and I'm up and running again. In utopia, there will only be one kind of line break. That's all I'm saying.
Wednesday, November 01, 2006
perl array cheat sheet
How long is my array?
my @hw_array = ("hello","world","wassup?");
print "<br>size: ", scalar @hw_array; # 3
print "<br>size: " . @hw_array; # 3, scalar is implicit
print "<br>index of last: ", $#hw_array; # 2
At least it's not raining rotten blubber
A great way to take a meeting off on a tangent
Monday, October 30, 2006
It's the request, stupid!
As an example, here's one of the cookies on the site that I work on:
SMIDENTITY=0gzinsuUJJp+/tRSC5ZaV0WudjvPIRSZc06S2wfBFp39qMk3IbwLjlr1yo
C1MhhFxqBPclz6XDo4tClYYnoQR7ZUh5s5z8doG63QTqetXr/pFIRyEKY7wWHtZhcKj4S
Ck43mU7JuRvPhiSuVaEZC2Cfk4N01qZE47y+nfAFD/ZAwXRBraUfKzUYHl9d+uADHFcz8
pGEHPCch1+6g0LtuRuGxO+IdELXiduWUJfs6kozvBvPGqUltBYTHv2XiLwj6AN9xDdY1K
UHQ5/DX5g0OQuud8NuBGLvF7BQyfNtHqGduOGGXgkLs3+GsD2D5ro83w/WuHt/B6DMbK8
M6FEE8t7q419KMPWxngxFA5d6rP7qxAxUXQDf4blC3POGWTGMMkV/YJvd4mqayiSEPZpH
PceeZs1WZ0GAibVtm2q4f/aYyFbv4iHvYabePsU7GP4FFpUAKoavF2GqJOTa2bUc17rtO
bQcxUrdMAV3YaHA+FodiEpVWXymdj94r95deNKjYgrC64AkGyQTTcUJpsZ3cG+9x1/j2g
mK+0Dx2XI507Azr6aFcz31X2aQ+TdtMvoCnvw664BGgs4lVT7HT9ATMKkJNTNaruM8hqF
zu0Jz0lASUlguCp9NfJQDt6ar/BUMDS/516dHZgQyXh9HTBDKzi5q8LP975mPU;
Now multiply that times the 44 http requests it takes to load one our most popular pages! That's 30K worth of cookies! sweet!
Tuesday, October 24, 2006
YUI Graded Browser Support
Browser support is a nice example of a class of strategic issues that are surprisingly prevalent on web projects. This is small 's' strategy: web developers don't need to understand your business model or care about financial engineering, we just need to know which users we _must_ support, a business/technical question that will determine which browsers we need to support well, which browsers we should support on at least a rudimentary level, and which browsers we shouldn't worry about.
The standard scenario is the business owner (aka stakeholder) of a project asks for tricky functionality (and this could be something as simple as fly-down menus or precise layout of text and images on a page) and, when asked about browser support, asserts that 'all browsers' or 'all major browsers' should be supported. This is usually about ten minutes before the business owner expects to head out of the office on vacation for two weeks, and before she goes she wants a firm commitment that the project will be completed or at least well underway when she gets back.
My job is often to try to figure out how to share the unwelcome news that there are some basic business questions that need to be thought about fairly carefully in order to make sure expectations are met when the site is completed. They involve thinking about people who turn of javascript (no fly-downs), accessibility (how should keyboard navigation work? Where do we need alternate content), maybe even localization (You can bet that somewhere on the carefully laid out page, localized text just won't fit without blowing something out or wrapping in a surprising way).
And of course there's the unwelcome news that we don't plan to test on IE 5 and a number of other browsers, and that people using these are likely to have difficulty with the page in proportion to the complexity of the page.
This problem is about to get worse, not better: with IE 7, Firefox 2, Ajax, and Web 2.0 we've got a new generation of browsers, some wonderfully tricky client-side technology, and rising expectations from stakeholders as to the kind of experience we can deliver.
This means a lot more conversations ahead about which browsers we need to support and which browsers we will disregard to some extent.