Jim Chen: Now you can debug Fennec on x86
The Android GDB (JimDB) Wiki and pre-built binaries now include instructions and support for Android on x86. Not only is it useful on the growing number of x86 devices, it is also useful on the x86 emulator included in the Android SDK (for developers without access to a device). Presently, the x86 version is entirely separate form the ARM version - you would need both versions in different directories if you have devices on both platforms.
The updated GDB also has limited support for on-demand decompression on Android. If you've been noticing random seg faults when debugging Fennec, the new version will ignore these seg faults. See "Random segmentation faults when debugging Fennec" and "monitor set ignore-ondemand" in the Wiki for more information.
Next up, I will be working on offering a B2G version of JimDB with similar functionality and benefits as the Android version. See the dev.b2g posting for the discussion. Let me know what you think!
[Source: Planet Mozilla]
Konstantinos Antonakoglou: YouTube HTML5 Switch v0.1.7 & News
Long time no see! I’ve been busy outside the blog-sphere and I’ve got some news to share. First of all, I upgraded my Firefox Add-on to version 0.1.7. So here is the link:
All in all, the important addition is that you can now use the hotkey Control+Y instead of pushing the button on the toolbar. Plus, I think it now has no other issues for most new versions of Firefox. I need to point out that I get most of the help from the SDK’s documentation which is great, but, to anyone interested, don’t hesitate to contribute to its content! Restartless add-ons rule!
You may use it and see if it works on YouTube (yeah it works, at least for Firefox 21.0 w/ Fedora Linux) using this video:
Yes! It’s the first video of the band I play with, directed by Kostas Gounaris. Cool huh?
I hope you’ll like it as we put a lot of effort to complete it and guess what? There’s also going to be a short film based on the song. I’ll let you know!
[Source: Planet Mozilla]
Doug Belshaw: Privacy, the NSA and Web Literacies [DMLcentral]
My latest post for DMLcentral is now up. Entitled Privacy, the NSA and Web Literacies I focus on what we can actually do in the wake of the NSA surveillance revelations. And no, I didn’t choose the accompanying photo.
Read it here: http://dmlcentral.net/blog/doug-belshaw/privacy-nsa-and-web-literacies
(in other news, you might like prism-break.org and Mozilla’s work around the Web Literacy Standard) [Source: Planet Mozilla]
Irving Reid: Add-on Manager progress: Almost done!
Felipe has a full suite of r+ for his work on AddonRepository.jsm in Bug 853389, and I’m in the middle of handling review comments for the XPI Database changes in Bug 853388. I need to update based on the review comments, implement asynchronous loading of the JSON database, and add some telemetry so we can track performance and correctness of the new version. Once that is done, we’ll be ready to land on Nightly.
I’ve implemented a DeferredSave module based in the discussion in my previous blog post; I suspect it’s something that will be useful to others trying to convert to asynchronous saving of data blobs. Check it out at https://bugzilla.mozilla.org/attachment.cgi?id=762461. [Source: Planet Mozilla]
Jason Smith: WebRTC Test Day on June 21st
WebRTC Test Day on June 21st
Come help test WebRTC in Desktop Firefox and Firefox for Android this Friday on June 21st!
[Source: Planet Mozilla]
Seif Lotfy: GNOME Music: Phase Two and more…
Before I start blogging about the progress of GNOME Music, I would like to announce my happiness (as well as the whole gnome music team) that we now have 3 students sponsored to hack on GNOME Music. Eslam Mostafa (SoC), Shivani Podar (OWP) and Sai Suman Prayaga (SoC) all three of them deserved they internships, showing dedication and patching like crazy before SoC, keeping Vadim, Guillaume and me very busy.
Also I would like to welcome Arnel Borja and Fabiano Fidêncio to the team with their immense contributions, and ofcourse the allmighty Giovanni Campagna (who hacks everything in GNOME by now)
The last couple of weeks have been very hectic here, nevertheless we triumphed over phase of one of developing GNOME Music:
Set basic infrastructure
Implement Grilo Querying
Implement Albums View
Implement Songs View
Implement Artist View
Implement Playback support
Clean up and port to Glade
Now phase 2 is shaping up nicely:
- Implement Playlist View
- Implement Selection functionality on all views
- Implement Repeat/Shuffle
- Implement Actions
- Clean up
So if you are interested in joining us with the development please feel free to hang out with us on #gnome-music on irc.gnome.org
Currently its only usable via JHbuild. Anyhow for more info like code and bugzilla check out https://live.gnome.org/Music
Here are some screenshots for tempting
[Source: Planet Mozilla]
Jared Wein: Picking Up The Crumbs
A few days ago a new feature landed in Firefox Nightly that makes closing multiple tabs easier than it was before.
I often find myself in situations where I have multiple tabs that I opened only to look at for short periods of time. Sometimes I reach this state while reading articles on Hacker News or looking at funny pictures on Reddit. At the end of looking at the tabs, it would be nice if Firefox had a way to close these ephemeral tabs so you can get back to your previous work quicker.
Well, Firefox now does! If you open lots of tabs from Reddit and then want to close all of the tabs to the right of Reddit, just right-click on the Reddit tab and choose “Close Tabs to the Right”. It’s easy and quick!
Why “close tabs to the right” and not “close tabs to the left”? When we open new tabs they appear on the end, and so naturally tabs that have a longer lifetime end up being promoted to the start-side of the bar. This leads us towards the situation where closing tabs “to the right” is a simple way of closing the ephemeral tabs.
Users who are using Firefox with a right-to-left locale such as Hebrew or Arabic should see the equivalent “Close Tabs to the Left” feature.
Huge thanks go out to Michael Brennan who contributed the patches and automated tests for this feature! Unless something drastic happens, this feature will find its way to Firefox Release in just over 12 weeks in Firefox 24.
Tagged: firefox, mozilla, planet-mozilla, usability [Source: Planet Mozilla]
Aaron Train: Discover and Help Test WebRTC in Firefox for Android and Firefox on Desktop on Friday June 21st, 2013
This upcoming Friday, we would love for you to solicit your support towards testing and contributing to the process of qualifying a new developer-release version of Firefox for Android and Firefox on Desktop both on the Nightly channel as part of our rapid release testing cycle. We will be focusing on the process of discovering, using and testing WebRTC.
This QA event, this Friday, is open to all those interested: newcomers, experienced testers, developers, and anyone interested in testing early builds of Firefox on the Nightly channel.
We would like for you to use the new version of Firefox on your Android phone and desktop or laptop machine, and take a close look at the latest Nightly builds in order to assist us in identifying any noticeably major issues found with our WebRTC implementation, and ensure that all feature functionality that is included in this upcoming release is on its way to a feature and testing complete state.
To cover the work throughout the whole day we have created an EtherPad test-plan. Please feel free to read and use it as a companion during the day’s event. There will be moderators at hand in the IRC channel: #testday, to answer any questions you have.
Together with your help we want to make this event a success and ensure the high quality of WebRTC support in Firefox for all of our users world-wide. If you have time on Friday June 21st, 2013, please join us on IRC, we will have Mozilla community and testers on hand to help answer any of your questions.
Your testing and feedback is highly valuable, and we hope to see you attend our test day event. [Source: Planet Mozilla]
Kim Moir: Resources for learning Python When I started working at Mozilla, I didn't know Python very well. All of the code that drives our continuous integration is written in it so I've had a spent a lot of time becoming more proficient. I've taken a number of free self-study classes/tutorials that others might find useful getting up to speed with Python.
Google Python class - Two day class that describes how to manipulate strings, dictionaries, lists. File I/O, regular expressions and sorting algorithms. Class lectures that were recorded at a Google training event are available on youtube, and the exercises are pretty straightforward with a solution key to check your work. All the exercises are done using the Python installation on your local machine.
Code academy has a Python class. I did the exercises for the topics that weren't covered in the Google class, including list comprehensions, lambda expressions and OO in Python. The exercises are completed and validated on the website.
The best course I've taken so far has been the nine week Interactive Programming in Python class offered by Coursera. Coursera is a company that offers university courses for free. You receive a grade and certification of completion, but not an actual credit at the institution. The Python course I took is in conjunction with Rice University. For this course, you have to register for the course when it's run and complete the work each week. There are an hour or so of video lectures, a quiz or two and an assignment to complete for around 8-10 hours of work each week. After you submit your assignment, you're asked to review the work of five other students. This is how to scale marking assignments for the thousands of students enrolled in the class :-). The code for your assignments is written in the browser, on the CodeSkulptor website.
Each week the assignment is to implement a different game which was a lot of fun. We also learned how to implement the calculations for velocity, reflection and collisions to make the objects in our games appear as a realistic game. The final project is to implement a version of the Asteroids game complete with missiles and exploding rocks. I've also never done much with a the UI aspects of programming in the past, so it was interesting to learn how to incorporate these elements.
|Syllabus for coursera course|
This iteration of the course is almost over and the next one starts in October. Essentially the course provides lots of time to practice writing code, which is the only path to getting better. I found the course to be really well organized, and the video lectures were succinct in getting to the point of the lecture. No profs going off on tangents about random subjects :-)
|Screenshot of final asteroids game|
Mr. Releng also took this course at the same time I did as he is also using Python at work. I said to him one day that I certainly wouldn't wanted to have attended all my university courses online as I always liked to ask questions in class. With the pre-recorded lectures, the only way to ask questions is on the associated forums. He agreed, but said while this was probably not the future of university, it was certainly great for continuing education.
Other Python resources I looked at include http://www.learnpython.org/. The pyvideo website includes talks from many of the PyCon and related conferences here which are interesting to watch.
What resources did you use to learn Python? [Source: Planet Mozilla]
Kim Moir: Lessons learned organizing a technical event I was on the organizing committee for Releng 2013. This was the first time I've been involved in organizing a technical event. I thought my experiences might be useful to others in the same situation thus this blog entry:-)
Reaching out to potential speakers
Three of the people on our organizing committee were researchers. I was the only release engineer. My goal was to get as many release engineers as possible to submit talks and attend the workshop. I asked for suggestions from my coworkers and LinkedIn contacts to try to reach people that might be interested in submitting a talk. I also wrote to multiple release engineering oriented mailing lists and Google+ groups. I had a query for #relengcon and @relengcon mentions on Twitter. If people mentioned that the relengcon sounded interesting, I replied to them and suggested that they submit a talk. I also posted information about the workshop on several release engineering LinkedIn and meetup.com groups. It's often a good idea to contact the organizer of a group and ask them to send text crafted by the organizers to their members. Receiving a message from someone they already know lends some validity to the message, versus just another person adding to their inbox noise.
Academic vs. Industry
|Carl and Gareth from Netflix talk about self-service build and delivery|
Releng 2013 was a workshop under the larger ICSE academic conference. The submission process was much more formal than the industry conferences I've attended in the past. There were two types of submissions: a formal paper or an abstract for a talk. There were strict submission guidelines with respect to the format of the talk abstract. In contrast, the submission process for most industry conferences seems to be "submit a paragraph summarizing your talk into a form on web page". Very easy. The different approach stems from the fact that proceedings from academic conferences are usually published. Academics often need the promise of publication to secure funding to attend a conference.
This workshop had effectively zero budget. ICSE workshops don't get any funding from the fees paid to the larger ISCE conference. Attendees had to pay registration fees to attend the workshop whether they had a talk accepted or not. Many industry conferences offer a reduced registration fee for speakers. Since this was a first time event, I really concentrated on encouraging people to submit talks and register for the event. Now that the event was a success, I would feel comfortable approaching a company and asking them to sponsor it so we could reduce speaker fees. We had some funding from a research institution for one of our keynote speakers. I reached out to Mozilla developer relations who provided some t-shirts, mugs and stickers. In the future, I'd also reach out to other companies for swag donations :-)
Recording of sessions
The cost of hiring a company to record the talks was prohibitive given our lack of budget. Again, now that the first workshop was a success, this could be another item that could be sponsored.
Post-workshop dinner organization
The OpenTable website is a great resource to see the availability of seating at of various restaurants in several US cities. It also links to their respective ratings. This was easy way to make reservations at restaurants for dinner, especially since none of the organizers live in the Bay area.
|Image ©photographus, http://www.flickr.com/photos/misspixels/8480711076/in/photostream/ under Creative Commons by-nc-sa 2.0 |
I had never moderated a panel before. I found this article was quite helpful on how to successfully moderate a panel. I spent quite a bit of time before the event thinking of panel questions and we also sought input from our attendees in a survey. As for participants on the panel, I reached out to release engineers who didn't present a talk but looked like they had a wealth of release engineering experience on their LinkedIn profiles. Sometimes diversity is just asking different people!
We wanted to give speaker gifts to our fine keynote speakers. I was unsure what a typical speaker gift comprised so I asked on Twitter. The answers ranged from fancy pens, laptop bags, local bottles of wine and local cookbook. Another person suggested that the gift be something carried on the plane if the speaker wasn't local. In fact, they usually personalized the gift by presenter and shipped it to their home to avoid dealing with airline hassles regarding gifts. Release engineering is about building things. Bram suggested Lego as a speaker gift. I liked this idea a lot and added it as one of the items in the speaker gift bag.
In the end the workshop went pretty well. The most important thing was to get people who are passionate about release engineering in the same room. And that's where the interesting conversations begin and you make connections with people. That's what really matters in the end.
If you've been involved in organizing a technical event what advice do you have? [Source: Planet Mozilla]
Francesco Lodolo: Summit 2013 planning assembly: a wonderful begin
Note: this is a guest post from Iacopo Benesperi, a fellow Mozillian from the Italian community.
This week-end took place in Mozilla’s Paris office the Summit 2013 planning assembly: a gathering of about 65 people from all around the world and representing all areas of the Mozilla project, with both paid staff and volunteers, aimed to plan and shape the next Summit, that will take place the first week-end of October in Bruxelles, Toronto and Santa Clara.
TL;DR: it’s been a great assembly. If we manage to accomplish at the next Summit half of the things we’ve discussed in this week-end, it will have been the best Mozilla event ever.
The aim of the assembly was not to define a schedule for the event and fix everything but to talk about which are the important topics that animate the Mozilla project these days, start to discuss them and shape them in a way so that we can come out with a good format for the Summit to address them and try to give and propose solutions for them. To do this, all the planning committee has taken interviews to fellow Mozillians in the last month to have a wider view of which is the temperature of the project in these days and act as a representative for the comments expressed.
I went to Paris without a clear idea of what we would have accomplished there, but I’m impressed with the result we had.
First of all, this assembly was facilitated by people of unconference.net, who proposed a peculiar way to proceed with it. I was a bit skeptic with the method proposed, but it turned out that some of their methods are really great (like unpanel) and we will definitely adopt them for the next Summit, while some others still look like rubbish (I may still be proved wrong).
The second important fact is that we talked little about technology and a lot about Mozilla, its community, its communication (internal and external) and the interactions between its components and people. On one hand, as Gandalf pointed out, this is a sign that we trust implicitly our technology and the fact that it will be discussed at the Summit, because this is a big portion of what Mozilla is about. On the other hand, it’s a sign that there’s a general awareness, not only among community members but also (finally) among employees and paid staff and board of directors that we have communication problems between the different parts of the projects and especially between paid staff and volunteers, and the time is now mature to address and try to solve them. What I’m talking about is not only communication to get things done but also communication related to the decision-making process.
So, it will be interesting to experiment discussions around different time-zones and locations. I will probably post more about the assembly and the planning for the Summit in the next days, when ideas and thoughts will have settled down a bit and I’ll have had the time to read all the ideas and documentation we produced during this two days. What I felt important to communicate immediately is the fact that the next Summit will be a wonderful occasion to talk not only about our technologies but also about who we are, what we want to do and where we want to go. It will be an occasion for the community to teach and mentor the newest community members and more importantly all the new employees to let them understand and feel the power and importance of our community and it will be, in general, an occasion to have our voice finally be heard and taken into consideration not only in the tasks at hand, but in building the new policies and guidelines that will drive all the project in the future.
I’m sure we’ll try, in the next months, to provide some initial information and documentation about what have been discussed and decided so far so that you can arrive at the Summit prepared to give your contribution to the conversation, so that we can take the most out of the Summit and make it really matter in our future.
As I said at the beginning: if we manage to discuss and propose solutions to half of the problems and concerns raised during this two days, we will have had the best Mozilla event ever; one that will have strengthened and made our project more mature. [Source: Planet Mozilla]
Michael Verdi: Getting people to the right place is half the work
A while back I wrote about how much better some of our articles perform when they are linked to from some external place (in context of course). Here’s another example. Back on May 14th, we released Firefox 21 with a new feature called the Firefox Health Report. The FHR includes a graph of startup times. If you have some particularly long startup times we display a tip that suggests you reset Firefox and links to the help article on how to do that.
Before Firefox 21 and the health report, the reset article was getting rated helpful 60% – 65% of the time. Now that we’re showing the article to thousands of people each day who have a Firefox issue that the reset might be able to fix, the article is being rated helpful upwards of 82%. That’s huge — about a 25% improvement.
[Source: Planet Mozilla]
Frederic Wenzel: Add-on Notifications Are Hard
Over the years, I have written a handful of Firefox add-ons, and I need notifications quite frequently. Why? Most of my add-ons do something in the background at the user's request, and when it's done, the user wants to know. Alternatively, if my add-on attempts to do something and fails, the user would see nothing happen at all, unless I somehow tell them.
In real life, this is supposed to look something like this example, from "Copy URL":
The Mozilla Add-ons SDK even has a convenient API for it. Easy, right?
Sadly, not so fast: While the SDK is supposed to abstract all of this neatly away from me and "just work" on Linux, Windows, and OS X, the behavior is inconsistent, owed -- on OS X, anyway -- to the wonky state of notification support on the operating system level.
To Growl or not to Growl
I've ran into issues with notifications repeatedly over time, and employed a number of solutions so far. Spoiler alert: I am happy with none of them.
OS X 10.7 and below relied on a third-party tool called Growl to support notifications. If you had it installed, the SDK's API would work just great. Sadly, if you didn't have it installed, notifications would silently be swallowed. Worse yet, I was unable to detect if this happened, so I had no way to implement a fallback mechanism.
The OS X 10.8 "notification center" was supposed to fix this, but apparently, it will only display our notifications if the browser does not have the focus. In other words, it's completely useless for in-context notifications.
I considered all that a very poor user experience and instead of using the SDK's API, I implemented my own notifications module called "simple-notify" that would detect the availability of the notifications service (i.e., Growl or any other platform-specific service) first, and if none was found would employ a fallback mechanism.
The ugly but reliable notifications bar
The fallback mechanism I use is the once-ubiquitous, gray, Firefox notification bar:
It is shown in context, grabs the user's attention (perhaps a little too much) and, most importantly, it is reliably available on all platforms.
This notification bar has its downsides: For example, it's fairly intrusive and not easily ignored. My add-ons usually auto-close it after a few seconds. If I didn't do that, the bar would persist until closed by the user. This solution also can't handle more than one notification at a time: A second notification will overlay the previous one.
HTML5 Notifications API
Luckily, there's hope. The W3C Notifications API landed in Firefox 22, which (at the time of writing) is the next upcoming release version. If the Add-ons SDK is updated to use this API, this should finally allow me to use one line of code for notifications, not a few dozen.
In the context of a page, I can even use it already (without Add-ons SDK support), with two caveats:
- To remain backwards compatible (for a while, anyway) I'd still have to implement a fallback mechanism. Once Firefox 22 is the current release version, however, I could relax that rule and just live with the fact that users of previous versions may or may not receive notifications.
- The W3C standard (rightly) requires to ask for permission before a website can issue notifications. Add-ons should be able to use notifications without explicit permission step.
I'm looking forward to the time when all this will smoothly work as expected!
I'm blogging about once a week in 2013, on various topics. This is my fifteenth post of the year. [Source: Planet Mozilla]
Doug Belshaw: Weeknote 24/2013
This week I’ve been:
- Presenting and running workshops on Open Badges at a CRA seminar (Monday, Birmingham).
- Meeting lots of people/organisations at the Mozilla London office to explore ways they can use badges. People like Creative Skillset, OCR, Livity and Inspir.ed.
- Booking travel for the coming weeks.
- Running a webinar on Open Badges for Learning Pool (slides here)
- Ordering more business cards. The other ones didn’t turn up and, as 20th-century as they feel, I’m often in a position where I need to give them out.
- Catching up with the audio from the Web Literacy Standard community call, hosted by Carla.
- Hosting the Open Badges community call for the first time for a while.
- Talking some more and reaching out to various people within Mozilla about Firecloud.
- Writing a post for DMLcentral about the NSA, Mozilla and privacy that I hope will go live on Monday.
- Claiming back expenses for speaking at recent events.
- Meeting with my newest colleague Meg Cole via Skype.
- Getting some training on interviews with the media from Erica Sackin.
- Participating in a great day of networking, sharing and planning for a new city-wide learning co-operative (potentially powered by badges!) hosted by the University of Salford.
This week I’ve done loads of stuff myself, but my colleagues have been even busier. This week Mozilla has, well done pretty much everything:
Next week I’m presenting at the Learning and Skills Group (London, Tuesday) and moderating a session on ‘Digital Skills for Work and Learning’ at the EC Digital Agenda Assembly 2013 (Dublin, Wednesday). I’m also looking forward to working with the Mozilla comms team on next month’s beta release of the Web Literacy Standard. [Source: Planet Mozilla]
Christian Heilmann: Image masking with HTML5 Canvas
I just added a small demo to my GitHub showing how you can do image masking by using the canvas element.
All you need to do is add the canvasmask.js script and add a class of mask to each image you want to mask. You also need to provide a PNG file as the mask using the data-mask attribute. For example:
This will take the centerblur.png file and apply it as a mask to red-panda.jpg – in effect taking the alpha of each pixel and change the alpha of the original pixel to that.
You can see it in action here and get the code on GitHub.
[Source: Planet Mozilla]
Under the hood, all I do is loop through all the pixels of the images (after copying them to two canvas elements) and apply the alpha values (every 4th value in the pixeldata array) of the PNG to the image. Simple, really :)