Matthew Ruttley: Converting an HTML table to an Excel download HTTP Response: A hack for slow OLAP DB connections |
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:
Which is the best solution?
Solution 4
The process is as follows when the “Download for Excel” button is clicked:
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:
They instantly get:
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):
Though, you can access it with some fairly lengthy getters:
Future features
|
Matt Thompson: What we’re working on this sprint |
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.
Sorted by theme:
plus… wrapping up loose ends from the last Heartbeat.
Get involved
|
Mark Surman: What’s up with Webmaker? (Q1) |
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.
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.
https://commonspace.wordpress.com/2015/02/02/whats-up-with-webmaker-q1/
|
Air Mozilla: Mozilla Weekly Project Meeting |
The Monday Project Meeting
https://air.mozilla.org/mozilla-weekly-project-meeting-20150202/
|
Konstantinos Antonakoglou: Change a Font Awesome icon on hover (using content) + Sopler news! |
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 |
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”:
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 |
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.
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.
|
Adam Lofting: The week ahead: 2 Feb 2015 |
An unrelated pic is better than none
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 |
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:
http://daniel.haxx.se/blog/2015/02/01/internet-all-the-things/
|
Daniel Stenberg: Http2 right now |
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.
|
Soledad Penades: Notes on FOSDEM 2015 |
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” . 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.
|
Mark Surman: Participation questions? |
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:
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.
https://commonspace.wordpress.com/2015/02/01/participation-questions/
|
Jared Wein: Status update – In-content Preferences, part 4 |
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:
Bug 1108302 – Font size select list shows ellipsis instead of selected value (points = 1)
Bug 1044597 – in-content preferences: resized dialogs should not push buttons into overflow (points = 3)
Bug 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.
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 |
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.
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?
Related posts:
|
Yunier Jos'e Sosa V'azquez: Una conversaci'on sobre la privacidad en la red |
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).
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 |
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
2. Ensure your feature does not touch storage on the main thread, either directly or indirectly
3. Make sure to add Telemetry probes that measure how well your feature performs on real user machines.
4. Keep an eye out on the Talos scores
5. Consider writing a new Talos test
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.
|
Air Mozilla: 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 |
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! |
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:
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.
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:
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:
where the questionnaires and reflection will unpack how the activities played out with learners and whether they taught what we think they do.
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.
There are also other groups emerging to hack on other aspects of clubs. These include:
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 |
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
|