-Поиск по дневнику

Поиск сообщений в rss_planet_mozilla

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.06.2007
Записей:
Комментариев:
Написано: 7

Planet Mozilla





Planet Mozilla - https://planet.mozilla.org/


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://planet.mozilla.org/.
Данный дневник сформирован из открытого RSS-источника по адресу http://planet.mozilla.org/rss20.xml, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Matthew Ruttley: Converting an HTML table to an Excel download HTTP Response: A hack for slow OLAP DB connections

Вторник, 03 Февраля 2015 г. 01:00 + в цитатник

Overview

Zenko (“Good fox” in Japanese) is a reporting system (see code on Github here) I’ve created over the last couple of weeks at Mozilla. Basically my non-technical coworkers were getting so frustrated by Tableau (“what the heck is the difference between INNER JOIN and OUTER JOIN?”) that I decided to create a simple dashboard interface for them.

Its a simple bootstrap front-end to a database containing campaign stats for sponsored tiles. You can drill down to each tile or client/partner and pivot by things like locale, country and date.

Zenko’s stack (high to low)

A new feature

When loading one of the analyses pages, a table will be shown. My coworker wanted to be able to download the data to Excel. I came up with 4 possible ways to implement this:

  1. Simply rerun the query, format the results as a csv on the backend, save it and window.open() the file location.
  2. Automatically save the data from each analysis request server request and periodically clear old files.
  3. Use a javascript library like ExcelBuilder
  4. Send the data back to the server, format it, and then back to the client via an iframe

Which is the best solution?

  1. This is problematic because our sticking point is the query speed. The redshift database is an OLAP Column Oriented database, and append-only. This means that it is insanely fast to add data to, but quite slow (often 6+ seconds) to query. Yes, it is dealing with billions of rows so excusable, but its not so great in terms of user experience to wait so long.The user doesn’t want to wait another 6 seconds for the analysis to rerun when they have the data already.
  2. This sounds like it could just end up storing a lot of data on the client, but it could work quite well. In terms of security though, I’m not sure that the data should be lingering on the user’s PC unrequested though.
  3. This didn’t work out so well – in Firefox, the file is incorrectly named. In the future, I’d like to name the files according to the parameters of the analysis e.g. --.xls
  4. This is the weirdest solution, but it works! Flask is running locally so it is actually very fast. There are no huge JQuery/JavaScript complications with file permissions and the fact that you can manipulate the data easily on the server is nice too.

Solution 4

The process is as follows when the “Download for Excel” button is clicked:

  1. Reference the HTML table using JavaScript and convert it to an array of arrays
  2. Append an iframe to the DOM
  3. Append a form with a POST action and hidden field to the iframe
  4. Insert the table contents into the hidden field’s value
  5. Submit the form
  6. Let Flask receive the POST request and format the information as a CSV
  7. Return an HTTP response with a file attachment containing the CSV

Let’s implement it

function convert_table_to_array() {
	//convert the current table to a list of lists
	itable = document.getElementById("impressions_table") //the table will always be called this in zenko
	
	//convert the table to a list of lists (i.e. array of arrays)
	var data = [];
	
	//meta data
	col_count = itable.children[0].children[0].children.length //number of cols
	row_count = itable.children[1].children.length //number of rows
	
	//grab the header (i.e. first row containing column titles)
	header_cells = itable.children[0].children[0].children
	header = []
	for (i=0;i/iterate through each row
	row_cells = itable.children[1].children
	
	for (i=0;i/get each cell in the row
		row_content = []
		for (j=0;j/some textual entries already contained a comma which messed with things
			row_content.push(cell_content)
		}
		data.push(row_content)
	}
	return data
}

There were various ways to do this in JQuery with

iterable.each()
  but I ran into complications and simply referencing cells using .children was much easier.

function download_xls() {
	//Downloads the current table as an excel file

	//1. Create an iframe
	iframe = document.createElement("iframe")
	iframe.setAttribute("width", 1)
	iframe.setAttribute("height", 1)
	iframe.setAttribute("frameborder", 0)
	iframe.setAttribute("src", "about:blank")

	//2. Create a form that can send data to Flask
	form = document.createElement("form")
	form.setAttribute("method", "POST")
	form.setAttribute("action", "/download_excel")

	//3. Put the table data into a hidden field in that form
	data = document.createElement("input")
	data.setAttribute("type", "hidden")
	data.setAttribute("value", convert_table_to_array())
	data.setAttribute("name", "data")
	
	//4. Append these new elements to the DOM	
	form.appendChild(data)
	iframe.appendChild(form)
	document.body.appendChild(iframe)
	
	//5. Send off the data
	form.submit()
}

The (locally running) Flask will then recieve a POST request at

/download_excel
 . Let’s set up the route:

#accepts POST data (larger than GET data)
@app.route('/download_excel', methods=['GET', 'POST']) 
def download_excel():
	"""Creates a file download from received post information"""
	#POST data is accessed via a dictionary at request.form
	data = request.form["data"] 
	data = data.split(",") #Split it up by comma
	#The data is a list of lists like [[1,2], [3,4]] but is unfortunately sent 
	#as  [1,2,3,4]. However, we know that there are 6 columns, so we can split it 
	#up into sixes with a list comprehension
	data = [data[x:x+6] for x in xrange(0, len(data), 6)]
	#Now re-join each one with commas, so it is nicely csv-ish
	data = "\n".join([','.join(x) for x in data])
	response = make_response(data)
	#Return an HTTP Response with an attachment
	response.headers["Content-Disposition"] = "attachment; filename=data.csv"
	return response

Now, when the user clicks the button:

Download Link for Excel

They instantly get:

Download popup

Sorry, I can’t show what it looks like in Excel because the data isn’t public at the moment. All code is however available here on github!

One bizarre thing, however, is that the form doesn’t appear in the inspector (in either Chrome or Firefox):

Invisible in the inspector

Though, you can access it with some fairly lengthy getters:

why.jpg

Future features 

  • The files could be named something more intuitive than data.csv  – perhaps a combination of various things seen in the URL’s query string
  • Accommodate for a table wider than 6 rows. This could be done easily by stringifying the array using a different delimiter such as a “###”.
  • Create an .xls file rather than a CSV, if there is any advantage

http://ikigomu.com/?p=256


Matt Thompson: What we’re working on this sprint

Понедельник, 02 Февраля 2015 г. 23:34 + в цитатник

Jan 30 demos video. Check out Andrew and Bobby’s presentation starting at 56:00. Great analysis and take-aways on recent efforts like on-boarding, login and more.

What we got done last sprint

 What we’re doing this sprint

Sorted by theme:

Summary

  • Net neutrality campaign work. Includes a “Call Congress” tool, petition, and  updated web site). Campaign kicks off Feb 5.

plus… wrapping up loose ends from the last Heartbeat.

Get involved

http://openmatt.org/2015/02/02/feb13/


Mark Surman: What’s up with Webmaker? (Q1)

Понедельник, 02 Февраля 2015 г. 22:45 + в цитатник

I’ve talked lots about our Mozilla Learning plan for the next three years. If you haven’t seen it, there’s a new summary of the overall plan here: https://blog.webmaker.org/2015_plan. I also did a talk in Portland with an overview:

Of course, three years is a long time. And the the scope of the Mozilla Learning plan is very broad: everything from basic web literacy to more advanced web development to growing the next generation of Mozilla leaders.

In this post I want to zoom in to lay out more detail about the Webmaker parts of this plan. What are we working on over the next 60 days? What will the Webmaker world look like April 1? How will it take our first step towards the overall plan? And what does success look like for 2015?

At a high level, the Webmaker side of our 2015 plans is focused on two things: relationships and reach. We want to build and deepen relationships with more people — Webmaker users, mentors, and future leaders. And we want to extend those relationships into more places. Our specific goals are to reach 250,000 active Webmaker users by the end of the year and to be active in 500 cities with ongoing learning network.

In the immediate term, we’re focused on testing out the theories we have about how we meet these goals. This includes testing out our thinking on Webmaker clubs and finding ways to get users more engaged with the online side of Webmaker.

  • For Learning Networks, our Q1 goals are:
    • Test new Webmaker Clubs model in 20 cities
    • Retain volunteer mentors recruited last year. Make sure they stay engaged (goal: 4K).
    • Increase the number of Hive cities to 10.
  • For Learning Products, our Q1 goals are:
    • Increase Webmaker for desktop and mobile monthly active users to 5% of monthly unique visitors (current = 2.07%)
    • Signal our emphasis on mobile, with the Webmaker app beta launches at Mobile World Congress (Mar 2 – 5)
    • Start exploring early ways we might include webmaking directly into Firefox by prototyping 5 Firefox for Making concepts

Of course, these are just our top six priorities. There is alot more going on. Which raises the question: what are you working on and what do you think is important? I’m interested in hearing more from you. Please post your reflections using #webmaker on Twitter, to the Planet Webmaker aggregated blog or get in touch.


Filed under: mozilla

https://commonspace.wordpress.com/2015/02/02/whats-up-with-webmaker-q1/


Air Mozilla: Mozilla Weekly Project Meeting

Понедельник, 02 Февраля 2015 г. 22:00 + в цитатник

Konstantinos Antonakoglou: Change a Font Awesome icon on hover (using content) + Sopler news!

Понедельник, 02 Февраля 2015 г. 21:11 + в цитатник

Hi everyone! The past few days, we made some major updates on Sopler that we started designing a long time ago.

It is now possible to set a due date or edit your items using a brand new options menu. Also, when you enter a YouTube link, a (auto-scalable) player will appear on the list! :)

Nonetheless, this post concerns changing a Font Awesome icon to another Font Awesome icon when the first one is on hover.

Firstly, I came across this post and a few (unrelated but helpful) answers on Stack Overflow that used the content property. Then, I thought that this might work pretty well and it did.

For example,

  

using this CSS:

.divclass{
  font-size:5em;
  color:grey;
  cursor:pointer;
}

.divclass:hover .fa-circle-o:before{
  content:"\f05d";
  color:green;
  opacity:0.4;
}

OK, the div element will be a full-width rectangle (use your Developer Toolbar to check what’s going on), but you can modify it later. Anyway, the result is: http://jsbin.com/noqiwi/

It might be trivial but it’s also a lot easier than other implementations I’ve seen so far.


http://antonakoglou.com/2015/02/02/change-font-awesome-icon-content-hover/


Justin Crawford: Learning Experiments on MDN

Понедельник, 02 Февраля 2015 г. 17:29 + в цитатник

At the bottom of this post, I ask: Who should I connect with to learn more about the state of the art in professional web developer education? Read on to see why, and answer if you can.

Mark Surman, Executive Director of the Mozilla Foundation, wrote on his blog recently about the Foundation’s ambitious plans to make Mozilla “a global classroom and lab for the citizens of the web”. He briefly mentioned MDN, the product I manage:

Given what we’re already doing, being bold doesn’t need to involve huge new investments. In fact, it can start simply with being more clear and assertive the work we already do. Not just with Webmaker, Hive and Maker Party, but also with user education in Firefox, Mozilla Developer Network, ReMo program and our research and fellowships programs. What I’m talking about starts with making these things stronger — and then telling a clear story to ourselves and the world about how they add up to a coherent whole. That’s what I want us to start doing in 2015.

He’s right: Mozilla has been teaching the web for years through numerous channels. Along with our explicit efforts, Mozilla’s policy, community development, content, and product features all help people learn how the web works and how to use it effectively. We can confidently state our intent to do more of that.

MDN has always – explicitly – been a learning resource. When the MDN wiki launched in 2005 it was billed as “a Mozilla project dedicated to providing documentation, education, and community for developers of all types.” Now MDN helps millions of developers every month to understand the core technologies used for building web sites.

Mozilla’s other efforts in education to date have focused on building local networks, teaching web literacy and creating enthusiasm for web technology among young people and non-developers. MDN complements this work because it provides similar (but distinct) opportunities to an audience of intermediate and advanced web developers. A significant majority of MDN visitors – 70% in recent surveys – are professionals in the field.

Along with the Foundation group, MDN will spend much of 2015 making our educational role explicit. For example, last week the MDN content team quietly launched a new learning area on MDN. This learning content represents a large and ongoing effort by many volunteers and staff contributors to create new pathways into the advanced web topics MDN  covers. Like most wiki content, it is a work in progress; in 2015 the learning content will make great leaps forward. (Also like most wiki content, you can contribute your expertise to make it better.)

We recognize that learners learn in very different ways. Some easily absorb the technical documentation MDN has always provided; others need a different format, or different materials, to help them grasp these complicated subjects. But what additional formats and materials can MDN contribute to these learning experiences? Like the  learning area, this is new territory for MDN. So in 2015 we’ll undertake a variety of experiments to help understand how MDN can best help people grow their web development skills and become professionals and adepts at making the web the world needs.

Here are some naive examples to show what I mean by “experiments”:

  • Videos are a common medium among sites teaching things. Are they effective? Would MDN’s audience appreciate them? Should we experiment with integrating or linking to more video content on MDN?
  • There are lots of online schools teaching web development. Are any of them doing an incredible job of it? Should we talk to that school about collaborating to give MDN users access to its programs?
  • MDN can facilitate local learning groups. Would that be valuable? How could we do that? How would we know it was working?
  • etc.

I will solicit and explore such experiments here, on this blog, and will recommend the most compelling opportunities for more work in 2015. I encourage anyone with feedback or questions to discuss in comments, reach out to me directly, or respond in kind on their own blog (and let me know about it).

Here is my first question for all the learners and teachers out there: Who should I connect with to learn more about the state of the art in professional web developer education? Twitter handles, blog URLs, and introductions welcome.

http://hoosteeno.com/2015/02/02/learning-experiments-on-mdn/


Yunier Jos'e Sosa V'azquez: AMO alcanza un nuevo hito

Понедельник, 02 Февраля 2015 г. 16:00 + в цитатник

La galer'ia de complementos de Mozilla, AMO por sus siglas en ingl'es de Addons.Mozilla.Org alcanz'o en enero pasado la incre'ible cifra de 4 000 millones de descargas. Gracias a una imponente serie de complementos, la capacidad de personalizar Firefox y las motivaciones de los usuarios por tener un mejor navegador, se pudo llegar a estos magn'ificos numeritos.

4000-millones-amo

Actualmente existen m'as de 18 000 complementos y 369 000 temas disponibles en AMO, el complemento m'as popular es Adblock Plus con m'as de 19 millones de usuarios diarios y desde el 2009, se han donado a los desarrolladores m'as de 634 000 USD.

Tres hurras a todos los desarrolladores que han contribuido con su tiempo y talento a crear estos extraordinarios complementos y por supuesto a quienes los usan activamente.

En nuestra galer'ia tenemos publicadas 467 extensiones y esperamos alcanzar las 500 pr'oximamente. Si sabes de alguna que no est'e all'i, por favor deja el nombre en tu comentario y nosotros la a~nadimos.

http://firefoxmania.uci.cu/amo-alcanza-un-nuevo-hito/


Adam Lofting: The week ahead: 2 Feb 2015

Понедельник, 02 Февраля 2015 г. 12:41 + в цитатник
An unrelated pic is better than none

An unrelated pic is better than none

What’s happening this week?

My number one goal (P1) for this week is solving offline friendly mobile analytics for Webmaker App, while keeping other projects ticking along adequately.

Here’s to a productive week.

http://feedproxy.google.com/~r/adamlofting/blog/~3/WANfVWjBEGg/


Daniel Stenberg: Internet all the things

Понедельник, 02 Февраля 2015 г. 01:42 + в цитатник

I talked in the Embedded devroom at FOSDEM 2015 and the talked was named “Internet all the things – curl everywhere“. Here are my slides from this talk. It was recorded on video and I will post a suitable link to that once it becomes available.

Foto from the event, taken by Olle E Johansson:

Daniel talks curl at FOSDEM

http://daniel.haxx.se/blog/2015/02/01/internet-all-the-things/


Daniel Stenberg: Http2 right now

Понедельник, 02 Февраля 2015 г. 01:33 + в цитатник

I talked in the Mozilla devroom at FOSDEM 2015. Here are the slides from it. It was recorded on video and I will post a suitable link to that once it becomes available. The talk was meant to be 20 minutes, I think I did it on 22 or something.

http://daniel.haxx.se/blog/2015/02/01/http2-right-now/


Soledad Penades: Notes on FOSDEM 2015

Понедельник, 02 Февраля 2015 г. 00:09 + в цитатник

FOSDEM finished a few hours ago and I’m almost literally fusing with the couch from where I’m writing this, bad body posture and all. It’s the best I can do.

I presented the latest project I’ve been working on, node-firefox, at the Mozilla track today. I was screencasting my talk but there were mechanical difficulties (namely the VGA plug disconnected), and Quicktime went bananas with the resolution change, so you’ll have to wait until the recordings for 2015 are published to watch the talk. By the way, kudos to Ioana Chiorean for her well researched introductory notes for each speaker. She never ceases to amaze me :-)

It was really challenging to give this talk because there was people getting in and out of the room all the time, other people speaking out loud, and others playing games on a tablet (with sound effects!) and it was all so distracting that at some point I said something like “sorry, I’m really distracted”. I don’t know if that’s a “speaker faux pas“, but it was the truth! Ahhh! At least neither my live demos or Nightly crashed, so there’s that ;-)

I will write a post on node-firefox soon–probably for the Mozilla Hacks blog.

I spent most of Saturday finishing code + the talk so I only had the chance to watch a few talks by other Mozilla colleagues, and they were really interesting. Probably my favourite was Marco Zehe’s plea for rethinking the way we approach accessibility: it should not be an afterthought or a “nice to have” feature, it should be built-in from day zero. And it’s not only about blindness, it’s about motor impairment, cognitive impairment, color blindness… It’s not only about being able to “tab” between elements, but also about being able to understand their meaning. So many things we take for granted! We need to build for the people, but I feel we need to change our front-end culture of chasing the shiniest and nicest framework in order to get there.

I also wasn’t really thrilled about getting into the event itself. I found on Saturday that it didn’t have a code of conduct, or rather, it had a “social conduct policy” that verged on the antisocial:

A CoC that sounds like: if you report a problem, we might have a hard time believing you. #FOSDEM pic.twitter.com/IuLGWPVLhG via @mleibovic

— Lucie (@Autofocus) January 31, 2015

The FOSDEM organisers were surprised to hear that harassment is a common problem at open source conferences around the world…

For an event this size, I expected them to have a code. I didn’t even bother to check! Even more, Mozilla is supposed to not to sponsor or attend events without a Code of Conduct. This was really disappointing. A year ago, I decided to never attend another conference without them. And there I was in Brussels and with a talk on my hands. What do I do? Do I just give up or just go ahead and do it?

I decided to do it anyway.

I sometimes go to places I don’t really feel like going to, so that someone else won’t feel like they’re the only one “not man”. It helps normalising the fact that women do exist in this field. It also puts a strain on me, but I want to think/hope that it will be less straining over time, as more and more diverse attendees join me.

Then on my way in, there was a group of Spaniards discussing out loud how German women are or not attractive. I’m highlighting “Spaniards” here because I am a native Spanish speaker, and I can be pretty sure there was no “misunderstanding” or cultural barrier here. I perfectly understood what they said. And when I hear that, I start wondering if they’re going to be discussing the rest of women they see at the event, the type of thoughts that are going through their minds, and that makes me uncomfortable.

Walking down the halls, I got those looks I hadn’t got in a few years—more specifically, since I stopped attending heavily sexist demoscene parties: “Oh, a woman!”. My colleagues that attended FOSDEM before had assured me it was a great event and it was all OK, but they are all men and their perception surely doesn’t include getting treated as an anomaly of sorts.

Thankfully, many attendees have called for a proper code of conduct. FOSDEM has replied, in a convoluted way, what many interpret as “we will have a code of conduct”:

Code of Conduct, message received. Booklet statement not evolved for 3 years, our way of handling issues has and will continue to improve. #

Some other attendees had made a fool of themselves declaring that CoC are not needed and “women are actually not interested in technology and engineering”. Pau, your behaviour is a good reason why women won’t apply to speak at FOSDEM. Have you stopped and considered that perhaps, maybe perhaps, women have less opportunities to change plans on a month’s notice and that’s why they can’t attend? Gah…

This “incident” aside, I had difficulty enjoying the event because of its busyness. The fact that it was all free and open for anyone to attend meant there was A LOT of people around, and while there were limits on the number of people inside a room for security reasons, there was no limit on the number of people circulating or just being on the halls. It was noisy and hot and damp, and as we say in Spanish “it smells like humanity” :-P . So if you have issues with crowded places, perhaps FOSDEM is not a place you want to be in.

I certainly won’t go back until they sort out their Code of Conduct and inclusiveness issues.

flattr this!

http://soledadpenades.com/2015/02/01/notes-on-fosdem-2015/


Mark Surman: Participation questions?

Воскресенье, 01 Февраля 2015 г. 19:35 + в цитатник

What is radical participation? I asked this question early last month. Since then I’ve collected comments from my blog and from dozens of conversations. The result was more — and better – questions. Like:

  • Do we need radical new approaches, or a return to our roots? (Axel, Greg)
  • Can we use ‘the promise of impact’ to draw in the best contributors? (Ian)
  • How do people do *new* things under the Mozilla banner? (Ian + others)
  • Can we make participation in core product work easier? (Lawrence, Gregory)
  • Does staff vs. volunteer binary limit us? Other models to consider? (Mark)
  • What’s the best way to get new contributors aligned and effective? (Elio)
  • Is there ow hanging fruit we can fix (e.g. contribute.mozilla.org)? (Martin)

Responses have been positive: the consensus is that Mozilla needs to double down on participation. However, the meatier part of my interactions with people have been around more specific questions like the ones above.

These questions feel like a good place to dig in. I’m going to tackle a few of them in follow up posts over the next couple of weeks. If there is a question that interests you, I encourage you to dig in on your own blog.


Filed under: mozilla

https://commonspace.wordpress.com/2015/02/01/participation-questions/


Jared Wein: Status update – In-content Preferences, part 4

Воскресенье, 01 Февраля 2015 г. 01:57 + в цитатник

icons@2x

We are now about half-way through the normal development cycle of Firefox 38. In about 3-4 weeks, what is currently “Nightly 38'' will become “Firefox Developer Edition 38'' (previously known as Firefox Aurora). At this point, beta builds of Firefox 36 will now revert back to the old-school preferences implementation. Firefox Beta will see the in-content preferences get more testing at the beginning of the Beta 37 iteration.

These are some of the bugs that have been fixed since the last update:
Bug 1022582 – Checkboxes and radio buttons in about:preferences lack any indication they’re checked/selected when using High Contrast mode
Bug 1043346 – InContent Prefs – Dialogs should have their dimensions reset after closing
Bug 1008172 – Scrolling up and down on pages with scrollbars in about:preferences will change subgroups (the Advanced subpanes)
Bug 1012223 – in-content preferences loading slowly

I’ve gone through the remaining bugs and attached both a “point” value as well as priorities for the bugs. Point values follow the Fibonacci sequence, and should roughly approximate the difficulty of fixing the bug. Priorities range from P1 to P3.

P1 bugs are considered those that block using the feature, as well as those that are highly visible. We are tracking three P1 bugs:
top_1Bug 1108302 – Font size select list shows ellipsis instead of selected value (points = 1)
top_1Bug 1044597 – in-content preferences: resized dialogs should not push buttons into overflow (points = 3)
top_1Bug 1047586 – Unable to interact with In-content preferences after changing Font size (points = 5)

The full list of bugs can be found on Bugzilla.

Big thanks to Richard Marti, Shubham Jindal, and Gijs Kruitbosch for helping to fix the previously-mentioned bugs.


Tagged: firefox, mozilla, planet-mozilla

https://msujaws.wordpress.com/2015/01/31/status-update-in-content-preferences-part-4/


Stormy Peters: For good design add constraints to your web page

Суббота, 31 Января 2015 г. 20:28 + в цитатник

I had breakfast with Cate Huston and I told her that I was working on a blog post called “Should you build an app or a website?” She opined that perhaps mobile apps, both native and web, are better because they have constraints. When you have a small screen, you have to have a good UI. You can’t offer users every possibility, you have to make some decisions and choices for them on what they might want to do.

Cate talked about an art teacher who constrains kids to black and white charcoal, then to a drawing started to someone else and then to a drawing torn in half. They are more creative and come up with more inspired work because they have artificial constraints.

When I think about really single purpose, simple websites, I think about Google’s home page.

Screenshot 2015-01-30 15.11.27

There’s a few apps like that too.

What do you think? What would your website look like if you knew that everyone had to look at it through a 640x320 screen and could only interact with it using touch sensitive gloves because it was raining ice chunks outside?

http://feedproxy.google.com/~r/StormysCornerMozilla/~3/QyHDuxq1h1U/for-good-design-add-constraints-to-your-web-page.html


Yunier Jos'e Sosa V'azquez: Una conversaci'on sobre la privacidad en la red

Суббота, 31 Января 2015 г. 20:00 + в цитатник

El mi'ercoles pasado les coment'abamos que Mozilla hab'ia preparado un sitio para aconsejar y mostrar herramientas sobre como mantener la privacidad en la red para celebrar el D'ia de la Privacidad. Esto no qued'o all'i, Mozilla y otras organizaciones participaron de un chat en Twitter acerca de la privacidad. Reproducimos aqu'i las participaciones m'as importantes. Las traducciones que encontrar'as aqu'i fueron realizadas por miembros de Mozilla Hispano, puedes consultar el storify original en este enlace (en).

privacyChat01 privacyChat02 privacyChat03 privacyChat04 privacyChat05 privacyChat06 privacyChat07 privacyChat08 privacyChat09 privacyChat10 privacyChat11 privacyChat12 privacyChat13 privacyChat14 privacyChat15 privacyChat16 privacyChat17 privacyChat18 privacyChat19 privacyChat20 privacyChat21 privacyChat22 privacyChat23 privacyChat24 privacyChat25 privacyChat26 privacyChat27 privacyChat28 privacyChat29 privacyChat30 privacyChat31 privacyChat32 privacyChat33 privacyChat34 privacyChat35 privacyChat36 privacyChat37 privacyChat38

Fuente: Mozilla Hispano

http://firefoxmania.uci.cu/una-conversacion-sobre-la-privacidad-en-la-red/


Vladan Djeric: How to evaluate the performance of your new Firefox feature

Суббота, 31 Января 2015 г. 01:18 + в цитатник

There are a lot of good tools available now for studying Firefox performance, and I think a lot of them are not well known, so I put together a list of steps to follow when evaluating the performance of your next Firefox feature.

1. Make sure to test your feature on a low-end or mid-range Windows computer

  • Our dev machines are uncommonly powerful. Think machines with spinning hard drives, not SSDs. Testing on Windows is a must, as it is used by the vast majority of our users.
  • The perf team, fx-team, and gfx team have Windows Asus T100 tablets available in multiple offices just for this purpose. Contact me, Gavin, or Milan Sreckovic if you need one.

2. Ensure your feature does not touch storage on the main thread, either directly or indirectly

  • If there’s any chance it might cause main-thread IO, test it with the Gecko profiler. The profiler now has an option to show you all the IO done on the main thread, no matter how brief it is.
  • Also be careful about using SQLite

3. Make sure to add Telemetry probes that measure how well your feature performs on real user machines.

  • Check the Telemetry numbers again after your feature reaches the release channel. The release channel has a diversity of configurations that simply don’t exist on any of the pre-release channels.
    • You can check for regressions in the Telemetry dash, or you can ask the perf-team to show you how to do a custom analysis (e.g. performance on a particular gfx card type) using MapReduce or Spark.
    • The learning curve can be a bit steep, so the perf team can do one-off analyses for you.
    • We have additional performance dashboards; they are listed in the “More Dashboards” sidebar on telemetry.mozilla.org
  • Always set the “alert_mails” field for your histogram in Histograms.json so you get automatic e-mail notifications of performance regressions and improvements.
    • Ideally, this email address should point to an alias for your team.
    • Note that the Telemetry regression detector has an extremely low false-positive rate so you won’t be getting any emails unless performance has changed significantly.

4. Keep an eye out on the Talos scores

  • The Talos tests are much less noisy now than they used to be, and more sensitive as well. This is thanks to Avi Halachmi’s, Joel Maher’s, and others’ efforts.
    Partly as a result of this, we now have a stricter Talos sheriffing policy. The patch author has 3 business days to respond to a Talos regression bug (before getting backed out), and two weeks to decide what to do with the regression.
  • Joel Maher will file a regression bug against you if you regress a Talos test.
  • The list of unresolved regressions in each release is tracked in the meta bugs: Firefox 36, Firefox 37, Firefox 38, etc
  • Joel tracks all the improvements together with all the regressions in a dashboard
  • If you cause a regression that you can’t reproduce on your own machine, you can capture a profile directly inside the Talos environment:
    https://wiki.mozilla.org/Buildbot/Talos/Profiling

  • Some Talos tests can be run locally as extensions, others may require you to set up a Talos harness. Instructions for doing this will be provided in the Talos regression bugs from now on.
  • The graph server can show you a history of test scores and test noise to help you determine if the reported regression is real.
    • William Lachance is working on a new & improved graphing UI for treeherder.

5. Consider writing a new Talos test

  • Add a new Talos test if the performance of your feature is important and it is not covered by existing tests. The Perf team would be happy to help you design a meaningful and reliable test.
  • Make sure your test measures the right things, isn’t noisy and that it is is able to detect real regressions

Thanks!

I initially posted this message for discussion on the firefox-dev and mozilla.dev.platform newsgroups. This is now also a wiki page in the Performance wiki.

https://blog.mozilla.org/vdjeric/2015/01/30/how-to-evaluate-the-performance-of-your-new-firefox-feature/


Air Mozilla: January Cantina Speaker - Nico Sell, CEO r00tz and Wickr

Пятница, 30 Января 2015 г. 01:00 + в цитатник

January Cantina Speaker - Nico Sell, CEO r00tz and Wickr Nico Sell is a professional artist, athlete and entrepreneur based in California. She is cofounder and CEO of r00tz and Wickr. r00tz is a...

https://air.mozilla.org/january-cantina-speaker-nico-sell-ceo-r00tz-and-wickr/


Allison Naaktgeboren: Applying Privacy Series: The 4th meeting

Четверг, 29 Января 2015 г. 23:35 + в цитатник

Engineer goes off and adjusts the plan. At a high level,it looks like this:

    Client side code

        Set up

            snippet lets users know there is a new options in preferences

            if the app locale does map to a supported language, the pref panel is greyed out with a message that their locale is not supported by the EU service

            if not, user clicks ToS, privacy policy checkbox, confirms language

            app contacts server

            if server not available, throw up offline error

            if server available, upload device id, language, url list

            server sends back the guid assigned to this device id

            notify user setup is complete

            enable  upload service

        When new tab is opened or refreshed

            send msg to server with guid + url

        Turning off feature

            prompt user ‘are you sure’ & confirm

            notify server of deletion

            delete local translated pages

Server side code

    Set up

        poked by client,

        generate guid

        insert into high risk table: guid+device id

adds rows for tabs list (med table)

adds rows for the urls (low table)

    Periodic background translation job:

        finds urls of rows where the translated blob is missing

        for each url, submits untranslated blob to EU’s service

        sticks the resulting translated text blob back into the table

    Periodic background deletion jobs:

        finds rows older than 2 days and evicts them in low risk table & medium risk tables

        find rows in sensitive table older than 90 days and evict.

secure destruction used.

        user triggered deletion

            delete from sensitive table. secure destruction

            delete from medium table

    Database layout

        sensitive data/high risk table columns: user guid, device id

            maps guid to device id

        medium risk table columns: user guid, url

            maps guid to tabs list

        low risk table columns: url, timestamp, language, blob of translated text

            maps urls to translated text

The 4th Meeting

Engineer: Hey, so what do you guys think of the new plan? The feedback on the mailing list was pretty positive. People seem pretty excited about the upcoming feature.

Engineering Manager: indeed.

DBA: much better.

Operations Engineer: I agree. I’ll see about getting you a server in stage to start testing the new plan on.

Engineer: cool, thanks!

Engineer: Privacy Rep, one of the questions that came up on the mailing list was about research access to the data. Some phd students at the Sorbonne want to study the language data.

Privacy Rep: Did they say which bits of data they might be interested in?

Engineer: the most popular pages and languages they were translated into. I think it would really be just the low risk table to start.

Privacy Rep: I think that’d be fine, there’s no personal data in that table. Make we send them the basic disclosure & good behavior form.

Engineering Manager: A question also came to me about exporting data. I don’t think we have anything like that right now.

Engineer: No, we don’t.

Privacy Rep: well, can we slate that do after we get the 1.0 landed?

Engineering Manager: sounds like a good thing to work on while it’s baking on the alpha-beta channels.

Who brought up user data safety & privacy concerns in this conversation?

Engineer, Engineering Manager, & Privacy Rep.

http://www.allisonnaaktgeboren.com/applying-privacy-series-the-4th-meeting/


Michelle Thorne: Clubs: First test kicks off!

Четверг, 29 Января 2015 г. 22:12 + в цитатник

webmaker clubs 15

A few weeks ago we posted an overview of a new initiative with Mozilla, “Webmaker Clubs.” While details (including the name!) are still pending, we’ve made great progress already on the program and are kicking off our first local tests this week.

Joined by over 40 organizations and individuals around the world, we’ll test the first section of our web literacy basics curriculum, based on our community-created Web Literacy Map.

We anticipate having a community-created and tested Web Literacy Basics curriculum ready by the end of March, consisting of three sections:

  • Reading the Web
  • Writing the Web
  • Participating on the Web

In addition, there will be extra guides and goodies packaged with the curriculum to help people start their own local clubs or to inject this kind of web literacy learning into their existing programs. These will be bolstered by an online “club house” and leadership development for club mentors.

If you’re interested in trying out the club curriculum or just learning more, drop us a line on this discussion thread.

webmaker clubs 11

Testing 1. Reading the Web.

The first section consists of two 45min. activities, designed by the ever-pioneering MOUSE, to introduce learners to “Reading the Web.”

We selected these activities because we’re looking for lessons that:

  • are production-centered and about learning socially.
  • readily adapted to a local context.
  • work as standalone lessons or strung together for a larger arc.
  • require little or no prior web literacy skills for the mentor.
  • done offline, without internet or computers. or, at the very most, with only a modern browser.

webmaker clubs 16

The testing process

Testers are looking at the effectiveness and compatibility of the activities. In particular, we’re interested in how people adapt the curriculum to their learners. One example could be swapping out the mythical creature, The Kraken, for your local variety, like Loch Ness, Knecht Ruprecht, etc.

We’d love to see greater remixes and alternatives to the activities themselves, hopefully uncovering more compelling and context-sensitive ways to teach credibility and web mechanics.

And most importantly, we’re looking at whether the activities meet our learning objectives. They should not only be fun and engaging, but instill real skill and a deeper understanding of the web.

The testing process invites our first cohort to:

  1. complete a pre-activity questionnaire
  2. do the activity first on their own
  3. do the activity with their learners
  4. complete a post-activity questionnaire
  5. share a reflection

where the questionnaires and reflection will unpack how the activities played out with learners and whether they taught what we think they do.

webmaker clubs 12

Co-creating 2. Writing the Web

In parallel to testing the first section, we’re co-developing the second section with our fellow club creators. Here we hope to up-level two existing activities from the community and to prepare them for testing in the next round, starting Feb. 10.

If you have ideas for how to teach “Writing on the Web”, particularly the competencies of remix and composing, chime in!

There are some great activities identified so far, including the Gendered Advertising Remixer, Life in the Slowww Lane.

webmaker clubs 13

Getting involved

There are also other groups emerging to hack on other aspects of clubs. These include:

  • online platform
  • leadership and professional development
  • localization

If you’re interested in any of the above topics, or would like to test and co-create the curriculum, please get in touch! We’d love to have your help to #teachtheweb.

Photos by Mozilla Europe available under a Creative Commons Attribution-ShareAlike 2.0 license.

http://michellethorne.cc/2015/01/clubs-first-test-kicks-off/


Dave Townsend: hgchanges is back up

Четверг, 29 Января 2015 г. 21:33 + в цитатник

The offending changeset that broke hgchanges yesterday turns out to be a merge from an ancient branch to current tip. That makes the diff insanely huge which is why things like hgweb were tripping over it. Kwierso point out that just ignoring those changesets would solve the problem. It’s not ideal but since in this case they aren’t useful changesets I’ve gone ahead and done that and so hgchanges is now updating again.

http://www.oxymoronical.com/blog/2015/01/hgchanges-is-be-back-up



Поиск сообщений в rss_planet_mozilla
Страницы: 472 ... 118 117 [116] 115 114 ..
.. 1 Календарь