seralize my thoughts into posts


Desktop search tools, like tracker, beagle (R.I.P), Google desktop —  are all very useful.

The interface of a desktop search is great when all you need is to open the file (you searched for)  — 2 clicks, typing a search query, and you have it.

But what happens when you need the path of the file ? There are applications that must have the exact path (location + file name), for example:

  • command line utilities: cp, tar, zip, …
  • file chooser window: when you want to attach a file into email web client (Gmail)


  • People need to manage a large amount of  files (documents, pictures, songs, videos) –>  Desktop search tools are very powerful and popular –> more people follow the “search, don’t sort!” concept –> file system’s structures are more flat
  • The browser is the most common application we use. the browser  accesses  the local file system using file chooser window.

The Problem

There is no  integration between Desktop search tools and applications that require file paths

The Solution

Aleph-FS project’s goal is to implement a file system interface to Desktop search tools. Browsing Aleph-FS  (virtual) file system will actually perform search operation on your real (physical) file system.

Why file system interface ?

  • “Search is the new Browse” — so search should have the same interface you have when you browse your files.
  • A file system is the intuitive interface for file handling

Aleph is the fist Hebrew letter. Aleph-FS  pronounced as “Aleph Ef Es” which is the origin of  the term Aleph Number (represents the cardinality  of infinite sets).

Alef ef es

Scenario – what you have now

  • You want to send a mail, using Gmail (for example).
  • You want to attach a file – (for example – mp3 song called “3 days” of your favorite performer Yehuda Poliker )
  • You don’t remember where you put the file
  • You open your desktop search interface (double Ctrl for Google Desktop)
  • You type: “mp3 Poliker 3 days”
  • You easily find the file, you right-click it, and choose “open containing folder”
  • You find the containing folder, and copy it path
  • You switch back to Gmail, and click browse button
  • You paste in the folder’s path (location + name)
  • You choose the correct mp3 file from all the files inside this folder

How it will work with Aleph-FS

  • In Gmail, click on browse button
  • In the file chooser window, type /search/mp3/poliker/3 days/as the folder name
  • the “3 days.mp3” appears as a file under this folder
  • You click on it  — end of story

an example how the serach file system will work


The idea is to expose the desktop search query interface  as a read only file system using FUSE.

FUSE stands for “filesystem in a userspace”. You can develop your own file system using its API.

The implementation will need to:

  • convert each path into a query
  • send the query to the desktop search (could be more than one)  using API
  • get back the query result and dynamically add files to the content of the path

FUSE supports several languages and I think I will implement it in ruby.


Aleph-FS project will be managed in github

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: