Posted by Daniel Lyons
Mon, 19 May 2008 15:20:00 GMT
You want a content management system, but why? Well, because you have some “content.” This handy chart shows you where your content lies on the hierarchy of content.
- Advertising – 50%
- “Copy” (indirect advertising) – 30%
- Self-aggrandizing narcissistic whining (“blogging”) – 15%
- Documentation – 4%
- Text worth being written and read – 1%
Tags blogging, humor, meta, web | 3 comments
Posted by Daniel Lyons
Thu, 11 Oct 2007 01:41:00 GMT
I’ve been playing around with lighttpd on another project. This server is seriously fast. With PHP through FastCGI, it’s really astonishingly quick even on a rather bland VPS server.
For more performance I am tinkering around with eAccelerator for PHP bytecode caching. That should eliminate most of the PHP parsing/interpreting cost. Not that I can even notice it now.
But you can go even further with mod_magnet. They don’t yet have a great introduction or explanation of what mod_magnet is, but it seems to be compiled, limited Lua scripting inside the request handling. This apparently beats the socks off talking to PHP, especially since it can reassemble output from its own file caches or memcached. On the wiki above they managed to get a script that was capable of a not-to-shabby 100 requests/second and make the server serve pages at 4200 requests/second. Another script is made to serve 10,000 requests/second.
I have to wonder whether or not this could be used with Voltaire. It would certainly be pretty fast…
Tags development, lighttpd, web | 1 comment
Posted by Daniel Lyons
Tue, 07 Aug 2007 20:02:00 GMT
If someone searches for something and winds up on your site, does it look like this?

This is completely unreadable. Like probably over 95% of visitors to your site, I showed up because I made a google query and you said something relevant about it. Instead of being able to read it, I’m staring at goddamn keyword confetti. You just cornholed my eyes. Google told me you had great stuff to share with me about whatever it is I’m searching for, but you decided to impress me with your HTTP_REFERER parsing rather than just giving me the goddamn content.
If I want to see the keywords highlighted, I’ll use Google Toolbar or I’ll search with my browser. As an actual user of the internet, I can and do read. Often. You do not have to mangle the layout for people who do not read.
I don’t know who started this fad, but they need to take a little lead in the face.
Tags design, engines, hate, rants, search, violence, web | 2 comments
Posted by Daniel Lyons
Wed, 20 Dec 2006 07:46:44 GMT
Raise your hand if you think this sounds cool:
...then my page rendering algorithm will look like me iterating through the list of regions producing the strings and slapping them together.
...actually, I’d like to parse the template into a list of closures, some which produce text immediately (the static part of the template), and others which perform a region content lookup.
...and then a page request will actually be a fold-right over the list of template functions, passing in ”” as the initial value and using (concatenate ‘string) as the fold function.
...and then we scream “bwa-ha-ha” over how fucking fast that puppy is going to be.
Tags functional, lisp, programming, web | 3 comments
Posted by Daniel Lyons
Thu, 21 Sep 2006 04:27:30 GMT
I didn’t expect to say this ever again, but I have to say it: Python is good. Python 2.5 brings it back up to speed with Ruby. Plus it’s faster and it has the best web development environment on Earth. And SQLAlchemy rocks my socks.
Python 2.5 cool features:
- Partial function application. Helloooo functional programming. :)
- The
with Statement: Feature parity with Ruby, one feature at a time.
- Generators are now full coroutines
- Conditional expressions a la the infamous ternary operator
- Built-in SQLite
SQLAlchemy, glory that it is, is a full SQL abstraction layer, meaning pretty much any SQL statement can be implemented just by calling functions in Python without handing over any raw SQL, and then on top of that you get the most flexible object-relational mapping system I’ve ever seen. Goodbye meaningless auto-incrementing IDs, hello sexy object relationships in the database with meaningful primary keys.
Pylons I can’t even begin to describe the excellence of. In short: it takes everything good from Rails and improves it. It uses WSGI throughout, which means it’s shockingly flexible: replace the template system, the backend web server, or anything in between and reuse everything else. The excellent Routes library borrows Ruby’s routing system, and the superb FormEncode makes validation quite simple. In the near future FormBuild will make it so that I never have to make a form by hand again and AuthKit will abstract out all authentication/authorization problems. It rocks in every way Zope wants to but can’t.
Enough free advertising. Thanks to Ben and James and everyone else for implementing an excellent framework! May it hit 1.0 soon!
Tags development, python, shoutouts, web | 1 comment