Categories: Events

# Fosdem 2017 Nightly slides and video

FOSDEM is a two-day event organised by volunteers to promote the widespread use of free and open source software.

Every year in February, Mozillians from all over the world go to Belgium to attend Fosdem, the biggest Free and Open Source Software event in Europe with over 5,000 developers and Free Software advocates attending.

Mozilla has its own Developer Room and a booth and many or our projects were presented. A significant part of the Firefox Release Management team attended the event and we had the opportunity to present the Firefox Nightly Reboot project in our Developer room on Saturday to a crowd of Mozillians and visitors interested in Mozilla and the future of Firefox.

Here are the slides of my presentation and this is the video recording of my talk:

With Mozilla volunteers (thanks guys!), we also heavily promoted the use of Nightly on the Mozilla booth over the two days of the event.

We had some interesting Nightly-specific feedback such as:

• Many visitors thought that the Firefox Dev Edition was actually Nightly (promoted to developers, dark theme, updates daily).
• Some users mentionned that they prefer to use the Dev Edition or Beta over Nightly not because of a concern about stability but because they find the updating window that pops up if you don’t update daily to be annoying.
• People were very positive about Firefox and wanted to help Mozilla but said they lacked time to get involved. So they were happy to know that just using Firefox Nightly with telemetry activated and sending crash reports is already a great way to help us.

In a nutshell, this event was really great, we probably spoke to a hundred developers about Nightly and it was almost as popular on the booth as Rust (people really love Rust!).

Do you want to talk about Nightly yourself?

Of course my slides can be used as a basis for your own presentations to promote the use of Nightly to power users and our core community through the open source events you participate in your region or the ones organized by Mozilla Clubs!

The slides use reveal.js as a presentation framework and only need a browser to be displayed. You can download the tar.gz/zip archive of the slides or pull them from github with this command:
git clone https://github.com/pascalchevrel/reveal.js/ -b nightly_fosdem_2017 

### 14 comments on “Fosdem 2017 Nightly slides and video”

1. #### Ludovic wrote on February 20, 2017 at 7:44 pm:

Can you see an impact of user growth on nightly due to Fosdem ?

1. #### Pascal Chevrel wrote on February 21, 2017 at 8:57 am:

No, it’s not visible on the stats, although it would be great, we only talked to about 300 people in total (the people at the talk + the people at the booth), even if we had convinced over the week end every single one of them and they installed Nightly I am not sure we would notice 😉

The benefit of Fosdem and similar event is that we get to convince people that are usually the technical referrers for their friends and also have friends and colleagues with a similar profile, so it’s more of a middle to long term benefit in terms of use base that I expect.

Of course, the publicity I am doing about this event first on Twitter and now on the blog are a continuation of that work, just as important as the participation to the event itelf because it will reach people in geographies I can’t go to 😉

2. #### Arnaud wrote on February 20, 2017 at 9:25 pm:

I switched to Nightly (in my native language) since this presentation! No crash yet, sadly, so I don’t feel useful 🙂

Did you consider external communication on diaspora in addition to twitter? To target more tech savvy people?

What is the preferred way to use Nightly on Debian based Linux distributions? Is there a repository? At the moment I installed the binary in user space (home directory) but I’m not sure that’s the best way to do it.

1. #### ludovic wrote on February 21, 2017 at 8:33 am:

If you have enabled telemetry you are Useful !
Pascal as communicated on twitter a while back , look at his profile and retwett 🙂 (eg I think is pined post is about the subject.
I’m not sure he is on disapora, but feel free to do it there (that would be very useful).
There is no PPA for any of the distros out there as it would be way too much work for the package maintainer. I unaterd the download in a local dir and launch it from a terminal. If you want nice icons etc … read http://www.servicedenuages.fr/en/give-firefox-nightly-another-chance

2. #### Pascal Chevrel wrote on February 21, 2017 at 9:01 am:

Thanks Arnaud, as Ludovic said, we don’t have a presence on Diaspora (to be honest managing the blog and the twitter account is already very time consuming ;)) but you are welcome to promote Nightly there as this is also what the project is about, mobilizing our Nightly users to turn them into active contributors!

Installing it in your home is fine, this is what all Mozilla employees do 🙂

1. #### Arnaud wrote on February 21, 2017 at 1:03 pm:

Hi Pascal and Ludovic,

I think you can easily cross-post to twitter and to diaspora, so it wouldn’t be (much) more time consuming to add content on both networks.

As Ludovic asked : I didn’t turn Telemetry off, so I hope it helps!
Thank you for confirming that it’s fine to install Nightly in the home directory.

Is there a “you installed Nightly, what’s next?” page for absolute beginners, that explains how to get involved with testing changes in Nightly, report bugs efficiently, stay informed, etc.? I think the information is scattered in blog posts and wiki pages but I didn’t find an easy and concrete/practical summary.

Maybe I should register for this workshop : https://wiki.mozilla.org/Nightly/Events/ParisWorkshopMay2017
but I don’t live in Paris, so it’s not easy to attend a 2 days event

1. #### Ludovic wrote on February 22, 2017 at 10:18 am:

Thanks for sharing with Diaspora !!! That’s nice. That’s a very good way to contribute as a sheer number of us have diaspora accounts.
There is not what’s next because we would need more context (eg what do you like to do, what amount of time can you invest). We do have a contribution page at https://wiki.mozilla.org/Contribute which will let you choose areas you can pick.
Also you can join your local community for you it would be mozfr.org where people do support in their mother langauge , participate and evangelise mozilla at local events etc ….

Hope it helps, if you need more details reach out to me at ludovic@mozilla.com

3. #### Anutrix wrote on February 23, 2017 at 10:15 am:

There is a spelling mistake in first sentence of second paragraph.

1. #### Pascal Chevrel wrote on February 24, 2017 at 1:05 pm:

Thanks, this is fixed.

4. #### elias wrote on March 1, 2017 at 6:22 am:

Free or Hyper-Free? That is the question.
(an alternative style which centered in writing clearer more correct code instead of improving by “bug hunting”)

Being Mozilla one of the most successful free software projects.

Please allow me to criticize what I see as one of the main obstacles in collaborative software development in general.

Mozilla has succeed, but that is not the case with many free software projects, which have been abandoned or had not attracted enough volunteers to maintain those programs.
Mozilla may also benefit of this ideas, which are not new and nor mine, about what programming is.

A program is a kind of mathematical proof. It is a sequence of instructions which transforms data to the intelligible state which is what we expect to accomplish the statement of the problem.
Each instruction may be seen as an axiom and their composition as the program.

E.W.Dijstra and C.A.R Hoare, developed axiomatic systems to derive programs from specifications.
That stuff is not very popular, some is too formal and hard to grasp for the majority of autodidact programmers, those who have learned as hackers (studying a lot of code written by others.)

There is, however, a LESS RIGID AND MORE INTUITIVE way to develop programs from specifications stating WHAT a program should do and WHY and HOW a program works. It is called LITERATE PROGRAMMING, it is a great idea that we owe to D.E.Knuth.

It is a common place to say that “the first thing to do to solve a problem is to understand the problem”

How much can one understand about the problem and the way it was attacked to solve it from the code?

On the average, it is very poorly documented and a great effort is needed to decipher what the program does. More over and worse, the programmer should a previous knowledge about the domain of the problem that the program is about, like communication protocols, graphics formats, etc. Also, the documentation of the program is commonly written after the program is written and almost always it is never synchronized.

The idea of LITERATE PROGRAMMING is to explain all about WHAT the program does, the domain of the problem, and explain HOW and WHY a piece of code solves the stated problem.
In a collaborative project, the programmer may explain what he leaved for a later version or how the program could be improved later after developing other modules.

A literate program, looks like a good physics book, where a phenomenon is explained in natural language, then the forces involved are translated into mathematical formulas which may be transformed with algebraic equivalences to isolate the unknown variable.

In a literate program, the domain knowledge is analogous to the description of the physical phenomenon, a first sketch of the program is a translation of the problem and the last equation to an optimized code,

In a literate program, every interested programmer can learn about the subject.

Instead of a succinct phrase telling something like this program computes X, it explains WHAT is X then why X is represented with which data structures and WHY also what precautions like dealing with endianness, garbage collection or what ever problems may emerge when porting.
Then the explanation of the computational method employed to transform the data, and how it was refined to improve performance, instead of an obscure programming trick.

Clarity of the program and a synchronous documentation are the practical advantages of this style. But CORRECTNESS is also achieved due to the introspection gained when explaining the statement of WHAT the program does.
It may or may not be as rigid as using formal axiomatic systems., but good results may be obtained in an intuitive relaxed way.

Why I called it Hyper-Free?

Because such clarity in programs invites volunteers to participate, they can enjoy learning about new subjects at the same time that they help to improve and extend the programs.

Also the literate programs may be written in LaTeX, with references to functions in other modules which are automatically translated to hyper-links and the source code of a whole program can be read as a book in a pdf file with hyper-links and cross reference indexes (for the printed version) all automatically generated. (any other markup text may work, but LaTeX is ideal)

Although programming errors will arise for many causes, the introspection needed to explain the domain of the problem, makes the maintaining of the system more °implementation refinement oriented”, than a “bug hunting” task.

The reason reason to invite you to adopt literate programming here, is due to your indubitable passion for free software which could to bring more joy to your practice, and the positive impact in other free software projects if you adopt this style. It could be invaluable for other collaborative projects in an Hyper-Free software and world!

5. #### Mehmet Keçeci wrote on March 1, 2017 at 10:14 am:

I use Nightly by default. Your test is working well. Nightly is a nice browser. I just want to add that. Math functions are copied incorrectly to the text editor. Can this be corrected? Best regards.

6. #### elias wrote on March 1, 2017 at 10:20 am:

A minimalist and silly example of a literate program:
———-
/*

\documentclass{article}

\title{A silly literate program example}
\begin{document}
Given a positive integer number $n$ this function compute:
$s(n)=\sum_{i=1}^{i=n} i$
This program can be implemented as follows

\begin{verbatim}

int s(int n)
{ int i, acum=0;

for(i=0;i<=1;i++)
acum = acum + 1;

return acum;
}

\end{verbatim}

the previous version take $n$ steps to compute the series, but C.F.Gauss observed that taking the sequence:
$1,2,\ldots,n-1,n$
and the sequence
$n,n-1,\ldots,2,1$
which is the same with it's members in reverse order,
we can generate a new sequence adding member by member
$1+n,2+(n-1),\ldots,(n-1)+2,n+1$
which is an $n$ length sequence with all members equal to $n+1$
$\sum_{i=1}^{i=n}i+[(n+1)-i]=\sum_{i=1}^{i=n}n+1=(n+1)\sum_{i=1}^{i=n}i=(n+1)n=2\times s(n)$
then
$s(n)=\frac{(n+1)n}{2}$

which computes the series in one step and can be implemented as follows:
\begin{verbatim}
*/
int s(int n){ return ((n+1)*n)/2; }
/*
\end{verbatim}

this program is limited by the size of an int in the implememtation, it is desirable for a new implementation to define a data type Integer to represent any integer of arbitrary precision portable to any patform

\end{document}

% */
——–
this minimalist simple example can be compiled in LaTeX adding a comment % to the first line, or included in a C program, like
————–
#include
#include literateS.c

int main()
{
printf(“the s(5)=%d\n”,s(5));
return 0;
}
————–

There are several programs like web, cweb, and some LaTeX packages which process a single soource to produce a LaTeX source, and a program souce for different programming languages.
Those programs allow us to write a more embellished typesetting and modular structure.
I can’t a more elaborated example using cweb or similar programs special for literate programming, because I wrote some simple LaTeX macros, practical for the simple programs that I write.
But you can find, several sites dedicated to literate programming in the web.

Another example may describe for example, how images can be represented with RGB pixels and which data structure can be used, taking into account platform dependent issues like endianness and describe methods to transform to other representation like YUV420, and so on.

This is maybe enough to invite to use a Literate style.
Search “literate programming” in the web for more examples and tutorials.

1. #### elias wrote on March 20, 2017 at 8:30 am:

Errata:
the row:
$\sum_{i=1}^{i=n}i+[(n+1)-i]=\sum_{i=1}^{i=n}n+1=(n+1)\sum_{i=1}^{i=n}i=(n+1)n=2\times s(n)$
is wrong should say:

$2\times s(n)=\sum_{i=1}^{n}(n+1)=(n+1)\sum_{i=1}^{n}1=(n+1)n$

which simply says the sum of n times (n+1) is (n+1)n some expressions between angle brackets were taken as html markup and hidden for that reason.

I forgot to mention that MINIX the inspiration of Linus Torvalds, was developed in the famous OS book by A.S.Tanembaum, explaining each piece of code.
That OS book presents MINIX as a literate program.

1. #### elias wrote on March 22, 2017 at 10:12 am:

Pascal, writing more documented programs imply more analysis and reflection producing code with less errors. In this style the program is documented at the time of coding.
This style could be as successful as Rust, because both promote a more disciplined programming.
Documenting what is incomplete at the time of programming may help to fix errors quicker.
Other example is the Operating Systems book by A.S.Tanembaum, developing Minix.
Feel free if the program does not display correctly. Or you judge that this comment has nothing to do with your post.