Nightingale at RMLL 2014 in Montpellier

logormll_translucent_200x250

The next RMLL (that’s Roncontre Mondiale des Logicial Libre or Libre Software Meeting in english) is coming up soon. It feels like Brussels was yesterday, however freaktechnik and GeekShadow will be at this year’s RMLL in Montpellier for Nightingale.

Compared to last year we won’t have a talk. We discussed possible topics and came to the conclusion that we don’t really have anything new to share worthy of a talk.

We will still have a booth for Nightingale, so if you’re from the area, please come and visit us! If you don’t have Nightingale stickers yet it’s the perfect opportunity to get some. We’ll also show off some things we are currently working on, if you’re interested. Or we can talk about music, listen to music and broaden each other’s musical horizon. If you always wanted to get into add-on development this is the perfect opportunity to get an introduction tailored to you. In other words we’ll sit down with any of you and talk about nearly whatever you want!

Got comments? Post them here!

Announcing Nightingale 1.12.1

Nightingale 1.12.1 is finally released! Existing installations of the last release version of Nightingale (1.12) on Windows or Mac OS X will give you the opportunity to automatically update to the new version. For Linux users the packages are updated; if you installed from a tarball on Linux you’ll have to update by grabbing a new one from the download page.

What’s new?

We cleaned up quite a bit: More legacy code from Songbird was removed or disabled, thus we expect the release to be more stable. There are also some bugs fixed, such as the Unity integration causing a crash in Ubuntu 13.04, battery drain in OS X Lion or newer and playback not properly updating the play counts.

As mentioned in a previous blog post, freaktechnik implemented some beautiful firstrun pages, which will present you changes after updates or overall information on the very first start. Through our newly introduced statistics page, this will also help us to track installations and upgrades to find update-related issues. Note that if you dislike the firstrun page, you can visit about:config and set the preference ‘nightingale.update.url’ to ”.

Additionally, GeekShadow implemented a new localization infrastructure and will contact past Songbird translators. He got rid of the last Songbird references, and thanks to our translators and reviewers many locales were improved quite a lot. However, there are still some locales without maintainers; and even if your locale already has one it would be great if you volunteer for proofreading and translating Nightingale’s strings! When updating, you may need to re-download the language packs for this change to take effect.

We also did some backend work switching to a new update infrastructure, as Google Code shuts down its downloads section. Updates are now handled through GitHub, where we also keep our main source code repository. An issue preventing Linux updates got fixed as well, so you should be able to auto-update from tarballs in the future.

As this is our first release after the shutdown of Songbird we replaced everything provided through Songbird infrastructure with our own services. To see everything we changed in 1.12.1, check out the official release notes.

The IDs of some add-ons changed, namely mashTape, SHOUTcast and Last.fm. This means Nightingale will find new add-ons and ask you, if you want to install them. Since the ID changed, they will not override the existing extensions. The previous versions of those add-ons will show up in the extensions manager as incompatible with Nightingale 1.12.1 and can be uninstalled.

Unity and libnotify integration have been split up into two optional components. Thanks to this the nightingale-nounity package now also includes libnotify integration. For those who don’t want, or can’t use our PPA, we still offer GNOME/Unity integration builds.

 

Enjoy the latest version of Nightingale, update or install it and listen to your favorite songs. We’d love to hear your feedback in the forums or on the IRC channel, #nightingale on irc.mozilla.org. As always, we’re looking for testers, developers, theme makers, and users to idle in our forums and IRC, not to mention help out with the project. Feel free to join!

Spread the word – and enjoy the tune of life!

- The Nightingale Community

Help testing 1.12.1

Yesterday I landed a new feature in the trunk for 1.12.1. What it does is simply welcoming new users with a firstrun page with helpful information and users who updated with the changelog. This seems like a feature that doesn’t need testing. But it does, because it also serves as a way to measure the amount of installs and upgrades. Currently the stats are running on a test server and you can see them here. All data captured until release will be deleted.

Another reason why it needs testing, is because I had to mess with the session restore component of Nightingale. The same file, could cause a blank page on startup sometimes, but that should be fixed (or not?) . To be sure, that I messed nothing up I need other people than me to use Nightingale with this change, as I have my particular habits, and issues might only occur when you use Nightingale in a different way than I do.

Of course you can also disable the upgrade page, which shows you the changes after an upgrade. To do so just set the preference “nightingale.update.url” to “”. This is one possible reason, why our statistics for upgrades won’t be exact, while we can count on the install statistics (unless for modified builds of Nightingale, of course). Another reason are anti-tracking add-ons or disabled JavaScript.

All other changes Nightingale 1.12.1 currently contains are listed under the release notes. You will see the full release of it before January the 14th, as after this date our integrated updating system will be broken.

You can download a build of Nightingale including the changes from SourceForge or, if your system uses apt, install it from ppa:nightingaleteam/nightingale-nightly. Please report any issues you encounter on GitHub, but please make sure the issue hasn’t been reported yet. Also bear in mind that this is not a release version and might destroy your profile, so only use your existing profile if you don’t care about it, or create a new one by launching Nightingale with the -p argument.

There are 14 comments in our discussion thread.

Social Media

fb-stats

As you’ve probably noticed, I’ve been hyperactive on Nightingale’s Twitter and Facebook. I’ve tried to post as much news and interesting stuff to you as possible. Basically, everything that’s not worth to blog about but still is of value for you. The goal is to keep you informed on what’s going on. It also helps in showing you that Nightingale is alive and evolving. That’s also why I’m posting these insights here.

I want to share a few of my insights I got from the last month with you. Bare in mind, that this doesn’t apply to our Google+ presence, I didn’t have the rights to post there just until recently.

What’s the most important thing in Social Media? Interaction. So, which network does give us the most interaction? Both. You get a lot more direct feedback on twitter, while on Facebook you know how many have seen it, and some will like or even share it. It’s interesting that there is some sort of an active core fan base, who interact a lot more with our posts than the others. Some of you just fav every tweet we put out, while others (or are they the same people?) like each and every post of ours.

Pictures interestingly do generally better on Facebook. They get reposted a lot more and liked far quicker. I asked myself, why would you immediately interact with a picture while you hesitate to interact with text or a link? And it’s pretty simple: pictures stand out of your feed. And if you look at other pages, they are constantly posting pictures, because you get that quick and big feedback.

fb-stats

To analyze your guys feedback and our Social Media performance, I use a self-hosted ThinkUp instance and the Facebook analytics, which are pretty nice.

What do I have planned? I want more interaction. Not because it’s cool, but I want the normal user to be able to influence the development. Because what the developers decide might be stupid for others. Big changes are usually discussed on github in the issues system. Would you notice that? Probably not. We only sparingly know what you guys really want. We do have a wished features list, but we don’t know what you want the most. At the moment we are being pretty selfish and are bringing Nigthingale “à jour”, so we keep up with technology. Also bare in mind, we are a very distributed development team; I am not the only one to post in our Social Media channels and I also develop parts for Nightingale.

If you ever write about Nightingale, don’t forget to let us know! Mention us on Twitter, post it on our Facebook Timeline or share it with us on Google+. Even tough we try to catch all coverage about Nightingale, we might miss some, don’t let that happen! If you don’t follow us yet on any of these networks, go ahead and do so and stay up to date with the project.

What do you think of our social media presence? What could we improve?

The Nightingale Localization Platform Is Ready!

l10n
l10n
Thanks to our friends of Babelzilla, you can now help improve Nightingale localization (L10n).

TL;DR

If you want to translate/review Nightingale localizations you will have:
  • To have an account on our forum and PM us (GeekShadow or rsjtdrjgfuzkfg) for locale request
  • To register on http://beta.babelzilla.org/ (use Password Reset if you had already a classic Babelzilla account)
  • Request on the Nightingale tranlation project page to be on team for the desired locale
  • We will make you a post on the forum as well to be able to coordinate your work with the community
  • Optional: If you have a GitHub account, give us your GitHub mail so that your work will be committed with your name/mail to the repository
After being approved, you will be able to review your current locale and also complete it if it’s not 100% done yet.
We will be adding new strings soon, so stay tuned and help us!

History of L10n

At the beginning, Nightingale had no real L10n support, we only took a verbatim copy of Songbird’s langpacks with no changes made to them.
Songbird «had» (has) a translation website platform written in Ruby which was unfortunately never released as open source and was a bit limited with some disadvantages.
  • The website was open and everyone could translate like Wikipedia with simple edits, which could have resulted in a mess if there was nobody watching changes and what was going on
  • The platform never relied on a physical public repository, it means everything for langpack generation was done on Songbird’s servers without file system/tree view for public
  • There was no real review system and no way to do things like downloading only translated strings (without en-US strings)
For Nightingale, we have decided to team up with Babelzilla. They are long time friends, and they already have been hosting Songbird add-ons as well as Nightingale’s.
The Beta Babezilla platform we are using is based on Transifex, an open source localization platform. Tim Babych made a fork of this platform, improved and adapted it for Mozilla add-ons and Mozilla based applications. You can read more about it in the Babelzilla blog post.
This platform provides us a great set of tools like the Transifex client, team management, review process, ability to test langpacks, etc.
Moreover we have made some cool tools to sync translators’ work with our Git repository, so we can track all the work to have a better visibility.

Work done so far

A lot of cleanup work was done before importing Songbird localization files into this platform:
  • Improved Ellipsis usage on every locale and replaced ”…” by ”…”
  • Fixed usage of double quotes inside a string in songbird.dtd
  • Converted some strings’ values to double quotes
  • Replaced Add-ons URL by add_ons.url
  • Replaced Bugzilla URL by file_bug.url
  • Removed spaces on some strings in songbird.properties
  • Replaced “Songbird” strings by “&brandShortName;”
  • Removed backslashes ”\” in foreign languages where it’s not needed
 We hope you will be able to review and clean more strings in your locale too.
We also have added two new strings and more are coming:
  • “Flat” string for equalizer (The default preset)
  • “Unnamed Pane” string for display panes (This will later allow you to localize Display pane titles)
We have tested langpack import on both Babelzilla WTS (old system) and Babelzilla Adofex (new system) and decided the new system was a good start because it’s smoother and open source. since it is open source, we were able to help testing it and report bugs to improve it!

Scr1pts

During the L10n setup, a lot of Bash scripts were made to deal with different tasks, here are a few interesting ones:
  • Two first scripts were made to reorder strings in foreign locales, because langpacks came with mixed strings and so it was hard to track differences. One for .properties and another one for .dtd. Those scripts ends up used only for testing because Babelzilla was also able to reorder strings on langpacks
  • A script was made to fetch all langpacks from Songbird website and unzip everything
  • This wasn’t enough, some langpacks were missings (because they are not shipped with Songbird they doesn’t have not enough strings translated), another script was made to fetch from translate website
  • We even made a Python script to remove en-US strings from langpacks where strings were missing!
  • For previous Nightingale releases we made a script to take Songbird langpacks and repack them to be compatible with Nightingale
  • Now we have a full script to produce our own langpacks using files from Babelzilla
  • Last but not least we made a script to track changes done on Babelzilla and commit those on GitHub when a change is done
Some of those scripts are yet to be released or improved, but everything is working at this time.
The great thing is that once we release the new version of Nightingale, a simple script execution will be able to push langpacks from the latest translation version online :)
This cooperation could have not been possible without the help of : Tymofij, Goofy and Pascalc from Mozilla/Babelzilla who helped us providing support so thanks a lot to them!

What’s next?

We also plan on hosting Nightingale add-ons and their locales online so you can translate them, along with more tools to help you localize efficiently :)

rsjtdrjgfuzkfg