Because apparently, some people <a href="http://en.wikipedia.org/wiki/Old_age">our age</a> still do not know about the <a href="http://www.frixion-shop.com/">Pilot Frixion Pen</a> ((At the time of writing, <a href="http://www.ebay.de/itm/230792091484?var=530058069992&ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649">this ebay shop</a> is Germany's cheapest option.)), let me just very briefly inform you about this ingenious item. It is a regular <a href="http://cdn.iwastesomuchtime.com/March-15-2012-21-43-56-2934387460s.jpg">ball pen</a>, but the ink it uses turns invisible under a certain amount of heat. Hence, the Frixion has a little rubber nob at the end, which effectively works as an eraser, because rubbing it against a sheet of paper produces enough heat to turn the ink invisible! Good news: Leaving your lecture notes on the heating does not erase them. Seriously though, this pen is just awesome.


Let's say you have a Windows PC on a 64 bit machine. Obviously, you have <a href="http://www.cygwin.com">Cygwin</a> because anything else would just be silly. Then you want to develop C-Applications that you can compile and run on large Linux-based servers, so you turn to an <a href="http://www.eclipse.org/">an IDE that can work with Cygwin</a>. Now here comes the twist: For whatever stubborn reason, you want to be able to compile your applications native 64 bit, and you want to do it in Eclipse, and you want to be able to debug them. <a href="https://blag.nullteilerfrei.de/2012/11/28/eclipse-cdt-with-mingw-64/#more-1051" class="more-link">Do you want to know how?</a>


I do not have a <a href="http://www.lmgtfy.com/?q=Facebook" target="_blank">Facebook</a> account. Why don't I have a <a href="http://www.lmgtfy.com/?q=Facebook" target="_blank">Facebook</a> account? A couple reasons spring to mind: * I think that it's a pathetic, average, unimaginable kind of self-portrayal. * I do not want to give all kind of private details about my (social) life to some company with very questionable motives, let alone imprinting all that data into the internet for all eternity. * It eats up lots of time I could spend writing blog posts that noone reads. As a matter of fact, however, <b>none of those</b> is really the reason why I don't use Facebook. My reason not to use Facebook is that it is expected of me to use it. Let me clarify: People have stopped asking "Do you have a Facebook account?" and instead, they started asking > What's your Facebook account? Depending on who's asking, to them, my answer sounds a bit like <i>"Oh I'm sorry, I do not <b>have</b> a Telephone."</i> And indeed, that's a pretty good metaphor. Facebook is the best new tool of communication since mobile telephony was made available to the public. I remember when only very few people had a cellphone, because I was in elementary school then - and I had one. I got it for Christmas because I had begged and begged, I wanted <b>no</b> other present, just that cellphone. It caused all kinds of problems, teachers didn't want me to bring it to school, stuff like that. Can you imagine? Nowadays, that just sounds absurd. Nowadays, everyone has a cellphone, because that technology is so convenient that we got used to it, it has become vital to our way of life. You can not exist in the digital age, without a telephone. And Facebook is headed in the same direction - for a good reason. It's an incredibly powerful addition to existing communication, partly replacing old technology and combining others into an easily manageable framework to maintain all your social relations. And it's almost free - you are paying them with just your personal information, which they use for advertising and thelike. Frankly, I couldn't care less about that. In fact, I think that's totally fair. But at some point, it will have become socially impossible to not have a Facebook account. At that point, we have given a private company complete control over our respective social statuses. When you apply for a job, they first check your Facebook profile. When you chat up a stranger, you exchange Facebook information and that's the first they'll really know about you. Of course, Facebook wouldn't use that power to harm anyone, that'd be very bad for business. If I were Mr. Zuckerberg, I'd offer special premium Facebook profiles instead, for a certain fee of course. Let's say $10 a month and you just seem better than everyone else. Most people would get one, and at some point you just seem like a bum if you don't. So you pay the ten bucks, what the hell. And before you know it, everyone's paying Facebook fee every month. You're upset? You'd never do that? It's absurd? Well, you pay about that much for your cellphone, don't you? Nobody would refuse to use a cellphone just because he has to pay for the calls. Only, like, a crazy communist hermit bum would say such a thing. Now, you might say, alright! Facebook is worth paying money for it. What's the problem? The problem is that Facebook is neither controlled by the government nor by the market. They have no rivals, by design. Facebook does not interact with other social networks. That's different for cellphones - you have different vendors that live in a healthy state of competition. Same holds for email, regular mail, and basically all kinds of communication. Not one of them is monopolized. If we let a company monopolize our communication, we're screwed. Now, I am not actually very afraid that this will happen in such an apocalyptic manner. Things will work out alright. But right now, I don't think that it should be expected of everyone in the whole civilized world to have an account on that website, no matter how good it is. I am making a political statement by not having a Facebook account. Me not being a very politically active person, this is one hell of a statement.


Let's say you have a matrix $A\in\mathrm{GL}_n$. How do we best denote the inverse of its transpose? You would probably write $(A^T)^{-1}$ or $(A^{-1})^T$ because it is the same. However, today at the office we decided to henceforth write $A^{-T}$ instead. It seems abusive at first, but I can make it formal for you, if you care for that kind of stuff. As we all know, the transpose of $A^T$ is $A$. In other words, the transposition operator $\vartheta:\mathrm{GL}_n\to\mathrm{GL}_n$ which maps $A$ to its transpose satisfies $\vartheta^2=1$. So far, the exponentiation map is defined as $\mathrm{GL}_n\times\mathbb{Z}\to\mathrm{GL}_n$ mapping $(A,k)\mapsto A^k$. We instead consider the ring $\mathbb{Z}[T]:=\mathbb{Z}[t]/(t^2)$ and extend the domain of the exponentiation map to $\mathrm{GL}_n\times\mathbb{Z}[T]_\ast$, where $\mathbb{Z}[T]_\ast$ denotes the homogeneous elements of $\mathbb{Z}[T]$. This way, you can write $A^{kT}$ instead of $(A^k)^T$ and you have $A^{kT^2}=A^k$ as required. Note that by restricting to homogeneous elements in $\mathbb{Z}[T]$, we get $A^{p+q}=A^pA^q$ and $A^{pq}=(A^p)^q$ for all $p,q\in\mathbb{Z}[T]_\ast$.


<a href="http://www.nerd-gold.de/">Roman</a> told us about <a href="http://www.toothycat.net/~hologram/Turing/">a turing machine in Magic: The Gathering&trade;</a>. The design seems very complicated at first, I would have thought that there was an easier way to do it. However, with the 8 minutes invested so far, I did not come up with a better implementation.


I was recommended <a href="http://taskwarrior.org/">taskwarrior</a> by Lars, who advertised it as a very cool todo-list manager for the commandline. It's available under <a href="http://www.cygwin.com">cygwin</a> as well. I wanted to give it a try today, so installed it and checked out the <a href="http://taskwarrior.org">taskwarrior homepage</a>. The first thing it does, it leads you to the <a href="http://taskwarrior.org/projects/taskwarrior/wiki/30-second_Tutorial">30 second taskwarrior tutorial</a> where they give you a very tiny set of commands you need to make a todo-list in the most literal sense: A list of things that you have to do. Of course, the program can do much more than that, and I am not even familliar with <i>all</i> of its features. However, at this point already, I want to comment positively on the unusually gentle learning curve it provides, compared to most other Linux tools. This is an aspect of program design often neglected: Do not overwhelm the user, in particular not with features that are <i>optional</i>. I think a great many deal of open source projects could benefit significantly from improvements in that area, because all elitism aside, a large and devoted userbase is the heart and soul of a vivid, open software project.


You use Opera? Good. Go to * Settings * Preferences * Advanced * Content Check the checkbox that says <b>Enable plug-ins on demand</b>. This is the plugin setting you <b>always wanted</b>. It replaces all plugins (say, annoying flash ads) by a little play button which you can click to activate the control. This way, all plugins are disabled by default (and that's good, because most of them are annoying), and whenever there actually <b>is</b> a plugin that you want to use, just click the play button and play your silly flash game if you must.


Ich möchte an dieser Stelle einfach mal los werden, dass es sich wirklich lohnt, <a href="http://www.adac.de/">ADAC</a>-Mitglied zu werden! Die holen einem aus jeder erdenklichen misslichen bis unlösbaren Lage raus (alles von, Tank auf der Autobahn leer bis man bleibt in Spanien liegen). Die 80€ im Jahr sind es wert!


Here's my code for quickly uploading files to virustotal and retrieving the reports. ```python import postfile import sys import json from StringIO import StringIO import urllib import urllib2 import time import webbrowser apikey = 'YOUR API KEY ' + \ ' GOES HERE ' resources = [] for i in range(1, len(sys.argv)): file = sys.argv[i] print 'Preparing Scan of %s ...' % file host = 'www.virustotal.com' selector = 'https://www.virustotal.com/vtapi/v2/file/scan' fields = [('apikey', apikey)] file_to_send = open(file, 'rb').read() files = [('file', file, file_to_send)] print 'Uploading file...' ret = postfile.post_multipart(host, selector, fields, files) try: data = json.loads(ret) except ValueError: print 'Cannot decode server response: ' print ret exit() print 'Upload done.' # for k in data: print '%s: %s' % (k, data[k]) resources.append((file, data['resource'])) print 'Retreiving reports...' i = 1 permalinks = [] for resource in resources: response_code = 0 while response_code == 0: url = 'https://www.virustotal.com/vtapi/v2/file/report' parameters = { 'resource': resource[1], 'apikey': apikey } data = urllib.urlencode(parameters) req = urllib2.Request(url, data) response = urllib2.urlopen(req) ret = response.read() data = json.loads(ret) response_code = data['response_code'] #print json.dumps(data, sort_keys=True, indent=4) if response_code == 0: time.sleep(5) #print json.dumps(data, sort_keys=True, indent=4) permalinks.append(data['permalink']) print '%2i: %s' % (i, resource[0]), print ': %i / %i' % (data['positives'], data['total']) i += 1 wb = webbrowser.get() selection = 0 while selection >= 0 and selection < len(permalinks): selection = int(raw_input('Open: '))-1 if selection >= 0 and selection < len(permalinks): wb.open(permalinks[selection]) ``` P.S.: This is all part of a great plan I'm following at the moment. Edit (2013-09-05): Since the VirusTotal API is now out there for a while, a lot of awesome python libraries have emerged: * <a target="_blank" href="https://github.com/Erethon/vta.py" rel="noopener">https://github.com/Erethon/vta.py</a> * <a target="_blank" href="https://github.com/Gawen/virustotal" rel="noopener">https://github.com/Gawen/virustotal</a> * <a target="_blank" href="https://github.com/botherder/virustotal" rel="noopener">https://github.com/botherder/virustotal</a> * <a target="_blank" href="https://github.com/Xen0ph0n/VirusTotal_API_Tool" rel="noopener">https://github.com/Xen0ph0n/VirusTotal_API_Tool</a>


Lars has put together a rather disturbingly large list of objects that are either useless or dyfunctional. Most of them have pretty YouTube Videos. Maybe one of them makes for a great gift. <a href="https://blag.nullteilerfrei.de/2012/05/25/useless-and-disfunctional-choose-up-to-two/#more-807" class="more-link">Do you want to look at them?</a>


I have wondered how to undefine existing commands in $\LaTeX$ for so long. Finally, I googled it up. It's easy. Simply ```latex \makeatletter \let\command\@undefined \makeatother ``` and the `\command` has been undefined. This does not cause an error when `\command` was undefined before. After that, you can merrily ```latex \newcommand{\command}{Hell Yeah.} ``` and be on your way.


I just wanted to include an SVG file into a LaTeX Beamer presentation and I found the following articles very useful: * <a href="http://www.tex.ac.uk/tex-archive/info/svg-inkscape/InkscapePDFLaTeX.pdf" title="LaTeX and Inkscape" target="_blank">LaTeX and Inkscape</a> * <a href="http://adriangerardcooke.com/useful-documentation/latex/" title="includesvg" target="_blank">includesvg</a> Apparently, Inkscape has a built in feature that allows you to write LaTeX-Code in Inkscape, export the generated SVG image as PDF and then even reimport this into LaTeX documents. Awesome!


Under <a href="http://www.cygwin.com" target="_blank">Cygwin</a>, you can install the 64 bit mingw version of GCC, but you don't get the <a href="http://gmplib.org/" target="_blank">gnu multiprecision library</a> for free with it, you'll much rather have to compile it from source. I ran into a bit of trouble here: It will <b>not</b> suffice to tell the configuration script about the new compiler, there are now mingw-64 versions of all relevant binaries that should be used instead. Basically, you go like ```bash tar -xjf gmp-5.0.4.tar.bz2 cd gmp-5.0.4 ./configure \ AR=x86_64-w64-mingw32-ar \ AS=x86_64-w64-mingw32-as \ DLLTOOL=x86_64-w64-mingw32-dlltool \ DLLWRAP=x86_64-w64-mingw32-dllwrap \ CC=x86_64-w64-mingw32-gcc-4.5.3 \ NM=x86_64-w64-mingw32-nm \ LD=x86_64-w64-mingw32-ld \ OBJDUMP=x86_64-w64-mingw32-objdump \ RANLIB=x86_64-w64-mingw32-ranlib \ STRIP=x86_64-w64-mingw32-strip ``` I am not sure if all of these are needed, but it won't hurt either. After that, you should ```bash make && make check ``` the whole thing. Worked perfectly for me, so now I can link with `libgmp.a` in `.libs` and native 64 bit bignum action ensues!