A classic: Eric Steven Raymond's The Cathedral and the Bazaar.
Joel comments on the awfully large .NET runtime: "So Microsoft, wake up, get us some nice 1950s-era linker technology, and let me make a single EXE that runs on any computer with Win 98 or later and no other external dependencies. Otherwise .NET is fatally flawed for consumer, downloaded software."
An interesting variation of the Wiki theme: "Confluence is a knowledge management tool designed to make it easy for a team to share information with each other, and with the world."
Fun with PHP - Nitesh Dhanjani: "In the process of auditing web applications for security flaws, I will also present a PHP script that will act as a web proxy server, allowing us to intercept and alter HTTP requests between the web browser and the target web server. As we will see, this PHP script will aid us tremendously in testing for security flaws."
Jon Udell: "Email is where most of our contextual information is created and exchanged, but where none of XML's contextual power is brought to bear. Here, by the way, Microsoft completely dropped the ball. The only Office 2003 application in which users can't create and use XML content is Outlook. But that's precisely where the need is greatest. Every day we ask questions about who said what, to whom, in reference to what, in response to whom. Because none of our routine written communication is well-formed, we fall back on decades-old search and navigation strategies in order to find things. And what we find is typically a mess. It's amazing to watch a highly-paid professional spending billable time trying to untangle what we like call an "email thread," but what's really just a patchwork quilt of mangled fragments with no discernible order, structure, or attribution."
An interview with Ward Cunningham:
"I actually enjoy complexity that's empowering. If it challenges me, the complexity is very pleasant. But sometimes I must deal with complexity that's disempowering. The effort I invest to understand that complexity is tedious work. It doesn't add anything to my abilities.
A friend of mine once said that there are problems and there are difficulties. A problem is something you savor. You say, "Well that's an interesting problem. Let me think about that problem a while." You enjoy thinking about it, because when you find the solution to the problem, it's enlightening.
And then there are difficulties. Computers are famous for difficulties. A difficulty is just a blockage from progress. You have to try a lot of things. When you finally find what works, it doesn't tell you a thing. It won't be the same tomorrow. Getting the computer to work is so often dealing with difficulties.
The complexity that we despise is the complexity that leads to difficulty."
You don't have to love everything Microsoft, but it's great that they make Windows Media Encoder 9 available for free.
Jon Udell: "Software companies bring in new users, capture their interactions with software on video, and make developers watch the videos. I've been on the receiving end of that treatment; it's painful. [...] Windows Media Encoder, coupled with blog technology, does enable anyone to spontaneously capture and post a screen video that can teach other users about an application, and/or to provide compelling feedback to the developer. [...] One final point for developers: try narrating a video of your own software sometime. It's humbling."
Rick Jelliffe: "At the moment, the web uses an ad hoc mix of defaults (ASCII for pre-90s standards, ISO 8859-1 for early 90s standards, UTF-8 for recent standards), out-of-data headers (such as MIME headers), voluntary in-data signals (such as HTML's meta tag), magic numbers (such as XML's encoding header), browser and server settings, hidden attributes (such as on HTML forms) and guesswork (such as browsers often use). This is rubber-banded together in a nebulous hierarchy that some labels, defaults, etc. could be trusted in preference to other labels, defaults, etc."
Adam Trachtenberg at ONLamp.com: "This article shows how to use SimpleXML to read an XML file, parse the results into a useful form, and query the document with XPath. I use RSS for the examples, since some versions of RSS are nice and easy. Then there's RSS 1.0. It uses RDF, multiple namespaces, and defines a default namespace for its elements. (Not so nice and easy.)"
To do: Test apd, the advanced PHP debugger.
Here's a nice article on using APD: PHP Freaks: Profiling PHP's Performance
Sounds like something I should check out: "XSH is a fast and powerfull command-line XML editor. It may be used to query and modify XML documents. XSH may be used either interactivelly or for off-line processing (like bash). XPath expressions are used to select parts of XML document to be processed."
I never thought of it this way, but of course Tim Bray is right in saying that There's No Such Thing as a Web Site: "The technology that makes the Web go doesn't have any built-in notion of a "site" or a "home page", even though that's how people think about things."
Here's his follow-up post, in which he is proposing a new HTTP "Website:" header.
Jon Udell struggles with Java APIs - I agree that dynamic languages (Python and PHP) are just so much easier to use:
"This weekend, I was working with the Java API to Sleepycat's Berkeley DB XML, and it felt like one of those bad dreams in which you're slogging through molasses toward an ever-receding goal. I switched to Jython and quickly got the job done. And it was the same job (indexing and searching content) using the same engine (Berkeley DB XML).
Of course the even better solution was native Python bound to DB XML, a combination that is not so easy to materialize. When I finally got that working, things really started to cook."
Jakob Nielsen's Ten Steps for Cleaning Up Information Pollution:
- 1. Don't check your email all the time.
- 2. Don't use "reply to all" when responding to email.
- 3. Write informative subject lines for your email messages.
- 4. Create a special email address for personal messages and newsletters.
- 5. Write short.
- 6. Avoid IM unless real-time interaction will truly add value to the communication.
- 7. Answer common customer questions on your website using clear and concise language.
- 8. User test your intranet.
- 9. Don't circulate internal email to all employees; instead put the information on the intranet.
- 10. Establish a company culture in which it's okay not to respond to email immediately.
Still wondering what's the best way to read weblogs and news. Today, it's hard to find a website that doesn't provide a RSS feed (although I'm missing one on entwickler.com), so I just have to choose the right software that lets me read that feed. Sounds easy?
I'm currently testing FeedDemon, which is great Windows software, but I'd be paying a lot of money (25 €) for features I won't use - Watches, News Bins, and the embedded browser (it's an Internet Explorer, which I refuse to use because of its numerous security holes).
Compared to FeedDemon, NewsMonster is quite ugly, handles the read/unread flag less clever, and does not allow per-feed intervals for RSS fetching.
I'll have to look further, it seems.
After all, I do sympathize with the server-side approach - not with RSS aggregators that create ugly HTML pages, but with the old NNTP newsgroup protocol that was specifically designed for distributing and reading news a very long time ago. Most e-mail clients (like Mozilla, which I'm using) have built-in support for newsgroups. Software like nntp//rss does convert RSS to NNTP, but I'd rather have a PHP solution...
"There has been a lot of buzz in the past few years about using the Lightweight Directory Access Protocol (LDAP) for centralizing system and network information, providing cross-platform user account databases, and even for creating a single repository of printer definitions and configuration information. All of these uses are truly incredible, and they only go to show you the level of flexibility available with LDAP. Most of these examples neglect an important and obvious example--using LDAP for a company-wide address book."
It explains the history and pros and cons of text-based data file formats like CSV, RFC 822, XML, and INI.
Tim Bray: "There's a real interesting note from Campbell and Swigart lamenting the fact that, down in the coding trenches, the worlds of objects and of RDBMSes and of XML are far from unified, and that attempts in that direction have been less than enthralling. I think we just have to get used to it, and from here on in, the practice of software engineering is a three-legged discipline."
Here's Jakob Nielsen's list:
- 1. Unclear Statement of Purpose
- 2. New URLs for Archived Content
- 3. Undated Content
- 4. Small Thumbnail Images of Big, Detailed Photos
- 5. Overly detailed ALT Text
- 6. No "What-If" Support
- 7. Long Lists that Can't Be Winnowed by Attributes
- 8. Products Sorted Only by Brand
- 9. Overly Restrictive Form Entry
- 10. Pages That Link to Themselves