i’ve been in irc the first time for… hmm… let me think. maybe four years? or five? well, anyway, a really long time. joined a few channels. some didn’t exist anymore. some do. lots of nicks which sound familiar, some which i have met once in real life, some even remember me. some people died. lots are still alife, and around. memories coming up… old feelings, long time hidden in some corners…
posts about computer. (page 1.)
… my blog really has 100% valid xhtml 1.0 transitional code.
until now, there were some exceptions:
- a wordpress bug which generated invalid xhtml code if you have more than one blogroll category (which will be fixed in the next version; i wrote a quick hack to fix the one i’m using);
- the youtube code snippet was quite a mess, i fixed it using some hints from the w3c validator page and by some tipps by kornel, as wordpress tended to screw up my code by inserting tags and, thus, rendering it invalid; i fixed that by using installing a plugin which allows to format specific posts completely yourself;
- certain small bugs in my posts which were completely my faults (these will probably show up from time to time, but i’m trying to eliminate them asap).
maybe i’ll once try to force wordpress to generate xhtml 1.0 strict code, but that’s probably too much work; probably i can hack something together myself in less time which fits better to my needs and which generates such code :)
mathematics is nothing but the search for structures. beautiful structures. i myself tend to think i understood something if i manage to have a picture of it in my head, some geometric interpretation. sometimes it’s more easy to understand something if one can somehow draw it, by hand, or using a computer, which can sometimes give insights which would not be possible without it; the best example maybe is the beautiful mandelbrot set. most visualizations are by no means as impressive as the mandelbrot set, unless the viewer is acquainted with the underlying mathematics. like the following one, produced by the programs i wrote yesterdays and today, whose beauty probably won’t unfold if you don’t know what it depicts:
is there a reason why a variable in javascript shouldn’t be called “name”? i thought, “no”, and simply used that name. well, until i found out that this breaks safari… while it works perfectly fine under firefox. took me an hour to figure that out… thank you whoever is responsible for this, i really love wasting my time with such things…
turns out that upgrading to the newest version of ubuntu was not a good idea. not because of the visual effects, not because of the tracker, (probably) not because of ubuntu itself, but because of a very strange and annoying bug which is really killing my productivity: at random points, in particular if i’m using firefox, it “forgets” that i released a key, like the short cut for closing a tab or for switching to the next tab. and there’s basically no way to stop it except killing firefox. the problem also appeared in other applications, though almost never. i’d guess that it is connected to how much the program keeps the cpu busy, and firefox is pretty good at doing that… so, what to do? i don’t know… a first few google searches haven’t helped me a bit… probably i have to spend even more time digging out information on this… i really hate wasting time like this.
just upgraded to newest ubuntu. upgrading went pretty smooth, smoother than i expected after last time’s experience. i tried the new visual effects (seeing this screenshot, i’m wondering why i didn’t had this custom choice), and disabled them after a few minutes. for me, most of them are too annoying (i’m switching between windows and desktops all the time). well. the user interface feels slower than before (even after deactivating the visual effects), but it’s still ok. the tracker is annoying, eating up system performance and it’s ignoring the preferences (which say: don’t run), but after deinstalling it, everything’s fine. for now.
now i have to find out how to install a local version of apache with php, and of mysql, to make working on my project a bit easier…
every time i plan to start a new project, let it be a web project, a programming job, a latex document (or a combination of those), i’m thinking hard on whether to use something already existing as a base or whether to do everything myself, from the scratch. for latex documents, i usually reuse macros i’ve written myself. for programs, i use libraries like opengl and zlib (two random names coming to my mind, there are of course a lot more), i reuse my own code, and write the rest from scratch. for this blog, i used wordpress, for usage statistics i use phpopentracker. and, of course, i use php and mysql as backends. even though i could implement the whole stuff myself. if i just would have enough time… but i don’t, and so i have to cope with all the restrictions, specialities, whatever these programs and libraries are throwing at me.
the reason why i’m thinking about this at the moment is a new project of mine i’m thinking about, which i’m planning to code more or less from the scratch (using, of course, some backend stuff like php, mysql, phpopentracker, you name it). i just started drawing some sketches, like its logical structure with hints on the physical implementation. sometimes i wonder whether i should spend more time on such things. despite there probably already exists a system which does exactly what i want, making one yourself is way more fun. although its also way more work.
let’s see if i manage to pull this one through… wish me luck.
yesterday i started reading the xkcd archives (maybe you’ve already noticed that yesterday). if you don’t know xkcd, it’s a webcomic “of romance, sarcasm, math, and language”. here are the ones i found particularly interesting, funny, or whatever:
- pi equals. reminds me of the classic “help, i’m trapped in a fortune cookie factory!” joke.
- what if.
- barrel – part 3. i wouldn’t say “wow!” in that situation, though.
- fourier. poor cat.
- secrets.
- useless. standard approachs suck for love.
- su doku. even i can solve these.
- national language.
- binary heart. if you check the parity of the read ones in every column, you’ll notice most of them are even. is this a coincidence? (and don’t ask why i stumbled about that…)
- laser scope. sometimes the primitive word jokes are the best.
- riemann-zeta. about love & primes. this one is not only for number theorists.
- nihilism. squirrels! cool!
- alice and bob. the real story of eve.
- matrix transform. if i’d ever had to solve linear algebra exercises again, i’d try to turn this one in.
- valentine’s day. nothing to add.
- cat proximity. yay, how true. meow!
- code talkers. another one on cryptography.
- fixed width. nerd talk on irc. i don’t know what scares me more, laughing about this one or thinking that i’m probably knowing people who would really do this.
- exploits of a mom. well. if you don’t know what an sql injection attack is, read about it here.
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?