Christopher Syn by Russell Thorndike and William Buchanan; Introduction By James Mason

I just finished reading Christopher Syn by Russell Thorndike and William Buchanan. The book is about the clever vicar of Dymchurch-under-the-Wall; Christopher Syn who leads the secret life of the scarecrow of Romney Marsh. Doctor Christopher Syn is not alone in his adventures he has the trusty sexton Mr. Mipps by day and the feared Hellspite at night. Dr. Syn has a small affection for the young Jenny Banks who is also in his gang of night riders known as Curlew. Dr. Syn and Mr. Mipps plan out their weekly raids on the King’s goods during the week and dispatch the information to the rest of the riders through the Dymchurch. Through out the book the scarecrow outsmarts the mad King George III until the King gets fed up and sends his best men to destroy Romney Marsh by picking away at the sea wall and flooding the marshland. Without ruining the ending the scarecrow finds a way to save the day and becomes a legend more feared then ever before. Christopher Syn by Russell Thorndike and William Buchanan was a very fun read Dr. Syn always had a very clever way to outsmart the King and his men. Dr. Syn was always thinking of ways to help the people as best he could. He is the Robin Hood of Romney Marsh. Dr. Syn’s character in this books is an adaptation by William Buchanan of the original 7 books published by Russell Thorndike.

Book Information:
Type: Hardcover
Publisher: Abelard Schuman (1960)
ASIN: B000W7MERI
Subject: Smuggling, Rebels

Here is the book on amazon. It was quite hard to track down a copy but amazon.com has a couple.

100-Petabit Internet Backbone Coming Into View

“Alcatel-Lucent said that scientists at Bell Labs have set an optical transmission record that could deliver data about 10 times faster than current undersea cables, resulting in speeds of more than 100 Petabits per second.kilometer. This translates to the equivalent of about 100 million Gigabits per second.kilometer, or sending about 400 DVDs per second over 7,000 kilometers, roughly the distance between Paris and Chicago. … The transmissions were not just faster, they were accomplished over a network whose repeaters are 20 percent farther apart than commonly maintained in such networks, which could decrease the costs of deploying such a network.”
Read more here: http://gigaom.com/2009/09/28/alcatel-lucent-boosts-fiber-speeds-by-10x-in-lab/

Gameboy Color Boot ROM Dumped After 10 Years!

Hey everyone! The Gameboy Color was first introduced to the market in 1998, and since then its internal startup boot ROM had not been dumped. Well, this guy finally got his VDD and clock glitching tricks to deceive the Gameboy Color (GBC) into sharing its boot ROM! For those of you who don’t know, the GBC’s boot ROM is what is responsible for initializing the hardware and showing the “GAMEBOY” introductory animation. Read all about the details of how I dumped the ROM as well as download it for yourself (with an almost complete disassembly by Duo)
here

Read more here http://www.fpgb.org/

The Evolution of a Programmer

The site that had this ups is currently down lucky me I had a cached copy. Original was from http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html

The Evolution of a Programmer

High School/Jr.High

  10 PRINT "HELLO WORLD"
  20 END

First year in College

  program Hello(input, output)
    begin
      writeln('Hello World')
    end.

Senior year in College

  (defun hello
    (print
      (cons 'Hello (list 'World))))

New professional

  #include <stdio.h>
  void main(void)
  {
    char *message[] = {"Hello ", "World"};
    int i;
 
    for(i = 0; i < 2; ++i)
      printf("%s", message[i]);
    printf("\n");
  }

Seasoned professional

  #include <iostream.h>
  #include <string.h>
 
  class string
  {
  private:
    int size;
    char *ptr;
 
  string() : size(0), ptr(new char[1]) { ptr[0] = 0; }
 
    string(const string &s) : size(s.size)
    {
      ptr = new char[size + 1];
      strcpy(ptr, s.ptr);
    }
 
    ~string()
    {
      delete [] ptr;
    }
 
    friend ostream &operator <<(ostream &, const string &);
    string &operator=(const char *);
  };
 
  ostream &operator<<(ostream &stream, const string &s)
  {
    return(stream << s.ptr);
  }
 
  string &string::operator=(const char *chrs)
  {
    if (this != &chrs)
    {
      delete [] ptr;
     size = strlen(chrs);
      ptr = new char[size + 1];
      strcpy(ptr, chrs);
    }
    return(*this);
  }
 
  int main()
  {
    string str;
 
    str = "Hello World";
    cout << str << endl;
 
    return(0);
  }

Master Programmer

  [
  uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
  ]
  library LHello
  {
      // bring in the master library
      importlib("actimp.tlb");
      importlib("actexp.tlb");
 
      // bring in my interfaces
      #include "pshlo.idl"
 
      [
      uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
      ]
      cotype THello
   {
   interface IHello;
   interface IPersistFile;
   };
  };
 
  [
  exe,
  uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
  ]
  module CHelloLib
  {
 
      // some code related header files
      importheader(<windows.h>);
      importheader(<ole2.h>);
      importheader(<except.hxx>);
      importheader("pshlo.h");
      importheader("shlo.hxx");
      importheader("mycls.hxx");
 
      // needed typelibs
      importlib("actimp.tlb");
      importlib("actexp.tlb");
      importlib("thlo.tlb");
 
      [
      uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
      aggregatable
      ]
      coclass CHello
   {
   cotype THello;
   };
  };
 
 
  #include "ipfix.hxx"
 
  extern HANDLE hEvent;
 
  class CHello : public CHelloBase
  {
  public:
      IPFIX(CLSID_CHello);
 
      CHello(IUnknown *pUnk);
      ~CHello();
 
      HRESULT  __stdcall PrintSz(LPWSTR pwszString);
 
  private:
      static int cObjRef;
  };
 
 
  #include <windows.h>
  #include <ole2.h>

  #include <stdio.h>
  #include <stdlib.h>
  #include "thlo.h"
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "mycls.hxx"
 
  int CHello::cObjRef = 0;
 
  CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
  {
      cObjRef++;
      return;
  }
 
  HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
  {
      printf("%ws
", pwszString);
      return(ResultFromScode(S_OK));
  }
 
 
  CHello::~CHello(void)
  {
 
  // when the object count goes to zero, stop the server
  cObjRef--;
  if( cObjRef == 0 )
      PulseEvent(hEvent);
 
  return;
  }
 
  #include <windows.h>
  #include <ole2.h>
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "mycls.hxx"
 
  HANDLE hEvent;
 
   int _cdecl main(
  int argc,
  char * argv[]
  ) {
  ULONG ulRef;
  DWORD dwRegistration;
  CHelloCF *pCF = new CHelloCF();
 
  hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
 
  // Initialize the OLE libraries
  CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
  CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
      REGCLS_MULTIPLEUSE, &dwRegistration);
 
  // wait on an event to stop
  WaitForSingleObject(hEvent, INFINITE);
 
  // revoke and release the class object
  CoRevokeClassObject(dwRegistration);
  ulRef = pCF->Release();
 
  // Tell OLE we are going away.
  CoUninitialize();
 
  return(0); }
 
  extern CLSID CLSID_CHello;
  extern UUID LIBID_CHelloLib;
 
  CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
      0x2573F891,
      0xCFEE,
      0x101A,
      { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
  };
 
  UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
      0x2573F890,
      0xCFEE,
      0x101A,
      { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
  };
 
  #include <windows.h>

  #include <ole2.h>
  #include <stdlib.h>
  #include <string.h>
  #include <stdio.h>
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "clsid.h"
 
  int _cdecl main(
  int argc,
  char * argv[]
  ) {
  HRESULT  hRslt;
  IHello        *pHello;
  ULONG  ulCnt;
  IMoniker * pmk;
  WCHAR  wcsT[_MAX_PATH];
  WCHAR  wcsPath[2 * _MAX_PATH];
 
  // get object path
  wcsPath[0] = '\0';
  wcsT[0] = '\0';
  if( argc > 1) {
      mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
      wcsupr(wcsPath);
      }
  else {
      fprintf(stderr, "Object path must be specified\n");
      return(1);
      }
 
  // get print string
  if(argc > 2)
      mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
  else
      wcscpy(wcsT, L"Hello World");
 
  printf("Linking to object %ws\n", wcsPath);
  printf("Text String %ws\n", wcsT);
 
  // Initialize the OLE libraries
  hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
  if(SUCCEEDED(hRslt)) {
 
 
      hRslt = CreateFileMoniker(wcsPath, &pmk);
      if(SUCCEEDED(hRslt))
   hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
 
      if(SUCCEEDED(hRslt)) {
 
   // print a string out
   pHello->PrintSz(wcsT);
 
   Sleep(2000);
   ulCnt = pHello->Release();
   }
      else
   printf("Failure to connect, status: %lx", hRslt);
 
      // Tell OLE we are going away.
      CoUninitialize();
      }
 
  return(0);
  }

Apprentice Hacker

  #!/usr/local/bin/perl
  $msg="Hello, world.\n";
  if ($#ARGV >= 0) {
    while(defined($arg=shift(@ARGV))) {
      $outfilename = $arg;
      open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
      print (FILE $msg);
      close(FILE) || die "Can't close $arg: $!\n";
    }
  } else {
    print ($msg);
  }
  1;

Experienced Hacker

  #include <stdio.h>

  #define S "Hello, World\n"
  main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Seasoned Hacker

  % cc -o a.out ~/src/misc/hw/hw.c
  % a.out

Guru Hacker

  % echo "Hello, world."

New Manager

  10 PRINT "HELLO WORLD"
  20 END

Middle Manager

  mail -s "Hello, world." bob@b12
  Bob, could you please write me a program that prints "Hello, world."?
  I need it by tomorrow.
  ^D

Senior Manager

  % zmail jim
  I need a "Hello, world." program by this afternoon.

Chief Executive

  % letter
  letter: Command not found.
  % mail
  To: ^X ^F ^C
  % help mail
  help: Command not found.
  % damn!
  !: Event unrecognized
  % logout

CSI Crime fighting’s most computer illiterate

This first clip from CSI has a woman saying she is going to make a GUI interface using visual basic to track the killers IP address. At least they get it right that you can make a GUI using Visual basic that sounds plausible. I am not sure how much making a GUI interface is going to help you track the killers IP address but this is a tv show so I will follow along.


In this clip someone has made the GUI interface to track the killers IP address. Lets see if it works.


Hmmm seems to me that a little more then a GUI interface is what is needed to track a killer’s IP address.

9 Kick-Ass DIY Projects to Get Your Hack On

These 9 amazing DIY projects will give new meaning to your old hardware.

Techies are too often tempted by the lure of new technology, leaving perfectly good hardware drifting in the wake of compulsive upgrading. And while we love getting new gadgets as much as the next geek, we also like how a new purchase gives us the opportunity to take apart and tinker with our older gear in the Lab. Whether it’s by soldering circuit boards or loading open-source firmware, we pride ourselves on being able to stretch the lifespan of older electronics by performing undocumented (and sometimes warranty-breaking) hardware hacks.
MaximumPC.com has the full article: http://www.maximumpc.com/article/features/get_your_hack_on?page=0%2C0

Seagate claims first 6Gbit/sec, 2TB SATA hard drive

ComputerWorld.com has a short write up on Seagate’s new 6Gbit/sec, 2TB SATA hard drive.
http://www.computerworld.com/s/article/9138261/Seagate_claims_first_6Gbit_sec_2TB_SATA_hard_drive

Newegg.com only has the Seagate Barracuda 7200.11 ST31500341AS 1.5TB 7200 RPM 32MB Cache SATA 3.0Gb/s 3.5″ Internal Hard Drive (bare drive) – OEM on sale now for 119.99 as the largest drive listed. The $299 price tag on the 2 TB model will have to come down to compete with buying 2 1.5 TB = 3 TB for $240 before the market will accept it. Here is a list of the current Newegg.com Seagate Barracuda’s: http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=2%2050001305%2040000014%201035915133%201035507776%20103530090&name=1TB%20and%20higher

A Stick Figure Guide to the Advanced Encryption Standard (AES)

A play in 4 acts. Please feel free to exit along with the stage character that best represents you. Take intermissions as you see fit. Click on the stage if you have a hard time seeing it. If you get bored, feel free to jump to the code. Most importantly, enjoy the show!

http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html

This stick figure guide goes into more detail then I knew about when I first learned AES. This is a very nice overview of how AES works without going into the gory details. Ok, maybe it goes a little more in dept then I like to think about on a day to day basis.