Archive for the ‘Firefox’ Category

New tools

January 15, 2008

I recently came by several new neat tools:

del.icio.us Bookmarks (Firefox extension)

Evgeny asked me if I know of a way to synchronize his browser’s hierarchal bookmarks with his Google tagged bookmarks. I recommended him switching to del.icio.us, knowing that such a popular site must have a synchronizing extension. A little search revealed that after Yahoo purchased del.icio.us, they wrote a extension to do exactly what I looked for, and it seems to work extremely well.

One of the main benefits of the extension to me is the option to bookmark an opened Firefox tab while offline, counting on the extension to later synchronize it to del.icio.us when I’m back online.

The only problem is that I have used many, many tags, and this translates to a very long Tags menu. Obviously, the guys at Yahoo thought about it, and added the Favorite Tags feature, but still, if I look for a tag not in my favorites list, it can be annoying. I really need to clean up my list of bookmarks, but that’s not related to the del.icio.us Bookmarks. It would be better, though, if they could put the list of tabs in multiple-columns menu, like the programs menu in Windows’ Start menu, but I don’t know how easy it is to do it in a Firefox extension.

Miranda IM

When I first realized I use several IM clients, and could use one tool that will aggregate them all, I started using Meebo, especially as I was impressed with the Web and AJAX abilities they demonstrated. But then I realized I prefer a non-browser solution, which will not depend on my browser (which is an important working tool for me), and will show me tray notification on events. I picked Pidgin which looked nice.

But recently  I realized I’m having too many problems with it. It didn’t do Hebrew spell checking, it often got stuck while writing messages, it didn’t display Hebrew properly with talking with my boss via MSN, and some more. I started looking again, and found Miranda. Miranda look very nice, and it seem to have a plugin for anything I could think I need. I especially liked the SMS plugin which sends SMS via ICQ for free I so liked it, I recommended it to friends, and even installed it on my wife’s machine, so she can use it for sending SMS (thought she is still using Google Talk for chatting).

The only current problem is that Miranda doesn’t handle Hebrew spell checking well as well. I posted something about it. I hope it will sometime be fixed.

Xobni

When I saw the Xobni video I fell in love and signed up to their closed beta. I recently got an invitation to the beta and started using it. Surprisingly, It doesn’t slow down my Outlook and seems to work very well. I do have some complaints, but because it is too long, I’ll post them in separate posts.

Fireshot (Firefox extension)

I don’t use Nitobi’s products, but after reading Alex’s explanation of how he built the FishEye widget, I subscribed to his blog which sometimes have interesting ideas or links. He recently posted about the Fireshot Firefox extension for taking screenshots from the browser. There are many screen capturing programs, and my favorite is  MWSnap, but his extension allows you to easily edit the captured image – crop and blur areas, add annotations etc. I even used it to open an image captured outside of the browser with MWSnap, by opening the image in Firefox and re-capturing it, just for the editing.

The only problem I’m currently having with it doesn’t have an Undo feature, which means that if you made a mistake in your editing of the captured image, you have to re-capture and start all over again.

Flix.co.il on Firefox

June 6, 2007

Flix.co.il is a an Israeli video sharing site, and recently I noticed that when someone links to a movie over there, my Firefox fails to display it, and I have to revert to IE to display. That doesn’t happen that much for me to install the IETab extension. but today, I decided to check what’s going on, and see if a user script can be written to overcome it.

One of the strangest things was that I saw no complaint about it in the Israeli Blogosphere, and I thought that if there was a problem with Firefox support on that site, bloggers would have rant about it, and someone would even write a user script to solve it.

However, when I checked it I found out that the site uses Javascript libraries from plaxo.com when the “send movie to a friend” feature is used, in order to import their address book. Normally, this should not be a problem, but SmartFilter defines Plaxo.com as “Social Networking” and such sites are blocked by our IT people as non-job related site, so when the browser requests it, it gets an error HTML, and if it tries to treat the returned page as JavaScript code, errors occurs. For some reason I didn’t quite understand, IE can cope with that JavaScript error, but Firefox stop execution the code in the page, so the movie Flash <object> and <embed> tags are not created, and the movie is not displayed.

After that was found, it was easy to write a user script that creates that movie Flash <embed> tag if the page failed to do it.

Checking it some more, I saw that if you refresh the page several times the movie start playing. This might be related to the fact that the plaxo.com libraries are loaded in an <iframe>, and the load order might change.

Greasemonkey wish: Auto-update user scripts

May 1, 2007

I’m the kind of guy who likes to know when a new version of a software I use is released, and update whenever I can (I guess this is why I installed Office 2007 when it was in Beta). This is why I use Update Notifier Firefox extension, which automatically checks for Firefox add-ons when Firefox starts.

I think Greasemonkey should evolve to support such mechanism for user scripts – each user script should be able to mention its current version and its URL as part of its metadata and then Greasemonkey can periodically check if the user script is updated. As it is now, I might find a script on userscripts.org and install it, but I won’t know that the script was later improved by its author. I think this would be great.

update: while wondering around userscripts.org, I found this script which seems to do what I want. I’ll look into it tomorrow.

Annoying meebo message on Firefox close or restart

April 28, 2007

Every once in a while I need to restart Firefox (e.g. to update an extension, or to remove Firefox memory consumption), or I need to restart my machine and close Firefox. Since I always have a meebo tab open, when I close Firefox I get this annoying message from meebo (which uses the onbeforeunload event):

If you leave, your meebo IM sessions will not be preserved!

Today I realized that this message is almost never useful – I never closes the meebo tab by mistake – I only do it when I want to close (or restart) the browser, and then I realized a quick user script can solve the problem. I checked into Meebo code, and so that the string is a member of the meebolang object that holds language-dependent strings. This string (meebolang.navigateAway) is returned in the onbeforeunload event, so to hide it, I can simply change that member.

A few trials taught me that in Firefox, the onbeforeunload event must return undefined (and not null or false) for the warning unload message to disappear. Once that was achieved, implementing the required user script was easy.

Post-Subscription Disorder

April 25, 2007

On regular basis, I add new items to two sites on a regular basis – Bloglines (my RSS feed reader) and del.icio.us (my bookmark keeper).

When I subscribe to a new blog in Bloglines (see below how I do it), Bloglines takes me to my feeds page at Bloglines, and after I add a new URL to del.icio.us (using the Post to del.icio.us bookmarklet), del.icio.us takes me back to the site I just added.

I would like it to be the other way around:

When I subscribe to a site/blog, this is probably after I took a quick glance at it, and decided its interesting, and after I subscribed, I would probably want to continue reading it (or close the window). Besides, my first open tab is the Bloglines tab, and I always keep it open, so I don’t need another Bloglines tab.

On the other hand, when I add a URL to del.icio.us, that’s usually after I’m more or less done with it for now, and wanted to file it for later use. Since I don’t usually have a del.icio.us tab open, I would like to be taken to my del.icio.us main page, where I can do various actions like seeing what other bookmarked pages I have that are related to the new page I just added, or seeing how many other people bookmarked this page, or taking a look at the pages I added recently, to see if any of them might be of interest now, e.g. because I wanted to e-mail it to someone but didn’t do it yet for some reason.

Once I have time, I might look into these sites and see if I can write a user script that can change this annoying post-subscription behavior.

PS 1:

I used to subscribe to new blogs in Bloglines using the Subscribe button in Google Toolbar, but as I’m writing this post, I’ve realized that when I do it, it always opens the subscribe window in a new tab, which is not always what I want. I think I’ll switch to using the RSS icon next to the down arrow of Firefox’s address combo-box, where left click open the subscribe window in the same tab, and middle click opens it in a new tab.

PS 2:

Why Bloglines? I tried Google Reader in its first version, and didn’t really like it, so I reverted back to Bloglines, which I really liked. When the second version of Google Reader was released, and everyone said it’s awesome, I tried to use it, but it remembered all my old subscriptions from my previous trial, and the option to delete them all and start over didn’t really work. While writing this post I tried it again, and this time it worked, so I might give it another try some day. In fact, I do like the frames structure of Bloglines, so Google will have to really impress me for me to make the move.

"Display Anchors" toolbar button

March 6, 2007

I often use the “Display Anchors” option found in the Information menu of the Web Developer Firefox extension to build a link directly to a part of a page I’m interested in.

I usually doing it by clicking the toolbar button to show the Web Developer toolbar, then open the Information menu and select “Display Anchors”. A shorter way might have been using the right-click menu, since all Web Developer options are also available through a right click menu item. In any case, it requires at least three steps – Web Developer -> Information menu -> Display Anchors for this simple operation.

Today I’ve got sick of it and looked for a way to make it a one click operation. I googled for “display anchors” toolbar Firefox and got to David McRitchie’s bookmarklets page, where as point to the no-longer-available Show Classes and IDs bookmarklet page, but also has his own “id visible’ bookmarklet, which does something similar:

javascript:(function(){ var z=[],N,id,tc,j; function r(N) { if (N.id) z.push(N); var C=N.childNodes,i;for(i=0;i<C.length;++i)r(C[i]); } r(document.body); for (j in z) { N=z[j]; id=document.createTextNode(” %C2%ABid=”+N.id+”%C2%BB”); tc=document.createElement(”span”); tc.style.color=”red”; tc.style.background=”#FFEE99″; tc.appendChild(id); N.parentNode.insertBefore(tc,N.nextSibling); N.parentNode.insertBefore(document.createTextNode(” “),tc); }})();

I worked on it a little, and came up with a bookmarklet that creates link in a fashion similar to Web Developer’s “Show Anchors” way:

javascript:(function(){ var z=[],N,tc,j; function r(N) { if(N.id) z.push(N); var C=N.childNodes,i;for(i=0;i<C.length;++i)r(C[i]);}r(document.body);for(j in z) { N=z[j];tc=document.createElement(”div”);tc.innerHTML=”<a style=\”background-color:#FFFF99 !important;border:solid 1px #FFCC66 !important;color:#000000 !important;opacity:0.9 !important;text-decoration:none !important;font-size:10px !important;\” href=\”#”+N.id +”\”>#”+N.id+”<a>”;N.parentNode.insertBefore(tc,N);}})();

It currently only add links to elements with ID and not to a href-less named <a> elements. I’ll add these when I see the need.

Note: The bookmarklets are currently not links as I can’t find a way to convince WordPress editor to make them proper links.

Videos on the Road

February 19, 2007

The VideoDownloader Firefox Extension is a godsend for anyone like me who has a long ride to work every morning, and doesn’t drive on his own.

Ever since I have a laptop, I can read on the way to and from work (about one hour drive in each direction) if I’m not too exhausted, even in dark winter days. In the past, I used to read books and articles, with a little lamp, but a laptop screen is much more convenient. The downside is, of course, that I get to read a lot more blog posts than literature I would like to read…

Since I found the VideoDownloader extension, I can also view videos on the way. One of the recent outcomes is that I used to see some chapters of Family Guy and fell for it.

Anyway, this laptop think now enables me to go over my del.icio.us ToRead list and ToHear list and catch up. This morning, I started watching this video about Human Computing which I bookmarked long ago, don’t know how I got there. This video talk (or at least its first 20 minutes which I already watched) is both hilarious and very interesting. Highly recommended.

Edit: I forgot to mention that the main drawback of the VideoDownloader extension and other similar tools is that they don’t support downloading from YUI Theater, and from Yahoo! Video in general. YUI Theater has some pretty good JavaScript talks. However, the YUI guys usually now put (or plan to put) a downloadable version for each of the interesting videos.

Locationbar² also decodes URLs for better readability

January 29, 2007

I recently found Locationbar² Firefox extension somehow, and thought it is nice to have it emphasis the domain name of the URL you are in.

Only today, when I wanted to tell some friends about “Family Guy” for which I recently fell after reading a post in some Hebrew blog I don’t usually read, and wanted to link to the Hebrew Wikipedia entry about Family Guy, I noticed that Locationbar² makes the Hebrew Wikipedia URL readable, and not containing long list of escaped character. I verified that indeed, its second feature, after “emphasizing the domain name” is “[d]ecodes URLs for better readability” with a sample from Ukraine Wikipedia.

Very cool.

Update: I just found out this can also be handy when you have Google searches with special characters, where it is hard to see the search phrase from the URL without Locationbar².

First Post – Firefox fights

January 20, 2005

I really don’t know what to write on my first post, but Joel says I should write one (great article, by the way. As usual. I should really get to read the JoS book sometime), so I guess I should just start.

Today I stayed late since I go to the Achla meeting, and Sefi was kind enought to pick me.

Anyway, I just had a big fight with Firefox today. First of all, it insists on blocking my popups, no matter what I tell him. I wonder if this is because I have TBE installed. I guess I need to reinstall a clean Firefox so I can blame all the weird behaviors I found on it. I don’t use it as my day-to-day browser anyhow. (I really love Avant Browser. I do hope that the little features I still miss will be entered soon.) I also tried to install a different theme, but failed. At first the themes page didn’t loaded, and then it claimed the jar file is corrupted. I really don’t know how all of the geeks keep up with this crap. It is event worse than MS problems.

The real problem was getting the update via XMLHttpRequest to work.

Our code looks like this:

function getXMLHTTP()
{
try
{
return new ActiveXObject(“Msxml2.XMLHTTP”)
}
catch(e)
{
try
{
return new ActiveXObject(“Microsoft.XMLHTTP”)
}
catch(oc)
{
}
}

return (typeof XMLHttpRequest == “undefined”) ? null : new XMLHttpRequest();
}

function updateEventList(szJSUpdateCode)
{
if(gXMLHTTP.readyState == 4)
{
if(gXMLHTTP.responseText && gXMLHTTP.responseText.charAt(0) != ”
{
eval(gXMLHTTP.responseText); // call retrieved JS code to get events
} else {
alert(“Failed to download ‘” + gszURL + “‘”);
}
gszURL = null;
}
}

var gXMLHTTP = null;
var gszURL = null;
function sendRequest(szURL)
{
if(gXMLHTTP == null)
gXMLHTTP = getXMLHTTP();

if(gXMLHTTP == null)
return false;

if(gXMLHTTP.readyState != 0)
gXMLHTTP.abort()

gXMLHTTP.onreadystatechange = updateEventList;
gszURL = szURL;
gXMLHTTP.open(“GET”, szURL, true); // true means work asynchronically
gXMLHTTP.send(null);
}

It is called from the main page to update the list, but when an event is being updated in popup, the popup called opener.sendRequest() with the updated URL, to update the list, and then window.close(). This works well in IE, but for some reason, Firefox decided to stop the download and set the readyState to true without any data in the time that popup closed itself. I don’t know exactly why it is, but the solution was to write:

function delayedRequest(szURL)
{
setTimeout(“sendRequest(‘” + szURL.replace(/\’/g, “\\\'”) + “‘);”, 1);
}

And make the popup call delayedRequest.