Live data from Hacker News

Probably the worst URL scheme ever

bvb.de

91–100 of 106 posts

Re: Probably the worst URL scheme ever

#91
What makes this bad? Or rather what makes this objectively bad? I feel like URL schemes espoused by people who judge them are basically bs. Success of the website IMO seems like the only objective measure and by that measure pretty much any URL scheme is fine given the schemes used on some of the most popular sites use schemes that people like jakub_g complain about

I can see where maybe an API URL might have objective better and worse schemes but a content URL? Show me the research results, not just fashion opinions

Re: Probably the worst URL scheme ever

#92
post #89

Earlier quoted context omitted.

You can have a public URL for linkedin in the format /in/CustomName E.g.:www.linkedin.com/in/barackobama

Too bad that seems like only an external reference method, and the site never uses those URLs internally.

Yeah, I want to know what they're doing internally with these insane URLs. It's just ugly -- poor craftsmanship IMHO.

Re: Probably the worst URL scheme ever

#93
post #78

Earlier quoted context omitted.

There's no database. EDIT: to all the people arguing with me. Read the source code to Hacker News. (= fns* (table) fnids* nil timed-fnids* nil) ; count on huge (expt 64 10) size of fnid space to avoid clashes (def new-fnid () (check (sym (rand-string 10)) ~fns* (new-fnid))) (def fnid (f) (atlet key (new-fnid) (= (fns* key) f) (push key fnids*) key)) (mac afnid (f) `(atlet it (new-fnid) (= (fns* it) ,f) (push it fnids…

Racket (arc's host language) keeps continuations on the filesystem, or you can write your own "stuffer" to do what you want with them (store them in a database or whatever). But you have to keep them somewhere or else (assuming the server uses continuations) you can't keep track of the user's path through your code as they click through links and such. Racket does have an option to serialize the continuations, gzip t…

HN doesn't use racket. It's a custom lisp based on scheme.

Re: Probably the worst URL scheme ever

#95
I counter with http://www.ctshirts.co.uk just go there and even the front page transmutes itself into a horrifying URL of doom.

Depending on which subsection of the site you're in, you sometimes also get |||||||| on the end of the URL.

I actually know someone who works in the e-commerce dept of the company and I think we should all berate him for how terrible a person he is ;)

Re: Probably the worst URL scheme ever

#96

Earlier quoted context omitted.

They are ids to lookup closures in a database. They time out to stop the database overflowing ;) It's called continuation-based web development [1], popular with Lisp and Smalltalk-based web servers (because who else has continuations?) [1] http://en.wikipedia.org/wiki/Continuation#In_Web_development

There's no database. EDIT: to all the people arguing with me. Read the source code to Hacker News. (= fns* (table) fnids* nil timed-fnids* nil) ; count on huge (expt 64 10) size of fnid space to avoid clashes (def new-fnid () (check (sym (rand-string 10)) ~fns* (new-fnid))) (def fnid (f) (atlet key (new-fnid) (= (fns* key) f) (push key fnids*) key)) (mac afnid (f) `(atlet it (new-fnid) (= (fns* it) ,f) (push it fnids…

The fnids do not expire randomly due to restarts; they expire when there are too many or they timeout so memory doesn't fill up with these continuations. Personally, I don't like this continuation-based approach since "Unknown or expired link" is a really bad user experience.

Way back I wrote a bunch of documentation on the Arc web server if you want details: http://www.arcfn.com/doc/srv.html Look at harvest-fnids which expires the fnids.

The fnid is an id that references the appropriate continuation function in an Arc table. The basic idea is that when you click something, such "more" or "add comment", the server ends up with the same state it had when it generated the page for you, because the state was stored in a continuation. (Note that these are not Scheme's ccc first-class continuations, but basically callbacks with closures.)

(The HN server is written in Arc, which runs on top of Racket (formerly known as PLT Scheme or mzscheme))

Edit: submitted in multiple parts to avoid expired fnids. Even so, I still hit the error during submission, which seems sort of ironic.

Re: Probably the worst URL scheme ever

#97
Here's a NOT SAFE FOR WORK url.

    http://www.adultwork.com/ViewProfile.asp?UserID=1945109&Keywords=&KeySearch=1&TargetURL=http%3A%2F%2Fwww%2Eadultwork%2Ecom%2FSearch%2Easp%3FRefreshVar%3D02%252F05%252F2013%2B17%253A11%253A24%26cboCountryID%3D158%26cboCountyID%3D146%26cboAPID%3D0%26rdoRatings%3D0%26cboLastUpdated%3D01%252F01%252F2003%26intAgeFrom%3D25%26intAgeTo%3D33%26DF%3D1%26cboLastLoginSince%3DX%26strSelPostCode%3D%26HotListSearch%3D0%26rdoKeySearch%3D1%26strPostCodeArea%3D%26SearchTab%3DProfile%26cboRegionID%3D11%26question_69%3D%26question_70%3D%26question_2%3D%26question_3%3D%26question_57%3D%26question_27%3D%26question_42%3D%26strKeywords%3D%26intHalfHourRateFrom%3D%26intHalfHourRateTo%3D%26dteAvailableAnotherDay%3D%26hdteToday%3D02%252F05%252F2013%26cbxSelIsEscort%3DON%26strTown%3D%26dteMeetDate%3D%26intMiles%3D%26intMilesUSA%3D%26rdoOrderBy%3D7%26intMeetDuration%3D%26cbxGenderID%3D2%26cboSCID%3D0%26cbxPreferenceID%3D55%26intHourlyRateFrom%3D%26intHourlyRateTo%3D%26intHotListID%3D0%26PageNo%3D1%26SS%3D0%26strSelUsername%3D%26dteMeetTime%3DX%26intMeetPrice%3D%26cboBookingCurrencyID%3D28%26intOvernightRateFrom%3D%26intOvernightRateTo%3D%26strSelZipCode%3D%26CommandID%3D1&NavUserIDs=1768061x1983764x1816348x1873822x1896482x1964251x548903x1052569x1188136x1431008x1780228x1788349x1801647x1475155x1635012x1964725x1995120x1985169x1657721x1678563x1620768x591995x1551539x1579011x1996472x1694586x1198128x1916266x1945109x883257x1097958x273262x1891436x1578047x1797390x1415157x1825574x1935666x1119043x929033x1935510x1957223x1468772x1873269x1494092x1120357x1282956x1284275x1107421x639826

Re: Probably the worst URL scheme ever

#99
post #95

I counter with http://www.ctshirts.co.uk just go there and even the front page transmutes itself into a horrifying URL of doom. Depending on which subsection of the site you're in, you sometimes also get |||||||| on the end of the URL. I actually know someone who works in the e-commerce dept of the company and I think we should all berate him for how terrible a person he is ;)

I just noticed that %7C is the URL encoded form of..... | so it's always just full of pipes!

Re: Probably the worst URL scheme ever

#100

I think THOMAS ( http://thomas.loc.gov/ ), the search engine provided by the US Library of Congress for searching federal legislation, has the worst URLs I've seen. Here's a random one: http://thomas.loc.gov/cgi-bin/bdquery/D?d113:1:./temp/~bdGqLa:@@@T|/home/LegislativeData.php| And here's a link I got to the Patriot Act (HR 3162): http://thomas.loc.gov/cgi-bin/query/D?c107:44:./temp/~c107DgA33R::

It's clearly a set of arguments (separated by ':') to a function, i.e. it's a RPC invocation. The first seems to be the session of congress, 113th and 107th. The second, perhaps the nth item in that collections? The third, a temporary filename, probably where the search result is stored, so you don't have to re-run the search which you hit "back". The last bit, probably a later addition that manages breadcrumb navigation.
Post reply on HN