mozilla

Mozilla Nederland LogoDe Nederlandse
Mozilla gemeenschap

Firefox doit devenir l'anti-Chrome et Mozilla doit s'affranchir des fonds de Google ... - Developpez.com

Nieuws verzameld via Google - mo, 14/07/2014 - 09:57

Firefox doit devenir l'anti-Chrome et Mozilla doit s'affranchir des fonds de Google ...
Developpez.com
Plusieurs mois après avoir démissionné de son poste de PDG de la fondation Mozilla, Brendan Eich a laissé entrevoir sa vision future de Firefox. Pour rappel, le navigateur de la fondation est en recul par rapport à ses principaux concurrents, 18,02 ...

Google Nieuws
Categorieën: Mozilla-nl planet

Mozilla kicks off global 'digital literacy' program - Sin Chew Jit Poh

Nieuws verzameld via Google - mo, 14/07/2014 - 09:22

Mozilla kicks off global 'digital literacy' program
Sin Chew Jit Poh
(WASHINGTON-AFP) - The Mozilla Foundation is expecting more than 100,000 people to participate in a series of events worldwide over the next two months teaching basic Internet use and other digital skills. The "Webmaker" events which run through ...

en meer »
Categorieën: Mozilla-nl planet

Aaron Train: Proxy Server Testing in Firefox for Android

Mozilla planet - mo, 14/07/2014 - 09:00

Recent work on standing up a proxy server for web browsing in Firefox for Android is now ready for real world testing. Eugen, Sylvain, and James, from the mobile platform team have been working towards the goal of building a proxy server to ultimately increase privacy (via a secure connection), reduce bandwidth usage, and improve latency. Reduced page load times is also a high level goal. A detailed Wiki page is available at: https://wiki.mozilla.org/Mobile/Janus

The time for testing is now.

How to Help
  • Install this (available here) proxy configuration (development server) add-on in Firefox for Android
  • Browse as you normally would (try your network connection and or WiFi connections)
  • File bugs in GitHub (make sure to compare with the proxy enabled and disabled)
  • Talk to us on IRC
Categorieën: Mozilla-nl planet

Mozilla's digital literacy plan - iAfrica.com

Nieuws verzameld via Google - mo, 14/07/2014 - 03:30

Mozilla's digital literacy plan
iAfrica.com
The Mozilla Foundation is expecting more than 100 000 people to participate in a series of events worldwide over the next two months teaching basic internet use and other digital skills. The "Webmaker" events which run through September 15 aim to boost ...

Categorieën: Mozilla-nl planet

Mozilla's digital literacy plan - iAfrica.com

Nieuws verzameld via Google - mo, 14/07/2014 - 03:30

Mozilla's digital literacy plan
iAfrica.com
The Mozilla Foundation is expecting more than 100 000 people to participate in a series of events worldwide over the next two months teaching basic internet use and other digital skills. The "Webmaker" events which run through September 15 aim to boost ...
Mozilla kicks off global 'digital literacy' programSin Chew Jit Poh
Mozilla kicks off global 'digital literacy' programmeBusiness Recorder

alle 5 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Mozilla's digital literacy plan - iAfrica.com

Nieuws verzameld via Google - mo, 14/07/2014 - 03:30

Mozilla's digital literacy plan
iAfrica.com
The Mozilla Foundation is expecting more than 100 000 people to participate in a series of events worldwide over the next two months teaching basic internet use and other digital skills. The "Webmaker" events which run through September 15 aim to boost ...

en meer »
Categorieën: Mozilla-nl planet

Leo McArdle: Letter to my MP on DRIP

Mozilla planet - snein, 13/07/2014 - 16:25

What follows is a copy of the email I just sent to my MP about the Data Retention and Investigatory Powers Bill (DRIP). I urge you to send a similar email right now.

Dear Robin Walker,

I have no doubt that by now you will have heard of the Data Retention and Investigatory Powers Bill (DRIP) which your Government and the Opposition will try to rail-road through Parliament next week. I also have no doubt that you will have heard of the great deal of criticism surrounding this bill, both from your colleagues within Westminster hailing from all parties, such as David Davis MP and Tom Watson MP, and those outside of Westminster, such as Jim Killock of the Open Rights Group.

In April the European Court of Justice (ECJ) ruled that the Data Retention Directive (DRD) was incompatible with the Charter of Fundamental Rights of the European Union and therefore that the 2006 act enabling the DRD in the UK was a breach of Human Rights. This means what was, and still is, the status quo when it comes to forcing companies to store data on their customers is a breach of fundamental Human Rights. This is the same status quo which the Home Secretary has said that DRIP merely retains. I think it is clear to see why I, and others, have such a problem with DRIP.

The ECJ ruling outlined some very clear ways in which the DRD could be made compatible with Human Rights law, by saying that this cannot be done on a blanket basis and that someone independent must supervise police access. These fundamental points are missing from DRIP.

Furthermore, DRIP goes far further than just retaining the status quo. It makes sweeping amendments to the Regulation of Investigatory Powers Act (RIPA) including the expansion of what a communications service provider is, the extension of these powers to outside the UK and an open door to allow the Government to make new regulations about data retention at will, without the need to debate them fully in Parliament. I am sure you agree that such huge amendments to RIPA need to be subject to full Parliamentary scrutiny.

It is perfectly clear to everybody, including you, I am sure, Mr Walker, that the Government is using the ECJ ruling as a pretext to force through, at great speed, legislation which affects Human Rights, without proper scrutiny or deliberation. The ECJ ruling was in April, and many warned as far back as 2006 that the DRD was flawed. The UK Government has had years to prepare for the DRD being struck down. There is no reason for this emergency legislation, other than to try and sneak sweeping changes under the noses of MPs who have been allowed to go on holiday.

Wherever you stand on where the balance should be between State Security and Civil Liberties (and I would not be surprised if we stand on opposite ends of that balance), you must agree that five days in nowhere near enough time to properly debate and represent all the views on this issue.

It is for this reason that I urge you as my elected representative to vote against DRIP, and do everything you can to urge your colleagues to do the same. At the very least, could you please push for a highly amended bill, with all the sections amending RIPA removed, which serves purely as a stopgap, not for a period of two years, but for a maximum of six months. We need to have this debate now, and not pass the buck on to the next Government in 2016, who will surely pass the buck on again.

In 2015 I will get my first opportunity to vote in a General Election, and while I may feel that this Government has done devastating things to this country, you, Mr Walker, may be able to differentiate yourself from a sea of blue if you stand up for Civil Liberties and Human Rights.

Yours sincerely,
Leo McArdle

Categorieën: Mozilla-nl planet

Mozilla brings Indian communities together - opensource.com

Nieuws verzameld via Google - snein, 13/07/2014 - 12:28

opensource.com

Mozilla brings Indian communities together
opensource.com
This was the first time 13 Indic language communities came under one roof to translate interface strings together, commented Mozilla Community Manager, Arky. During the two day sprint, most language groups (2 - 4 members strong) completed more than ...

Categorieën: Mozilla-nl planet

Nick Cameron: Rust for C++ programmers - part 8: destructuring

Mozilla planet - snein, 13/07/2014 - 06:13
First an update on progress. You probably noticed this post took quite a while to come out. Fear not, I have not given up (yet). I have been busy with other things, and there is a section on match and borrowing which I found hard to write and it turns out I didn't understand very well. It is complicated and probably deserves a post of its own, so after all the waiting, the interesting bit is going to need more waiting. Sigh.

I've also been considering the motivation of these posts. I really didn't want to write another tutorial for Rust, I don't think that is a valuable use of my time when there are existing tutorials and a new guide in the works. I do think there is something to be said for targeting tutorials at programmers with different backgrounds. My first motivation for this series of posts was that a lot of energy in the tutorial was expended on things like pointers and the intuition of ownership which I understood well from C++, and I wanted a tutorial that concentrated on the things I didn't know. That is hopefully where this has been going, but it is a lot of work, and I haven't really got on to the interesting bits. So I would like to change the format a bit to be less like a tutorial and more like articles aimed at programmers who know Rust to some extent, but know C++ a lot better and would like to bring up their Rust skills to their C++ level. I hope that complements the existing tutorials better and is more interesting for readers. I still have some partially written posts in the old style so they will get mixed in a bit. Let me know what you think of the idea in the comments.

Destructuring
Last time we looked at Rust's data types. Once you have some data structure, you will want to get that data out. For structs, Rust has field access, just like C++. For tuples, tuple structs, and enums you must use destructuring (there are various convenience functions in the library, but they use destructuring internally). Destructuring of data structures doesn't happen in C++, but it might be familiar from languages such as Python or various functional languages. The idea is that just as you can create a data structure by filling out its fields with data from a bunch of local variables, you can fill out a bunch of local variables with data from a data structure. From this simple beginning, destructuring has become one of Rust's most powerful features. To put it another way, destructuring combines pattern matching with assignment into local variables.

Destructuring is done primarily through the let and match statements. The match statement is used when the structure being desctructured can have difference variants (such as an enum). A let expression pulls the variables out into the current scope, whereas match introduces a new scope. To compare:
fn foo(pair: (int, int)) {
    let (x, y) = pair;
    // we can now use x and y anywhere in foo

    match pair {
        (x, y) => {
            // x and y can only be used in this scope
        }
    }
}
The syntax for patterns (used after `let` and before `=>` in the above example) in both cases is (pretty much) the same. You can also use these patterns in argument position in function declarations:
fn foo((x, y): (int, int)) {
}
(Which is more useful for structs or tuple-structs than tuples).

Most initialisation expressions can appear in a destructuring pattern and they can be arbitrarily complex. That can include references and primitive literals as well as data structures. For example,
struct St {
    f1: int,
    f2: f32
}

enum En {
    Var1,
    Var2,
    Var3(int),
    Var4(int, St, int)
}

fn foo(x: &En) {
    match x {
        &Var1 => println!("first variant"),
        &Var3(5) => println!("third variant with number 5"),
        &Var3(x) => println!("third variant with number {} (not 5)", x),
        &Var4(3, St{ f1: 3, f2: x }, 45) => {
            println!("destructuring an embedded struct, found {} in f2", x)
        }
        &Var4(_, x, _) => {
            println!("Some other Var4 with {} in f1 and {} in f2", x.f1, x.f2)
        }
        _ => println!("other (Var2)")
    }
}
Note how we destructure through a reference by using `&` in the patterns and how we use a mix of literals (`5`, `3`, `St { ... }`), wildcards (`_`), and variables (`x`).

You can use `_` wherever a variable is expected if you want to ignore a single item in a pattern, so we could have used `&Var3(_)` if we didn't care about the integer. In the first `Var4` arm we destructure the embedded struct (a nested pattern) and in the second `Var4` arm we bind the whole struct to a variable. You can also use `..` to stand in for all fields of a tuple or struct. So if you wanted to do something for each enum variant but don't care about the content of the variants, you could write:
fn foo(x: En) {
    match x {
        Var1 => println!("first variant"),
        Var2 => println!("second variant"),
        Var3(..) => println!("third variant"),
        Var4(..) => println!("fourth variant")
    }
}

When destructuring structs, the fields don't need to be in order and you can use `..` to elide the remaining fields. E.g.,
struct Big {
    field1: int,
    field2: int,
    field3: int,
    field4: int,
    field5: int,
    field6: int,
    field7: int,
    field8: int,
    field9: int,
}

fn foo(b: Big) {
    let Big { field6: x, field3: y, ..} = b;
    println!("pulled out {} and {}", x, y);
}
As a shorthand with structs you can use just the field name which creates a local variable with that name. The let statement in the above example created two new local variables `x` and `y`. Alternatively, you could write
fn foo(b: Big) {
    let Big { field6, field3, ..} = b;
    println!("pulled out {} and {}", field3, field6);
}
Now we create local variables with the same names as the fields, in this case `field3` and `field6`.

There are a few more tricks to Rust's destructuring. Lets say you want a reference to a variable in a pattern. You can't use `&` because that matches a reference, rather than creates one (and thus has the effect of dereferencing the object). For example,
struct Foo {
    field: &'static int
}

fn foo(x: Foo) {
    let Foo { field: &y } = x;
}
Here, `y` has type `int` and is a copy of the field in `x`.

To create a reference to something in a pattern, you use the `ref` keyword. For example,
fn foo(b: Big) {
    let Big { field3: ref x, ref field6, ..} = b;
    println!("pulled out {} and {}", *x, *field6);
}
Here, `x` and `field6` both have type `&int` and are references to the fields in `b`.

One last trick when destructuring is that if you are detructuring a complex object, you might want to name intermediate objects as well as individual fields. Going back to an earlier example, we had the pattern `&Var4(3, St{ f1: 3, f2: x }, 45)`. In that pattern we named one field of the struct, but you might also want to name the whole struct object. You could write `&Var4(3, s, 45)` which would bind the struct object to `s`, but then you would have to use field access for the fields, or if you wanted to only match with a specific value in a field you would have to use a nested match. That is not fun. Rust lets you name parts of a pattern using `@` syntax. For example `&Var4(3, s @ St{ f1: 3, f2: x }, 45)` lets us name both a field (`x`, for `f2`) and the whole struct (`s`).

That just about covers your options with Rust pattern matching. There are a few features I haven't covered, such as matching vectors, but hopefully you know how to use `match` and `let` and have seen some of the powerful things you can do. Next time I'll cover some of the subtle interactions between match and borrowing which tripped me up a fair bit when learning Rust.
Categorieën: Mozilla-nl planet

Mozilla plans to release Electrolysis (multi-process architecture) with Firefox 36 - Ghacks Technology News

Nieuws verzameld via Google - sn, 12/07/2014 - 22:18

Mozilla plans to release Electrolysis (multi-process architecture) with Firefox 36
Ghacks Technology News
Mozilla implemented Electrolysis in Nightly channel versions of the Firefox web browser back in February. The implementation was experimental back then and disabled by default. Tests showed that work needed to be done, especially in regards to ...

Categorieën: Mozilla-nl planet

Por tercera vez, Mozilla alfabetiza digitalmente al mundo - Vanguardia.com.mx

Nieuws verzameld via Google - sn, 12/07/2014 - 18:03

Informador.com.mx

Por tercera vez, Mozilla alfabetiza digitalmente al mundo
Vanguardia.com.mx
Por tercer año consecutivo, la empresa de internet Mozilla, llevará a cabo su programa de “alfabetización digital” mundial del 15 de julio al 15 de septiembre. Se espera que más de 100 mil personas participen. El programa comienza este fin de semana en ...
Mozilla arranca su programa de "alfabetización digital" mundialRCN Radio
Mozilla inicia con la 'alfabetización digital' mundialInformador.com.mx

alle 15 nieuwsartikelen »Google Nieuws
Categorieën: Mozilla-nl planet

Uganda part of Mozilla 'digital literacy' program... - New Vision

Nieuws verzameld via Google - sn, 12/07/2014 - 17:26

New Vision

Uganda part of Mozilla 'digital literacy' program...
New Vision
WASHINGTON - The Mozilla Foundation is expecting more than 100,000 people to participate in a series of events worldwide over the next two months teaching basic Internet use and other digital skills, starting in Kampala. The "Webmaker" events which run ...
Mozilla starts 'digital literacy' programmeFirstpost
Mozilla kicks off global 'digital literacy' programThe New Age Online
Mozilla kicks off global 'digital literacy' programmeThe Malay Mail Online

alle 17 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Anthony Ricaud: Adopting Omnifocus and GTD

Mozilla planet - sn, 12/07/2014 - 17:07

I've tried to adopt the Getting Things Done method a few times already. Every time, it wasn't a success. I wasn't applying most principles and fell back to noting things down on a collection of small papers. This time, I had a huge advantage: at work, I'm sitting next to Étienne, a big proponent of GTD. He inspired me to try again and answered a lot of questions I had during my adoption.

This time, I chose Omnifocus for my GTD experimentation. It's a bit expensive to buy the three flavours but I was committed. I'll be talking about my experiences via Omnifocus but you should not focus too much on the software. You can adopt GTD with paper, with another software, whatever works for you.

Capturing

In january, I started the capture part. That's when you note down in your GTD system everything you'd like to do. You need to create that habit and do it every time something pops in your head. I use three main methods to collect:

  1. When I'm in front of my computer, I use the ^⌥Space shortcut to open the Quick Entry panel
  2. When I'm not in front of my computer, I use the iPod Touch app
  3. When an email requires some action, I send a message to the mail drop address

I got a huge inbox but I was ok with it because I knew collecting was the first part to get right. There is a big relief in knowing that everything you need or want to do is explicitly written somewhere. You're not afraid of forgetting something anymore.

Capturing your thoughts like this also allows you to stay focused on the current task. You don't have to do that new task right now, you don't have to explore that idea yet. Just trust the system to remind it to you later.

To start this, you may also want to start by doing a mind sweep: sit down in front of a piece of paper, no distractions, half an hour and write down everything that comes to mind.

Process

Once you have this exhaustive list of things you want to do, you process it in contexts and projects. You also flag some items you deem important and put important dates for those tasks. I only started doing this mid january. The tricky part for me was creating the projects and contexts.

Contexts

In GTD, Contexts are things you need to achieve a task. It could be a location, a person or an object. I'm not really using the contexts because most of the time, I just need to be in front of my computer to accomplish work related tasks. I may need to tweak this again but for now, I don't feel the need to dive more in that area.

My contexts:

  • Errands: When I'm neither at home nor at work
  • Home: I don't have an office context because I can work from anywhere. I have a few tasks that require me to be in an office (like printing) but not enough to warrant a full context.
  • People: A nested list of some people and also a phone context
  • Technology: This is where you'll find most of my tasks. I have a nested email folder.
  • Waiting: When I'm waiting on something else to happen.
Projects

Let me give you three example of real projects:

Fixing a bug

I try to do this a lot :) So I have a template project that I copy when I intend to work on a bug. This is a sequential project, meaning I need to achieve a task before the next one is available.

  1. Find a fix: Well that sounds dumb but this is my first step
  2. Write tests: Even though I may write the tests as I fix the problem, I still keep this reminder to make sure I wrote enough tests
  3. Test on a phone: I will certainly have done this while developing but for small fixes that look obvious, I have been bitten by not testing on a real phone. Hence this reminder.
  4. Put in review: Uploading my patch and explaining my fix.
  5. Wait for review: This is in a waiting context so I can forget about this project until I receive an email about that review. If it's not good, I'll add a task for each comment to adress.
  6. Wait for green tests: In a waiting context too because you shouldn't land something if the tests are not green.
  7. Land patch and clean branches: When all is good, I can land my work. This is usually where I'll clean the branches I had to create.
  8. Close bug with link to commit: This is the last step so that people can track the work later.
Feedback on Openweb articles

The crazy hard worker that Nicolas Hoffmann is wrote a few articles on modern CSS practices on the OpenWeb group. I told him I wanted to read them and provide some feedback but I have no idea when I'll come around doing that. So I created one task per article. It's out of my mind but I know I'll do it one day because I have this reminder.

Birthday ideas

This is not a project per se. But when someone talks about a topic they like, I try to take a note of it. Then during the review process, I mark it as due a few days before the actual birthday.

In addition to these kinds of projects, I have a few projects called "Work :: Miscelleanous" or "Personal :: Miscelleanous". That's just things I need to do and don't really fit in a project.

Flags, deferred dates and due dates

This is how I have things popping up for attention. I try to use due dates as little as possible because otherwise, one day you end up with 10 things urgent to do and you get stuck. So only tasks that have a hard deadline (like filing taxes) get a due date.

I use flags for the tasks that are important but without a real deadline. During my weekly review (see below), I'll flag things that I want to do next week.

The capture phase was really refreshing because I knew everything was stored somewhere. Via the process phase, it's even more relaxing because I know the system will remind me when I need to do something. That completely changed how I think about being overwhelmed. Before, I had this blurry collection of things to do in my head. They were all collapsing and I had no sense of what was important to do or if I was forgetting something that matters to me. Now, when I feel overwhelmed, I know it just means I need to spend a bit of time in front of Omnifocus to process my inbox.

Review

In february, I started doing reviews more often. First every two weeks and now every week. This is another step that gives me a great deal of comfort. This is when I'll decide what I want to do next week and put flags or due dates on things that I consider important for the coming week. I will also delete some items that I don't feel like doing anymore.

Do!

And this is the biggest part of GTD. Actually doing stuff. If you spend all that time in a tool to organise your tasks, it's not for the sake of it. That's why I did it gradually, to not spend too much time finding the perfect workflow.

I'm really happy with my adoption of the GTD method. It's not perfect, I'm still tweaking here and there.

I encourage you to try it. Reach out to me if you'd like to discuss it, I'd be happy to!

Categorieën: Mozilla-nl planet

Mozilla kicks off global 'digital literacy' program - The New Age Online

Nieuws verzameld via Google - sn, 12/07/2014 - 14:36

The Malay Mail Online

Mozilla kicks off global 'digital literacy' program
The New Age Online
The Mozilla Foundation is expecting more than 100,000 people to participate in a series of events worldwide over the next two months teaching basic Internet use and other digital skills. The "Webmaker" events which run through September 15 aim to boost ...
Mozilla kicks off global 'digital literacy' programmeThe Malay Mail Online

alle 15 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Nigel Babu: Jinxed!

Mozilla planet - sn, 12/07/2014 - 14:10

A couple of weeks ago, I requested L3 access as part of my Sheriffing work and my request was granted. I think I’ve totally jinxed things since then ;)

The tree. IT'S BURNING!

The first Sunday afterward, we had a patch that was landed into aurora inadvertently causing massive spike in crashes. I saw it myself and suspect that my copy was corrupt and downloaded the latest! Of course, to no avail. I finally noticed the right bug and Kairo was looking for someone to back it out. I backed it out and triggered a rebuild which fixed the issue.

The next Saturday, we had mobile imaging failures. This one was fun fixing, I talked to Nick Thomas and Chris Cooper on the phone. All it needed was one command, but it took us some time to get there :-) But hey, it got me mentioned under Friends of Mozilla.

Having more access to fix things somehow makes me feel responsible!

Categorieën: Mozilla-nl planet

Nigel Babu: Training in Tanzania

Mozilla planet - sn, 12/07/2014 - 13:50

On the last Monday of April, I found myself nervously standing in a room of about 15 people from the e-Government Agency and National Bureau of Statistics in Dar es Salaam. They were waiting for me to start training them in Python and CKAN. I’ve been programming in Python since 2011, but I’ve never actually trained people in Python. On the first day, I didn’t have any slides. All I had was one [PDF][pdf] from Wikibooks which I was using as material. I didn’t even cover the whole material. By the end of the day though, I could sense that it was sinking into the attendees a bit.

It all started with an email from my manager asking me if I was available to do a training in Tanzania in April. After lots of back and forth, we finalized on a date and a trainer to assist in the trainings, and I flew in. Dar es Salaam, strangely, reminded of growing up in Salalah. I got in a day early to prep for the week and settle in. The trainer looking groggy on a Monday does not bode well!

People who train often don’t tell you this - Trainings are exhausting. You’re most likely to be on your feet all day and walk around the room helping people who’re lagging behind. Looking back, the training was both fun and exhausting. I enjoyed talking about Python, though I feel like I need more practice to do it well. The CKAN training, I was pretty satisfied with the outcome, by the end of the week, the folks from e-Gov Agency went in and setup a server with CKAN!

Note to self: Write these posts immediately after the trip before I forget :-)

Categorieën: Mozilla-nl planet

Mozilla kicks off global 'digital literacy' program - dunyanews.tv

Nieuws verzameld via Google - sn, 12/07/2014 - 13:20

dunyanews.tv

Mozilla kicks off global 'digital literacy' program
dunyanews.tv
WASHINGTON (AFP) - The Mozilla Foundation is expecting more than 100,000 people to participate in a series of events worldwide over the next two months teaching basic Internet use and other digital skills. The "Webmaker" events which run through ...
Mozilla kicks off global 'digital literacy' programmePress Trust of India

alle 20 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Mozilla starts 'digital literacy' programme - Firstpost

Nieuws verzameld via Google - sn, 12/07/2014 - 08:49

Firstpost

Mozilla starts 'digital literacy' programme
Firstpost
The Mozilla Foundation is expecting more than 100,000 people to participate in a series of events in at least 368 locations, including in India, over the next two months teaching basic Internet use and other digital skills. The “Webmaker” events which ...
Mozilla starts global 'digital literacy' programThe Voice of Russia
Mozilla kicks off global 'digital literacy' programmePress Trust of India

alle 9 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Mozilla kicks off global 'digital literacy' programme - Press Trust of India

Nieuws verzameld via Google - sn, 12/07/2014 - 07:21

Mozilla kicks off global 'digital literacy' programme
Press Trust of India
Washington, Jul 11 (AFP) The Mozilla Foundation is expecting more than 100,000 people to participate in a series of events in at least 368 locations, including in India, over the next two months teaching basic Internet use and other digital skills.

en meer »
Categorieën: Mozilla-nl planet

Mozilla kicks off global 'digital literacy' programme - The Malay Mail Online

Nieuws verzameld via Google - sn, 12/07/2014 - 04:28

The Malay Mail Online

Mozilla kicks off global 'digital literacy' programme
The Malay Mail Online
A woman in front of a Mozilla Firefox poster on February 27, 2013 in Barcelona. Mozilla Foundation is holding digital literacy events over the next two months and expects 100,000 people to take part worldwide. — AFP picWASHINGTON, July 12 — The ...
Mozilla kicks off global 'digital literacy' programdunyanews.tv

alle 11 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Pages