Category Archives: Uncategorized

Spam fail

This blog has always attracted some spam. In the beginning it was small enough to delete by hand, but it has grown to the point that I installed a plugin called Akismet. It works fine, but since nobody has ever commented on any single article I wrote, it could be having a lot of false positives, or at the worst case it could simply mark every comment as spam. I just don’t know.

So I took a look at the spam messages, and I came across this small jewel:
{I have|I’ve} been {surfing|browsing} online more
than {three|3|2|4} hours today, yet I never found any interesting article like yours.
{It’s|It is} prety wortth enough for me. {In my opinion|Personally|In my view}, if all {webmasters|site owners|website owners|web owners} and bloggers made good
content as you did, the {internet|net|web} will be {much more|a lot more} useful than ever before.|
I {couldn’t|could not} {resist|refrain from} commenting.
{Very well|Perfectly|Well|Exceptionally well} written!|

Etc, etc… It goes on for another 25kB.

It seems like this spammer is even too stupid to correctly install his software. I don’t think a simple facepalm is going to cover this one. We’ll need a double facepalm!

Low latency video with a Raspberry Pi

Now that I have a camera board, I’ve been trying to get a real-time video stream out of the Raspberry Pi. First I tried using RTSP, but the problem is that a video player will start buffering an incoming stream, giving you a 10 second delay. I don’t know whether this can be avoided. Then again, I haven’t looked very hard.
I got rather decent results by just bypassing all the overhead, and sending the H.264 stream of the camera directly to a TCP tunnel. On the desktop side, you can then read the data and pipe it to mplayer. For the network transport, netcat comes to the rescue:

First, start listening on the desktop:
nc -u -l -p 6502 | mplayer -fps 15.1 -demuxer h264es -

Then, open the floodgates on your raspberry pi:
raspivid -t 0 -hf -w 320 -h 240 -fps 15 -b 500000 -o - | nc -u 6502

There are a lot of parameters you can play with, trying out tcp instead of udp, changing bitrate, size etc. Notice that I set the playback rate a bit higher, this keeps mplayer constantly hungry. If the camera sends even slightly faster than mplayer shows, the frames would start to pile up, and you would get an ever increasing lag (and memory usage).