Statistical Tests for My Audio Based Random Number Generator

In May, I’ve written about a way to generate random numbers from audio noise. Basically, it went like this:

  1. Get an audio sample from the microphone.
  2. Push the least significant bit to a buffer.
  3. Repeat steps 1-2 until the buffer is full (buffer size == block size for the hash function).
  4. Apply the hash function to the buffer.
  5. Get random bits from the digest.

In order to continue developing this random number generator (RNG), I’ve written a C++ class that simplifies working with it.
Continue reading Statistical Tests for My Audio Based Random Number Generator

Audio-Based True Random Number Generator POC

A few days ago, I came up with an idea to create a true random number generator based on noise gathered from a cheap microphone attached to my computer. Tests showed that when sampling the microphone, the least significant bit behaves pretty randomly. This led me to think it might be a good source for gathering entropy for a true random number generator.
Continue reading Audio-Based True Random Number Generator POC

Hash Puppy 0.2

This is an update to my simple, easy-to-use checksum calculator. It supports md4, md5, and sha1 hash functions. I wrote the project as a way to experiment with and learn Qt.

Changes since the previous version (Hash Puppy 0.1) include the ability to abort a checksum calculation and improved GUI responsiveness. There were also other minor tweaks to make Hash Puppy easier to use.
Continue reading Hash Puppy 0.2

Improved FTP Backup for WordPress

This script backs up both the database and files of a WordPress blog to a remote FTP server (while keeping a local copy). It’s an update of my WordPress Backup to FTP script. The main changes are auto-detecting database settings and better support for caching plugins (specifically WP-Cache). The new version makes it easier to back up multiple WordPress blogs to the same FTP server.
Continue reading Improved FTP Backup for WordPress

An Early Release of the New cssrtl.py-2.0

It has been three years since I released the original version of cssrtl.py (and two since its re-release). The old version did a nice job, but experience gained during that time led me to write a new version from scratch. More than a month ago, I detailed the basic principles and ideas that guided me in designing a better tool to help adapt CSS files from left-to-right to right-to-left.

The guidelines weren’t just empty words; they were written while working on the Hebrew adaptation of the Fusion theme and at the same time writing a new proof-of-concept version of cssrtl.py. The original intent was to release a more mature version of that code when it was completed. However, due to the apparent shortage of time in the present and foreseeable future, I can’t see myself completing the project any time soon. So, following the “release early” mantra, I’ve decided to release the code as-is. As I said, the code is in a working state, but not polished, so it may be beneficial but may contain bugs. If you find any bugs or have any suggestions, I would be glad to hear.
Continue reading An Early Release of the New cssrtl.py-2.0

Simple AI Engine for the Oware Game

Some time ago I worked with a friend on building an Oware game. I was supposed to build the AI engine, and he was supposed to build the user interface for it. Unfortunately, while the AI engine interface I designed and a simple alpha-beta pruning engine were implemented, the project was never completed.

Screenshot of game session
Screenshot of game session

Continue reading Simple AI Engine for the Oware Game

Designing a Better CSS RTL Converter

About a year and a half ago, I’ve released cssrtl.py, a script that translates CSS code to RTL. The script was designed to be fully autonomous; however, translating CSS code is a complex task, as not all the information needed to make the translation is available in the CSS files. While cssrtl.py did a very good job on some tasks, it falls short in several areas:

  1. When a design update is released, one cannot use previous translation work.
  2. When things don’t go smoothly, it’s hard to find out why.
  3. Complex CSS can’t be translated automatically, as it requires understanding the structure of the corresponding html files and how the CSS will be used by future code.

Continue reading Designing a Better CSS RTL Converter

Hash Puppy – A Qt Checksum Calculator

I’ve decided to give Qt a try after a long time of wxWidgets programming. When I learn a new language or how to use a new library, I always like to build some small projects to get my hands dirty. This time I’ve built a small checksum calculator – Hash Puppy (in fact, first I had the name, then I decided I must use it for some new project).

hashpuppy
Continue reading Hash Puppy – A Qt Checksum Calculator

tarsum-0.2 – A read-only version of tarsum

When I first scratched the itch of calculating checksums for every file in a tar archive, this was my original intention. When I decided I wanted the script in bash for simplicity, I forfeited the idea and settled for extracting the files and then going over all the files to calculate their checksum values.

So when Jon Flowers asked in the comments on the original tarsum post about the possibility of getting the checksums of files in the tar file without extracting the whole archive, I decided to re-tackle the problem.

Continue reading tarsum-0.2 – A read-only version of tarsum

XWRDS Gets a Browser Search Extension

I’ve added an OpenSearch description for XWRDS today. In simple words, it means that you can now search XWRDS directly from your browser search box. Supported browsers include Firefox 2.0+, Internet Explorer 7+, and Google Chrome, so if you use one of these browsers, you can now solve your crosswords faster than ever by using the XWRDS search.

To add the XWRDS search to your browser’s search box, either click this link, or go to the XWRDS website and select the XWRDS search engine from the pull-down menu of your browser’s search box (usually at the top right corner of the window).