spass-2.0 – Secure Password Generator

This is a complete rewrite of my secure password generator. The new version uses my true random number generator (and here).

The major change was using the new true random number generator in order to ensure strong passwords. Less significant changes include an easy way to specify password strips and some calling convention changes.

Usage examples:

$ ./spass
E5pT35Fg
$ ./spass -l 14
R$tfOm4g_yRQ2J
$ ./spass -s 0-9a-f -l 32
8b5f14a1eeaabe58c2878ab5416a9ebb

Download the tarball spass-2.0.tar.bz2. The program depends on Boost‘s program_options (it was tested against versions 1.37 and 1.42 and should work with other versions too).

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

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

Simple Histogram Widget for wxWidgets

When working on Open Yahtzee 1.10 (or whatever I’ll call the version after 1.9), I wrote a simple histogram widget to be part of the new statistics dialog. I should emphasize the simple part: this widget was meant to display a simple histogram without requiring any special, bloated plotting libraries. It doesn’t support all the fancy stuff, just a plain histogram.

I figured that a simple pie plot would better serve Open Yahtzee’s needs, so unfortunately this code will not be released as part of the program. While the code is not perfect, it’s functional and serves as a good example of a custom widget. So I felt pity at letting it fall into oblivion in Open Yahtzee’s SVN repository, and I thought it might come in handy to someone else (or at least to me) if it were easily accessible.

simple_histogram

Continue reading Simple Histogram Widget for wxWidgets

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