seralize my thoughts into posts

Posts tagged ‘fuse’

Ruby’s Backwards compatibility and Alef-FS

What is the 1st thing I  need to do in order to implement Alef-FS ? have RFuse-ng installed on my machine as a ruby gem.

RFuse-ng is a bridge between ruby and FUSE. The concept is very similar to Java JNI, which mean that it is mainly a native code written in “C”

RFuse-ng comes with a REDAME which is good, and it has a Makefle which is even better, but it also has several compilation errors – not good.

While reading the docs I find out why –  RFuse-ng was tested with ruby 1.8 and I’m using 1.9.2. Further investigation of the code made me realize that ruby does not have Backwards compatibility, at least not in the aspect of native code support.

As Michael Feathers wrote in Working Effectively with Legacy Codelegacy code is code without tests” I understood that it is not going to be fun.

I had to tackle issues mainly due to changes in the way ruby exposes its string representation to “C” code. #define rules!!!!!!

Anyway, at the end of the road I’ve managed to create a patch file for  RFuse-ng describing the changes required to make it work  under ruby 1.9.2

Now, all I have to do now is to implement, (at least until the next obstacle)

class AlephFS < RFuse::Fuse
# implement
end

my special software moments

I have some special software moments that I will never forget. I’m not talking about sleepless night fighting a voodoo bug.

I’m talking about special moment in which I realised that I have just taken my first step into a new exciting world of software, ideas, and innovative applications.

Here are my special software moments:

  • my first “Hello World” program  – It was written on night we bought our first computer, back in the mid 80’s. We connected our  brand new Atari 800XL to the T.V. and typed the 1st basic program from the User Guide Handbook. If I’m not mistaken the program was drawing an image of a  lightning  and playing the sound of a thunder.

  • The second  special software moment was during my studies at the Technion. I managed to send a string between 2 computers. I followed the Java sockets client / server tutorial which is an implementation of the Knock-Knock joke. It was in the computer farm in the faculty, and I actually remember my self typing a string on one computer and running to the other corner of the room, to see the exact same string displayed on the console.
  • Fuse is a Linux Kernel module,  which allows developers to implement a simple API in order to implement their own file system, and mount it. It helped me understand what is the real essence of a file system. A read-only File System is an application that when it receives a path it should return the following information about its:
    • type (is it a directory, a file, a link…)
    • properties (permission, owner, created time…)
    • content

In all these special software moments I got the similar feeling that I just found a seed for a lot of new ideas, and may hours of fun developing cool applications.

What are yours special software moment ?

%d bloggers like this: