Index | Archive | Tags | Atom Feed | RSS Feed

dDoS - now on a phone near you

You may or may not now that your desktop browser can do arbitrary http requests using java script, all without any action from you. Of course, this can be abused to dDoS websites into oblivion, [cached]as shown by Anonymous. Funny thing is, this also works on mobile browsers - and you can't even tell that anything is happening if the site is at least a little clever.

Implementation is astonishingly simple:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
function loop() {
    for(var i = 0; i < requestsPerLoop; i++) {
        try {
            var xhr = new XMLHttpRequest();
        xhr.open('GET', target …

Life-logging for your computer usage

Have you ever wondered where most of your time goes when using your computer? I always did, so I wrote a small script which logs the currently visible and focused apps:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 …

Better privacy with 2-click social buttons

Today I noticed that the social network buttons on my blog had disappeared - I quickly realized that this was because I had recently reset my theme. Of course, I had to bring those buttons back, but better. By chance, I stumbled over the [cached]socialshareprivacy project (sorry, german only. [cached]project site with downloads) of german news site and publisher heise.

I was intrigued. Not only because this would mean better privacy, but also because of another welcome side effect: Faster page load times! After all, if we only load those buttons and their .js and .css files when we …


Visualizing sorting Algorithms with D3

In my Algorithm class, we had to implement our own sorting algorithm as an exercise in pseudo-code. It was very simple: Alternatingly iterate over an array from beginning to end and from end to beginning, always swapping pairs over numbers which are not correctly sorted. Repeat until finished.

In Python (you can also [cached]download a runnable versionspan)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def sort(a):
  lower_limit = 0
  upper_limit = len(a) - 1

  while(lower_limit != upper_limit ):
    i …

LifeSaver - Game of Life as Screensaver

Recently, I promised you that I'd write my own screensaver. Well, here it is - an implementation of [cached]Conway's Game of Life using [cached]xscreensaver and OpenGL. It's based on the Python implementation I wrote, but quite a bit faster thanks to some trickery. Here's how it looks like:

Screenshot of the Screensaver

Since I need to blit a lot of pixels for each frame (all changed cells + all those that died recently and are fading away), I decided to use an OpenGL texture for drawing. That way, my dense array gets painted directly to the screen. To avoid unecessary copying, I've interleaved the …


A fairly minimal xscreensaver

Today, I wanted to write my own screensaver, so I started looking for frameworks. Quickly, I found [cached]xscreensaver, the de facto standard (?) for screensavers on X11.

The readme does mention two example screensavers developers should use to start out, but they still contain some superfluous stuff (GOTOs !). To get a better understanding of the framework, I set out to reduce them as much as possible. Without further ado, here's the result of my work. Stay tuned for my finished screensaver.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19 …

gzip your Octopress

When I read Hacker News today, I found a very cool post: [cached]Make your website fast. (And why you should). Of course, I wanted to try this out myself - one of the major reasons I went to S3 for hosting was increased speed.

Now by default, octopress doesn't include anything to help you here - S3 requires that you gzip your static content files manually. Aditionally, you have to set the correct content header! Now, a bit of googling quickly led me to an [cached]excellent post from Frank Fusion. (After some trial and error with the aws/s3 gem …


Plotting with julia

Maybe you've already heard it: There's a new language on the block - Julia. She seems to be a hot contender for the new standard scientific computing language, maybe also replacing R for statistical analysis.

Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.

Of course, it's a very young language, so they standard library is quite small right now. For example, you can also plot to the webinterface, not to …


Protecting your mails with GnuPG

You probably know that you can encrypt and sign your emails using GnuPG, and there's even a bunch of programs and plugins to make it easier for you. However, if you are like me and use Gmail's browser interface, there's no plugin for you. Your only choice is to copy & paste your mails to some external program, encrypt / decrypt them and paste them back into Gmail. Certainly not very comfortable.

Today, I set out to change this. I wrote a small Chrome extension which interfaces with GnuPG so you can encrypt and decrypt your mails directly from the browser. It …


V-Hand

The V-Hand's purpose is to capture all hand and finger movements.

Out of order, but inserted here as reminder for myself: To increase accuracy, the next version of the V-Hand will have a 3-axis compass built in. This can be used to make sure rotation information from the gyroscopes doesn't drift. More or less, the V-Hand is an Inertial Navigation System without external references.

Basically, it's a glove with an Accelerometer, a Gyroscope and Potentiometers for tracking the fingers:

An Arduino Nano comes in handy to process all the data and send it to a PC:

The pictures above show …

© Julian Schrittwieser. Built using Pelican. Theme by Giulio Fidente on github. .