skip to main content.

posts about www. (page 1.)

some people like me have the problem of having several wordpress installations at the same time; people like me and some others i know. i have one wordpress running for this blog, one for my math blog, one for a hidden, password protected project which might or might not ever see the light of the world, and anther one for another music related project showing up soon.
whenever a new wordpress version comes out, a question bugs me: how to update all of these installations without doing it manually for every one? of course, there’s the automatic update, but i don’t really trust it. and i don’t have an ftp server installed, so i’m not sure if it would work at all. so i need another solution.
a first idea was to use symbolic links. have one wordpress installation in a directory outside the web tree, and link these files into all wordpress directories in the web tree, so for updating i only need to change one directory, and i only have to touch the others when the configuration file has to be changed.
unfortunately, this doesn’t work, thanks to php and wordpress. wordpress determines the path to the config file by the path names of the files, and since the files are symbolic links, the paths of the files pointed to are used. but in that directory, no config file is available, and wordpress fails. too bad.
now i got another idea. namely, have a wordpress directory outside the web tree, and put it into subversion. then, in all other wordpress directories, drop in the files using subversion, except the configuration file, uploads, latex caches, etc. so to update an installation, i have to go into its directory and type svn up. that’s it. there’s one thing left to do: namely hide the .svn directories from the web server. i didn’t found the perfect method yet, but adding this to the apache configuration makes them forbidden:

<DirectoryMatch “^/.*/\.svn/”>
  Order deny,allow
  Deny from all
</DirectoryMatch>

then every access to something in an .svn directory results in an access denied error:

Forbidden
You don’t have permission to access /.svn/ on this server.

as you might or might not have noticed, my project blackness moved to a new address and now requires to log on before showing anything. (the rss feed is still available without logging on, though.) the main reason for this is the german jugendmedienschutz-staatsvertrag; i do not want to risk any problems due to people interpreting things the wrong way. a new revision of that thing cased a lot of protest and shutdown of blogs; see for example here and here.
it is still not exactly clear what kind of implications this new revision will have. i still decided to move blackness, since i don’t want to endanger it in any way. in case you still want to see it, ask me for an account.

posted in: www
tags:
places:

as you may have noticed, i use wikipedia a lot – both for linking to descriptions of terms i use in this blog, and for looking up stuff myself which i encounter somewhere, may it be offline or online. usually, chances are good that wikipedia offers at least some kind of description which answers my questions, or at least helps me getting an idea. but from time to time, it happens that you try to look something up on wikipedia, only to find out that such an article existed but was deleted – for example, because it was “not relevant”. i can understand that people do not want to see wikipedia flooded by biographies of john doe and jane roe – only a handful people are interested in these, probably most notably john doe and jane roe themselves.
but there are cases where i simply can’t understand the decision. for example, there is the chilenian doom metal band mar de grises, which i discovered by chance in zurich’s now deceased knochenhaus. according to the wikipedia deletion log, it is “not noteable” and failes some guidelines. so, who decides what is noteable and what is not? and, after all, the simplified ruleset explicitly mentiones

ignore all rules – rules on wikipedia are not fixed in stone. the spirit of the rule trumps the letter of the rule. the common purpose of building an encyclopedia trumps both.

i can pretty well understand that not every small band hobby band project should be mentioned – in particular the ones which sound bad and dissolve quickly with none or almost no productions. but that’s not the case for mar de grises. besides that, the deletion log also mentiones other problems with the article (namely, being badly written and failling to provide references for some claims), but why not throw these parts out or reduce the article to a stub?
two other examples, this time from the german wikipedia, are sinnlos im weltraum and lord of the weed, two fandubs. according to the english wikipedia, sinnlos im weltraum (a redub of a star trek series), dating back to 1994, is one of the first such projects, essentially starting the whole genre of fandubs. i don’t know how many people know it, probably a huge number. lord of the weed (a redub of the beginning of 2001′s lord of the rings) is also rather well-known; i don’t remember how often i saw it – at least ten times. well, it is obviously true that these movies haven’t been shown in movie theaters or on television – as they contain copyrighted material (i.e. the original movie), used without permission. for the same reason, they haven’t been shown on film festivals, you can’t buy them on dvd. they are also not listed on the imdb. but – so what? does that make them not noteable? irrelevant?
on the other hand, a lot of totally trashy movies – which, compared to sinnlos im weltraum and lord of the weed, are really crappy and lame – are featured on media, two good examples are a music video by grup tekkan and the infamous star wars kid, making a fool out of himself. these are pushed by media as “youtube movies you have to see” or are even shown on tv. and they can be found on wikipedia. even though they are real crap. in the case of star wars kid, the really embarrassing movie was uploaded by “friends” of its actor and will probably haunt him for a very long time. to make this even better, a lot of online versions of famous newspapers or magazines feature this video as well, showing it to an even wider audience. and i thought the use of a pillories are outlawed in modern countries.
anyway. i’m still using wikipedia, even though of these reasons. and i even created an account at the english wikipedia and started writing an article about infrastructures (number theory). as so far, nobody else dared to write something on this subject, and a google search only gives documents featuring other kinds of infrastructures, or scientific articles about this subject, i thought it would be time to add something to the web. i’ve started a series of posts on my math blog on infrastructures, but as google usually ranks wikipedia articles higher, i decided to also add something to wikipedia. so far, it is more a stub and far from being a complete article, but at least provides some information and several references to literature.

while updating some old posts with photos (just designwise, no content changed), i once again experienced a complete lockdown: the server became incredible slow and was floaded with apache processes, and i had to shut down and kill -9 all apache processes several times to be able to continue to do anything except waiting. this isn’t the first time this happend, but this time i had apache’s logging enabled (waiting for something like this) to see what was causing all the accesses. well, out of the 13.000 logfile entries (ranging over a week, i think), around 3.300 were by wordpress – and 99.9% of these happend in the last few hours, while i was updating the old posts. it seems that every time i updated a post, wordpress accesses all links and images in the post, also the local ones, and downloads them. yes, downloads them – also the big versions of panoramas. and if i’m updating posts with often 10–30 photos, some of them large, this clearly explains why the web server was dying. to put it that way, wordpress dosed itself. (the funny thing is that it did not first use a head first, to see what kind of link this is, but starts with a get to first download the whole thing. after downloading all links and images, it uses head on them.)
anyway. i don’t know at the moment what to do against that.
but another annoying thing is that the blog is loading rather slow. i also decided to see what is causing this. well, it turns out that the old main page was doing 298 sql queries. after disabling role scoper, this jumped down to 34, with loading times more or less the same. but then, i disabled the tag cloud. this just saved one query, but reduced the page generation time from around 10 to 2 seconds. wow. enabling role scoper again (i really need that one), i now have a bit less than 50 queries with maybe 4-5 seconds of page creation time.
well, still far from optimal, but already faster.

posted in: daily life thoughts www
tags:
places:

i was thinking on using latex in maybe some blog entries, maybe here or maybe somewhere else. so i decided to see what existing plugins there are. after a bit of searching, i stumbled over wp-latex, which is apparently also used by wordpress.com. unfortunately, it has a kind of clumsy syntax (“$latex formula$” instead of simply “$formula$”). and it has no support for display style formulae, i.e. something centered in its own line, as opposed to inline formulae which try to fit neatly into the text.

so i tried to fix that. and it worked out, and i can still use a “normal” $ by appending a blackslash in front of it. well, euler's identity is e^{i \pi} + 1 = 0, as simple as that. if you want to see something more complicated:

let K be a number field or an algebraic function field. then, we have the following commutative diagram with exact rows and columns:

\xymatrix{ & 0 \ar[d] & 0 \ar[d] & 0 \ar[d] & \\ 0 \ar[r] & \calO^* / k^* \ar[r] \ar[d] & \Div^0_\infty(K) \ar[r] \ar[d] & T \ar[r] \ar[d] & 0 \\ 0 \ar[r] & K^* / k^* \ar[r] \ar[d] & \Div^0(K) \ar[r] \ar[d] & \Pic^0(K) \ar[r] \ar[d] & 0 \\ 0 \ar[r] & K^* / \calO^* \ar[r] \ar[d] & \Id(\calO) \ar[r] \ar[d] & \Pic(\calO) \ar[r] \ar[d] & 0 \\ & 0 & H \ar@{=}[r] \ar[d] & H \ar[d] & \\ & & 0 & 0 & }

here, T simply denotes the cokernel of the map \calO^* \to \Div^0_\infty(K) which assigns to every unit \varepsilon \in \calO^* its principal divisor (\varepsilon); in particular, T \cong \Div^0_\infty(K) / (\Princ(K) \cap \Div^0_\infty(K)). finally, H denotes the cokernel of the degree map \Div(K) \to \G, where in the number field case, \G = \R, and in the function field case, \G = \Z.

this is written as follows:

 1 let \$K\$ be a number field or an algebraic function field. then,
 2 we have the following commutative diagram with exact rows and 
 3 columns: 
 4 \$\$\xymatrix{ & 0 \ar[d] & 0 \ar[d] & 0 \ar[d] & \\ 0 \ar[r] & 
 5 \calO^*  / k^* \ar[r] \ar[d] & \Div^0_\infty(K) \ar[r] \ar[d] & 
 6 T \ar[r] \ar[d] & 0 \\ 0 \ar[r] & K^* / k^* \ar[r] \ar[d] & 
 7 \Div^0(K) \ar[r] \ar[d] & \Pic^0(K) \ar[r] \ar[d] & 0 \\ 0 \ar[r]
 8 & K^* / \calO^* \ar[r] \ar[d] & \Id(\calO) \ar[r] \ar[d] & 
 9 \Pic(\calO) \ar[r] \ar[d] & 0 \\ & 0 & H \ar@{=}[r] \ar[d] & H 
10 \ar[d] & \\ & & 0 & 0 & }\$\$
11 here, \$T\$ simply denotes the cokernel of the map \$\calO^* \to
12 \Div^0_\infty(K)\$ which assigns to every unit \$\varepsilon \in 
13 \calO^*\$ its principal divisor \$(\varepsilon)\$; in particular, 
14 \$T \cong \Div^0_\infty(K) / (\Princ(K) \cap \Div^0_\infty(K))\$. 
15 finally, \$H\$ denotes the cokernel of the degree map \$\Div(K) \to 
16 \G\$, where in the number field case, \$\G = \R\$, and in the 
17 function field case, \$\G = \Z\$.

note that this example also shows a problem: namely, the vertical alignment of the inline formulae sucks bigtime. let's see how to fix this...

posted in: math www
tags:
places:

there was a new version of wordpress out, so i (finally) upgraded. the layout of the admin area completely changed; i already heard about that before. i don’t know if it’s better or worse than the old one, but i stumbled over one thing which is really annoying: in case you write private articles (like me) to ensure that in case the role scoper plugin stops working (or is simply disabled due to upgrades), nobody can see the private stuff (instead of everyone), you will find out that the new version of wordpress automatically publishes articles as soon as the visibility is set to private! this is pretty annoying, as i usually do that as one of the first things before writing (most of) the post itself.
another thing which got worse is the size of the tags field (for the simple tags plugin), which now resides in the right (narrow) column. before, it was prominently seated directly below the area where the post content itself is written (which is rather wide). as i often use a long list of tags, this makes things more confusing than they have to be.

posted in: www
tags:
places:

while i was searching for a plug-in which allows access control to posts based on users and/or user groups, i stumbled about many different plug-ins, some of them very promising, but either dead, not updated for a long time, or simply not exactly usable by producing a long list of php error messages already in the admin screen after activating them. grrreat. well, of course, i could also try to do it myself, as usual. but hey, that sucks: i’d be better of writing my own blog software.
well, i talked about the problem a bit with kornel, and we concluded that an optimal blog system would be a very slim piece of software, just providing the very basic features, i.e. managing posts, comments and pages, users and user groups/roles/whatever, and access privileges, while everything else—such as galleries, embedding videos, gadgets, comfortable post editors, …—is implemented as plugins.
anyone want’s to do this, and produce a well-documented, slim, bug-free blog system with a good plugin interface, together with a few standard plugins? :)

leaving traces is easy. just think on how many fingerprints you leave outside your home every day.
and this does not only apply to your real life, but also to your online life. every little thing you do in the internet leaves traces at many different places. for example, think of typing in a url like spielwiese.fontein.de in your browser and pressing enter. first, your browser will put that address in its history (for the pedants out there: i’m fully aware that there are situations in which this does not happen. as i don’t want to blow up this article with technicalities, i’ll simply ignore that.), so days later you can still see that you visited that page. you’ll also find copies of the page in your browser cache. back to the incident itself. in order to access the site, your browser has to establish a connection with my web server and send a request for that site. this request is relayed though different places, every one able to see that you (identifyable by your ip number, which can be traced back to you by your internet provider) requested this specific site (except in case you’re accessing pages using https, in that case, the intermediate relays just know your ip address and the ip address of the destination server).
finally, in any case, my web server will receive your request to deliver the page / from my domain to you. and, as most web servers do, it will note that down into it’s logfile, so i can see that you accessed my site. in fact, i see a lot more. usually, in the request, your browser sends a lot of additional information: for example, a string identifying the user agent. for example, this could be

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4

it usually also includes information on your operating system (in this case, linux) and the exact version of your browser. usually, the browser will also send on which site you were before (the so called referer). this information will be sent for any web page you click on, and for every image or other object contained in that page. hence, i am, without any tricks, able to track you on your way through my web page, and i can see where you’re coming from.
being a bit more clever, i can find out a lot more. for example, i could modify the urls of outgoing links on my page to go though some kind of `gate’, like the forward.php which you might have noticed. then, if you click any link on my site which leaves it, your browser will first contact my webserver to retrieve the forward.php output (which will tell your browser `go to that other site’) and, surprise!, it will leave an entry in the web server’s log that you clicked that link. so i also know where you’re going from my site. next, there’s a lot more information on you which one can find out using javascript, like your screen’s resolution. i’m including a little script on my site which tells the browser to include a little picture, simply consisting of one complete transparent pixel, on every page of my site. to the images url, it adds the screen resolution. so by looking into my server’s log, i can see your screen resolution—at least if you haven’t turned javascript off, but most people have it turned on anyway.
so, now i have a big log file containing a lot of information: which user came from where, looked at which sites, left where, used which browser, which operating system and which screen resolution, at which time. if i feed this log file into an analysis tool, it will gather the information and present them to me in a useable way—whatever that might mean.
are you surprised? some of you won’t be, i know. anyone interested in this subject can find out about this on lots of places on the web (for example, look here). and, in fact, one can do much better than me. first, by using cookies, i could identify you uniquely and connect your different sessions to see how your surfing behaviour varies over a larger time scale. then, i could combine the data from several servers. if i would have data from enough servers, i could throw together a very detailed survey on what you are doing on the web. in that case, i’m your big brother, watching (almost) every step you do online. luckily, for you, i’m not doing that. but other people do. for example, the big web advertisement companies, which have their advertisements on a huge amount of web servers, can see you everytime you view such a web page (if you’re not using an ad blocker). or assume that your web page is using the service of another server which tracks statistics for you. many people are using such services (may it be in the form of a simple counter), so the provider of the service knows when you are looking at which site. and now assume that some of these data collectors cooperate. sharing their huge amount of data. a creepy thought, isn’t it?