big brother is definately watching you or more accurately watching your IMs.
Apparently "22% of medium-to-large UK organisations monitor IM and only
9%" say they archive that data, which could mean that 88% of them are
in breach of corporate accountability regs...however this might only
apply to companies that operate in the US (the Sarbanes-Oxly Act)...at
the moment that is...with the Parmalat company in Italy going tits up
our favourite non-governmental organisation, Europe, might try to
introduce a similar act....whoopydoo!(you can see the sarcasm tags if
you squint)
--------
April 2004 Archives
as much as I love New York city, I've decided that it is on my list of
"No-Go" destinations, along with the rest of the United States (up
until the point where I'm not going to be treated like a criminal to
visit) and this article on El Reg is an indicator of why...
--------
Red Vs Blue, one of my all time favourite web sites is up for a Webby Award so go and vote for it!At the moment we're kicking everyone elses butts with 53% of the vote!
--------
added a link to Jon "DeCSS" Johansen's blog(RSS feed)and found this rather cool animated gif about software patents, which i share here

If only i could have afforded to go to Brussels...
--------
right i don't know how many laws I may be contravening by linking to this but
here's a nice piece of code by Jon "DeCSS" Johansen to remove DRMS
nicely called "DeDRMS":
--------
right i don't know how many laws I may be contravening by publishing
this but here's a nice piece of code by Jon "DeCSS" Johansen to remove
DRMS nicely called "DeDRMS":
/**********************
* DeDRMS.cs: DeDRMS 0.1
**********************
* Copyright (C) 2004 Jon Lech Johansen
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
********************/using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;class M4PStream
{
private Rijndael alg;private BinaryReader br;
private BinaryWriter bw;
private byte [] sbuffer;private string AtomDRMS = "drms";
private string AtomMP4A = "mp4a";
private string AtomSINF = "sinf";
private string AtomUSER = "user";
private string AtomKEY = "key ";
private string AtomIVIV = "iviv";
private string AtomNAME = "name";
private string AtomPRIV = "priv";
private string AtomSTSZ = "stsz";
private string AtomMDAT = "mdat";public M4PStream( FileStream fs )
{
br = new BinaryReader( fs );
bw = new BinaryWriter( fs );
sbuffer = br.ReadBytes( Convert.ToInt32( fs.Length ) );alg = Rijndael.Create();
alg.Mode = CipherMode.CBC;
alg.Padding = PaddingMode.None;
}byte [] NetToHost( byte [] Input, int Pos, int Count )
{
if( BitConverter.IsLittleEndian )
{
for( int i = 0; i < Count; i++ )
{
Array.Reverse( Input, Pos + (i * 4), 4 );
}
}return Input;
}int GetAtomPos( string Atom )
{
byte [] Bytes = Encoding.ASCII.GetBytes( Atom );for( int i = 0; i < (sbuffer.Length - 3); i++ )
{
if( sbuffer[ i + 0 ] == Bytes[ 0 ] &&
sbuffer[ i + 1 ] == Bytes[ 1 ] &&
sbuffer[ i + 2 ] == Bytes[ 2 ] &&
sbuffer[ i + 3 ] == Bytes[ 3 ] )
{
return i;
}
}throw new Exception( String.Format( "Atom '{0}' not found", Atom ) );
}uint GetAtomSize( int Pos )
{
byte [] Bytes = new byte[ 4 ];
Buffer.BlockCopy( sbuffer, Pos - 4, Bytes, 0, 4 );
return BitConverter.ToUInt32( NetToHost( Bytes, 0, 1 ), 0 );
}byte [] GetAtomData( int Pos, bool bNetToHost )
{
uint Size;
byte [] Bytes;Size = GetAtomSize( Pos );
Bytes = new byte[ Size - 8 ];
Buffer.BlockCopy( sbuffer, Pos + 4, Bytes, 0, Bytes.Length );return bNetToHost ? NetToHost( Bytes, 0, Bytes.Length / 4 ) : Bytes;
}public void Decrypt( byte [] CipherText, int Offset, int Count,
byte [] Key, byte [] IV )
{
MemoryStream ms = new MemoryStream();ICryptoTransform ct = alg.CreateDecryptor( Key, IV );
CryptoStream cs = new CryptoStream( ms, ct, CryptoStreamMode.Write );
cs.Write( CipherText, Offset, (Count / 16) * 16 );
cs.Close();ms.ToArray().CopyTo( CipherText, Offset );
}public byte [] GetUserKey( uint UserID, uint KeyID )
{
byte [] UserKey;
BinaryReader bruk;string strHome =
Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData );
bool bUnix = Environment.OSVersion.ToString().IndexOf( "Unix" ) != -1;
string strFile = String.Format( "{0}{1}{2}drms{3}{4:X8}.{5:D3}", strHome,
Path.DirectorySeparatorChar, bUnix ? "." : "",
Path.DirectorySeparatorChar, UserID, KeyID );bruk = new BinaryReader( File.OpenRead( strFile ) );
UserKey = bruk.ReadBytes( Convert.ToInt32( bruk.BaseStream.Length ) );
bruk.Close();return UserKey;
}public int [] GetSampleTable()
{
byte [] adSTSZ = GetAtomData( GetAtomPos( AtomSTSZ ), true );
int SampleCount = BitConverter.ToInt32( adSTSZ, 8 );
int [] SampleTable = new int[ SampleCount ];for( int i = 0; i < SampleCount; i++ )
{
SampleTable[ i ] = BitConverter.ToInt32( adSTSZ, 12 + (i * 4) );
}return SampleTable;
}public void DeDRMS()
{
byte [] IV = new byte[ 16 ];
byte [] Key = new byte[ 16 ];int apDRMS = GetAtomPos( AtomDRMS );
int apSINF = GetAtomPos( AtomSINF );
int apMDAT = GetAtomPos( AtomMDAT );int [] SampleTable = GetSampleTable();
byte [] adUSER = GetAtomData( GetAtomPos( AtomUSER ), true );
byte [] adKEY = GetAtomData( GetAtomPos( AtomKEY ), true );
byte [] adIVIV = GetAtomData( GetAtomPos( AtomIVIV ), false );
byte [] adNAME = GetAtomData( GetAtomPos( AtomNAME ), false );
byte [] adPRIV = GetAtomData( GetAtomPos( AtomPRIV ), false );uint UserID = BitConverter.ToUInt32( adUSER, 0 );
uint KeyID = BitConverter.ToUInt32( adKEY, 0 );
string strName = Encoding.ASCII.GetString( adNAME );
byte [] UserKey = GetUserKey( UserID, KeyID );MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
MD5.TransformBlock( adNAME, 0, strName.IndexOf( '\0' ), adNAME, 0 );
MD5.TransformFinalBlock( adIVIV, 0, adIVIV.Length );Decrypt( adPRIV, 0, adPRIV.Length, UserKey, MD5.Hash );
if( Encoding.ASCII.GetString( adPRIV, 0, 4 ) != "itun" )
{
throw new Exception( "Decryption of 'priv' atom failed" );
}Buffer.BlockCopy( adPRIV, 24, Key, 0, Key.Length );
Buffer.BlockCopy( adPRIV, 48, IV, 0, IV.Length );for( int i = 0, Pos = apMDAT + 4;
i < SampleTable.Length;
Pos += SampleTable[ i ], i++ )
{
Decrypt( sbuffer, Pos, SampleTable[ i ], Key, IV );
}Encoding.ASCII.GetBytes( AtomMP4A ).CopyTo( sbuffer, apDRMS );
Encoding.ASCII.GetBytes( AtomSINF.ToUpper() ).CopyTo( sbuffer, apSINF );bw.Seek( 0, SeekOrigin.Begin );
bw.Write( sbuffer );
}
}class DeDRMS
{
public static void Main( string [] Args )
{
FileStream fs;
M4PStream m4p;if( Args.Length != 1 )
{
Console.WriteLine( "Usage: DeDRMS file.m4p" );
return;
}try
{
fs = new FileStream( Args[ 0 ], FileMode.Open,
FileAccess.Read | FileAccess.Write );
m4p = new M4PStream( fs );
m4p.DeDRMS();
fs.Close();
}
catch( Exception e )
{
Console.WriteLine( "Exception: {0}", e.Message );
return;
}
}
}
--------
just got myself a Google Gmail account, since they've expanded their beta test to Blogger users!
--------
from the creator of "Akira" comes his follow up Steam Boy, check out the trailer on the web site.I've got no idea what the film's about as I don't know Japanese, but it looks good!
--------
The smart road that spies on you - but it doesn't really... | The Register:
"Environment for Efficient Transport in the Western Isles of Europe -
this covers the UK and the Republic of Ireland, and is intended to "
This is quite a good article about an Intelligent Road System (IRS..hmm
bad acronym but anyway). I especially like the paragraph:
The popular press seems perfectly cool about unimportant
stuff like freedom and personal privacy, but just you try to enforce
the speed limit, or even present them with some slight possibility that
you might at some future date try to enforce the speed limit, and they
become the Provisional wing of the National Rifle Association
--------
an update to the BTTF Delorean form yesterday, its too much to fit in here but its worth reading in this forum.
the guy selling it is apparently a sleazeball, and the photos are
stolen ones from the original creator consequently the sale's been
pulled from Ebay at least once. but anyway kudos to the original
creator Gary Weaver II (of this one)
--------
oh man for all of you out there who did go and see Lord of the Rings
and wanted to know where the hell everything came from but are too lazy
to read the Silmarillian, here's a very funny abridged version (1000words) that fills in most of the important stuff (without the thees/thous and flowery language)
--------
hehehe, ok it had to happen, and fortunately El Reg has got a couple of different stories...but: "Killer cyberloo kidnaps Kiddie", which is a reference to a BBC News article. There's one of these in Glasgow (will try to get a photo at some point) that appears to only be used as a advertising stand.
--------
we're well on the way to being a serial blogger to day, but here's another link, and this one makes a couple of good points:
- It's difficult to hit terrorists cos they keep moving, so there probably not there by the time you get your ass in gear and
- the collateral & consequences are huge even if you do manage to hit them
--------
As the largest censor of the internet, China has, according to this BBC News story
installed web cams to monitor the users of internet cafés in Shanghai.
I'm raging anti-communist, and must admit that as a country China isn't
doing too badly under Communism, but I do have problems with the whole
Big Brother aspect. And not just in tightly controlled regimes but
other places like the UK & US (more increasingly). I get the need
for a goverment to know generally what its citizens are doing, but do
they have to know particularly every single one? Just on the off chance
that one of them does something wrong? Ah well, I'm young and naive to
the world ain't I?
[Update] Link to the Chinese version of the BBC News website bet it doesn't have the article above :-) (oh you'll have to be able to read Chinese)
--------
reading the Full Spectrum Warrior web site (a game developed off a game developed for the US army) and found this quote:
“Being in the Army is like being in the Boy Scouts, except that the Boy Scouts have adult supervision.”
-Blake Clark
hehehe, like it!
--------
ok now i am being very very sad (pathetic, no unhappy) but i want one of these!.
Admittedly I like kinda like Delorean's in their "clean" configuration
but as a science geek i want a time travelling (or maybe just one that
looks like it does)
--------
here we are keeping tabs on the latest tech developments and now we
have a tactile system
for reading your SMS messages. I quite like the idea that you could
tell who's phoned you just by picking up your phone. ohoo and following
the links we find this...a
phone that uses your finger as the earpiece. Complete with voice
dialing (it has no keypad), you answer and hang up by touching your
finger & thumb together. We are getting well into the realms of the
"Star Trek" communicator badges, which again we find on
the BBC news web site as becoming almost a reality. Now hook that up to
the GSM network, and i'll pay for it, although privacy of conversations
may be problematic.
--------
an article on Wired News about parking tickets, and this
"You have to pay for parking, take the ticket, go back to your car, keep the ticket. This is confusing."i
had to laugh, at, it sounds awfully like the system we already have in
the UK...ITS NOT ROCKET SCIENCE! D'oh
--------
Actually funnily enough i'm on a bit of writing roll just now, i've
been putting up all these little pieces of junk that I've found for no
particular reason, other then I'd forget it (hence MySpareBrain) and
its kinda got me thinking about how people measure their lives. A
significant number of people base it on how much money they have,
others on what type of car they drive or how much stuff they have in
their homes. Now i'm sure if you asked most people what is the one they
most want in life, most of them would say to be happy, but does that
really mean anything? And does this unconcisous unhappiness combined
with the materialistic (some would say capitalistic) way of life,
causing people to break down faster and younger than ever before? How
many students go to university thinking they know what they want to do
but by the end of it have no idea who they are, let alone what they
want to be doing? Within the last week alone, I know at least 4 people
who are just about ready to throw in the towel and do something else,
anything else, in fact.
University's are great accumulators of knowledge, you go in thinking you know everything and come out knowing nothing.Hmm not quite a rounded and fully formed thought but more
Carpe Diem? The Fish Must Die!
a stream of conciousness...must sleep...oh god i'm sad!(pathetic, not
unhappy)
--------
OK I've started another blog, partly cos I'm bored and partly cos I
don't want it cluttering up this one. Anyhoo, The Border Crossing at The Edge Of Sanity
is now up and running, and its basically a theatrical diary...i'm
directing and I thought I'd share this terrifying ordeal with may be at
least zero other people.
--------
Update! here's the web site
for national turn off your Tv week:
--------
well apparently this week is "National Turn Off Your TV week", funny
not seen any ads of tele for it. So in the spirit of things (and
basically cos i'm probably not gonna get the chance to watch any tele
for the next month or so) I'm encouraging all you readers out there
(all none of them) to turn off your TV's and go and do something
different (go out meet friends, goto the cinema (doesn't count) or
even, god forbid, go exercise, take a walk) and for those of you who
don't get a say in whether the TV is on or off because of some other
intereference, well, go amuse yourselves too!
--------
Just reading back from a couple of days ago, and the Caron Keating
entry, which reminded me of a great put down that my brother told me, I
wish I could remember who the comedian was but there were getting
heckled by Sophie (daughter of Janet) Ellis Bextor, and the reply was:
I'm getting heckled by Sophie Bextor...I used to fancy your mum!Absolutely
brilliant!
--------
this is sooo cool...whilst Sun is working on Project Looking Glass (see
earlier entry) this guy has written a windows version that does a
similar sort of thing...check it out (May take a while to load as his database seems to be kind of dead)
--------
we're on a roll today, but once again, found a fairly interesting programme on the Discovery Channel
that compared the M-16 and the Kalashnikov Ak-67...the AK won on the
actual implementation but the M-16 is technically the better gun. Quite
interesting really but is there really a need to compare which is
better at killing people?
--------
in the news today (wow 2 posts within a week) George Bush has given his
support to an Israeli withdrawl of "some settlements and military
installations" from Gaza and the West Bank. Now whilst this has the
potential to be a good move, this would require an acceptance from the
Palestinians, which I don't think will happen. Though that said a
little bit of appreciation that the Israeli's are giving away something
that they feel is very valuable.
--------
right finally got round to publishing this blog (which no one reads in
all likelyhood) under the Creative Commons license. Basically you can
(re-)use anything i write here as you wish, just say where it came from
originally (especially if I just linked to it) and only if you share
what you create under the same terms...other than that you can do what
you please with it!
--------
ooohh man...long weekend...drank far too much on Monday...and just
ieurgh!tired!...still 'nother week, 'nother show...that said is very
slowwww!! anyway in the news...AOL/ICQ to be in the forthcoming Matrix
MMORPG computer game...American Airlines shared lots of their passenger
details with the US Govt...George Dubya is still in charge of
America...and people are dying in Iraq still(though that said it is
still mostly Iraqis so Dubya seems happy enough)
--------
As Lessig said in his blog about this
"Will the sanity ever stop?" Its nice to see that the Canadian govt is
paying attention to copyright in the 21st century. Oh and to add I
finished Lessig's book Free Culture
--------
ooohh another night out on the tiles, a full 24hr+ day, filled with all
sorts of fun and exciting things! And that was just after 7am on
Sunday. Anyway 12th Night has now closed at the Ramshorn, and the
Spring Season has now ended, next season is currently mostly empty, but
should be filling up soon, with (possibly) one show directed by myself!
The prospect is starting to terrify me, but I should get through it.
--------


