4,817 reputation
625
bio website vyznev.net
location Helsinki, Finland
age
visits member for 2 years, 6 months
seen Jul 18 at 15:53

I'm a PhD student in biomathematics, working on stochastic individual-based models of evolution in spatially structured populations. My other interests include cryptography, programming games and puzzles, photography and graphic design.

I started programming (in AmigaBASIC) when I was 10 years old. Nowadays, I'm most comfortable using Perl, C and JavaScript. I know Java and PHP too, but I can't really say I like them. I also know some Python, but not as much as I'd like.


CC-Zero Please consider any (original) code I post to Stack Overflow and other Stack Exchange sites to be released under CC-Zero unless stated otherwise. You may do whatever you want with it and don't have to credit me in any way, although of course that would be nice.


I'm the main author and maintainer of the Stack Overflow Unofficial Patch (SOUP), a user script for browsers with GreaseMonkey-compatible user script support (Firefox, Chrome, Opera, possibly Safari) that fixes or works around a number of outstanding issues with the Stack Exchange user interface.

I tend to answer a lot more questions than I ask. Some answers I'm rather proud of:


Jul
17
comment Will canonical tag referencing unsecure HTTP URLs on a HTTPS page cause the unsecure message?
Here's a live example. (Note that HTTPS support on SE is still experimental, and in particular, some pages may still have insecure images. However, user profile pages shouldn't have any, at least if the user in question is using Gravatar for their user icon.)
Jun
28
comment Most invariant URI to refer to a HTML5 element from w3.org?
You've obviously spent some thought on this, but for the rest of us, it might help if you told us a little bit more about what you'd need such a URI for. Knowing more about your motivation might help in judging the relative merits of different options, or it might even suggest some completely different solution.
Jun
27
comment How do you tell search engines not to index this page just yet, but maybe in the future?
...that is, unless there's something meaningful that users could do even with a "blank" page, such as supplying information for it. (Even then, though, it may be better not to link to the blank page directly, but to some different URL that indicates the (possible) absence of data. Note that you'll need to deal with the edge case where a user follows such a link after the page has recently been created; see for example how Wikipedia does it.)
Jun
26
comment How do you tell search engines not to index this page just yet, but maybe in the future?
@Binarysurf: According to the OP, they're using a custom script to serve dynamic content for "virtual pages" constructed out of information stored in a database (just like Wikipedia, SE and most major websites do nowadays). This does mean that "regular web server behavior" doesn't apply -- as far as the web server (Apache, IIS, nginx, etc.) is concerned, the content-generating script exists and runs, so it defaults to a "200 OK" response, unless the script tells it otherwise. I'm just suggesting that the OP should make their script send a 404 response, if there's no actual content to show.
Jun
25
comment 403 Error Fetching Image with JS
+1, this appears to be the correct explanation in this case. Further testing shows that the server accepts an empty referrer (-e ""), as a browser would send if you typed the image URL into the address bar, but not a referral from another site. (Also, despite what I suggested in earlier comments, the Accept header does not seem to make any difference for this site.)
Apr
25
comment Serve a different robots.txt file for every site hosted in the same directory
@EdgarQuintero: An internal rewrite, as implemented by the rewrite rules I show above, happens entirely within the webserver. A crawler requesting the URL path /robots.txt has no way of even knowing whether the content it receives comes from a file named robots.txt (as usual) or from a file named robots_ar.txt (to which the request was rewritten) or even from a script named robots.php (or even whatever.php).
Apr
25
comment Serve a different robots.txt file for every site hosted in the same directory
@EdgarQuintero: Why on earth could it not be?
Mar
18
comment Combine user-agents in robots.txt
The original robots.txt spec agrees: "If more than one User-agent field is present the record describes an identical access policy for more than one robot."
Feb
23
comment Submit example.com/#!/page URLs to Google
...and you're just toggling the visibility of the <li>s, rather than actually loading the content via AJAX? In that case, you could just add some code to your index.php so that, if it receives an _escaped_fragment_ parameter, it styles the matching <li> with display:block and all the others with display:none (or omits them entirely). Oh, and you probably should a) change your <title> to describe the page being shown, and b) use the <meta name="fragment" content="!"> trick for the main page.
Feb
23
comment Submit example.com/#!/page URLs to Google
"There is no way to directly submit this to Google" is kind of misleading, since, in fact, the instructions you've linked to say you should directly submit such URLs to Google in your sitemap. You just needs some extra server-side support to let Googlebot fetch them.
Jan
27
comment Does the 'Server' header serve any purpose?
A 100-byte header, like the one quoted in the question, might well cause the combined length of the response headers and content to spill over into an extra packet. Besides, packet-counting tells the whole story only for purely latency-limited connections. In (at least partially) bandwidth-limited situations (such as slow mobile connections, or large data centers with a huge request volume), the total amount of bytes transmitted starts to matter too.
Jan
10
comment What is the purpose of leading slash in HTML URLs?
@DisgruntledGoat: Probably way earlier than that. In fact, I'd go on a limb and just say "every browser ever"; that syntax has been part of the URL standard from the very beginning.
Jan
10
comment Mass Deletion of Spam Revisions in Mediawiki
There's no point in trying to delete spam links from externallinks, since that's a redundant metadata table that's basically only used for things like Special:LinkSearch; once you've cleaned up the actual pages, you can just run rebuildall.php to wipe and rebuild it. Ditto for searchindex.
Jan
10
comment Should the English website use href=“x-default” when it doesn't auto-redirect to the user's language or country?
What if I'm using a Spanish-language browser (maybe in an Internet cafe in Spain?) but I want to read your pages in English? Is there some link I can click, or am I SOL? (Ps. One reason I'm asking this is that I think the answer may affect the hreflang markup you should use.)
Nov
10
comment Blatant copyright theft
The GPL (v3, section 7) allows you to "supplement the terms of this License with terms [...] c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version", but does not include such terms by itself. It does, however, require modified versions to include your copyright notice (sections 4 and 5).
Nov
10
comment Google indexes 301 source, with the destination content
@AlexisWilke: What I'm saying is that the reason this happens with TinyURL is that they (sometimes) include a 302 or other temporary redirect in the redirect chain. It does not, AFAIK, happen if only 301 redirects are involved, or at least it did not back when I wrote this answer. (That said, this is for TinyURL links that have always been redirects; I'm perfectly willing to believe that Google might be slow in updating their index, or that, as Stephen Ostermiller suggests, they might simply be treating the 301 as a 302 just because the target URL doesn't look like a permanent one.)
Oct
13
comment How to implement hreflang on a single domain?
+1 for the link.
Aug
27
comment How did Google find my unlinked newly created pages?
That's odd, then. Still, it only takes one link. You might want to look at the links to your wiki pages on GWT and see if you can spot any from outside the wiki.
Aug
27
comment How did Google find my unlinked newly created pages?
Actually, AFAIK, MediaWiki normally doesn't do that. But if you added the new pages to an existing wiki that Google knew about, then it could've reached them via any number of pages (e.g. Special:Recentchanges, Special:Allpages, Special:Random...).
Aug
27
comment How did Google find my unlinked newly created pages?
Are you using a CMS / wiki / blog / etc. platform of some kind? Some of those ping Google whenever you add new pages.