Friday, April 20, 2007

I know i can count, but i'm not sure about my mac

So in a moment of boredom, i opened up my trusty text viewer, and had a look at some files. Namely a RTF, and a Text File.

First off, i now understand why programmers love plain text files so much. First off, there are no bytes wasted on headers. It's straight into the data, no messing and no playing.

So here is the test stub
#!/bin/bash

## Coursework mass compilation

cd ~/Desktop/OOTM

javac TerminalInput.java

javac Deck.java

javac Player.java

javac Game.java

javac CardGame.java

## Run the application

##java CardGame

This was a little bash script i wrote to help compile my coursework.
Not to remember the basics, each character is equal to a single byte, or 8 bits. FF is therefore equal to 255.

The plain text file is 8KB, with 204 characters. My maths tells me that should be equal to 204 bytes. But for some reason, my mac accounts another 1300 + bytes!!

Mean while the Rtf file is 4KB, with 561 bytes, which is the exact number of characters in the file. But wait you say, there are only 204 characters in the file. Correct, so whats the other junk ....
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural

\f0\fs24 \cf0


I only went through it briefly, but it appears to show the font types, and colors for the file.

But my question to the world is, why on earth is the text file twice the size, but yet still halve the number of bytes in the hex editor?

Saturday, April 07, 2007

Social Discovery

Call me socially inept, but i just realized something. You can tell when someone likes you or enjoys your company, when they start doing random things, without just cause. Now depending on what they do, you can then determine whether or not they are trying to get close to you, or in fact kill you.

Ie. I do random things for people all the time, however i personally rarely have random things done for me. Which clearly shows i'm dis ... Right let me rethink that.

But you get the point, however the caveat to this, is that you can begin to think that every random act of kindness, has a meaning. If your a pretty young lady, then it generally does. If your me, then most likely not, however every other one might have some significance.



Quote of the Day
"Look, it's my favourite Drunkard, top of the evening too ya"

Can't beat viki, you really can't

Friday, April 06, 2007

Useful Email validation

Got some javascript, for the coders out there. Not my finest work but quite neat.

This validates a email field, combined with a simple input field as shown.

HTML



"<"input id="emailInput" class="halfSize" type="text" value="Place Replay to Email here" name="replyTo" onkeyup="validateEmail( this.value);" />


However it does it in a funky AJAX way, allowing the user to see where exactly they have put a foot wrong.

it checks the following

  • Address is longer than 6 characters

  • There is a @ symbol present

  • and there is a "." within the domain section of the email



The 6 character mimumim was calculated using the following logic,

1 = one character for username
2 = one character for the @ symbol
3 = one character for the domain
4 = one dot/decimal to seperate the domain from the TLD
6 = two characters for TLD and ccTLD.

First improvement, that one should make, is enable both the input field, and result field to be supplied as function arguements, however in my case (internet computing assignments), this is only getting used once.

Javascript



function validateEmail( pEmailObj ){

var pEmailString;
var retVal;
var returnObj = "emailValidStatus";
var whereIsSymbol;

//Setup
pEmailString = pEmailObj;
document.getElementById(returnObj).style.background = "#bf3a3a";
document.getElementById(returnObj).style.color = "#fff";
document.getElementById(returnObj).style.padding = "2px";

//Go Down a level after each check
if(pEmailString.length > 6){ //Check length

if( (whereIsSymbol =pEmailString.search(/@/)) > -1){ //Check for @ symbol

//Find the dot after the @ Symbol
var lastDot = pEmailString.indexOf( ".", whereIsSymbol)

if(lastDot != -1){ //Check for . after @ symbol
document.getElementById( returnObj ).style.background = "#71ba43";
retVal = "Valid!";
}
else{
retVal = "Invalid: Bad Domain";
}
}
else{
retVal = "Invalid: Missing @ symbol";
}
}
else{
retVal = "Invalid: Too short";
}

document.getElementById( returnObj ).innerHTML = retVal;
}


Last but not least it's Released under the GPL, so use it and abuse it.