Stoppt die 
Vorratsdatenspeicherung! Jetzt klicken & handeln!
<halcy> Oh I know what you should make <halcy> WAHa_06x36: Make a STALLMAN BOX <halcy> WAHa_06x36: Like a buddha box except it displays cool saint ignucius effects and it plays the free software song

And then I went and made it myself.

Stallman box

It is, of course, free software. You can find the source code on github. Users of GNU/Linux are assumed to be capable of compiling it themselves (It pretty much works out to “run make”, needs SDL and freeglut and glew). GNU/Linux graphics drivers are usually proprietary and sometimes terribly buggy, so it might or might not work.

For Microsoft Windows, there is a binary version.

Download:

(It requires a relatively new version of OpenGL to actually run, sorry about that)

Some audio and png code taken from WAHa_06x36 - thank you!

halcy.de was down due to unforseen motherboard breakage. Suprisingly, some people actually noticed this. The motherboard has been switched out, so halcy.de is back in working condition now. Welcome back. :3

re: 1 (view/add your own)  / about :

So I got a 3DS, and after noticing that it uses an open format (“mpo”) for storing 3D photographs, I needed to play with that, of course.

As a result, I now have a version of my simple raytracer that can render a left and right image, which can then be combined into one stereoscopic 3D image for viewing on the 3DS with software such as this (It runs under wine).

I’ve rendered two small scenes, a 4D julia set and a trefoil knot of spheres! They look kind of neat, so if you have a 3DS, put them on your SD card in the picture folder and have a look!

(If you don’t have a 3DS, you can still look at them as if they were normal jpeg images, because they really are jpegs with some added exif data)

P.S.: My friend code is 0473-7758-5435~ feel free to add me~

Four new entries and live videos have been added to the “releases” page, amongst them my favourite SVatG release thus far, “It’s 1975 and this man is about to show you the future”!

Check them out!


re: 0 (view/add your own)  / about : (none)

In the same vein as the fake twitter pages: Automatically generated pro-guttenberg facebook comments: Find ich Gutt!

(If you don’t know what this is about: Germany’s scandal-plagued defense minister must step down)

Source code, horribly inefficient.

(P.S.: The design of that page is the greatest work of art I have ever created.)

I wrote a paper for a proseminar at uni. Now that it is graded and got a decent grade, it is okay to publish it, I guess~

It’s an introduction to a medical imaging technique called “Optical Coherence Tomography”, OCT, for short, which enables us to create high-quality sub-surface images of tissue, we can essentially see “through” things and create 3D cutouts of samples. It’s fairly new and pretty neat. If you are interested about this sort of thing and/or the physics behind it (Low-coherence light and low-coherence interferometry / white light interferometry), it is probably a decent read~

So I had the idea to generate fake twitter pages from a users old tweets. I wrote a bunch of Perl scripts to do just that. It worked out well.

The process essentially consists of four steps:

  1. Acquire a users tweets.
  2. Train a fourth order markov model with those tweets.
  3. Generate new tweets by having the markov model spew out new chains.
  4. Generate a twitter page from those tweets.

Except for the last step, I’ve written scripts to do this. (Writing one for the last step wouldn’t be hard, but boring, and it’s easy enough to do by hand)

Step 1: Obtaining tweets.

Essentially, it’s a loop that gets the tweets via twitters api, page for page. Simple enough. The only real problem is twitters rate limiting, so grabbing more than one user per hour does not work.

#!/usr/bin/perl

my $max_page = 200;
my $start_page = 0;
my $user = "username";

for( my $page = $start_page; $page < $max_page; $page++ ) {
        my $cmd = "wget http://twitter.com/statuses/user_timeline/$user.json?page=$page -O - >> tweets.json";
        `$cmd`;
}

Step 2 and 3: Training and generating.

This script takes json as output by the script in step 1 as the input, and outputs generated, fake tweets, one per line.

Since I was too lazy to implement a markov chain myself, I used a library off CPAN to do the heavy lifting.

#!/usr/bin/perl

use JSON;
use Encode;
use Algorithm::MarkovChain;

# Parse JSON
my @tweetsJsonA = <>;
my $tweetsJson =decode_utf8( join( "", @tweetsJsonA ) );
$tweetsJson =~ s/\]\[/,/gi;
my $tweets = decode_json( $tweetsJson );

# Train
my $user = Algorithm::MarkovChain::->new();
foreach my $tweet (@{$tweets}) {
    my @symbs = ("START", split( " ", $tweet->{text}), "END" );
    $user->seed(
        symbols => \@symbs,
        longest => 4
    );
}

# Generate 20 tweets
binmode STDOUT, ":utf8";
for( my $i = 0; $i < 20; $i++ ) {
    my @generated = ("START");
    my $l = 1;
    while( $generated[-1] ne "END" ) {
        @generated = $user->spew(
            length => $l,
            complete => \@generated
        );
        $l++;
    }
    @generated = @generated[1..(@generated-2)];
    print join( " ", @generated ) . "\n";
}

Step 4: Generating a fake twitter page.

This consists of two parts, making the tweets into twittery html, and adding what comes before and after the tweets in a twitter HTML page. For the former, I wrote a small script, again, which mostly just concatenates text a lot, I put it here if you want it (Save as “mktwpage.pl”).

The second part, I’ve done by hand, thus far, assisted by my browsers “Save page” feature. Too lazy to automate.

And, there you have it: Autogenerated fake twitter pages. Halfway convincing, too. Go generate your own!