Touching up the Character Frequency Analyzer

December 23rd, 2008

Every once in awhile I get the urge to touch up something from the past, a real quick bang for the buck as it is said. Today I touched up the Character Frequency Analyzer.

A few years ago I wrote a simple tool that does the following:

  1. Takes a piece of text
  2. Analyzes and counts each character in the text
  3. Prints the results to the screen

It is a really simple idea but useful in encryption / decryption. If one knows the average character distribution of a language, one can perform character frequency analysis on an encrypted message and use the language character distribution to attempt to guess a key to the encryption scheme. This article isn’t about encryption however; it is about taking this old application and giving it a touch up.

Since this is a niche tool, I opted on multi language support. I used google translate to translate this application it to the most popular languages in use on the web. These translations might have issues, but if traffic begins to increase, I will request user feedback or look into budget professional translation services.

Here is a screen shot of the previous version:

Character Frequency Analyzer

Character Frequency Analyzer

Character Frequency Analyzer 1

Character Frequency Analyzer

As you can see, it is a very basic HTML interface with no frills.

I noticed a few problems with it right away:

  1. Interface isn’t attractive
  2. Ad placement is not optimized
  3. Useless backlink
  4. No feature to export analysis to an external program for processing (CSV export)
  5. No linking program or incentive

I decided to touch it up, and here is what was done:

  1. For the main template, I opted for a simple DIV layout with CSS controlling the font size, and colour. This allowed for more control of the page elements.
  2. The font size was increased to make the text easy to read and generally increase usability across the site.
  3. A backlink was removed to increase one way link quality.
  4. Quick tip was introduced to implement a feature I don’t have time to create (export to CSV).
  5. Site background was used to focus user attention on main interface. Thank you to Travis Beckham at Squid Fingers for his awesome patterned backgrounds!
  6. Advertising was placed more strategically for increased CTR while maintaining usability.
  7. A simple linking program was implemented

Check out the improvements yourself at the Character Frequency Analyzer

After these modifications, the following is expected:

  1. Increased backlinks with new design attractiveness and linking program
  2. Increase attractiveness for potential partners of the site
  3. Increased ad CTR

This is an odd utility and I don’t expect much in terms of growth, but I am interested in seeing how this can be pushed.

Cellular Automata System + Rule Control System Demo

October 20th, 2008

This is the first version of the control system for the automata. The yellow buttons represent the rules of evolution, the green button grid represent the center initial grid state.

The prototype release is coming soon :)

Cellular Automata + Python + Pygame

October 12th, 2008

In the lab, more details coming soon :)

Cellular Automata Update

October 7th, 2008

Here is a new pattern, the second one from the automata engine.

This is similar to the game of life rule set. The first shot is the initial state. Interesting.

Arpeggiator Experiments

October 6th, 2008

I’ve been experimenting with various improvised techniques using arpeggiators this year.

The following is a sample of improvised bits of sound that use this technique. These sound clips are about 8 months old.




Cellular Automata Model

October 6th, 2008

I’ve been talking about for years but today I actually say down and did an initial implementation.

It’s implemented as a command line program which produces jpeg images.

Here is some outputs from my initial generations. Please note the following conditions:

1. the grid is a wrapping grid. that means top is connected to bottom, left is connected to right.
2. diagonal neighbors are not supported
3. 512 gridsize was used
4. 64 randomly placed cells were generated into the grid
5. a snap shot was taken every 25 cycles: ((i % 25) == 0)

There are 256 rules which can be applied. This is an example of just 1 rule.

1. phase 0 (init)

2. phase 25

3. phase 50

4. phase 75

5. phase 100

6. phase 125

7. phase 150

8. phase 175

9. phase 200

10. phase 225

9. phase 250