Archive

Archive for the ‘flock’ Category

Flock switching to Chrome: opinion of an ex-Flocker

March 5th, 2009 4 comments

I’ve just read on Techcrunch that Flock was going to switch from Firefox to Chrome. This is not completely news to me because at the time I was still at Flock, one colleague (Chris Campbell) was doing experiments with Chrome to see the feasibility of the switch. I don’t know what’s going on inside Flock now, so I don’t know if they’re still just playing with Chromium or seriously planning a switch.

Gecko and Webkit… Or Firefox and Chrome?

The supposed switch revived a recurring discussion about how Gecko is a pain in the arse to embed, and how it’s a breeze to embed WebKit. Additionally WebKit is young, shiny and buzzy while Gecko is old and supposedly tired.

It is true that Gecko is much harder to embed that WebKit. It is also true that Mozilla is not spending a lot of time helping people who want to embed Gecko (their priority is Firefox), while embedding is the main purpose of WebKit. The natural consequence is that I don’t know any recent project choosing Gecko as their rendering engine.

But that’s not the point. Flock is not embedding a rendering engine, they are taking a full blown browser – currently Firefox – and tweaking it. Flock is not a browser based on Gecko, it is a browser based on Firefox. That explains a lot of similarities between the product, and that also explains why most Firefox extensions work in Flock.

That means that if Flock switches to Chrome (actually Chromium, the Open Source version of Google Chrome), it doesn’t matter how easy it is embed WebKit: what matters is how easy it is to hack Chromium. And it doesn’t matter how responsive and nice the WebKit community is: what really matters is how Google will deal with external contributors and patches from external contributors. And as Chromium is young, this is still unsure.

But even if Chromium appears to be open to contributors, how they would react to a company building an other browser based off Chromium is pretty unknown. It’s just like with Mozilla: they release their code under an Open Source license so they explicitly allow that kind of derivative work and can’t prevent it to happen. But whether they will see Flock with a better eye than Mozilla did is a different question.

Would Flock benefit from a switch to Chrome?

I can really see only one good reason for Flock to switch to Chrome: the “process-per-tag” system.

Flock have always suffered of Mozilla’s single thread, single process logic. For example, when you fetch the Facebook friends list of a rockstar, you have to merge lists of thousands of friends then refresh the UI to reflect that. This operation happening in the main thread (the only thread) it will literally block your browser. To workaround that, Yosh wrote a simple Scheduler that sets timer to yield to the UI once in a while. It’s really a hacky way to get threads-like things, and since we didn’t apply it everywhere there were still code that were freezing the browser. With Chromium, Flock’s sidebars or topbars would run in separate process and be less disruptive for usual browsing.

It’s hard for me to see how that single reason would outweigh the cost of switch for the team and for the users. This is going to be a completely different product with new bugs, features disappearing and alienated users. I do not know Flock’s current strategy but I can only assume they are seeing more benefits to the switch that I can’t see.

Letting the user choose

That kind of controversy about what Flock should use (or will use) as a “host browser” is pretty irrelevant for extensions companies. Foxmarks, CoolIris and the company I currently work for are all examples of companies who provide a rich browser feature while letting the user choose his browser.

At its early days, Flock decided to be a browser instead of a set of extensions. This choice makes sense for Flock’s general strategy, but today I can’t help but think that if Flock was an extension company, it could just have released a Chrome version along with versions for other browsers.

Categories: browsers, flock, tech Tags: , , ,

AMO editor

August 12th, 2008 No comments

Update: since since entry is fairly well ranked on search engines, I thought I should link to this page explaining how to become an AMO editor (and what does an editor do).

My application as a AMO editor has just been accepted!

I will now be reviewing Firefox extensions and themes, for the benefit of users and developers. Extensibility is a killer feature of any product based on Mozilla technologies, but it’s so powerful that it can be dangerous. Extensions can do whatever the hell they want, and that includes breaking a browser or do nasty things. The AMO editors must only show extensions that work correctly, don’t break the browser, and don’t invade the user’s privacy.

Especially after the launch of Firefox 3, most extension had to be ported, and a lot of new developers are coming to the platform, increasing the workload for AMO editors. I will be helping the AMO team to get quality addons in the front of users, while teaching developers what they should do to reach the quality level expected by AMO.

Note that, while the technologies involved are the same, this is independent from my day job. I will be reviewing extensions as an individual, not as an employee of my employer.

addons.mozilla.org
Categories: browsers, flock Tags:

Getting more media sites in Flock’s mediabar, with Media RSS

July 17th, 2008 1 comment

Flock 2.0 is on its way to the final release, and many of you have noticed that besides all the Firefox 3 goodness, the experience is pretty much the same as in Flock 1.2. Well, it’s pretty much the same, not exactly the same. One discreet feature is the recognition of Media RSS feeds for the mediabar.

Media RSS on the French website lemonde.fr

While Flock has been doing a lot of service-specific integration, it has never been the intent for the long term. We do service-specific because we have no choice, but we are eager to support open standards (and promote them) as they get available. Our blog editor had support for MetaWeblog and ATOM Publishing Protocol from the beginning, and now it’s the turn of the mediabar to get some open standard love.

Media Discovery

What does it mean for you, the user? Well, it means that besides the 7 supported services, you can consume content from any website that advertise an RSS feed. You can try it, in Flock 2.0beta2. Here is a selection of websites:

Custom Search

So when you visit a page with a media rss feed, you can see it in the mediabar and subscribe to it. It gives a experience similar to Flock’s news reader, but with an experience more tailored to media content (images and videos). But there is more. It’s really an advanced feature, but if a website provides a media rss feed for a given search result, you can use that to add search in the mediabar.

Example: Hulu
Hulu is a website with TV content from the major networks (FOX, NBS, PBS…) with limited advertisement. You can get search for it in Flock’s mediabar, again that’s for Flock 2.0beta2:

  1. Open the URL “about:config”
  2. Search for “rssSearch”
  3. Change the value of flock.photo.rssSearch to:
    [{"hulu":{"id":"hulu","title":"Hulu Videos","url":"http://www.hulu.com/feed/search/%s","icon":"http://www.hulu.com/images/hulu.ico"}}]
  4. Open the mediabar

Voilà! You can now search for your favorite TV shows in the mediabar.

Search for "Homer" on Hulu.com

Get support for your site

If you have a feed with images or videos on your website/blog, you can get it in Flock’s mediabar pretty easily.

The easiest way is to pipe your feed through Feedburner, making sure you enable their SmartCast feature. Feedburner will nicely add the required markup to your feed (and they have a lot of other features too).

If you’re tech savvy and you’d rather do it your way, there is some documentation that I wrote for that.

Categories: flock, hacking Tags: , , , ,

Flock in Japanese

July 10th, 2008 3 comments

Update: Flock in Japanese has been released. You can download it here.
Update2: A blogger found the right words to announce this release:
Flock 日本語版 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

It’s been a long time, but we’re finally there: the release of Flock in Japanese is very close! You can read details (in Japanese) on the blog of one of the translators. It even includes a link to a pre-release of the Japanese version. As the translator says, it’s better to send feedback about the translation directly to the translators. If you use the “feedback” button, that get to our support guy who won’t understand much.

As good news always come by two, an other member of the JA translation team will make a seminar about Flock, in at OSC Kansai 2008 (Open Source Conference) on July 18th. If you’re in the region at that time, that’s a good opportunity to meet between Japanese Flock users/contributors.

And again, congrats to the JA localization team!

Categories: flock Tags:

Week-End Hacking

July 6th, 2008 No comments

I’ve spent a day hacking on a new extension. It’s for gamers (like me!) who like to check reviews about new games before they buy. I’ve put Amazon customer reviews score, the mandatory Metacritic score. More to come – let me know what you think should be there.

Also, when you visit Metacritic, IGN or Gamespot, games get detected, so all you need when you’re viewing a page about a game is to click on the famicom icon, and the info will open on the left. Pretty cool, eh?

It’s in AMO sandbox now, so if you don’t have an AMO account with Sandbox access you can also download it here. And if you like it, don’t forget to write a review on AMO, so it can get out of the sandbox!

Video Games Spy

"Boom Blox" in VGSpy

Categories: flock, hacking Tags:

Flock on Firefox 3

February 3rd, 2008 3 comments

Update: a public beta of Flock 2.0 is available.

In order to minimize the wait between the release of Firefox 3 and a Flock version based on it, Manish and me started to work on porting Flock to FF3. The current stable version of Flock is based on Firefox 2, the latest stable release from Mozilla.

That’s today that we’re very glad to work on overlays, and keep our source modification away from Mozilla files as much as possible. Changes that were touching Mozilla files take way more time to merge/migrate. That’s also an opportunity for us to clean up some of our code. For example, the way we were changing entities in browser.xul was to replace the DTD file. Bad, because we were missing the new entities from Firefox 3. We fixed that to only override the entities we want to change (Firefox -> Flock, Bookmarks -> Favorites…)

So here is where we are after a few days.

What works

  • The datastorage layer. The data layer of Flock consists in an RDF datasource accessible through a Javascript object mapper (Coop) and serialized on the disk in a mozstorage (sqlite) database. I don’t know if Manish had to do anything to make it work in Firefox 3, but it seems to be working great.
  • The services backend. We had to migrate to the login manager because the password manager is deprecated. So long nsIPassword, the time of nsILoginInfo has come.
  • The web clipboard. Not really a surprise, it’s simple enough not to break. Cherry on the cake: now when you drag a picture or a snippet, the whole picture moves with your cursor. That really looks great and make drag’n drop very clear and easy to understand.
  • The blog editor. Still some bugs, but the basic functionality is there. Almost no work required!
  • The people sidebar. I’m really impressed. This is a big piece of code, but as soon as the service backend was fixed it just worked out-of-the-box. Everything seems to be working.
  • The star button. That one was easy. Mozilla is introducing a one-click bookmarking star button (just like the one we’ve been having in Flock for 2 years). So all I had to do is drop our own star, move Mozilla’s one from the right to the left and theme it correctly. Tada! No online bookmark yet and it’s not clear whether we’ll stick with Firefox’ behavior (that’s not yet clearly defined anyway), but it’s a start.

What’s broken

  • The theme. I started to fix it, but there is still a lot of work to do. The background on toolbars is missing, tabs and the URL bar need to be styled…
  • Full text history indexing. Manish did some work on the Lucene level, and I started to migrate from the History RDF to Places. Not quite working yet.
  • The searchbar. I didn’t look at it yet, but as you can see on the screenshot it’s not pretty. Maybe it will just work after we fix the theme and the indexer?
  • Online bookmarks (Delicious, Magnolia). They do get synchronized locally but don’t appear in the UI yet. With Places we’re basically throwing away most of our UI favorites code, but we need to reinject the code related to online bookmarks in the Places UI.
  • Mediabar. It’s pretty much busted. We’ve been using hacks and non-standard techniques more than in any other modules; I suspect that most of the breakages are due to things we were not supposed to do even in Firefox 2, and we may have to redesign some pieces to do it “the right way”.
  • Notifications. I reverted that change because it was preventing the browser to start (“can’t find the XBL for browser”: hard to use it when the browser window doesn’t appear!). Manish is going to take care of it, and that’ll probably end up being a simple change.

I recommend to anyone coding on the Flock browser to have a look at Mozilla’s page about porting extensions to Firefox 3. In particular, there are points about stuff that work in Firefox 2, but that we were not supposed to use and will stop working in Firefox 3. For exemple, event.preventBubble deprecated in favor of event.stopPropagation. If we start to be careful about these points in Flock’s trunk, the migration to Firefox 3 will be much smoother.

And if you want to play with a broken browser… Feel free to build the branch experimental/firefox3-merge.

Flock on Firefox 3

Categories: flock Tags: , ,

What happened with wiki.flock.com

December 26th, 2007 1 comment

Lloyd, your recent post about knowledge disappearing and Flock “destroying” documents was a bit harsh. Did you send an email to any of your ex-coworker to ask where all these articles went?

There was a lot of useful information on wiki.flock.com, but honestly it was a messing. People have been dumping articles in it since the creation of the company and there were no clear structure. Since you knew that article existed, you would certainly have found it on the wiki, but the chance that someone new to it stumble upon the article you were talking about was very small. Even worse, the wiki was full of outdated articles that could be misleading. So, we decided to start with a clean base on http://developer.flock.com. We didn’t destroy the articles from the old wiki. We all respect Vera and Eli, we don’t have any reason to do so.

The articles are archived internally, so we can pull relevant articles from it and re-publish them on http://developer.flock.com. I will have a look at the articles you mentioned and probably get them to dev.f.c.

Categories: flock Tags:

The API release is approaching

December 17th, 2007 No comments

Something people often ask is support for more services. And that’s what we do: in 1.1 we will be adding support for Picasa, currently the service most people are asking for. But we can not implement support for every single service in the world! We have to focus on the core of the browser, horizontal features, performances and stability. We can not implement the “long tail” of web services, simply because there are thousands out there.

This is why Ishika and me (helped by Marcus, Chris and others) have been working on an API that is easy enough for third party developers to pick up and use. We are currently writing documentation to explain how it can be done.

The API was more or less present, but a lot of cleanup had to be done and new interfaces and methods had to be written. Specifically, what we had to do is:

  • Well, make sure it can be done. At Flock we have a tradition of writing services in a modular way, but sometimes we added hacks in the core to enable a specific feature for a service. Extension developers won’t be able to do that, so all that hacks had to go away. In each area, we designed a way to support specific features from the service itself.
  • Remove cruft. Flock’s features set has evolved a lot in 2 years, and stuff that should no longer be there was remaining. The best example is the “photo” module. Since we traditionally supported only Flickr and Photobucket, it was called the photobar and everything in the backend was photo-something. Now that we support YouTube and AOL’s Truveo, we changed it to “media” in the UI, but we also had to change interfaces names to avoid confusion (“A YouTube photo?”). More important, in Flock 0.7 (Cardinal), the photo module had some kind of social aspects: there were people in the photobar in a way. In 1.0 this created a duplication with our People code, so for 1.1 we moved what was left of the people logic out of the media module.
  • High-level methods to manipulate data. All the data we store locally (a cache of the friends list, your online favorites…) are stored in RDF, backed by a mozstorage database (sqlite), and accessed by an object layer. We were accessing that data directly, but that’s not the best way to deal with data! We wrote high-level methods to store and retrieve data such as getFriends to get the friends list or addFriend to insert a friend in the local store.

As I said we’re in documentation writing mode, but if you’re a Warrior Developer who only need the code to understand, here are some examples:

There is an other side of the API: one that let you access all supported services in a unified way, if you want to create your own people bar… But I keep details about that for the next time ;) .

Categories: flock Tags:

Dailymotion in Flock

July 9th, 2007 No comments

Still working on the Photo API, I created an XPCOM module to use Dailymotion (a video sharing website pretty popular in France) in Flock.

It’s in trunk only, and disabled by default. If you have a Flock tree, you can enable by de-commenting the line regarding Dailymotion in $c/services/Makefile.in. So far it just support the search functionality and channels. There is no account management and no media stream detection yet.

Blogged with Flock

Categories: flock Tags:

Google Desktop and Flock

July 1st, 2007 2 comments

Being a Linux user, I was very happy to see the release of Google Desktop for Linux. So I ditched Beagle and switched to Google Desktop.

As you probably know, Flock comes with full text indexing of your web history. It works very well, and is integrated with the search bar which is very cool. But if you want to have your web history indexed, you can do it thanks to Flock’s compatibility with Firefox. Just follow the instructions on Google’s help pages.

  • Windows: replace “Mozilla Firefox” by “Flock”, “Mozilla” by “Flock” and “Firefox” by “Browser”
  • Linux: just go to the directory where you untarred Flock and follow the instructions. You can also put the file desktop@google.com in your home directory, personally I prefer that

Most of the time, unless it’s related to bookmarks, what works for Firefox also works for Flock.

Blogged with Flock

Categories: flock Tags: