<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="flux.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Blog@instantbird.org - Feature preview</title>
 <link>http://blog.instantbird.org/t4-feature-preview.html</link>
 <language>fr</language>
 <description>Blog@instantbird.org/Feature preview : Overview of new features in upcoming versions of Instantbird</description>

 <item>
  <title>Tip for MacBook users</title>
  <guid>http://blog.instantbird.org/nocomm26-4.html</guid>
  <link>http://blog.instantbird.org/n26-tip-for-macbook-users-4.html</link>
  <description>
   &#60;p&#62;Instantbird 0.2 uses the multitouch feature of Macbook touchpads in conversation windows:&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;ul&#62;&#13;&#10; &#60;li&#62;Pinch in or out 2 fingers to change the zoom level.&#60;/li&#62;&#13;&#10;&#13;&#10; &#60;li&#62;Swipe up (3 fingers) to scroll to the top of the conversation, down to scroll to the last message. This saves time when looking for an old messages in the conversation (for example, using the Find feature) and then going back to the display of the most recent messages.&#60;/li&#62;&#13;&#10;&#13;&#10; &#60;li&#62;Twist left or right to select the tab at the left or right of the currently selected tab.&#60;/li&#62;&#13;&#10;&#13;&#10; &#60;li&#62;Swipe left or right (3 fingers) to change the selected tab to the previously selected tab. This gesture is probably the most useful one: it's very convenient when reading quickly a message in a newly opened tab and then going back to the conversation tab where an active conversation is occurring, or when actively participating in 2 discussions and repeatedly switching between 2 tabs.&#60;/li&#62;&#13;&#10;&#60;/ul&#62;
</description>
  <pubDate>Thu, 22 Jul 2010 22:04:00 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Context menus</title>
  <guid>http://blog.instantbird.org/nocomm24-4.html</guid>
  <link>http://blog.instantbird.org/n24-context-menus-4.html</link>
  <description>
   &#60;p&#62;Context menus (opened with a "right click") are a common and expected part of the user interface. It can be very frustrating when they are missing, so in Instantbird 0.2 we tried to add one wherever users are likely to expect one.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;In the buddy list, the context menu of contacts can be used to start a conversation (although pressing enter or double clicking is usually faster), show the conversation history, rename a contact, move the contact to a different group or remove it from the list:&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/buddy_context-menu2.png" alt="Buddy context menu" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The context menu is usable anywhere in the buddy list to toggle the display of offline buddies:&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/blist_context-menu2.png" alt="Buddy list context menu" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;A context menu was added in the account manager too. There, it proposes all the possible actions for an account. Since Instantbird 0.2, it's possible to reorder the accounts in the list (this is also possible with drag &#38;amp; drop using the mouse or with the keyboard using shift + the up or down arrow).&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/account_context-menu2.png" alt="Account context menu" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;A context menu is available on conversation tabs, with actions related to that tab (opening it in a new window, closing it, ...) and to the conversation, like showing the history of previous conversations with the same contact.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tab_context-menu2.png" alt="Tab context menu" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Last but not least, there's a context menu in conversation content. This is the most "contextual" context menu we have added. The proposed actions will vary depending on whether there is a selection or if the context click was done over a link.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/text_context-menu2.png" alt="Content context menu" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;When selecting some text from a conversation, a common action is to copy it to the clipboard and then paste it in a browser to use it as the query in search engine. We have included search engine items directly in the context menus to reduce the number of clicks needed for this common case.&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Sun, 11 Jul 2010 19:04:37 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Cleaner UI</title>
  <guid>http://blog.instantbird.org/nocomm23-4.html</guid>
  <link>http://blog.instantbird.org/n23-cleaner-ui-4.html</link>
  <description>
   &#60;p&#62;In Instantbird 0.2 a lot of visual bloat has been removed from all windows. Some margins have been reduced, borders that weren't useful for clarity have been removed, and alignments have been improved. All of this contributes to a better use of the available space on the screen, and to a better perceived impression of simplicity in the user interface.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;To illustrate this, let's compare the conversation window before and after:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/conv_before-after.png" alt="Conversation windows in Instantbird 0.2 and 0.1.3" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The buddy list has also been improved:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/blist_before-after.png" alt="Buddy list windows in Instantbird 0.2 and 0.1.3" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The status can now be changed directly from the top of the buddy list instead of having to interact with a poor popup dialog. (Note that for the users who hate clicking, the status can also be changed quickly using commands from conversation windows: &#60;code&#62;/away&#60;/code&#62; &#60;code&#62;/dnd&#60;/code&#62; &#60;code&#62;/back&#60;/code&#62; &#60;code&#62;/offline&#60;/code&#62;.)&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The account manager has also been simplified a lot, and is now usable in a much smaller window:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/am_before-after.png" alt="Account manager windows in Instantbird 0.2 and 0.1.3" /&#62;&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Thu, 08 Jul 2010 14:32:55 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Message Styles</title>
  <guid>http://blog.instantbird.org/nocomm22-4.html</guid>
  <link>http://blog.instantbird.org/n22-message-styles-4.html</link>
  <description>
   &#60;p&#62;As exchanging messages is the most important feature of an instant messaging client, we put a great deal of thought into the way the messages are displayed. As we have &#60;a href="http://blog.instantbird.org/a11-instantbird-0-2-feature-preview-conversations-customization.html"&#62;already explained&#60;/a&#62;, we decided to implement the &#60;a href="http://adium.im/"&#62;Adium&#60;/a&#62; message style system. This system offers a great flexibility to message style authors to display the conversation content the way they want.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;In order to give users a good out-of-the-box experience, we have packaged a variety of messages styles by default in Instantbird.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Bubbles&#60;/h2&#62;&#13;&#10;&#60;p&#62;In Instantbird 0.1.*, the display of conversations was very simple (some may say boring!), and very similar to what Pidgin does. In Instantbird 0.2, the default message style, called "Bubbles," is a lot more colorful.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Messages are displayed in colored bubbles. In a private conversation with one other user, there's a background color for your messages, and a color for the messages you receive. In multi-user chat rooms, there's a different color for each participant, so you easily can tell which messages are sent by the same participant:&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/chatroom2.png" alt="chat room with people talking in colorful chat bubbles" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;In this theme, the display of messages is clear and well spaced out. This theme was designed to be usable for most users.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;A few special features have been added to this theme to improve the readability of conversations and reduce the waste of space: consecutive messages from the same person are grouped automatically, consecutive system messages are automatically grouped and collapsed, and the timestamps are no longer displayed for each message, but as a tooltip when a message is hovered.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/bubbles2.png" alt="Conversation using the Bubbles theme, with grouped messages and collapsed system messages" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Because we know one theme cannot fit the needs of everybody, we provide a few other themes by default.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Dark&#60;/h2&#62;&#13;&#10;&#60;p&#62;The "Dark" theme is designed to please people who like having a dark (almost black) background color in their windows.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/dark2.png" alt="Conversation using the Dark message theme" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Paper Sheets&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The "Paper Sheets" theme is a less fancy alternative to the default Bubble theme.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/papersheets2.png" alt="Conversation using the Paper Sheets message theme" /&#62;&#60;/p&#62;&#13;&#10;&#60;p&#62;Most of the features of Bubbles are also there, but it takes less space on the screen (no bubbles), and the colors are lighter.&#60;/p&#62;&#13;&#10;&#60;p&#62;The margins used in this theme automatically adapt based on the total size of the conversation area, in order to save space if you decide to use a very small conversation window.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Simple&#60;/h2&#62;&#13;&#10;&#60;p&#62;As we know some people may feel nostalgic, hate fancy stuff, or simply want to have a very compact message theme, we have included a message theme called "Simple." With this theme, all the space is used for the conversation messages.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/simple2.png" alt="Conversation using the Simple theme" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Finally, a little reminder about extensibility: even though the themes included by default have been designed to fit the needs of most users, they may not fit perfectly your personal taste, and that's why there are &#60;a href="https://addons.instantbird.org/en-US/instantbird/browse/type:1/cat:6"&#62;hundreds of message themes already available&#60;/a&#62; for you to enjoy trying out. &#60;a href="http://wiki.instantbird.org/Instantbird:Message_Styles"&#62;Creating a new one&#60;/a&#62; yourself is also very easy.&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Tue, 06 Jul 2010 06:14:24 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Stability</title>
  <guid>http://blog.instantbird.org/nocomm21-4.html</guid>
  <link>http://blog.instantbird.org/n21-stability-4.html</link>
  <description>
   &#60;p&#62;We care a lot about the stability of Instantbird. Again, the Mozilla platform has some great tools to help us here.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Crash Reporting&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;In the unfortunate event of a crash, a window apologizing for the interruption in your work flow will pop up, and suggest you send some anonymous information about this issue to our servers. We can then analyze it and fix it for a later version, to make Instantbird more stable for you.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/crash-breakpad.png" alt="Instantbird Crash Reporter dialog" /&#62;&#60;/p&#62;&#13;&#10;&#60;p&#62;This crash reporting system has already helped us a lot to improve the overall stability of Instantbird.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Crash detection and protection&#60;/h2&#62;&#13;&#10;&#60;p&#62;In previous releases, the worst stability problem that occurred was a crash during start up (while automatically connecting accounts). This was very annoying since it was not possible to use the graphical user interface to change the configuration of the accounts likely to be related to the crash.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;In Instantbird 0.2, we have addressed this issue by detecting if the last connection attempt finished correctly, that is, without the application being quit unexpectedly.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Start up crashes are very rare and you will most likely never run into one, but if it does occur to you: don't worry! At the next start up, you will see the account manager pop up with a message explaining the situation and inviting you to either retry connecting or edit the configuration of your accounts:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/autologin-crash-global.png" alt="Account manager with automatic connection disabled and an error message explaining the problem" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;If the crash occurred after you added an account or changed the configuration of an account, this account will be the only one that won't connect at the next startup, and the message in the account manager will look like this:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/autologin-crash-account.png" alt="Account manager where an account was disabled because of a crash during the last connection attempt." /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Updates&#60;/h2&#62;&#13;&#10;&#60;p&#62;When we identify the cause of common crashes, or when a serious issue is discovered (for example, an IM network no longer works), we try to quickly release a new minor version including a fix for the issue.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Instantbird will periodically check for updates and notify you automatically if a newer version is available. If you accept the update, it will then be downloaded automatically and applied during the next start up.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/update1.png" alt="Dialog prompting the user to accept a security and stability update" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;If you expect a new version, you can also force Instantbird to check now for an updates, using the "Check for updates" menu item:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/update6.png" alt="Check for updates menu item" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Nightly builds&#60;/h2&#62;&#13;&#10;&#60;p&#62;People who want to very closely follow the development of Instantbird can decide to receive the &#60;a href="http://ftp.instantbird.com/instantbird/nightly/latest-trunk/"&#62;latest development version&#60;/a&#62; daily through this update system. We call these versions the "nightly builds." These builds are produced automatically every day so that new issues can be detected early on, before they creep up into release builds.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/nightly2.png" alt="About dialog of a Nightly build of Instantbird" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Feel free to use them, but watch out! They may not be stable, and if you decide to use them, you are expected to do so to help us test the bleeding edge features, not just be a cool kid who's got the new toy first. So if there are bugs, please &#60;a href="http://bugzilla.instantbird.org"&#62;report them&#60;/a&#62; (&#60;a href="https://wiki.instantbird.org/Instantbird:Bugzilla"&#62;Filing a bug&#60;/a&#62;: what a bug report should contain) instead of complaining.&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Sun, 04 Jul 2010 20:43:19 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Preferences dialog</title>
  <guid>http://blog.instantbird.org/nocomm20-4.html</guid>
  <link>http://blog.instantbird.org/n20-preferences-dialog-4.html</link>
  <description>
   &#60;p&#62;The preferences dialog is a new feature in Instantbird 0.2 which will feel familiar to Firefox users. The overall appearance is the same, making you feel at home.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/pref1.png" alt="General tab of the preference dialog" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Some of the options are also the same...&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/pref2.png" alt="Themes tab of the preference dialog" /&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;... while some are very specific to Instantbird:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/pref3.png" alt="Advanced tab of the preference dialog" /&#62;&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Fri, 02 Jul 2010 23:15:09 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Conversation tools</title>
  <guid>http://blog.instantbird.org/nocomm19-4.html</guid>
  <link>http://blog.instantbird.org/n19-conversation-tools-4.html</link>
  <description>
   &#60;p&#62;Some tools you already have in Firefox can help you manage your conversations in Instantbird:&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Find&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Trying to find where a topic or keyword was mentioned in a long conversation is a common action. Instantbird uses the same findbar as Firefox to provide a search facility inside conversations. Just press Ctrl + F (Command + F on Mac OS X) and the findbar will appear:&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/findbar.png" alt="Findbar in conversation window"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;However, when looking for something in a conversation, the most recent match is probably the most interesting. That's why for Instantbird we adapted the findbar to search from bottom to top by default.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Zoom&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Having trouble reading the text in conversations or fitting all the content on a small screen? Then the zoom feature is for you.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The keyboard shortcuts are the same as in Firefox: Ctrl + + to increase the size, Ctrl + - to decrease, and Ctrl + 0 to reset to the default size (Command instead of Ctrl on Mac OS X).&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/zoom.png" alt="same conversation zoomed at various scales"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The changes in zoom settings are applied to all conversations at once and saved so that you do not need to adapt the zoom more than once.&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Thu, 01 Jul 2010 22:11:21 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Tabs</title>
  <guid>http://blog.instantbird.org/nocomm18-4.html</guid>
  <link>http://blog.instantbird.org/n18-tabs-4.html</link>
  <description>
   &#60;p&#62;During the 0.2 cycle, we spent a lot of time reworking the conversation window. The conversation window will now feel more familiar to Firefox users. That's because lots of parts have been borrowed and adapted. In this post, and the next few posts, we will present features that are already present in Firefox, but have been adapted for Instantbird.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Let's begin with tabs: conversations appear in tabs that work exactly the same way as in Firefox 3.6.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Tab sizing&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Tabs are sized to take full advantage of the available space: when there are only a few tabs, their width allows seeing most of the title of the conversations, and a close button is visible on each tab, making it easy to close a tab with a single click.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs1-2tabsandfreespace.png" alt="Top of conversation window with 2 tabs and some free space"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;If there are more tabs or if the window is smaller, the tabs shrink, and the close button remains visible only on the selected tab to save space.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs2-4tabs1closebutton.png" alt="Top of conversation window with 4 tabs, only one close button is displayed"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;If the space is really too limited to fit all the conversation tabs, the tab bar becomes scrollable and a button appears to give the user a way to display a list of all tabs at once.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs3-overflowandalltabsmenu.png" alt="Top of conversation window with overflowing tabs, and the all tabs menu opened"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;All this makes very small conversation windows usable.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs4-smallwindow.png" alt="Very small conversation window with 2 tabs"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Drag and drop&#60;/h2&#62;&#13;&#10;&#60;p&#62;Tabs can be easily reordered, just drag a tab and drop it where you wish it to be.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs5-reorder.png" alt="dragging a tab, tab drop arrow visible in the same window"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Dropping a tab elsewhere detaches the tab to create a new window. The new window appears where the tab was dropped.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs6-detach.png" alt="new window with only one tab"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Tabs can also be dragged between windows:&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs7-movebetweenwindows.png" alt="dragging a tab, drop arrow visible in another window"/&#62;&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;OS integration&#60;/h2&#62;&#13;&#10;&#60;p&#62;On Mac OS X, the active conversation window is easy to distinguish from the others, thanks to different colors of the tabs.&#60;/p&#62;&#13;&#10;&#60;p&#62;&#60;img src="http://blog.instantbird.org/images/tabs8-macosxactiveinactive.png" alt="An active and an inactive conversation window on Mac OS X"/&#62;&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Wed, 30 Jun 2010 23:41:36 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Instantbird 0.2 feature preview: conversations customization</title>
  <guid>http://blog.instantbird.org/nocomm11-4.html</guid>
  <link>http://blog.instantbird.org/n11-instantbird-0-2-feature-preview-conversations-customization-4.html</link>
  <description>
   &#60;p&#62;In our &#60;a href="http://wiki.instantbird.org/Instantbird:Roadmap"&#62;roadmap&#60;/a&#62; we stated that for 0.2 we were going to improve the conversation window, and especially make it customizable. Let's show you an overview of what we did.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Smileys&#60;/h2&#62;&#13;&#10;&#60;p&#62;People are used to see little images like &#60;img src="smileys/sourire.png" alt=":-)" /&#62; in conversations instead of the plain text version &#60;code&#62;:&#60;span&#62;-&#60;/span&#62;)&#60;/code&#62;. Testers of Instantbird 0.1.* have probably noticed that this feature was missing. No more.&#60;/p&#62;&#13;&#10;&#60;p&#62;Instantbird 0.2 supports smileys, and has a theme system for them. &#60;a href="http://wiki.instantbird.org/Instantbird:Creating_a_smiley_theme"&#62;Creating a new smiley theme&#60;/a&#62; is easy: it is just a bunch of images and a file (JSON format) describing how to use them, bundled into an XPI file.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Message styles&#60;/h2&#62;&#13;&#10;&#60;p&#62;Selecting a smiley theme is not enough for you to feel comfortable when looking at your conversations? Ok, we have more! We have borrowed the message style system of Adium to let you fully customize the way your conversations look.&#60;/p&#62;&#13;&#10;&#60;p&#62;An image is worth a thousand words so... I'm gonna give you a &#60;a href="http://screenshots.instantbird.org/message-styles-preview/"&#62;thousand of images&#60;/a&#62;. Ok, not really a thousand, but we took a few hundreds of screenshots to show how Instantbird is doing with the hundreds of Adium message styles downloadable from &#60;a href="http://adiumxtras.com/index.php?a=search&#38;amp;cat_id=5"&#62;adiumxtra.com&#60;/a&#62;.&#60;/p&#62;&#13;&#10;&#60;p&#62;The compatibility is not perfect because there are some &#60;a href="http://wiki.instantbird.org/Instantbird:Message_Styles:Differences_with_Adium"&#62;differences in the way Instantbird and Adium handle themes&#60;/a&#62;, and some Adium themes may use some webkit-specific features, but most themes look right.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;This theme system is very flexible, and quite easy to learn. The&#13;&#10;technologies used (HTML, CSS, JavaScript) are well known by&#13;&#10;web-developers and web-designers. If you are not happy with the existing&#13;&#10;themes, go ahead an create your own. And don't hesitate to let your&#13;&#10;creativity play with all the cool&#13;&#10;&#60;a href="https://developer.mozilla.org/En/Firefox_3.5_for_developers"&#62;new&#13;&#10;developer features of Firefox 3.5&#60;/a&#62;.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Extensibility&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The eye candy is cool but... I'm a developer, I want to create&#13;&#10;extensions and I want to be able to interact with the conversations!&#13;&#10;Don't worry, we love you too. We added several new APIs for extension&#13;&#10;developers. It is now easy, for example, to change the way we filter&#13;&#10;incoming messages, modify the text before it is displayed (adding&#13;&#10;links for instance), and more coming!&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Mon, 20 Jul 2009 23:17:06 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Instantbird 0.2 Feature Preview: Localizability</title>
  <guid>http://blog.instantbird.org/nocomm10-4.html</guid>
  <link>http://blog.instantbird.org/n10-instantbird-0-2-feature-preview-localizability-4.html</link>
  <description>
   &#60;p&#62;As you may (or may not) know, we previously wrote that &#60;a href="http://www.instantbird.org/about_translations.html"&#62;Instantbird 0.1.* was not localizable&#60;/a&#62;. The reason evoked for this was the use of gettext by libpurple, which is not compatible with the way XUL applications are localized. I'm going to give more details about the issue, and explain how we solved it for Instantbird 0.2.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;Comparison of translation systems used by Mozilla and libpurple:&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Inside libpurple, localizable strings are just marked by &#60;code&#62;_("string")&#60;/code&#62;.&#60;br/&#62;&#13;&#10;For example, you can find &#60;a href="http://lxr.instantbird.org/instantbird/source/purple/libpurple/connection.c#549"&#62;this&#60;/a&#62; in the code:&#60;/p&#62;&#13;&#10;&#60;pre&#62;   description = _("Unknown error");&#60;/pre&#62;&#13;&#10;&#13;&#10;&#60;p&#62;During the compilation, _() is expanded by the C preprocessor to a call to a gettext function.&#13;&#10;Gettext tools can analyze the source code, find all strings enclosed in _() markers, and produce a translation template. &#60;a href="http://developer.pidgin.im/l10n/pidgin.pot"&#62;This template&#60;/a&#62; (a .pot file) is then handed to translators, who translate the strings and then provide a .po file for their language.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The translation system for XUL applications is quite different, here are 2 significant differences:&#60;/p&#62;&#13;&#10;&#60;ul&#62;&#13;&#10; &#60;li&#62;localizable strings are not directly in the source code. The source code uses unique identifiers, and these identifiers are used to find the actual string in the locale files.&#60;/li&#62;&#13;&#10; &#60;li&#62;the strings are spread across several localized files. Usually each window has its separate files, which makes it easy to decide at a later point that something will become an extension, and makes it easy to localize an extension like any other part of the application.&#60;/li&#62;&#13;&#10;&#60;/ul&#62;&#13;&#10;&#13;&#10;&#60;h2&#62;How do we deal with this in Instantbird?&#60;/h2&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Obviously, we don't want Instantbird to use both of these localization systems, so one had to be removed. In Instantbird 0.1.*, we just removed gettext without replacing it. This means that the gettext _() macro was defined to something doing nothing, and the string used was just the one specified directly inside the source code.&#60;/p&#62;&#13;&#10;&#60;p&#62;For Instantbird 0.2, this is no longer acceptable, and we worked on a way to simulate the action of gettext, that is, hiding the 2 differences I've just explained.&#60;/p&#62;&#13;&#10;&#60;p&#62;Splitting the translation in different files wasn't very difficult. Actually, gettext has a concept of packages that makes it possible to split the translation of an application into several packages, the feature is just unused by libpurple. With a little bit of build system tweaking, I finally got a translation file for the core of libpurple, and a separate translation file for each protocol plugin. This was needed so that &#60;a href="a9-instantbird-0-2-feature-preview-protocols-as-extensions.html"&#62;libpurple protocol plugins packaged as extensions&#60;/a&#62; can be localized.&#60;/p&#62;&#13;&#10;&#60;p&#62;Creating a unique identifier for each localizable string was a bit more work. The solution we have settled on is:&#60;/p&#62;&#13;&#10;&#60;ul&#62;&#13;&#10; &#60;li&#62;Take the original string and remove all string formatters (words starting with %), hexadecimal numbers (words starting with 0x) and more generally, all non alphanumeric characters.&#60;/li&#62;&#13;&#10; &#60;li&#62;Remove all the whitespace in the remaining string, keep only the 7 first words, and convert to camel case.&#60;/li&#62;&#13;&#10;&#60;/ul&#62;&#13;&#10;&#13;&#10;&#60;p&#62;At this point, we have an identifier for the original string, but it is not unique. Long strings that differ only at the end result in the same identifier, and strings that don't contain any real word ('%s:%s' for instance) all result in an empty string.&#13;&#10;To disambiguate in these cases, and only in these cases, we append the 8 first characters of the hexadecimal MD5 hash of the original string to the identifier.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h3&#62;Now, how do we use this?&#60;/h3&#62;&#13;&#10;&#60;p&#62;We have a .properties file for libpurple and one for each protocol plugin. When libpurple is compiled for Instantbird, the gettext macros are modified to point to some of our code instead of the gettext library. Our code uses the en-US string to build the identifier, and attempts to find it in the .properties file. If it isn't found, it tries again with the identifier plus the 8 first characters of the MD5 hash of the string. If it still isn't found, then it returns the en-US string as a fallback (and emits a warning in debug builds).&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h3&#62;How do we make the .properties files for libpurple?&#60;/h3&#62;&#13;&#10;&#60;p&#62;I wrote &#60;a href="https://hg.instantbird.org/instantbird/file/b288fc7228e7/tools/l10n/convert-purple-po-files-to-properties-files.py"&#62;a python script&#60;/a&#62; that generates automatically the appropriate .properties files for the en-US language from the source code of libpurple. Additionnaly, it uses the various .po files of Pidgin to produce files that can be used as a base for localizing this part of Instantbird.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;h3&#62;Does this mean I can start translating Instantbird into my own language?&#60;/h3&#62;&#13;&#10;&#60;p&#62;No, not yet, but very soon! Once we are ready to accept contributions from translators, we will ask translators who volunteer to localize Instantbird to contact us so that we can provide them with these generated files.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;An alpha build of Instantbird 0.2 will be available soon. We will provide an experimental French translation of this build (most people in our team are French, so French was the logical choice for testing all of this ourselves).&#60;/p&#62;&#13;&#10;
</description>
  <pubDate>Thu, 16 Jul 2009 18:04:15 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

 <item>
  <title>Instantbird 0.2 feature preview: protocols as extensions</title>
  <guid>http://blog.instantbird.org/nocomm9-4.html</guid>
  <link>http://blog.instantbird.org/n9-instantbird-0-2-feature-preview-protocols-as-extensions-4.html</link>
  <description>
   &#60;p&#62;One of the features we wanted in Instantbird 0.2 was the ability to install libpurple protocol plugins like any other addon. I'm happy to report that this is now possible with current &#60;a href="http://ftp.instantbird.com/instantbird/nightly/latest-trunk/"&#62;nightly builds&#60;/a&#62;.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;To demonstrate this feature, I compiled the &#60;a href="http://code.google.com/p/pidgin-facebookchat/"&#62;Facebook Chat libpurple protocol plugin&#60;/a&#62;. The result is an &#60;a href="http://blog.instantbird.org/files/facebook.xpi"&#62;installable xpi file&#60;/a&#62; of about 200kB, that people can try with nightly builds of Instantbird.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;This file contains a binary module compiled for Windows, Linux and Mac OS X (universal), produced by copying the code from &#60;a href="http://pidgin-facebookchat.googlecode.com/files/pidgin-facebookchat-source-1.47.tar.bz2"&#62;here&#60;/a&#62; into the Instantbird source tree. This is the quickest way I found to build it, we will need to figure out a better (without having to download and build the whole Instantbird source code) way later. This is &#60;a href="http://blog.instantbird.org/files/add-facebook-chat-prpl.patch"&#62;the exact patch I used&#60;/a&#62; to build it.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;The xpi file also contains a set of icons and a locale file. I will explain in another post how we replaced the usage of &#60;code&#62;gettext&#60;/code&#62; in libpurple by a way to get localized strings from regular .properties files.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Feel free to try this facebook chat addons. I don't know how stable it is, but I've used it for a few days already and haven't encountered any serious issue. If this turns out to be crashy for you, don't hesitate to send us crash reports, I uploaded the symbols to our symbol servers, so the reports should provide useful information.&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;I have other nearly-ready Instantbird 0.2 features to introduce in more details later, including: localization, emoticon themes, message styles (like Adium), ...&#60;/p&#62;&#13;&#10;&#13;&#10;&#60;p&#62;Next time: how localization works with Instantbird and how we replaced &#60;code&#62;gettext&#60;/code&#62;.&#60;/p&#62;
</description>
  <pubDate>Sun, 19 Apr 2009 19:45:13 +0200</pubDate>
  <dc:creator>Florian &lt;florian@instantbird.org&gt;</dc:creator>
 </item>

</channel>
</rss>
