Over on Sam Ruby's blog there's a link to this RSS security check page. I tried the feed out in BottomFeeder - and as expected, none of the exploits is an issue for Bf. One of the nice things about Bf is that you can subscribe to anything, and the worst thing that will happen is your reaction to the content itself :)
One of the things that I've been trying to help build over the last few years is a better, more connected Smalltalk developer community. There's been lots of help from others - Pete Hatch, in particular, deserves a lot of recognition for what he's done to enable a lot of the things I've been involved in. What have we set up?
- The Cincom Smalltalk Wiki
- The NC download site
- The Cincom Smalltalk Blogs - Michael Lucas-Smith deserves credit for prodding me to open the blog up to other people
- The Cincom Smalltalk Surveys
- The Smalltalk IRC channel - Give Pete Hatch most of the credit for this
- The Public Store
Of course, we still participate in other community forums - the VW Wiki, and comp.lang.smalltalk. None of this would have been possible without the active participation of Smalltalk Developers - we can set up all the forums we want, but it doesn't work unless people come - they have, and we are very pleased with the results. Is there anything else we should be doing? Let me know
Camp Smalltalk will be held from July 18-23 2004 in the vicinity of Portland, Oregon, USA. Camp Smalltalk is Smalltalk enthusiasts spending several days in small groups collaborating on a number of open-source projects to benefit the Smalltalk community. All Smalltalk dialects welcome.
I'll be in Australia during that entire stretch, so I'll miss it this time around.
Scoble defends XP as a stable OS. He's got a point- XP is far better in this regard than any of the previous OS efforts from MS - my machine crashes rarely. On the other hand, it does rot. What do I mean by that? Well, two things - first, the longer I run XP without a reboot, the slower and more "funky" it gets. By "funky", I mean weird things start to happen - some app windows periodically decide that they are "always on top" - even though they were never set that way. Startup time for applications gets slower in general. A reboot usually fixes those problems (at least for awhile). There's another sort of slowdown as well - over time, the OS just runs slower, period. XP is not as snappy for me now as it was a few months ago, and I haven't been installing much new software. I have no idea why this happens, but I figure I'll likely have to do a clean re-install relatively soon. At that point, I'll be really unhappy over the whole installation registration thing, since I have no idea where I put that information. Then there's the periodic need to reboot for no good reason - after some update from MS or Norton, typically. Contrast that with my Linux box, running a relatively old (RedHat 7) rev of Linux. It's been up for 266 days now (the last downtime was a power outage that outlasted my battery backup). Is it slower? No. Is X11 getting "funky"? No. I have apps that have been running for months on that box. The production server in Cincinnati (running a more recent rev of Linux) has been up for 205 days. It shouldn't be down for power reasons anymore either; there's a solid generator backing up Cincom servers now.
Here's my bottom line, having run both XP and Linux for quite awhile now - if you run production servers (I don't mean clients!) on Windows, you are just nuts. Linux is easier to patch without downtime, and doesn't need to be rebooted every few weeks "just because". Apache is a whole lot more stable than IIS, and seems to be have far fewer nasty security issues associated with it. The VW app server I use for the various services on this box runs quite nicely with either Apache or IIS - the server over on the main site used to integrate with IIS, for instance. It was much harder to deal with. When a Windows server can be remotely administered via ssh and command line tools, maybe I'll have some motivation to consider it for production systems - until then, it's just not worth the trouble.
Bruce Badger spoke at the Sydney STUG. I figure I'll run into Bruce at the STUG meeting in July.
Every so often I see people ask "Why doesn't Smalltalk have a switch statement"? The simple answer is - "we don't need one". That usually ends up with something like this:
What if I'm parsing data that comes in with numeric (etc) values, and I want to take a different action on the different values?
Here's one approach to that problem - say you are going to get integers, and you need to execute a different action on receiving each:
setupActionDictionary self actionDictionary: Dictionary new. self actionDictionary at: 1 put: #handleOne. self actionDictionary at: 2 put: #handleTwo. ...
And so on like that. So now, we can handle the receipt of the data like this:
executeActionFor: anID action := self actionDictionary at: anID ifAbsent: [#defaultAction]. self perform: action.
actionID := self getNextIdentifier. self executeActionFor: anID.
That's about it. For those of you who don't know Smalltalk, the keys in the dictionary are symbols (which can be mapped to method names). Hopefully, those names would be better than #handleOne (etc), but you get the idea.
Scoble has some more thoughts on the Tablet PC, and why we should want one. He lists some things it's better at, in his opinion:
- Sitting in coach on an airplane. Hmm. I do this a lot, and I don't see it. I typically want a keyboard when I'm flying, as I'll be responding to emails, looking at syndication items and blogging them, writing code... etc. Having just a screen has no value to me - I need the keyboard
- Computing while standing up. Hmm - I have about zero interest in that. if I wanted a computer while standing up, I'd want something small - if I can't use a keyboard, I want to be able to pull it out and put it away quickly - and that's not a Tablet
- If I need to take notes with a pen. Hmm - I prefer a legal pad for that. The screen simply isn't big enough to productively take notes on. Paper is.
Vertical markets? Yes, there are scads of those where a Tablet makes sense. I can't really see it breaking into the general PC/laptop space until the price is about the same as for a regular notebook though - for most of us, I just don't think there's a truly compelling need for a Tablet beyond the "cool" factor...
I see that Scoble is using Firefox, and the IE team at MS is unhappy about that. Well, good. They've been ignoring the rest of us for years - shoddy implementation of CSS, no tabbed support, "security" that is second to all - complacency seems to be their middle name. More power to Scoble if he can get them to have a few cups of coffee and wake the heck up...
Well, if this piece from Joel is accurate about this story, it explains a lot of the problems in Windows all by itself:
I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
If they actually do this kind of thing, it's very, very bad. Why? These kinds of awful hacks tend to add up, and the crossing of 2 or 3 (or 4 or 5) of them end up generating interesting side effects. I've walked myself into this kind of corner in various tools of my own - I did this with the Blog Posting tool awhile back (and I'm still trying to find my way out of the nasty hole that I ended up digging). These sorts of hacks seem to make sense in the short term - but they end up making for a really hard to test system - one in which a combination of hacks makes for completely unpredictable (and, from the end users perspective, essentially random) behavior. If they did this for Sim City, you have to figure that they did it elsewhere. This is just bad, and the people at MS who thought this was appropriate should be removed. This is the sort of thing that rewards bad practices - heck, it positively encourages bad practice.
I linked to this piece by Joel in my last post, but only in relation to a rant about Windows. Read the rest of it - agree or disagree (and I find it hard to disagree with his major points), it's a very thought provoking piece.
Four new holes have been discovered in the Internet Explorer (IE) Web browser that could allow malicious hackers to run attack code on Windows systems, even if those systems have installed the latest software patches from the Redmond, Washington company, security experts warn.
I picked a good time to switch to Firefox...
The real significant productivity advance we've had in programming has been from languages which manage memory for you automatically. It can be with reference counting or garbage collection; it can be Java, Lisp, Visual Basic (even 1.0), Smalltalk, or any of a number of scripting languages.
Incredibly, there's more:
Whenever you hear someone bragging about how productive their language is, they're probably getting most of that productivity from the automated memory management, even if they misattribute it.
Wow! I haven't been in the mainstream developer community since, well, never, so I've always just kind of put up with the fact that I'm different; I don't understand them, they don't understand me, but, wow!, the chasm just seems to be getting wider and deeper.
Along the same lines, I'd direct you (and Joel) over here. Have a look at what kinds of things Smalltalk enables, and then see whether you still think that GC is all there is to the productivity gap. And heck, I haven't even gotten into the quagmire of primitive data types
Now you can find out how long you'll have power in the event of a zombie takeover. I just knew that people needed to know this...
Sometimes I really wonder about the technology sector. Take a look at some of the quotes in this story, for instance:
"For Sun to have such a hold on Java seems a little silly to me," said Peter Underwood, vice president of software development at Wall Street Access, a N.Y.-based brokerage firm. "It's time to release the programming language to the open-source community", he said
"Sun makes phenomenal hardware. It has a great operating system. And it helped create a fabulous programming language," said Crowhurst, who runs a mixed Java and Microsoft shop. "But why they need to control Java, I don't understand."
Still, Java's future is assured, regardless of which way Sun heads. 1CWhatever happens, the Java standard will stay alive, 1D said Sharabu.
These people are deeply confused. Sun, like any other company, is a business. They aren't a charity - Java's goal was to drive more business to Sun (in the form of hardware sales). The end of the dot-com era, combined with an improved Windows (server) and the rise of Linux (on commodity hardware) has dealt a pretty serious blow to that strategy, and it's clear that Sun is still trying to deal with those facts. Still, why would they open source Java? Their hardware is getting less valuable every day - as time goes by, Java is becoming the most valuable asset that Sun owns. If they made it open, they would be doing a disservice to their shareholders - and ultimately, that's who Sun has to answer to - not developers. It's clear why IBM, BEA (et. al.) would like to see an open source Java. It's less clear why developers don't grasp the position Sun is in. Eventually, they are going to have to attempt to monetize their massive investment in Java. I fully expects cries of shock when that happens.
I'm starting to think that Andrew Binstock doesn't understand the basic concepts of journalism - he writes articles, but he never, ever bothers to research any of his assertions. Take this week's gem in SD Times, for instance - he goes through a long discussion of population trends, and then quotes the following:
Consequently, Siegel predicts that offshoring will accelerate and our trade deficits with the developing world will increase dramatically. The end result, he feels, is that by 2050, the U.S. will no longer be the center of economic activity worldwide. That center will consist of China and India, with the then-older U.S. occupying the same declining role in the world economy as Europe does today.
Now, population trends are not an area of expertise for me. However, unlike Andrew Binstock, I've at least heard of Google. A quick scan of Google for China, India, and population trends brought me these links:
- China's aging population
- "China faces social problems caused by a sharp increase in its aging population, and the number of people aged over 60 in China exceeded 90 million at the end of 2001, the Chinese Academy of Sciences (CAS) warned in a recent report on the issue."
- Chinese economy not keeping pace with aging population
- "Within a few decades, China may be the world's largest economy. But barring a radical shift in social policy, China is on course to age faster than any major country in history, as its median age soars from about 32 today to at least 44 in 2040. Put another way, China will get old before it gets rich."
And what about India? Well, their population is not aging as fast as China's - but they are entering the same trendline. The UN reports that this is a global phenomenon. Finally, take a look at this paper:
Certainly, rapidly shrinking populations should alter the geo-political landscape. However, an article in the August 24th -30th edition of The Economist, has called into question some fundamental assumptions regarding the balance of power in the 21st century spurred by new U.S. population forecasts.
For 50 years, the U.S., Western Europe and more recently Japan have all been lumped together as rich countries, with low and declining fertility, and increasing numbers of old people, facing the same demographic problems. However, recent statistics found something unusual in the U.S. This trend between the U.S. and other industrialized countries began to diverge in the mid-1980s. Recent census statistics have found that the population has risen faster than it was previously thought in the 1990 census in the U.S. (281 million vs. 275 million) and the fertility rate is rising.
Someone hand this clown the url for Google, and show him how to use it before he writes again...
Yeah, sure. On an ideal network connection with low latency, maybe. Unless you cache that dictionary locally, performance is going to suck eggs way, way too often. Some of his other wishlist items are unlikely for a variety of reasons...
I got a laugh out of this post from Tim Bray:
Going through a bunch of source-code files and and, one by one, removing the dozens of print statements that let you focus in tighter and tighter and tighter on a really obscure problem until you could finally see it. Debuggers are OK, but when the going gets tough, the tough use print.
Uh huh. The "tough" use print statements, the smart grab a better set of tools. Print level debugging is just so 70's....
Ted Leung points to some debugging tools that give Python some of the power of Smalltalk.
We went to a local watering hole for a trivia game last night (we were awful) - so I thought I'd post two questions from the game. We blew one, got the second one mostly correct:
- Rank by age, oldest to youngest: Latoya Jackson, John Goodman, Howard Stern
- Name the four countries with the largest amount of reefs in their territorial waters - where countries includes all the possessions/territories of those countries
We blew the last question - getting it right would have gotten us 5th place (instead of the last place we ended up with). We got 3 of the four in the second question. I'll post answers in the comments later today
- Goodman, Stern, Jackson
- Indonesia, France, Phillipines, Australia
Sorry the answers were late!
Here's something you probably didn't expect to see - myself, Alan Knight, and Eliot Miranda (along with Tom Nies, Kim Thomas, Georg Heeg, Andrew Ignatow, Claude Poole, and Philippe Rouas) in suits. Oh, the humanity!
From left to right: Kim, Jim, Claude, Georg, Tom, Philippe, Alan, Andrew, Eliot
This story on WiFi access at airports is fascinating - it sounds to me like it'll be a bouncy ride over the next few years as some of these early deals die from the absurd fees companies are paying airports:
A couple of interesting tidbits emerge about airline deals, too, that might explain why AT&T Wireless charges $70 per month for unlimited access to their Wi-Fi network, including $10 per day for airport usage: they pay Denver International Airport $250,000 per month or $3 million per year for the right to operate the network. Nokia built the network and paid DIA fees until they could exit, and turn off the business to an operator.
This reminds me of dot-com silliness...
I pointed to a Python debugger post from Ted Leung this morning (here). In the comments, I was asked to post an image of a Smalltalk debugger in the middle of a sort. So, I slapped this code down in a workspace:
| items |
items := RSSFeedManager default getAllMyFeeds first items.
items asSortedCollection: [:a :b | a title <= b title].
Then I hit the "debug it" menu option, and got the following debugger:
Now, what does that stuff mean? Well, the top pane is the stack - the reason you see "UndefinedObject>>unboundMethod in there is that I executed the code out of a workspace - in other words, the code is not attached to any particular class. Incidentally, the VW Web Toolkit uses this feature to execute SSP code on a web page. Moving on, the code pane is below the context stack, and there's a toolbar at the top (with tooltips). Below the code pane are basic inspectors - for instance variables on the left, temps and method arguments on the right. Double clicking on any of them will yield a full inspector. You can move up and down the stack, inspecting things, executing code (possibly into new debuggers), and re-compile arbitrary methods - rewinding the stack to that point. Very cool stuff - and it's why you don't tend to see Smalltalkers getting excited about "modern" debuggers in other languages with (subsets) of this capability...
Phil Ringnalda points out how bad actors using popups have spoiled it for the rest of us. Yes, there were negative consequences to the spread of popup blockers....
For those of us with school age kids, summer doesn't really start until school is out. School ended for my daughter last week - so that must mean it's summer :) We actually have a different summer schedule than a lot of the parents around here. I (mostly) work from home, and my wife has a pretty flexible schedule. So, we don't sign our daughter up for camp all summer long. She attends one camp this summer - "Camp of the Arts" in Columbia. It's a pretty cool camp - they teach dance, and music, some craft work - and they put on a play. The kids work for the entire 3 weeks on learning their lines, making their costumes, and building the sets. At the end of it all, they put on the show to a packed auditorium (two days in a row). It's a great time - we love it, our daughter loves it. She's been going for 3 years now, and everyone looks forward to it.
- Too many posts. He's using drag/drop to dump items he finds of interest, but doesn't want to take the time to actually blog. He's dropping dozens of things this way every day. It's a veritable flood
- Worse, most of them are just bare links with a single word - More.. A handful are partial content. This is just irritating.
I've just unscubscribed from the blasted thing. It's too many items, with no real way to tell if any of them are truly interesting. I can't read them in BottomFeeder immediately, because they are partial (or no) content. Throwing every possible thing you find to be of interest in a minimal link is not only useless, it's aggravating. Scoble's normal blog often acts as a good link blog - he posts things of interest with a small summary quite frequently, and I can tell from his summary whether the linked item is of interest to me - in this regard, Scoble is to the tech sector what Instapundit is to politics - a quick summary of items that may be of interest. The link blog just doesn't work that way. My advice - stop doing it, and go back to concentrating on being a real filter.
The whole exercise is an example of an all too common problem in the IT field - an attempt to find a technical solution to a problem that simply cannot be solved by technology alone.
This post from BitWorking is everything you need to know about XML in one easy package. Here's what I mean:
When I tried to load it into an XML parser it failed to load. As it turns out the file was riddled with character set encoding problems, in particular quote marks. After much hand tweaking I finally have it in shape where a real XML parser can open in up. Now I can get on with the job of importing the data into pyblosxom. It isn't supposed to be this hard.
The real value of XML is interop and the currency of that interop is syntax as expressed in the term "well-formed".
I love this theory from the XML crowd. The theory being, "If only all XML data were well formed, our parsers would work". Well, deal with reality - not all XML will be well formed. Ever. There will always be crap out there. Some of it will be crap that people want to read. So, do you do what the advocates say - auto-reject the bad stuff and keep your parser "pure"? Or do what a sensible person does - have your parser deal with errors gracefully (logging them in some fashion so that you have a shot at notifying the producer) and moving on? The Atom advocates are still in the navel gazing phase of imagining a perfect world of all well formed XML. The rest of us who live in the real world have accepted the reality of bad content and moved on.
Ed Foster posts a gripe about support, "hidden" information, and sales pitches:
"I don't mind them selling supplies for their printer," concludes the reader. "Had I needed toner I may have bought it from them, if the pricing was competitive. But what I do mind is the withholding of a simple piece of information to make the user call in, and using that in combination with sales to try to turn tech support from an expense into a profit center. It was like a longer, real time version of spam that I had to sit through for 10 minutes to find out how to reset the printer. Is this where free tech support is headed?"
This could be a company trying to monetize support. It could also be a company where the support group has grown tired of trying to get the web people to update their site in a timely fashion, and is trying to route around the damage. From the outside, it looks like the former; there's simply no way to tell. I get the sneaking suspicion that lots of companies have communication issues between groups though...
I've posted a new Cincom Smalltalk survey - the topic this time is projects - size, scope, type. Let us know how you are using Smalltalk!
Dan Gillmor makes some good points about the proliferation of cameras - and their increasingly small sizes:
What's the alternative, anyway? When cameras disappear into shirt buttons, will companies force visitors to undergo detailed searches or ask them to strip and put on different clothes? Now there's a way to welcome your customers.
The implications of cameras everywhere -- especially cameras connected to networks -- go far beyond this. Imagine how events of the past would have looked had tomorrow's technology been available at the time.
This is the sort of thing that must be causing security officers - both government and corporate - to lose sleep. How are they going to deal with the massive increase in storage capability in small devices, and the increasingly small form factors of cameras and video equipment? It's a new world out there, and "always on" surveillance - professional and personal - is going to be a part of it....
Sci Fi Wire reports that the Star Trek Universe might have a shot at decent writers - Straczynski (Babylon 5) is pitching ideas for a Star Trek series. Straczynski can actually write - unlike the the utter bozos they currently have involved. It would be so nice to learn that Berman was exiled and Straczynski was in....
I'll be working from an undisclosed location in Florida this week - within walking distance of the Atlantic. All I need to find out is whether there's open WiFi overlooking the ocean....
Alan Kay has won the Kyoto Prize for his work on Smalltalk. He won a few other prestigious awards recently as well:
Earlier this month, Kay received the 2003 Turing Award from the Association for Computing Machinery for his breakthrough concepts on personal computing and for leading the team that invented Smalltalk, the first complete dynamic object-oriented programming language. The Turing Award, considered the "Nobel Prize of Computing," carries a $100,000 prize, with funding provided by Intel Corp.
In February, Kay won the National Academy of Engineering's 2004 Charles Stark Draper Prize along with three colleagues for their 1970s work at Xerox's Palo Alto Research Center. The team, credited with creating the first practical networked personal computer, included Kay, Robert W. Taylor, Butler W. Lampson and Charles P. Thacker. The prize, given to an engineer whose accomplishment has significantly impacted society, included a $500,000 cash award.
All these awards... almost as if Smalltalk represents a big leap forward or something :)
Blaine Buxton announces the next STUG meeting in Omaha:
Alright, I've got YET another exciting speaker lined up for the Smalltalk User's Group Meeting here in good ole Omaha! This time it is Alan Wostenberg and he will be talking about XP Swiki. Again, I hate to sound like a fanboy, but the XP Swiki aims to be a super cool new tool for XP teams! The meeting will be June 29, 7:00pm-8:00pm at the Abraham's Library Conference Room. I hope to see EVERY SMALLTALKER in OMAHA there! And hey, if you've been curious about what all the fuss is, come on down and we'll be glad to show you. Yes, that means if you don't know Smalltalk, you're invited too!
XPSwiki is an open source web tool for eXtreme Programming teams. It supports those XP practices related to requirements gathering and project management - user stories and the planning game.
XPSwiki is based on Swiki, the Squeak Wiki technology. It aims to be an agile and user friendly tool which adapts itself to your development process.
Looks like Blaine has kick started this group pretty well!
Patrick Logan makes an interesting point about Longhorn and the related set of technologies - MS has chosen to make a break with the current platform:
The interesting aspect of this issue is exactly that Microsoft has avoided inflection points of this magnitude so far, but with Longhorn they are *creating* their own inflection point. Let's just watch how they play this out; Longhorn is probably more interesting from a business sense than from a technical sense.
It's going to be interesting to see how this plays out - it seems to me that MS is betting on a reaction similar to the DOS/Windows 3.1 play - they hope that LongHorn will be seen as the place to be, and that anyone on older technologies will be left behind. I'm not entirely certain that it will work out that way this time around - one could easily have called the entire PC space an "early adopter" space circa the early 90's; it's not like that anymore. We are well down the mature market road at this point - witness the difficulties MS is having getting people to move from Win95, Win 98, and NT 4 to Win2K and XP. In theory, that should be a very much easier sell. The fact that it's been a tough road shows you that MS can't just shout "jump" and expect everyone to echo "how high?" It's a different market - one in which there's a real chance for competitors to horn in. If the perceived migration cost to LongHorn is high, then Mac OS X and Linux are going to get real evaluations.
Finally - mail providers are going to start dealing with spam-bots:
Consumers who allow their infected computers to send out millions of "spam" messages could be unplugged from the Internet under a proposal released on Tuesday by six large e-mail providers.
That will get the affected people to notice, an contact their ISP's - an then hopefully, get the problem systems cleane up.
Travis shows us how to customize dictionaries - and in the process, demonstrates a methodology for customizing any search function in Smalltalk. It's a great primer on the interplay between comparing and hashing in the base collection libraries.
I see a fair bit of this kind of post:
You won't believe this, but just spent quite a bit of time writing a reply to Joel Spolsky's article about Microsoft losing the API war, and my browser refreshed for some reason and the darn thing went away.
It always surprises me though. Browser sessions time out - it's in their nature. There are scads of client blog posting tools out there. Heck, I bundle a simple posting tool with BottomFeeder specifically because of the problems I use to have with browser sessions.
d2r makes an excellent point about the net - the packet switching layer may be nearly invulnerable, but that says very little about the parts of the net that we actually care about as users. Witness the Akamai outage from a few days ago - in some quarters, it wreaked havoc. He goes on to point out that we do, in fact, have some centralized services which offer something close to "single" points of failure:
Take DNS. Originally, name resolution ocurred by matching names against the contents of the local hosts table (stored in /etc/hosts) and when a new host was added a new hosts table was propagated across the participating hosts. Eventually, this process became impossible, since hosts were being added too fast. This led, in the 80s, to the development of DNS, which eventually became the standard.
DNS, however, is a highly centralized system, and it was designed for a network a couple of orders of magnitude smaller than what we have today. The fact that it does work today is more a credit to sheer engineering prowess in implementation, rather than design, although the design was clearly excellent for its time.
Even today, if the root Internet clusters (those that serve the root domains) where to be seriously compromised), the Internet would last about a week until most of the cached DNS mappings expired. And then we'd all be back to typing IP numbers.
And there have been attacks on the root DNS servers. If I wasn't typing this at 30,000 feet, I'd have a ref hany from Google (and just imagine the search havoc if that service got hit). We rely on a number of centralize services on the net - and losing some of them would cause real problems. Something to ponder....
Here's an interesting item on hiring. You see a lot of job postings asking for 3 (or 5, etc) years of experience with a specific programming language. You'll also hear managers say "I can't bring in technology X; where would I find developers?" Smalltalk (and other niche language) advocates get this a lot. The funny thing is, it's a silly prejudice. Developers will tell you that they can pick up a new language quickly (if that wasn't true, then neither Java nor C# ever would ever have taken off). The hard thing to learn is the specific domain that the developer will be working in - and that almost always seems to be a secondary concern on the hiring managers - they focus on the irrelevant, and ignore the important. Here's what hiring managers ought to do:
You want to know how to hire a programmer - don't even bother with technical questions in the first interview; have them write a one-page essay (preferably at home, using their choice of tools). Too many spelling errors - no hire; they will write bugs and not fix them. Monolithic block of text without paragraphs - no hire; they won't structure their programs. No introduction or conclusion - no hire; they won't know how to start or finish.
On the other hand, if you see a proper logical flow, maybe even a main title and section headings, and if there's a single coherent story being told - grab' em. Do hit them with a technical challenge, it is programming skill you're after - but you have a much better shot at a good programmer if they can write well to start with.
In other workds, look for good skills that will cross domains - because those will stand you in good stead no matter what comes down the pike. Focusing on a transient technical issue is probably the worst thing you can do.
Software to enforce DRM on the new Beastie Boys CD has caused a bit of a stir as it installs silently and at least under MacOS, doesn't seem to provide an uninstall tool. I'm apparently not the only one who didn't know CDs were trying to enforce DRM this way.
Just what I want - crapware that refuses to leave...
Eric Sink lays out the problems with the "elevator speech" - it's too long:
The Law of Focus would insist that a 25 word description is about 24 words too many.
The Law of Focus demands that we explain our product in one word. Ries and Trout say, "No matter how complicated the product, no matter how complicated the needs of the market, it's always better to focus on one word or benefit than two or three or four."
Probably the best example he gives is the Sprint/Verizon competition in wireless. Sprint pushes one concept - Clarity. Verizon pushes one also - Coverage. Think of their ads - they all focus on this one point. Are there other benefits these vendors offer? Sure, but they want a simple message.
This is where a lot of us go wrong in the market. We come up with white papers, and bulleted lists, and all of the stock marketing stuff - but none of it sticks like the simple messages above. That's what we need to do with Smalltalk - boil it down to a simple direct phrase and/or word, and then relentlessly push that. Right now, we baffle people by getting bogged down in static vs. dynamic, or any of a number of other extraneous arguments. Eric's right - we need Focus
So I arrived down here at my parent's house in Florida. They were having network problems - it turned out tobe nothing more complicated than a bad cable. After we figured that out, my machine refused to see the network. I tried ipconfig /renew. I tried rebooting. Then I took a close look at the IP address. For some reason, my machine was trying to use the IP address it had been issued the last time I connected to the Cincom network in Cincinnati! This, even though I had:
- Rebooted twice
- Disconnected and reconnected the wire
- Used ipconfig /renew
The reboots alone should have cleared it, but no..... Finally, I tried the following:
- ipconfig /release
- ipconfig /renew
After the second reboot. That finally worked. Now, I'm no fan of Linux on the desktop, but - had this been Linux, I could have gone into the appropriate rc directory and typed ./network restart - and it all would have worked. So anyone want to explain to me why two reboots didn't clear the stupid network settings?