There are two ways to write error-free programs; only the third works.
Alan J. Perlis
I am doing a startup!
Cross-browser testing from your browser!
I have written my fourth book!
Be faster than Larry Wall at command line!
You're viewing a comment by Kent Fredric and its responses.
1. 301 Redirect:
Just don't do this in text. Its very pesky. Having seen text files with a thousand hand-coded apache rewrite rules for redirects, this is a bad idea. Use a database or something if you must. You're probably better off discerning the intent of what the user was linking to heuristically as a fallback mechanism, and then sending them there. You have 3 options what you can do here, 410 Gone, 300 Multiple Choices ( With a list of alternative places to go ) , or if your heuristic is good enough to *know* where they want to go, send a 301 / 302. Its a hard call, because you want to stop people accessing the old urls, but you really don't want the headache of a legacy-url and a new url having to share the same addressing space and having to maintain a secondary set of legacy data ( which will only get worse over time ), and you can't even guarantee every past URL has a fixed guaranteed location in the new URL system.
2. 404: You can do one better, log 404's and tokenise the url as to what they are looking for, use path tracking to see where they went ( and try to gauge where they were trying to go ) and tweak the heuristics/data to make them automatically get sent to the right place.
3. A great 404 page would do, as above, and try to use heuristics to work out where they are trying to go as best as possible, I think a good thing to do with 404 is treat them like search queries. ( It may also help to see url's as very highly specific search queries that only return one result most of the time ;) )
4. Yeah, pingback-- , so messy. You could at very least do something to trackbacks so they're folded and minimise screen utilisation.
[ Comment ]
[Comments [ show trackbacks ] ]
So anyone who wants to see them can make them turn up with a bit of JS.
6. Caveat, giving people points for activity can encourage spamming-style activity just to gain rep. Be careful. You may want to have a peer-reviewed good-comment-bad-comment rating system like reddit/stackoverflow to control how it applies. Comments that are replied to by other people might want to automatically gain a rep point. Not sure.
7. Even better, highlight their search terms on the page when they arrive =) [ If you're not already doing this ofc ]
8. Produce raw data feeds for all your statsy stuff, then people can graph it how they want and send it back to you. ( it will also make your stats graph code cleaner =) )
10. Images-- # sorry. too many images that are not relevant to context frankly just piss me off. they consume screen space, and I just have to scroll past them. DO NOT WANT. Screen space is expensive and frequently poorly utilised. If you're going to waste screen realestate, you might as well do something productive with it, ie: advertising. People zone out and ignore that stuff anyway.
14. Threaded comments are somewhat good, but there are dangers with them diverging too heavily. As well as tracking recent comments becomes much harder with threading. Its a tradeoff I havent found a real solution to yet asides letting people switch between the 2 modes of operation as they see fit.
16. Lightweight syntax for comments-- # everyone tries to use a shitty markdown crap, or some other pseudo-language, and all it ever does is cut the balls off the people who understand html, and produce a crappy inconsistent other-language which backs to html, but you have headaches trying to work out how the fuck you're going to do it. I have spent too many hours of my life trying to get Markdown to do what I want it do when I could have just done it with simple html. If you support this other language, make it optionable, because I for one *really* hate $otherlanguages.
18. There are privacy concerns arising from use of gravatar ( essentially, gravatar can track everything you do ). Look into Pavatar support.
22. Tiny URLS: you can implement this as the heuristics system above. If a short url is just a search token for some arbitrary content, then all you have to do is associate that token with the data. ie: I could take a stab at http://catonmat.net/git , and it would search for content with an associated short-tag of git, and possibly redirect me there, or find pages which have the term 'git' used frequently, and return a list of them for me to visit. If there's anything PHP have done right its this feature on their website; http://php.net/makeitup
24. Also maybe standalone Tar.gz's of the page.
30. Have Pages Open In A New Window By Default. ?!? Shit no. Way to annoy people.
34. You're better off having a link/menu that just redirects them to google translate, ie: not doing it via some api-proxy. That way they know they're relying on a translation service and it might be a bit nasty, instead of thinking you have crap language skills.
39. Just make sure you have either a) one rss for everything, or b)seperate rss feeds, but still a unified one for those that want it.
This is additionally beneficial becuse it keeps the source of the code available =)
42. <3 justify.
47. Egad, not *another* job board. Stop it people. There are too many to choose from, they all suck.
(why do I need your e-mail?)
It would be nice if you left your e-mail address. Sometimes I want to send a private message, or just thank for the great comment. Having your e-mail really helps.
I will never ever spam you.
(Your twitter name, if you have one. (I'm @pkrumins, btw.))
* use <pre>...</pre> to insert a plain code snippet.
* use <pre lang="lang">...</pre> to insert a syntax highlighted code snippet.
For example, <pre lang="python">...</pre> will insert Python highlighted code.
* use <code>...</code> to highlight a variable or a single shell command.
* use <a href="url">title</a> to insert links.
* use other HTML tags, such as, <b>, <i>, <blockquote>, <sup>, <sub> for text formatting.
Type the first letter of your name: (just to make sure you're a human)
Please preview the comment before submitting to make sure it's OK.
Peteris Krumins' blog about programming, hacking, software reuse, software ideas, computer security, google and technology.
Reach me at:
Or meet me on:
Subscribe through an RSS feed:
(what is rss?)
Subscribe through email:
Enter your email address:
Delivered by FeedBurner
I am being sponsored by Syntress since 2007! They bought me an amazing dedicated server to run catonmat on. If you're looking web services in Chicago area, I highly recommend the Syntress guys!
I love to read science books. They make my day and I get ideas for awesome blog posts, such as Busy Beaver, On Functors, Recursive Regular Expressions and many others.
Take a look at my Amazon wish list, if you're curious about what I have planned reading next, and want to surprise me. :)
See all top articles
See all downloads
See more detailed list of recent articles
See more detailed category information
See more detailed list of all articles
catonmat's source code.
If you are interested in advertising on catonmat.net, contact me.