Archive for the Category » Technical «

Wednesday, February 04th, 2009 | Author:

I read this paper and I learned quite a bit about Xen that I was always mistaken on. Just the background makes this paper worth reading, the research they did was even more impressive, yielding substantial increases in virtualized network performance.

Most certainly a to-read!

Category: Review, Technical  | Tags: , , ,  | One Comment
Friday, January 16th, 2009 | Author:

Being in the wilderness as I have, as a canoe trip leader, helps you adapt to uncomfortable situations. Recently, I was put into a less than desirable situation, programming in Windows. I thought it would be a good idea to learn how to survive on the dark side. I started with a stock Windows XP install, with all the fancy development tools, Visual Studio, WinDDK, sample code for Win32 programming, and a (relatively) open mind. As I started using it, the following became major annoyances:

  • The command line (cmd.exe) is horrible, not full screen, the history is bad, and it’s just plain ugly.
  • Visual Studio is a waste of space, it doesn’t even provide the ability to compile a file. That alone made me get rid of it.
  • The lack of multiple desktops make screen real estate very limited. Even with a sizable screen (27″) is makes looking up references a pain

So, to fix some of these woes, I did away with Visual Studio, edited the console preferences to take up much of the screen, and installed emacs, I then wrote some batch scripts which I put in the PATH to enable me to just type emacs foo.c, and ls instead of dir.

Now, I finally have a system that I can work with, it’s not great, but I’ll survive. Unforntunatly, developing on Windows is much like trying to glue a dead weasel onto a balloon — non-sensical and smelly. From my short exposure to the Windows system, I’ve found the following lacking:

  • The kernel memory layout
  • The poorly documented API
  • Lots of caps, and non-standard types, it’s like programming in old HTML.
  • The verbose and utterly convoluted device communications (IRPs?)
  • Complete lack of modularity (if my driver segmentation faults, I get a BSOD)

To sum it up, while it’s been an informative foray into the world of Windows, I think I’ll stick to slightly more sane and open operating systems.

Peace and chow,

Ranok

Thursday, December 25th, 2008 | Author:

Seeing as I’m going to have no homework for the next semester (!!) I’m hoping to get some more projects underway in my down time. I’m going to use this post as a dump of my current interests and as a road-map for where I want to go in the next few months. I’m sure this will change as time goes on, but I need to start somewhere!

Projects in progress:

  • FANG – I’d like to polish the multi-processing system, add namespaces, and tie it into the Erlang stdlib. Also add macros (real macros!) to FANG.
  • OSP – I’m going to be using OSP as a basis for LadieBug (mentioned below). This will hopefully give me perspective into what I should work on in OSP to make it more friendly for development.

New projects:

  • I’d like to take advantage of LaunchPad’s ‘Personal Package Archive’ system to host a few of my own Ubuntu packages, namely a more up-to-date version of Erlang’s OTP system.
  • LadieBug – To take advantage of OSP’s distributed data store, I’d like to implement my own caching, recursive DNS server that would be both DNSSEC and DNSCurve compliant and would share the cache over the entire cluster, making it more scalable and reduce the number of needless queries.

That’s about all I can think of at the moment, if anyone would like to help me on any of these, feel free to comment below and we can get in touch.

Peace and chow,

Ranok

Tuesday, December 09th, 2008 | Author:

After installing the new beta of Firefox 3.1, I spent some time tinkering with it to get as much screen real estate as possible, using keyboard shortcuts instead of buttons. Here is a screen shot of my browser in full-screen mode (hit F11 to access). I also wrote a script to automatically update the install.rdf files in extensions so they’ll work in the new beta. As you can see, I was able to:

  • Remove the scroll-bars
  • Remove the menu bar
  • Remove the address bar and all the buttons

Which left just the button status bar (which is easy to remove from the view menu) and the tab bar which auto hides unless you mouse over it. To remove these unneeded UI elements, I followed the following steps:

  1. To remove the scroll-bars, open %FIREFOXHOME%/chrome/classic.jar and navigate to /skin/classic/global/, then edit the file scrollbars.css, replacing:
    scrollbar {
    -moz-appearance: scrollbartrack-horizontal;
    -moz-binding: url("chrome://global/content/bindings/scrollbar.xml#scrollbar");
    cursor: default;
    background: url("chrome://global/skin/scrollbar/slider.gif") scrollbar;
    }
    scrollbar[orient="vertical"]
    {
    -moz-appearance: scrollbartrack-vertical;
    }

    with:
    scrollbar {
    display: none;
    -moz-appearance: none;
    }
    Then save those changes and re-jar the file.
  2. To remove the bars at the top, simply right click on the blank space on the menu bar and uncheck all the options.
  3. To remove the menu bar, you’ll need to install this extension which will make the menu bar hide (which you can toggle with the alt key)

Now you should have a minimalist Firefox setup for maximum viewing pleasure. Some important keyboard shortcuts are listed below:

  • <CTRL>-T – Open a new tab
  • <CTRL>-L – Navigate to a URL
  • <CTRL>-<TAB> – Switch between tabs
  • <CTRL>-W – Close a tab
  • <CTRL>-<SHIFT>-T – Open a recently closed tab
  • <ALT>-<HOME> – Go home
  • <ALT>-<RIGHTARROW> – Go forward
  • <ALT>-<LEFTARROW> – Go back
  • <ESC> – Stop a page from reloading
  • F5 or <CTRL>-R – Reload a page

Hope you find this useful, if you have comments or other setups you like, feel free to comment below.

Peace and chow,

Ranok

Category: For Fun, Technical  | Tags: , , ,  | One Comment
Saturday, December 06th, 2008 | Author:

I spent my birthday yesterday polishing up FANG for it’s initial release to the public, after adding some error handling so it would fail more gracefully and adding the ability to parse in files and save the current state of the system to a file for later retrieval. I also did away with the rather hideous use of the process dictionary and moved to an auto balanced tree structure for storing the data.

Over break, I’m hoping to add enough other features to warrant a 0.2 release, which I’d like to have support for soft-processes (ala Erlang), multi-node support and transactional shared memory (using Mnesia). I would also like to add permissions and process jailing for the soft-processes to allow for running untrusted code in a sandbox of sorts.

I’ve started a very simple (and ugly) site to put my progress and releases. You can check it out here and please comment with suggestions or other features you’d think would be a valuable addition. Good luck on everyone’s finals and projects! Have a wonderful break!

Peace and chow,

Ranok