iosart.com | projects | articles | photos | about

Twitter – FoxyTunes – Music – Discover – Repeat…

May 7th, 2007

I’ve recently joined Twitter. What’s Twitter, you ask?

Fattoush accordion

From their FAQ:

Twitter is a community of friends and strangers from around the world sending updates about moments in their lives. Friends near or far can use Twitter to remain somewhat close while far away. Curious people can make friends. Bloggers can use it as a mini-blogging tool. Developers can use the API to make Twitter tools of their own. Possibilities are endless!

Without even noticing, I kinda did what the FAQ says:

  • I started posting moments of my day to Twitter
  • Connected to some of my friends and made a few new friends
  • Posted several mini blog posts
  • Last but not least – used the Twitter API to create TwittyTunes with the guys here in FoxyTunes. TwittyTunes allows me to post my currently playing song to Twitter with a click.

I think that posting music to Twitter makes a lot of sense. After all, for me at least, many of the “interesting moments” I have during each day are songs playing on my computer. And what can be better than sharing those musical moments with my Twitter friends…

And the great thing is that some of my friends have started to Twit music too! So, for example, I now know that Kfir likes Korn, Nine Inch Nails and Iron Maiden. Through Kfir, I discovered a project called Peace Orchestra by the great Peter Kruder from Kruder & Dorfmeister. Also, by following one of Kfir’s Korn posts, clicking on the FoxyTunes Planet link and going through some of their YouTube videos, I discovered their excellent Pink Floyd cover, which I’m including here with one click, courtesy of FoxyTunes Planet:

Another Brick in the Wall – Korn

[via FoxyTunes / Korn]

I’m really excited to see all the different pieces of FoxyTunes starting to come together, and Twitter support is only one step in this direction. Now, if only I had a bit more time to listen to all the great new music I discover, life would be perfect 😉

My JPG Mag submission: America

May 5th, 2007

I just singed up for JPG Magazine and submitted my first photo.

JPG Mag is a website, a photo community and a magazine. Unlike Flickr, they encourage uploading only your best work. The great thing is that it’s also a real magazine published 6 times a year which consists entirely of user contributed photos.

Time will tell whether I’ll become involved in the JPG Mag community (Flickr is already a great place for that), but I can definitely see myself making an occasional submission, if I have a nice photo matching one of their themes.


Posting old photos to Flickr

April 15th, 2007

A few years back I decided to have all my photo films scanned, in order to complete my move to digital photography. I got a few friends and family members organized and got a great deal on having several hundreds of film rolls scanned at a pretty high resolution.

Anyway, I started to post the scanned images to Flickr and my own photo galleries, but during these last several years I just didn’t find the time to post the rest of them, leaving a lot of unpublished material from several very interesting trips.

So, I decided that instead of waiting until I have time to post all the remaining photos (probably never), I’d start to post only a few each day. So, here are the first photos of this batch, from my trip to Italy during April 2001.


Are you looking at me?!

Blogging music

April 14th, 2007

We’ve rolled out a nice new feature on FoxyTunes Planet – now I can click a ‘blog this’ button and get an embed code for posting artists (short bio and an image), videos, photos etc. on my blog. I could probably achieve the same thing by going to youtube, flickr etc., but who has the time for all these extra clicks when there’s so much great music out there to be discovered 😉

Anyway, here’s one of my favorite songs by Hooverphonic:

Hooverphonic – Mad about you

[via FoxyTunes / Hooverphonic]

Flickr Post Event Networking

April 13th, 2007

I read a blog post by Jeff Pulver about using Flickr for connecting with new people after attending an event together.

Jeff had a simple and elegant suggestion – we need a tool that given a conference or an event tag will show me all the people who posted photos on that event and who are not yet on my contact list. This is a great way of finding new and old friends on Flickr.

Anyway, I had some Flickr API code already open in one of my editors (people who know me know that I never close windows, so if I did some Flickr related stuff sometime since the last reboot, I’ll have it handy :) ), so… Check out the Flickr Post Event Networking tool.

A few implementation details:

  • The images are ordered by interestingess
  • You don’t have to login to Flickr – the tool grabs your public contact list
  • The results are cached for one hour – so after adding people to your contact list, it might take a while for the page to reflect the new status

Jeff – thanks for a killer idea! :)

FoxyTunes Planet goes live

March 31st, 2007

FoxyTunes PlanetAfter being in private beta for a while, we finally launched FoxyTunes Planetcheck it out!

I’m really excited to see all the great feedback we are getting from the community – on people’s blogs, in their comments, forum posts and emails to us. Also, the Planet has already been reviewed by popular blogs such as Mashable and Lifehacker.

I must say that creating something that is loved and appreciated by so many people is truly amazing, and this along is enough to keep us working those long long hours on FoxyTunes!

FoxyTunes Planet

We have a huge list of cool things we’re planning for FoxyTunes soon – the browser extension, FoxyTunes Planet site and the integration of the two. So, stay tuned – more exciting stuff ahead! :)

Most Interesting Flickr Images: music

March 25th, 2007

\"\"/
Sounds from the past by Rune T

\"\"/ \"\"/ \"\"/
Intermezzo by selva 365.40 : Wiggle-e by jon-e The Cellist by bdmckeown

MIFI series: Most Interesting Flickr Images by tag

March 25th, 2007

flickrI had this idea for a while now, and today I finally decided to do something about it.

The idea is very simple – I often play with flickr to find out what’s the most interesting image that corresponds to a specific tag – for example: what’s the most interesting image on ‘music’ or ‘love’?

So, I decided to write a small PHP script that given a word will find the most interesting corresponding images on flickr. One little caveat – in order to find the most appropriate images, the script doesn’t just grab the first most interesting ones – out of the most interesting images it finds the ones that have the specified word as one of the first four tags.

The first post in the MIFI series will follow.

Kinnernet 2007 – a camp like no other

March 24th, 2007

I believe that the best things in life transcend definition and Kinnernet is definitely one of those things. I’ve seen several definitions of Kinnernet – “un-conference”, “geek camp”, “user generated conference” but they really don’t come close to conveying the camp’s unique atmosphere and it’s amazing experience.

Some facts – Kinnernet is a camp organized by Yossi Vardi and many volunteers. It takes place annually at the Ohalo resort on the Kinneret – Israel’s Sea of Galilee.

Some highlights from this year’s Kinnernet:

Future of Web Apps presentations online

March 7th, 2007

Future of Web AppsI missed the Future of Web Apps conference this year – looks like it was a great event.

The good news is that the conference presentations are now available online – along with mp3 files of each presentation. You can read and hear some great presentations by Mike Arrington (Techcrunch), Matthew Ogle, Anil Bawa Cavia (Last.fm), Kevin Rose (Digg), Tara Hunt (Citizen Agency) and others.

The FoxyTunes “Web Media” feature came in handy here – after opening a presentation PDF, I right-clicked on the page and under the “Web Media” sub-menu were all the presentation mp3s found on that page, which allowed me to quickly send any one of them (or all of them) to my iTunes.

FoxyTunes Web Media

via Go2web2

26 Firefox recommended extensions mega chart

March 6th, 2007

As you might know, FoxyTunes is featured on the prestigious “Firefox recommended add-ons” list, along with 25 other excellent extensions such as Greasemonkey, Performancing, StumbleUpon and FireFTP. The list is displayed in a random order, which gives each and every extension on the list an equal chance of being discovered by the users.

One thing missing from the ‘recommended’ page is the ability to sort the list to find out which extensions are the most popular, which are top rated and so on.

So, I decided to create these charts manually and share the results. The numbes are from March 3, 2007.

The complete list: Adblock Plus, Answers, BlueOrganizer, ChatZilla, Clipmarks, Cooliris, del.icio.us, Download Statusbar, Firebug, FireFTP, FlashGot, Forecastfox, Foxmarks, FoxyTunes, Greasemonkey, JAJAH, Jeteye, Kodak EasyShare Gallery Companion, LinkedIn Companion, Map+, Performancing, Pronto, Sage, StumbleUpon, Web Developer, Yoono

Sorted by average user rating:

  1. Web Developer – 4.83
  2. FoxyTunes – 4.79
  3. FlashGot – 4.76
  4. Adblock Plus – 4.73
  5. StumbleUpon – 4.71
  6. Firebug – 4.54
  7. Performancing – 4.48
  8. Download Statusbar – 4.42
  9. ChatZilla – 4.37
  10. Clipmarks – 4.27
  11. Cooliris – 4.21
  12. Foxmarks – 4.21
  13. Sage – 4.13
  14. Answers – 4.12
  15. FireFTP – 4.12
  16. Yoono – 4.00
  17. Greasemonkey – 3.82
  18. Forecastfox – 3.81
  19. LinkedIn Companion – 3.23
  20. BlueOrganizer – 3.05
  21. Jeteye – 2.89
  22. Map+ – 2.73
  23. JAJAH – 2.71
  24. del.icio.us – 2.54
  25. Pronto – 2.50
  26. Kodak EasyShare Gallery Companion – 1.56

Read the rest of this entry »

FoxyTunes, Last.fm and music service discovery

February 21st, 2007

We added Last.fm player support in the latest FoxyTunes for Firefox release.

While this is good news for Last.fm users, it’s interesting to see that some people actually discovered Last.fm through this latest FoxyTunes update – see this Blog post for an example.

We’ll definitely explore this direction more in the near future – introducing and promoting music products and services by supporting them in FoxyTunes. It’s a triple-win situation IMHO – users get to discover and play with cool new music stuff, the service gets new users, and FoxyTunes becomes even more universal :)

By the way, FoxyTunes Planet was also built with this in mind – to be not only a cool place to discover new music, but also a place to discover new music services.

Steve Jobs writes about his views on DRM

February 7th, 2007

Steves Jobs posted an interesting open letter with his thoughts on DRM, iTunes/iPod user lock-in and the role music labels play in all this.

Basically, he believes that the labels should drop their demands that their music be sold protected by DRM, and if that happens he promises that Apple will embrace DRM-free music and support ‘a truly interoperable music marketplace’.

Why would the big four music companies agree to let Apple and others distribute their music without using DRM systems to protect it? The simplest answer is because DRMs haven’t worked, and may never work, to halt music piracy. Though the big four music companies require that all their music sold online be protected with DRMs, these same music companies continue to sell billions of CDs a year which contain completely unprotected music. That’s right! No DRM system was ever developed for the CD, so all the music distributed on CDs can be easily uploaded to the Internet, then (illegally) downloaded and played on any computer or player.

I couldn’t agree more. I believe that dumping the DRM will be good for everyone – consumers will be able to play their legally purchased music on any device and with any media player, and the increased interoperability and freedom will surely stir up more music discovery, recommendations and, eventually, legal music purchasing. Will 2007 be the year the DRM died?

via Paul Lamere

Iosart Blog v3.0 is here

February 3rd, 2007

Santa Monica
As you probably noticed, it’s been a while since I posted anything to this Blog. The reason? I’ve been really busy working on some really cool stuff, and just couldn’t manage to find the time to write.

Today I decided to revive my blog and start blogging again.

I’ve done some tweaking and upgrading to bring my somewhat stale WordPress installation up to date:

  • Upgraded to WordPress 2.1 (the new WP is great!)
  • Changed the Blog name from “Random Memoirs” to plain old “Iosart Blog”. I just felt that simpler is better in this case
  • Tweaked the Blog theme and its sidebar, adding blogroll, recent visitors (MyBlogLog) and so on

So, why v3.0? Because this is actually the third incarnation of this blog. My first Blog was called “The Bug Blog” and was using Nucleus. Then, I moved to WordPress 1.5 and renamed the Blog to “Random Memoirs”. Hopefully, 3rd time will be the charm :)

“Hacking Firefox” Book

August 11th, 2005

Hacking Firefox

Yesterday I received my Author’s copy of the new “Hacking Firefox” book published by Wiley. The book was written by Mel Reyes and several contributing writers. It has tons of useful information, hacks, tips and tricks on just about every aspect of Firefox.

I wrote the chapters on Mozilla Programming and specifically on Firefox Extension Programming. I worked very hard on making the material both easy to follow and comprehensive. If you are interested in creating Firefox extensions, the book should provide you with everything you’ll need – starting with basic understanding of the technologies and all the way to writing your own extensions, packaging them and deploying them on the Internet.

Now, when a friend asks me something like “What is this XUL thing I’ve been hearing about?” or “Where should I start if I want to hack something for Firefox?” I can just hand him a copy of this book, instead of pointing him to various bits of information scattered around the Web :)

More information about the book can be found on my Hacking Firefox page.

The sample extension we create in the book and its full source code can be found on the SiteLeds Extension page.

Recent Mozilla Adventures

April 28th, 2005

Several interesting issues I’ve encountered while developing the PlainOldFavorties extension:

  • Mozilla cannot correctly handle filenames that contain Unicode characters (on Windows). See bug 162361 for more details.

    Unicode issues seem to haunt many products and frameworks, and as I found out, Mozilla is no exception. If this is issue is important to you (and if you are located in a non-English environment, it should be), please vote for this bug, provide some useful feedback or even consider contributing some code for solving the problem.
  • I found no way to sort an XPCOM array (nsIMutableArray) from JavaScript. I’ve solved this issue by first creating a regular JavaScript array (Array class). Once I’ve added all the wanted elements to the JavaScript array, I called its ‘sort’ method and then added the elements in their sorted order to the nsIMutableArray. If anyone knows a better way to do this, please let me know. Otherwise, I believe that the interface should be expanded to allow this important functionality.

Plain Old Favorites

April 28th, 2005

I’ve created a new extension that integrates the Internet Explorer and Windows ‘Favorites’ with Firefox. Its name is ‘PlainOldFavorites’. The home page for the new extension contains more information.

I’ll quote the extension home page to explain what it does and why I created it:

Firefox has a great Bookmarks system. It has many wonderful and useful features, and the bookmarks can be exported and imported from many bookmark formats. There are even several extensions out there that allow you to synchronize your bookmarks with a remote server, the Windows Favorites folder and so on. Some users still wish to keep some or all their bookmarks in the Windows Favorites folder. There can be several reasons for this. First, some new Firefox users might find the transition to Firefox smoother if they can still use their familiar Favorites folder. Also, a link to the Favorites folder can be found in several places throughout Windows, which makes it a convenient option for storing links. PlainOldFavorites allows using the Favorites folder directly from Firefox without needing to import or synchronize the bookmarks first.

The Old New Blog

April 15th, 2005

Upgraded the Blog to WordPress 1.5, changed the theme to match the rest of Iosart.com and added a header photo. Moved the old BugBlog posts to the new Blog.

Considering starting Blogging more regularly…

Trivia: what mountain appears on the header photograph?

How to run a clean-up script when your extension is uninstalled

August 20th, 2004

Right now there is no support in the Firefox Extension Manager for running a script when the extension is uninstalled. Such script might be useful if your extension needs to perform some clean up, like removing some temporary files or registry entries.

I’ve managed to find a work around for this:

  1. Install an unload event handler in your overlay Javascript:

    addEventListener("unload", overlayUnloaded, false);

    The overlayUnloaded function will be called each time the user closes the browser window.
  2. In the overlayUnloaded function, ask the extension manager (nsIExtensionManager) whether your extension is in toBeUninstalled state.
  3. If so, the user has uninstalled your extension – go ahead and run your clean-up code.

A related technique is determining that your extension has been updated, and something went wrong.

I can provide the complete source code (in Javascript) for this technique on request.

A multiplatform extension for Firefox

August 13th, 2004

Update: Bug 253742 is very close to being fixed, so the workarounds in this post will no longer be needed. Thanks to the Mozilla developers for making the platform even better.

Every Firefox extension consists of several parts. It often has a UI part, typically written in XUL and some scripts typically written in Javascript. More advanced extensions have compiled XPCOM components in form of .dll or .so files.

While the XUL and the Javascript parts can often be used on all platforms (Windows, Linux etc.) without modification, the XPCOM components need to be platform specific (for obvious reasons).

I wanted to have a single extension package (XPI), which included the XPCOM components for all the platforms. When the extension is installed, it should detect the user platform and load only the appropriate components.

The first thing I noticed is that the extension manager mechanism doesn’t allow conditional installations (install different components depending on user’s platform).

Next, I tried the following reasoning: package both .dll and .so files with the extension. Firefox on Windows will load only the .dll files while ignoring the .so files, and on Linux only the .so files, while ignoring the .dll files. It was only logical to me that the Windows version of Firefox will not try to load the .so files.

It didn’t work. Windows Firefox did try to load the .so file and popped up and ugly message box saying something about wrong file format. Looking through Mozilla source code, I saw that there is a list of all the dynamic libraries extensions (.dll, .so etc.) and Mozilla will try to load all the file types on all the platforms.

After posting a question on the mozillazine.org forums, I got an answer saying that I should provide several different packages for the different platforms. I wasn’t ready to go that way. Managing several packages, when all that is different between them is a single file seemed unreasonable.

So I came up with a work-around. I had only Windows and Linux versions, but the technique can be extended further to support more platforms. Here it is:

  1. Package the Windows version of the component as MyComponent.dll
  2. Package the Linux version of the component as MyComponent.dll.linux
  3. Windows will load the .dll file while ignoring the .dll.linux file (because its extension is not a valid dynamic library extension). Nothing else should be done here.
  4. On Linux – the first time the extension is loaded, it will try to load MyComponent.dll file and fail (because the file is a Windows DLL). It will fail gracefully, without popping up any message boxes.
  5. During the startup of my extension I check whether the user platform is Linux and if MyComponent.dll.linux file exists.
  6. If so, this means that this is the first run. The script moves (renames) MyComponent.dll.linux to MyComponent.dll, removes the components registry files, compreg.dat and xpti.dat, so they are rebuilt the next time Firefox is started
    and inform the user that an additional restart is needed.
  7. When the browser is restarted, the MyComponent.dll is loaded successfully (because it is now a valid .so file) and the registry files are rebuilt to reflect its contents.
  8. The extension is now fully functional.

One little question needs to be answered – why do I rename MyComponent.dll.linux to MyComponent.dll and not to something more Linux-like as MyComponent.so.
The answer is – uninstall. If I created a new file named MyComponent.so, when my extension got uninstalled the file wouldn’t have been deleted, because it was never installed. Moving MyComponent.dll.linux to MyComponent.dll leaves all the files with exactly the same names, so when uninstall comes, they are removed.

I can provide the complete source code (in Javascript) for this technique on request.