Saturday, April 18, 2009

Busca visual de imagens de imagens para todos: video online

Finalmente achei o video online da apresentação que realizei em Set/2008 na PyconBrasil 2008 sobre o isk-daemon e projetos relacionados.

Video:



Slides:

Sunday, March 15, 2009

Image search code from imgSeek ported to the Xapian search library

Similar to what digiKam did, the Xapian opensource search engine library has also ported imgSeek code into its code base in order to provide content-based visual search features.

Monday, March 02, 2009

Quick note for Nokia owners trying to upgrade the firmware under VMWare/Parallels

Avoid doing it under virtual machines. Nokia's firmware update system restarts the cell phone dozens of times as part of the upgrade process so the host and virtual machine will get all confused and as soon as the host machine refuses to "forward" a USB connection to the hosted OS, the upgrade process will stop due to a disconnection. This may cause severe damage to your cell phone (taking it back to a Nokia care center could be the only way out, so they can "re-flash" your phone ROM).

When trying to upgrade my E71 to the latest v200.21.118 firmware using Parallels under OSx I got one such aborted process, but luckily it worked flawlessly when trying again with a real Windows XP.

Other quick tips:

  • Backup all cellphone data and check if your backup works before the whole process. Using "Tools -> Memory -> Options -> Backup phone memory" from within the phone worked fine;
  • Remove the microSD card before the process, just to be sure;
  • Avoid doing it under Windows Vista, as some have reported similar problems.
Some references with more details:

Thursday, February 26, 2009

Nokia E71 adoption

Interesting statistics from Flickr: Nokia E71 adoption seems to be increasing faster than any other previous model.


(extracted from Flickr statistics)

Tuesday, February 17, 2009

Simple incremental backups using Amazon S3 and Brackup

I've been using the opensource Brackup tool to backup some of my documents and photos to the cloud (Amazon S3 - which charges as little as $0.150 per GB per month). 

This should work on many platforms:

Install Brackup (implemented in Perl) using CPAN:
$ sudo perl -MCPAN -e shell
once inside the CPAN shell:
cpan> install Net::Amazon::S3
cpan> install Brackup

Now configure Brackup (".brackup.conf" on your home directory) by defining some file sources and an S3 account target:
[TARGET:s3_pers]
type = Amazon
aws_access_key_id = 1xxxxxNxxxxxFxx9xWx2
aws_secret_access_key = xxxxxxxYxRAoxuxDxrxxxxxxfxx4xxxxxxxxxdxx
keep_backups = 10

[SOURCE:documents]
path = /Users/ricardocabral/Documents
ignore = ^/books/
ignore = ^/Parallels/
ignore = ^eclipse
ignore = ^hdd
ignore = ^.svn

[SOURCE:pictures]
path = /Users/ricardocabral/Pictures
ignore = ^iPhoto
ignore = ^.svn
The commands I have on a cron job are:
brackup --from=documents --to=s3_pers -v
brackup --from=pictures --to=s3_pers -v
To restore a backup after a disaster, one can get all remote files describing "backup snapshots" with:
brackup-target s3_pers get_backups
Then choose the backup snapshot descriptor file corresponding to the point in time you want to restore and do:
brackup-restore --from=documents-1214139675.brackup --to=/target/dir --all

Sunday, December 21, 2008

dvipdf dvips: Problems with file writing; probably disk full

Another attempt to save others time.

I was getting this error when trying to generate PDF from LaTeX source using dvipdf.

dvipdf> Note that an absolute path or a relative path with .. are denied in -R2 mode.
dvips: Could not find figure file pdf:dest; continuing.
Note that an absolute path or a relative path with .. are denied in -R2 mode.
Error: /syntaxerror in (binary token, type=137)
Operand stack:

Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1905 1 3 %oparray_pop 1904 1 3 %oparray_pop 1888 1 3 %oparray_pop 1771 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1146/1684(ro)(G)-- --dict:0/20(G)-- --dict:71/200(L)-- --dict:206/300(L)-- --dict:43/200(L)--
Current allocation mode is local
Last OS error: 2
GPL Ghostscript 8.62: Unrecoverable error, exit code 1


and finally this apparently meaningless error:
dvipdf> dvips: Problems with file writing; probably disk full.
The solution in my case? Using dvipdfm instead of dvipdf. As far as I know dvipdfm is just a better implementation of dvipdf.

Some reasons for similar problems when rendering LaTeX into PDF:
  • too many embedded images
  • runaway commands (unclosed/unbalanced command braces)
  • buggy libraries/dependencies

Saturday, November 29, 2008

Finally got my MSc degree in Computer Science!

I've done the final presentation this morning and everything went well.
What to do with the degree? Not sure. Actually, this question doesn't make much sense.
Am I relieved? You bet so.
Did I get tired of giving the same reply (i.e. I guess soon) when asked when I would be done with it? Oh yeah.

Here's the abstract for the MSc dissertation:

This dissertation offers two major contributions: (1) to evaluate the suitability of recommender algorithms for social networks. Such recommender algorithms may receive as input not only the social graph of these networks but also content-based data from recommended items.

For such, the relevant characteristics of social networks and the most important recommender techniques for these tasks will be surveyed. Special attention is given to the web-based system for social photo-sharing called Flickr and to the employment of visual metrics for image similarity.

The second contribution (2) is the construction of a framework for the modeling and analysis of social networks, as well as aiding the empirical study of recommender algorithms on these contexts. Also part of this framework are the best practices adopted throughout the work done on this dissertation, such as: techniques for the gathering, analysis and visualization of data; social networks classification; identification and modeling of recommending tasks within these contexts; implementation of algorithms and their architecture.

The relevance of such contributions lies on the enormous amount of information available online and on the ever-growing complexity of the relationships between this data. In this context, recommender systems may provide a great aid for end-users.

On related news, I've submitted a paper to the Social Networks track at WWW2009 with the following abstract:

In this paper, we present a framework for specifying recommenders within the context of Social Media sites such as Flickr or Last.fm. Based on the standard SIOC ontology, we show how the various recommendation problems can be defined. We also present a general software framework for implementing recommenders based on this model framework, and show some results obtained by one recommender built using it.

Thursday, November 20, 2008

Why publishers treat book footnotes as endnotes?

From my experience this seems to happen with virtually all books: most of the time the important remarks made by the author about a passage are referenced and placed at the end of the book. The whole process of getting to the actual text of the footnote is really annoying: memorize the page and section you're at, find the page at the end of the book where the notes are, realize that you've just forgotten what reference number you were looking for, switch back to the page you were currently reading etc etc. The effect of this cumbersomeness on me is that I seldom read any footnotes. Why not simply placing the footnotes at the end of the current page? It makes a lot more sense to me. Well, I'm definitely missing something about why it's not the other way.

Wednesday, November 19, 2008

Visual image search code from imgSeek ported to digiKam

Glad to know that the fast multiresolution image querying techniques implemented at my imgSeek project have been ported into digiKam:

During my digiKam presentation at LGM2008 i have introduced the concept to be able to search duplicates items around the whole collection of photos. But the concept is not just limited to find the similars photos by using copy, it even allows user to drawn a sketch of photo what user memories and shows photos what has similar shapes and colors as on sketch.

This is not a new concept in fact. An old program for Linux named imgSeek provide already this feature. By my opinion, it's time to update old interface of ImgSeek and make it more suitable for end users by implementing the technology into digiKam.

The old PyQT-based user interface for imgSeek certainly needs a rewrite, and integrating the image processing code into a more stable photo management tool like digiKam makes perfect sense. I haven't tried it yet but congratulations Gilles Caulier and Marcel!

Tuesday, November 18, 2008

Quick thought of the day: Depressing and challenging facts of life

First the depressing one: All the people around you either looking or acting strange (in a bad way) are actually trying to do their best. Now imagine who they really are when no one is around looking.

Challenging one: most of the important things in life are non-linear and hence the beauty of life lies on its unpredictability. The amount of effort you put into something is not proportional to your success. Split-second decisions may have an impact on your entire life (think about that quick moment when you decided to accept a job offer or decided to get married).

Sunday, October 05, 2008

iTunes script for opening the Last.fm web page for the track or album of the song currently playing

I've created two simple iTunes AppleScripts for opening the Last.FM web page for the track or album of the song currently playing.

To install, just drag the files to your /[username]/Library/iTunes/Scripts/ folder. If there is no folder named "Scripts" there, create one and copy the files into it. AppleScripts placed in this folder will be listed in the iTunes Script menu.

Wednesday, September 10, 2008

Language most spoken on Twitter

I got curious so here's some stats I've been gathering.

Twitts are culled from the public timeline every minute and language (see code definitions) is detected by Google.

The most spoken language will always have a ceiling value of 100, so a language with a value of 20 is 5 times less common than the most spoken.

Graph is updated every 30 minutes with the stats for the current day.

Friday, September 05, 2008

Web apps user experience: not exactly improving

Take a quick look at this. First impression: "oh yes, these admin interfaces look really sleek". Second thought: each of them presents different UI concepts for doing the same tasks, UI elements (menu bars, status bars, sliders, buttons) are inconsistent across (and sometimes inside) them etc etc.

Poor users...

Wednesday, September 03, 2008

I've removed daily del.icio.us posts from the blog RSS feed

Why? Well, I guess they may be too annoying for people only interested on the other lengthier ramblings which I occasionally write here on this blog.

So from now on if you're interested on my del.icio.us usage habits, try subscribing to http://feeds.delicious.com/v2/rss/nieder1 or even better: subscribe to my FriendFeed at http://friendfeed.com/rncabral?format=atom which includes more online activity (twitter, amazon, last.fm etc etc)

Thursday, August 28, 2008

Ubiquity commands

Expect a lot of cool stuff coming out of the Mozilla Ubiquity project. Think of it as SIMILE meets Quicksilver right at Firefox's heart.

I've created so far a few commands:

Sunday, July 06, 2008

Zoomii books: interesting but makes me dizzy

Zoomii books, the "real" online bookstore is quite interesting and extremely well implemented. But still, I sort of miss it's point. Amazon's own shopping experience is still unbeatable. To some extent, Zoomii just transposed to the web the same old bookstore browsing experience which makes most people dizzy: OMG! so many books! How do I compare them? How are they related? There are too many shelves and aisles on this floor and there are still two floors on this bookstore to visit!