tag filesystem idea

31 Aug 2008 08:14

I just thought of my ideal file system, where nothing hides and is easy to find (without going through the whole system — either manually, or automatically — find or even the indexed way — mlocate).

The main idea is tags.
When I save a file I want to give it some tags.
Moreover, I want to be able to find a file based on its properties, like

  • file properties — author, date created, type (PDF/TXT/XML)
  • EXIF data — camera name, camera settings
  • audio tags — artist, title, year, album, genre

How could it look like?

# ls /home/quake
wikidot/    python/    work/    tmp/    img/    music/
# ls /home/quake/wikidot
work/    tmp/    img/    howto.pdf
# ls /home/quake/wikidot/work
# ls /home/quake/work/wikidot

So it looks, like it doesn't matter if you navigate to work and then to wikidot or the reverse.

Moreover, I want to browse all my music files (having music tag) by author information:

# ls /home/quake/music/+artist/
Britney Spears/    Shakira/

PDF files inside of wikidot:

# ls /home/quake/wikidot/+type/pdf/

This idea will be implemented with:

  • Filesystem in User SpacE — FUSE
  • Python
  • SQLite
  • Ubuntu laptop :)

Wish me luck

Comments: 3

INI Config File For Wikidot Open Source

30 Aug 2008 00:16


today I managed to create configuration file mechanism for Wikidot — based on INI file.

I posted two files — minimal one and one containing all possible options to the SVN repository:

Moreover I polished the PingBack mechanisms for Wikidot.

Comments: 7

Python Database: The Work Continues

28 Aug 2008 21:36

Today more work was done by me on the object oriented database implemented in Python.

I dealt with some problems I came across like proper object encapsulation. Now, my database allows any object to be stored in it, even of classes that are internally used by my database.

I implemented "." and "WHERE" operators, which seemed the worst, because they needed working environmental stack.

Now comes, what's the most individual — optimizing things with query cache. Actually it's not a query cache, but rather a evaluateNode cache, but this works very similar (the only difference is that the evaluateNode cache is more deep in operation and can be used inside of queries. This means it can accelerate the processing even for one query!

More work will come for sure on this, because the cache seems to be really tricky with such a flexible database model we've assumed.

Keep tuned for more news

Comments: 1

SQL King

21 Aug 2008 10:00

Are you an SQL King?

I once met a person that used to write SQL queries more sophisticated than this:

select *
    from category
    where category_id IN
        (select cat1 as category_id
            from (select min(category_id) as cat1, max(category_id) as cat2, name, site_id, count(*)
                from category
                group by name, site_id
                having count(*) > 1
            ) as c1
        union    select cat2 as category_id
            from (select min(category_id) as cat1, max(category_id) as cat2, name, site_id, count(*)
                from category
                group by name, site_id
                having count(*) > 1
            ) as c2

This one is to check duplicated categories in sites from Wikidot. It's not optimal, but it works. Of course the situation when there exist duplicated categories is a bug, but it seems a really rare one, because from the beginning of Wikidot, there are only 20 such categories, all of them being forum, so this probably means a small bug in create a forum thing as well.

Comments: 2

page 1 of 3123next »
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License