Archive

Archive for February, 2009

Fuzebox Kit

February 25th, 2009

I just ordered one of these kits :-)

Fuzebox Starter Pack

Fuzebox Starter Pack

The mainboard is supplied unassembled.

The fact that computers contain hardware is something I can normally overlook. Hardware can spasm out of control, fizzle and burn in impressive colours or simply die slowly, bit-by-bit (if you’ll excuse the pun). I’d be happy to own a computer that operated by magic: no parts – just an abstract concept.

Nevertheless, I’m still fascinated by hardware and have always wanted to try a little project. Having read most of “Hackers: Heroes of the Computer Revolution” now, I’m aware that among the first home computers was the Altair 8800. A kit machine where you would, typcally, buy the components and build it yourself. This was the norm, and, Hackers is full of little accounts of people hacking together hardware into a semblance of what we know as Personal Computers. Steve Wozniak is a notable example: Inventor of the Apple. The next generation Apple II would becomes one of the most popular computers for games hackers in the early 80s.

It’s always struck me as a time now past – today, infinitely more complex machines are fabricated in computer controlled environments. Even if you try to gather parts from vintage hardware, for a novice enthusiast it would be difficult to put together and perhaps more difficult to find connectors to make it usable.

Then I came across the link to this kit.  It’s an 8-bit console kit that seems fairly simple for a starter project and has good instructions. It seems just right for getting into some hardware work. The console itself (although only 8bit) uses S-Video or AV connectors and flash memory (instead of archaic co-ax cables and cartridges)

I’m excited to get started into a new (different) project! :-)

Self , , ,

Quick Org-Mode Hacks

February 25th, 2009

Recently , I’ve come to rely on Emacs for more or less everything I do on a computer. Of course, in work there are some exceptions: We must use Outlook for emails (the bulk), various windows only business tools (the cruft), etc.

But, as far as possible I will use Emacs because I love the simplicity, speed and extensibility.

In particular, I have discovered org-mode which has now taken over my personal scheduling routine. Org-mode is a personal planner for emacs which allows the user to: Create todo lists, schedule items for certain dates, mark items complete, use checklists, add tables. It’s impressive the amount of features this small, text-based operating system can offer.

So here’s some quickie hacks I’ve started working at for org mode. My wishlist is as follows:

  • [X] Store all org-mode schedules together
  • [X] Custom org save function (facilitating above)
  • [   ] Strip TODO/BUG/FIXME lines from source code and:
    • Store in org file called “<project name>”
    • insert links back to source file
    • add tags based on: language, filename, type

The third item is still in progress but I’ll explain my current org setup now and provide some expressions for the customisation:

;; Org Mode
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(setq org-log-done t) ;timestamp on completion

The first two lines create global keyboard shortcuts (key-bindings) which are available from anywhere within Emacs. ‘Ctrl-c l’ will store a link to a url or file, ‘Ctrl-c a’ will open your org-mode agenda (where you can view your calendar, appointments, todo items. This is the thing I have come to rely on :-) )

the add-to-list command tells Emacs to use org-mode by default for any file with a .org extension. the last line sets the org-log-done variable to true: This means that when we mark a todo item as complete it will be timestamped with the completion date. I like this feature.

So that’s just a bit of simple customisation. Now I’ll add a couple of functions that take care of saving my tasks.

(setq org-mode-file-dir "~/.emacs.d/org-files")
(setq org-agenda-files (append (list org-mode-file-dir)
org-agenda-files))

These two functions set variables telling emacs where to find org-mode files containing agenda items. The first is my own private directory added to behave as a default location for saving.

(defun smh-org-mode-save-buffer ()
(interactive)
(if (equal nil (buffer-filename))
(let ((input (read-from-minibuffer "Org Topic: " (buffer-name))))
(write-file (concat org-mode-file-dir input ".org")))
(save-buffer)))

Next I added a custom save function which simplifies the process of saving. If the current buffer is not already linked to a file (buffer-filename is nil) then it will prompt for an Org Topic. I like to think of organising things by topic. The default topic will be the name of the buffer if you supplied one previously. When a topic is given it will store the file as .org in the org-mode-file-dir. One the other hand, if the buffer is already linked to a file it will simple save as normal.

(add-hook 'org-mode-hook
(lambda () (define-key 'org-mode-map "\C-x\C-s"
'smh-org-mode-save-buffer)))

Finally I created a mode-specific key binding: I do this by adding a hook to org-mode… This means whenever org-mode gets called the hooked functions will also be evaluated. I have redefined the ‘save’ keystroke for org-mode to call my custom save function.

This is what I have so far and I find it quite helpful for organising Tasks and Todos manually.  My next step is to analyse source code and look for TODO, BUG or FIXME lines and create org-mode files automatically.

Programming , , , , , , ,

The Open Plan Office

February 20th, 2009

Right! This is a rant. I currently work in an Open Plan office. This is designed to encourage a better atmosphere where people can discuss things and collaborate? Or is it easier for a boss to keep an eye of who’s slacking off? Whatever the intention, I notice the following effects:

  • All barriers for sound are removed. This typically make the office very noisy. You are likely to hear: One half of a conference call, One half of a heated discussion about insurance or heating installation, sighs, coughs, yawns, shuffles, footsteps, coffee slurping, chairs creaking, necks cracking, fingers typing. If, like me, you tend to shift your attention quite rapidly it becomes a cacophony.
  • At any given time, there is at least one pair of eyes looking at you – and you are guaranteed to look back. This causes that awkward social phenomena of “mutual paranoia” wherein both parties stare at each other wondering how long the other has been watching.

What’s the alternative? I think individual cubicles is the other extreme. It encourages isolation (The geek in me just had a brief moment of excitement as I typed that, but the human in me wants to cling to the hairline cord of social adeptness). At Microsoft, I think they had a fairly good solution. The office was separated into cubicles, but each cubicle had 3-4 people… usually on the same projects. This means that sounds from elsewhere are well muted and you can still lean round for a chat with your colleague.

Well, the company I work for are hoping to move to new premises at some point in the near future. (Deliberate vagueness avoids trouble). I really want to suggest a move away from open plan but I don’t think the idea would be taken seriously: Next to MEETINGS it’s the best excuse for the lack of productivity!

Typed at 1am- please forgive spelling/grammar. :-)

Self , , ,

Maybe People are ready for Linux

February 7th, 2009

I just came across a video on reddit. Basically, two guys “demo Windows 7″ to an unsuspecting public in Australia. What the people don’t know is that they’re really looking at KDE 4:

This is really encouraging and demonstrates that people have this fear of things that are new to them. Linux is mature enough to be a desktop operating system in my opinion – but we need to break down the image of Windows. Microsoft have done half the work, How can we step up and say “Yeah, Vista was bad, Windows is going downhill, but look: there’s a great alternative!”

 

original article: here

Self , ,

Identi.ca broken – my fault

February 6th, 2009

In a moment of sheer stupidity I dumped a link into my google talk client and hit enter. Mere nanoseconds later I realised it hadn’t been my buddy from computer science: I’d just told the world of identi.ca about my latest ebay purchase. I immediately went over to identi.ca to remove the post and mitigate the damage. Only to find this:

 

Identi.ca Borked

Identi.ca Borked

 

 

So, I guess, if you’re using identi.ca on a Mac and you stumble across my page… and it’s screwed… sorry.

Self

Protecting Code from Uncertainty

February 3rd, 2009

if (2 > 5) {
fprintf( stderr, "This shouldn't happen!\n" );
} else {
//continue as normal
}

It really amuses me when I see code sections commented as “This shouldn’t happen” … It usually means that the programmer is about 98% certain that no condition will occur in which the code is executed. However, just in case the fundamental laws of the universe suddenly collapse, that particularly obscure error will be correctly handled.

Programmers care about the correctness of programs even under the most unlikely scenarios.

Programming , ,

Site Layout and New Stuff

February 2nd, 2009

So basically I’m moving some stuff around on the site now and there might be inactive links for a while.  Here’s the reason:  Tags are the new categories.  I prefer the ability to cross tag entries as they often fall into a number of categories.  What I’ve decided is to make tags the primary methods of organisation on the site.  The Categories, rather than directly referring to the content of a post, will now simply separate the site into general sections.  Once I finish re-assigning all the categories and fix the links it should run quite smoothly.

Additionally, I’m going to start reviewing books, films and games as the feeling takes me.  I do not intend to give bad reviews.  The purpose of writing reviews is for my own enjoyment and to remind me of media I particularly enjoyed. I’m not entirely comfortable with the idea of telling people that something is good or bad.  They should judge that for themselves.  I don’t personally read reviews in order to base decisions on them.  (I hope this makes sense :-) )

I plan to starts digging through some projects/ideas and post some of that up including tutorials, emacs customisation and other such crap. Watch this space…

That’s all regarding the site changes and new stuff, it’s about time I started using this blog more. :-)

Self ,

Masters of Doom

February 1st, 2009

Masters of Doom

Masters of Doom

Masters of Doom [Amazon] follows the story of John Romero and John Carmack: Two of the most influential people in gaming history. The book begins in the 70s. Romero is a scrawny kid with a passion for gaming. He would soon extend this love into developing games for old microcomputers such as the Apple II. Carmack was born to parents with a strong scientific background. He would inherit this talent for scientific thought as well as a passion for role playing games like Dungeons & Dragons.

The book chronicles the events of Romero and Carmack meeting in a company called Softdisk and immediately recognising the other’s potential. Both, now gifted programmers, they worked in a team called Gamer’s Edge producing games for magazines and porting existing games to new platforms.  Eventually Romero and Carmack would leave Softdisk to establish Id Software along with fellow team mates Tom Hall and Adrian Carmack.

We learn during the course of events at id software that Carmack is dedicated to pushing his knowledge of technology and developing an engine that taxes the machines’ capabilities. This is more important even than the games. Romero is passionate about design and wants to produce the most fun games, demanding more power from Carmack’s work. It’s the perfect collaboration, but eventually as the industry changed it would tear the company apart.

The latter part of the book covers the departure of Romero from id; the backlash of the Columbine massacre and it’s effect on the games industry; the birth of many new companies using the id technology and developing their own. At each stage, we not only read about the activities going on, but also have the opportunity to learn about each person’s motivation, personality and ambitions.

The ending is bittersweet- We now live in a world which is becoming dominated by technology such that, although more people can gain access to computers and enjoy the legacy provided by pioneers of digital entertainment, Hacker culture is becoming overshadowed by enterprise and I.T.

For me, the joy of reading this book was gaining an insight into the history of the industry I work in (which is software development). I turned each page with a ravenous hunger for more information. The book filled me with excitement as I envisioned the programming culture: All night coding sessions; gaming; working with friends- These are things I probably won’t experience in my own career. I highly recommend the book to anyone with an interest in video games or programming.

Reviews , ,