Entries classified under coding


Python Metadata Importer
- A Spotlight Plugin that imports and indexes Python source code. w00t!
To links coding python osx mac ... on Wed 05/25/05 at 08:24 PM
Drowning in the koolaid
- "Just remember that the next time you use one of the mainstream languages - many of the "features" were designed with the idea in mind that you, the developer, are a moron."
Okay, James Gosling isn't really this ignorant...
- Yes he *is*! He seems to not understand even fundamental F/OSS licensing concepts and always throws up that same "Open Source = everyone can check in anything" strawman.
To links dumb java foss coding bullshit ... on Wed 05/18/05 at 01:30 PM
Why's (Poignant) Guide to Ruby
- Holy crap this is the coolest language book I've ever seen. No seriously, you have to flip through the chapters - there's regular comic strips and other crazy non-sense.
Not Elegant?
- Patrick Logan calls bullshit on a BUILDER.COM article on "scripting languages"... Quick list dynamic language misconceptions: inelegant, fragile, unprofessional, only used by monkeys..

Why RedMonk Must Succeed

If you're wondering what tech analyst firms will look like in the future, take a peek at RedMonk. That's a link to their company page but let's face it, faceless corporate pages suck so here's where you should really be going:

And here's why:

We support our subscribers by tailoring our analysis to their needs, helping them understand a world that is changing ludicrously fast, with insights, contexts, and narratives, rather than trying to sell them a place on a quadrant or a pay for play research note, or a library of research they will never read.

Anyone that has worked at a company whose strategy is driven by Gartner magic quadrants instead of customer demand will understand why RedMonk is important.

So how is RedMonk doing financially? I don't know. What I do know is that my aspirations for providing competent and honest technical innovation to solve real problems relies heavily on their model of providing competent and honest analysis being successful somehow.

To weblog coding ramblings tech ... on Thu 05/12/05 at 01:58 PM

Well, this is what I do.
- Sick.
To links pilgrim coding greasemonkey ... on Wed 05/11/05 at 10:59 PM
Typo - Weblog package atop Rails
- I'm going to see about moving my weblog to this..
Ruby Standard Library Documentation
To links ruby coding reference ... on Tue 05/10/05 at 08:03 PM
Ruby Class and Library Reference
To links ruby reference coding ... on Tue 05/10/05 at 08:02 PM
how i implemented tags: a de-normalized approach
- I may be needing this in a bit...
Python Challenge
- Weird game that uses facets of the web as pieces of riddles. Kind of spooky.
To links python game weird coding ... on Tue 05/03/05 at 05:12 PM

Such precision

Bill de hÓra's recent piece makes an interesting connection between two waffling technologies - Semantic Web and Web Services:

The case of the DL and ontology world coming to the Semantic Web and worrying over queries that will blow up in the engines is much like the case of the enterprise world coming to the Web worrying over type systems and discovery languages. The likeness is not fleeting - both the Semantic Web and Web Services advocates have been busy building competing technology stacks in the last decade. They have valid points and good technology but the need or demand for such precision in the Web context has been overestimated.

This reminded of an excellent yet rarely cited piece by Cory Doctorow published by O'Reilly in late 2001 entitled The Carpet Baggers Go Home:

The Internet is unpredictable. It's non-goddamned-deterministic.

...

The Internet is full of fantastically useful and frustratingly unavailable services, from the elegant simplicty of Weblogs.com's XML-RPC interface that accepts a URL and a link-title and shoves 'em on top of the stack of recently updated sites, to the unaffiliated public CVS servers that pock the Internet like so much acne. They work well enough, on average, and if they were all to fail suddenly and at once, the Internet would kind of suck until they came back online. But there are enough of these little tools, enough ways of finding and manipulating information, that users can interpret unreliability as damage and route around it, finding alternate means of communicating and being communicated at.

...

The next generation of Internet entrepreneurs will be people who understand this. They'll be working to provide unreliable services that work in concert with other unreliable services to provide a service that works on average, but not predictably at any given moment. They'll challenge the received wisdom that customers are hothouse flowers, expensive to acquire and prone to wilting at the first sign of trouble. These entrepreneurs will build services that are so compelling that they'll be indispensable, worth using even if the service flakes out when you want it the most.

And Clay Shirky:

Much of the proposed value of the Semantic Web is coming, but it is not coming because of the Semantic Web. The amount of meta-data we generate is increasing dramatically, and it is being exposed for consumption by machines as well as, or instead of, people. But it is being designed a bit at a time, out of self-interest and without regard for global ontology. It is also being adopted piecemeal, and it will bring with it with all the incompatibilities and complexities that implies. There are significant disadvantages to this process relative to the shining vision of the Semantic Web, but the big advantage of this bottom-up design and adoption is that it is actually working now.

And even Richard P. Gabriel:

From 1984 until 1994 I had a Lisp company called "Lucid, Inc." In 1989 it was clear that the Lisp business was not going well, partly because the AI companies were floundering and partly because those AI companies were starting to blame Lisp and its implementations for the failures of AI. One day in Spring 1989, I was sitting out on the Lucid porch with some of the hackers, and someone asked me why I thought people believed C and Unix were better than Lisp. I jokingly answered, "because, well, worse is better." We laughed over it for a while as I tried to make up an argument for why something clearly lousy could be good.


Google Search: programming language
- How cool is this?
To links coding python web google ... on Fri 04/29/05 at 03:28 PM

Why I love Sean McGrath

Sean

Mr. McGrath is looking for a few good docheads (oxymoron, <ducks>) for an upcoming project. Experience in working with massive amounts of content a must, yadda yadda yadda.. But here's why I love Sean: he doesn't hire people (yes, docheads are people too) without the following qualification:

If you cannot think of 3 good reasons why dynamically typed programming languages have a role to play in this universe, you don't want the job.


The wrong end of the telescope?
- You'll have to excuse my ego linking but having Udell point to you is like have Carson ask you onto the Tonight Show.
To links udell rest http cool coding ... on Thu 04/28/05 at 07:32 AM
JavaScript Reference
- Decent javascript reference. I really like the format but the cards are images so you can't use your browser's find to locate stuff...
Checked Exceptions are Fundamentally Flawed
- It's a shame Java doesn't have higher order functions and it's a good thing Java doesn't higher order functions.
To links java coding lisp ... on Fri 04/22/05 at 11:32 PM

On HTTP Abuse

There's been a lot of good discussion around Udell's End HTTP abuse article. We need to get this figured out because it's almost embarrassing to be an advocate of standard approaches to building web applications when something as fundamental as the correct use of HTTP GET is butchered so often. Unfortunately, misuse of HTTP GET is just the tip of the iceberg. There's a whole slew of HTTP abuse going on out there (often in the form of neglect) that can be laid at the footstep of two parties: frameworks and evangelists. The frameworks suck and the evangelists aren't trying hard enough (I consider myself in both camps, btw).

The small community that is coalescing around REST/HTTP should prioritize the following objectives above anything else at this point:

  1. Raise awareness of what HTTP is capable of.
  2. Fix the tools.

HTTP Kicks Ass

We need to raise awareness of what HTTP is really about. If you're reading and understanding this, then you've likely had the Ah-ha moment based on the realization that HTTP isn't just a beat up old protocol for transferring files from a web server to browsers (if you haven't, read this); but this understanding is not common. The large majority of smart technical people believe that HTTP is legacy technology: an old protocol, maybe a step above gopher, that has somehow hung around through the years. Something to be dealt with, not taken advantage of. We need to show how limiting this mind-set is.

Many of us were first introduced to the true capabilities of HTTP via the REST architectural style. If you were like me, Mark or Paul (or both at the same time) forcefully induced the REST epiphany on you against your will and then you went and re-read RFC 2616 while slapping yourself on the forehead repeatedly. The correlation between the architectural concepts described in Roy's thesis and the implementation semantics described in the RFC were clear as a bell. HTTP was no longer a simple mechanism for exposing a directory of files and executable processes to a browser, it was the essence of web architecture.

Here's the thing though: most people don't read RFC's! They hate RFCs. Reading RFCs ranks close to doing taxes for most people. The only thing worse than reading RFCs is reading PhD thesis'.

The evangelist needs to reach these people somehow and I really don't think it's going to be through describing the architectural concepts of REST so much as it will be through describing the here's-what-you-can-do-right-now-in-the-real-world benefits of HTTP. It's a fine line, I know, but I think it's important.

How do we give people the Ah-ha! without requiring that they read a thesis and an RFC?

A Three Legged Dog

I look at what Zeldman, Meyer, and others are accomplishing with the Designing with Web Standards movement and it seems a good model. They emphasis the correct use of standard CSS, (X)HTML, and DOM scripting (the three legged stool) to achieve enormous benefits over proprietary web design techniques. They have books and a cluster of weblogs that show designers how to reap the rewards of this system. It's been a smashing success and is only gaining traction.

Three Legged Dog

Can we take a page from their book? In my opinion, we're just as entitled to the phrase Designing with Web Standards as they are. We have a three legged stool too: HTTP, URIs, and XML. Except our stool is more like a three legged dog - you can get around but it is not quite optimal. Why is this?

My feeling is that we haven't done a good enough job of showing examples of what the correct use of HTTP, URIs, and XML looks like in the real world. Joe Gregorio's excellent column aside, there just is not a lot of here's-how-you-get-shit-done-with-http type content available on the web, led alone books or magazine articles. We're amazingly talented at pointing out when something is being done wrong (e.g. WS-*, non-safe/idempotent GET, incorrect charset, etc.) but we suck at showing how to do it right in the first place.

(Here's some more pictures of three legged dogs because three legged dogs are the shit.)

To Hell With Bad Web Frameworks

Why are we having such a hard time showing correct use of HTTP and URIs? Because our tools suck. How are we suppose to show how to use HTTP and URIs properly when the tools and frameworks actively discourage practicing standards? Our incessant ranting on correct use of web technology is filed by many into the not living in the real world drawer. We're assholes.

In many ways this is the same battle that the Designing with Web Standards crowd has been fighting with their tools - the browsers. How can you preach standard use of (X)HTML, DOM, and CSS when the browsers have such poor support for them? Those guys drew a line and said To Hell With Bad Browsers and it's paying off. I think we need to take on a similar attitude and start expecting more from our web frameworks.

Every web framework I've ever worked with (Apache, CGI, Java Servlets, Quixote, Webware, Ruby on Rails, PHP, ASP.NET, CherryPy) were extremely limited in their support for the full set of capabilities provided by HTTP.

For instance, which frameworks ...

  • ... help implement content negotiation properly?

  • ... provide facilities for implementing a smart caching strategy for dynamic content? (proper use of If-Modified-Since, Expires, Cache-Control, etc.)

  • ... make dealing with media types easy?

  • ... make dealing with character encodings easy?

  • ... encourage the use of standard HTTP authentication schemes?

  • ... have a sane mechanism for attaching different behavior to different verbs for a single resource?

  • ... help ensure that URIs stay cool?

  • ... make dealing with transfer encodings (gzip, compress, etc.) easy?

  • ... help you use response status codes properly? (e.g. Nearly all dynamic content returns either a 200 or 500).

Sure, some frameworks have tricks for portions of the list but there should be documented, well-thought-out mechanisms for implementing these facets of HTTP. Let's face it, if you want to do something outside of exposing well-known static representation types from disk for GET, or process application/x-www-urlencoded data via POST, you're off the radar for most web frameworks. I'm not saying that other things aren't possible, I'm saying they aren't supported well.

Shutting this one down

I've rambled for to long already. I have more to say on this but I'll try to keep it to short and focused posts over the next week or so.

To sum up, we need a good implementation of HTTP/1.1 that provides a real framework for building standards based web applications. We then need to advocate and illustrate the correct use of HTTP/URIs/XML as a killer technology that has been hiding right under our noses by showing the benefits of using the system correctly. Until we get this stuff straightened out, expecting people to use GET properly is unrealistic.

...

Sidebar: I just noticed that Leigh Dodds beat me to it:

[Udell] then continues by exploring the ease of using GET versus POST on the client-side. I think the fault actually lies on the server-side. Specifically, with existing web applications frameworks.

Word.

To weblog coding http rest python web ... on Fri 04/22/05 at 10:55 PM

A REST Intervention
- Koranteng ponders how it is possible for REST based systems to kick so much ass.
To links coding rest ws soap commentary ... on Tue 04/19/05 at 02:25 PM
SFP: Come see us
- Aaron Swartz writes a novella about his startup interview w/ Paul Graham et al. I'm so jealous!
Quixote 2.0 Released
- and under a GPL compatible license.
To links coding python quixote ... on Wed 04/13/05 at 09:42 PM
United States Patent: 6,880,125
- "System and method for XML parsing" - BEA Systems, Inc.
To links xml coding patent funny web ... on Wed 04/13/05 at 09:38 PM
Dabblers and Blowhards
- A debunking and satirical look at the collected works of Paul Graham.
To links coding funny essay graham rant ... on Wed 04/13/05 at 07:51 PM
Mr. Yum
- A great snap of Seth Vidal, quite possibly the best project leader I've ever had the privilege of working with.
New Lisp book on the shelves
- Why Java developers should buy "Practical Common Lisp".
To links coding lisp java funny ... on Wed 04/13/05 at 01:32 PM
Radical Simplification
- Everything I ever wanted to say about the current state of software development in ~50 slides. Thanks, Sam.
Markdown + Make vs. Microsoft Word
- Hell yea..
To links markdown diversions coding ... on Sun 04/10/05 at 07:00 AM
TIOBE Programming Community Index
- A non-deterministic market index for programming languages. Pretty cool, really - and somewhat surprising I guess.
To links coding diversions ... on Thu 04/07/05 at 08:07 PM
Analyst Report: Scripting languages lag in Web services support
- That's because they don't have shithead analyst speculation driving feature development...
To links coding python ruby ws web soap dumb ... on Wed 04/06/05 at 08:09 PM