Software Carpentry Week in Review: March 17-23, 2014

What’s happening next week

There are still a couple of spaces left for the live version of the Software Carpentry Instructor Training Course to be held in Toronto April 28–30. If you’d like more information, please contact Greg Wilson.

Workshops

Five workshops happened this week, four of them simultaneously on four different institutions. Note that this involved 7 rooms, 24 instructors and helpers, and over 200 students in just two days. Thanks to all that organized, helped, and taught.

Upcoming workshops

  • 04/02: University of Victoria, Victoria, B.C., Canada.
  • 04/03: University of Southern Denmark, Odense, Denmark.
  • 04/04: University of Oklahoma, Norman, Oklahoma, USA.
  • 04/07: University Corporation for Atmospheric Research, Boulder, Colorado, USA.
  • 04/14: PyCon Bootcamps, Montreal, Quebec, Canada. (Still a few openings: register here).
  • 04/14: Women in Science and Engineering, Lawrence Berkeley National Lab, Berkeley, California, USA.

Lesson Development

1 pull request was merged, 1 issue was closed, and no new issues were opened. In addition to the merges, we had 14 commits made by Raniere Silva, Steven Koenig, Joon Ro, Philipp Bayer, and Greg Wilson.

Other news

Growing Hive Toronto, Together

How might we create connected learning and web literacy opportunities for youth?

 

To break it down further: how might we move youth from consumers to creators through learning opportunities that are highly social, interest-driven, and production- focused and integrate the culture, mechanics and citizenship of the web?

This overarching question drives Hive Learning Networks and has been the compass for Hive Toronto as we moved from our start-up mode into a full-fledged collaborative community of youth-serving organizations over the past year.

 

 

Hive Toronto as a Learning Network:

MOZ_01_HIVE_LEARNING_NETWORK_FINAL_HORIZONTAL

 

Educators are the network:

As we’ve moved across the Hive growth spectrum from a Hive Learning Community to a Hive Learning Network as articulated by the Hive Global model, Hive Toronto has expanded from 24 initial members organizations to 41 with over 3000 youth impacted by Hive member collaborations. I joined Mozilla as the Director of Hive Toronto just over a year ago and it has been inspring to support this growth and seed collaborations.

9249284905_b55621a200_b

The membership aspect may seem obvious but is worth underscoring. It is Hive members – the educators – that are building the pipeline of connected learning and web literacy opportunities for youth. Hive Learning Networks support the construction of the pipeline through building the capacity of and fuel collaboration between educators, our “lead users”.

Hive builds educators’ capacity:

Supported by a grant from the Ontario Trillium Foundation and stewarded by Mozilla, Hive Toronto builds member capacity through:

  • Knowledge-sharing and communication
  • Financial support to spur collaboration and innovation
  • Professional development and technology education
  • Project consultation and outreach
  • Documentation and research

Leah Gilliam, the Director of Hive NYC, outlines these capacity-building strategies as it relates to the Hive NYC community her recent blog post.

Highlights of the past year:

Hive Toronto has had an action-packed year with the highlights below being only a few of the ways that the our community has connected and collaborated:

makerparty-heatmap

  • Bridging Hive Toronto and the global Webmaker Community of educators
  • Hive Toronto at the Mozilla Festival in London, UK
  • “Hivestarter” workshops to connect members’ needs with other members’ resources
  • Dr. Karen Louise Smith joining the Hive Toronto HQ Mitacs Elevate Post-doctoral Research Fellow, Mozilla Hive Toronto and the University of Toronto
  • Documentation through Hive HQ blog posts, member blog posts, and the creation of this website in collaboration with Hive NYC
  • Supporting the growth of Hive Waterloo
  • Professional development workshops on topics like Webmaker LINK, Open Graphics, and exploring what it means to “work in the open”
  • Expansion of members’ youth programs through the use of Mozilla Toronto’s community space
  • Seeking funding opportunities for members
  • Growth of Hive Toronto HQ with the addition of a part-time Events and Communications Coordinator. Colin Lacey currently holds this role with Jennifer Chan working with us in 2013
  • Taking Hive Global to spread the model to places like India, Berlin, Indonesia and more

Collaborative Community Projects

Another major highlight of the year was the rich collaborations fostered between members and financially supported by OTF and Mozilla through our “Collaborative Community Projects” program. Again, the quality of collaboration within the network is dependent on member organizations.

These Collaborative Community Projects have given previously silo-ed organizations the opportunity to collaborate, build organizational capacity, work with youth to create new learning opportunities while sharing their process and learning with the network and the world by “working open.”

The five Collaborative Community Projects that received funding in 2013 range in content from mobile workshops for youth to intergenerational workshops at a museum:

Read more about the projects here.

For the rest of 2014, we will continue to refine and build upon our existing capacity-building strategies while continuously integrating the developments from our Hive Toronto community, Hive Global, and Mozilla. As new opportunities, events, tools, and collaborations grow within the network our guiding question will still serve as our compass:

How might we create connected learning and web literacy opportunities for youth?

Here’s to the next phase of Hive Toronto!

Thimble Recognized as a "Gamechanger" and Wins 2014 ON for Learning Award

We are thrilled to share that Thimble, our code editor for beginners, has been recognized by Common Sense Media as one of the best educational tools online with the 2014 ON for Learning Award. The awards celebrate the year’s best in digital media products designed to educate and engage young people, and have become the most comprehensive tool that parents and teachers rely on for understanding the true educational value of digital media resources.

Screen Shot 2014-03-20 at 5.37.01 PMThe award is being announced at a ceremony in San Francisco tonight, featuring 50 other educational apps, games and websites signaled out as game changers.

Thimble also received a 5-star rating from Common Sense Media for its educational value — the highest possible rating available from the organization. A few highlights:

  • Engagement – Kids experience the delight of learning to write their own webpages with side-by-side windows that instantly show the effects of their coding tweaks.
  • Learning Approach – Authentic coding practice comes alive through fun, community-generated projects. Whether they learn through guided remixing or start a project from scratch, kids can find the right entry point into web design.
  • Support – Immediate feedback, baked-in help, and a supportive community all help kids persevere and publish their webpages.

Screen Shot 2014-03-20 at 5.38.15 PM

It’s Webmaker’s goal to help people understand the mechanics, culture and citizenship of the web. We created Thimble, along with X-Ray Goggles and Popcorn Maker, to provide free, open source tools that help educators, technologists, makers, and anyone move from consuming to creating the web, in a way that enables creativity and encourages empowerment.
We’re honored to receive this award from Common Sense Media, and really want to thank our Webmaker community for making Thimble what it is today, and continuously working to help make it better. Whether you playtested the earliest version created by Jess Klein and Atul Varma (remember the Love Bomb?), or watched as Kate Hudson, Scott Downe, Michiel”Pomax” Kamermans, Jon Buckley, Chris DeCairos, Thomas Park and others continued to improve it day by day, you know Thimble has come a long way. And if you provided feedback on an open community call, filed or closed bugs, created or remixed content for others to use and learn and share… we’re celebrating this award with and for you!

Screen Shot 2014-03-20 at 5.45.14 PMHow to get involved:

Code as a research object: updates, prototypes, next steps

It’s been just over three months since we first announced our collaboration with GitHub (a code hosting service) and figshare (an open data repository) exploring the idea of “code as a research object”. There’s been much progress and discussion about the effort of late, and we wanted to share with you our progress to date, as well as discuss next steps and yet-unanswered questions.

But first, a quick look back at the thought behind the project…

Part of the Science Lab’s mission is to work with other community members to build technical prototypes that move science on the web forward. In particular, we want to show that many problems can be solved by making existing tools and technology work together, rather than by starting from scratch. The reason behind that is two-fold: (1) most of the stuff needed to change behaviors already exists in some form and (2) the smartest minds are usually outside of your organization.

This project has a few layers to it, ranging from the strictly technical to the social. Below we discuss a few of the main tenets.

A means of pushing code from GitHub to figshare

This project exists to show how, using open technologies, you can get two services to to talk to one another through server-side (particularly OAuth) as well as browser-based technologies. This allows the user to move information from one service to the other seamlessly on the web, as well as collect meaningful information needed for reuse.

You can access the current prototype here:

http://mozillascience.github.io/code-research-object/

It provides two different entry points for those looking to push their code from GitHub to figshare — one being through the intermediary site linked above, the other being from your repository through a bookmarklet or browser extension.

The goal of the prototype is to test the user flow starting in the user’s code repository (this is intentional), see how the user flow maps to the needs of the researcher, and keep the process as minimally onerous as possible.

If you try the prototype, you’ll notice once you click the “Get a DOI” bookmarklet, you’re asked to fill in a few info fields about the code. That’s an initial reflection of the conversation going on here — the fields to be collected are subject to change as we nail down the minimal set of fields needed.

Produce code and documentation so that other systems can do this too.

We’ve seen in recent weeks that both figshare and Zenodo have built in this functionality for their users, using the code generated from this collaboration. We think that’s great and that was one of the aims of this project: to build out a prototype to start the conversation, and provide the building blocks for others to repurpose for their own systems. The more choice for users, the better; and the more code with a DOI, able to be discovered, reused, shared and viewed on equal footing with published papers or datasets, the better, in our opinion.

The aim of this was not to start and finish solely with GitHub and figshare, but instead show how two repositories (or a code-hosting service and a data repository, to be precise) could move information between one another using open APIs. (An API is the interface implemented by an application which allows other applications to communicate with it. APIs are really useful for allowing research and information to move freely on the web and be easily reused.)

For this project, the DOI is assigned to a snapshot of the code archived by figshare, not the code repository itself. This is useful for a few reasons. If the repository disappears, the DOI will still resolve to the archived version, and if a user decides to switch code hosting services (for example), the DOI can remain the same and will still resolve to the archived version of the code.

There are a number of services out there that also archive content and data as well as mint DOIs (Dryad and DataVerse, for starters). We wanted to make sure the prototype was designed in a way that shed light on the process for others to reuse as much as possible, whether to apply to their repository, or just see what we did under the hood.

Want to create your own version? Arfon Smith from GitHub has written up a fantastic how-to outlining some of the steps. Still have questions? Get in touch.

Discussion about best practice and “metadata for reuse”

When we first started discussions around our latest “Code as a research object” project, one of the main topics that arose was reuse. It’s one thing for code and software to have an identifier that the community trusts so that it can be integrated into scholarly publishing systems, but what about the researchers looking to use that identifier to build or reuse the code in their own work? What information is needed for the code to be discovered, picked up, forked and run by someone else outside of their lab? In short, what would the ideal README look like?

In our post back in February we pointed the community towards a few ideas and encouraged their feedback and comments in this discussion thread. Some fascinating contributions emerged in that thread, and we’re working on sifting them into a best practices document.

Here are a few ideas we tossed out as a starting point:

  • What does the code do? For what field? (Short descriptor)

  • What’s needed to get the code to run? Is it part of a larger codebase? Links to relevant repositories or tools used to run the code.

  • Contributors.

  • Link to the documentation on how the code is used.

  • License

But one thing we’re still grappling with in the comments is how low or high to set the bar for reproducibility for code, especially when catering to an audience that may not identify as “computational” per se, or have much experience with software development beyond running some data analysis.

There also was the point made about our use of the term “metadata”, which can carry a certain “machine readable or bust” connotation in various circles. We were framing our “ideal README” as the “human-readable” metadata — the overarching context needed for a lay researcher to glean enough about the piece of code to put it in context and possibly even reuse it.

We’ve woven in some of these fields into our prototype to show what that could look like as part of the build, and we’ll continue to hone it over the coming weeks. Care to help us? Get in touch. We’d love to hear your thoughts.

Why DOIs again? Isn’t this already being done?

There’s also been a lot of discussion about software citation itself, which pre-dates our small project; we’re by no means the first group to work on this or even to cite code.

The choice to link to a data repository that also mints Digital Object Identifiers (DOIs) was a deliberate one, as regardless of being able to cite URLs and other unique identifiers, DOIs are still seen as the citable gold standard for research objects. In many ways, being able to assign DOIs to code (as well as data) is an indication to the research community that these scholarly contributions are on par with and of equal worth as the published paper, a trusted mechanism understood and used by many to track citations, impact and use.

What’s next?

  • Testing – We had a number of publishers add their names to our call for testers. We’re keen to see how we can close that feedback loop, from researchers archiving a snapshot of their code in a data repository to receiving a DOI they then use in publication. We’re also still looking for feedback from researchers. Let us know what you think.

  • Role of Institutional Repositories? Is there a role for the institutional repository or library in archiving snapshots of the code? How can they help?

We’ll be discussing this further this Thursday, March 20 on our Mozilla Science community call. Come join us and add your questions to the etherpad (line 56).

Week of win: looking back at Mozilla's contribution to Open Education Week

Last week was Open Education Week. As part of it, I helped moderate an online discussion on behalf of Mozilla about Open Education and the Open Web.
We provided a new prompt every day in our Webmaker Google+ community and asked for responses via comments, blog posts, or using Mozilla’s Webmaker tools.
You can find the prompts below:
Day 1: http://goo.gl/2cNlCC
Day 2: http://goo.gl/MzpY5D
Day 3: http://goo.gl/yKsXX6
Day 4: http://goo.gl/jTEw8Y
Day 5: http://goo.gl/mgSIse
There were some great contributions, but I’d like to highlight the following in particular:

The Webmaker Google+ community is now over 3,000-strong and a great place to get involved in Mozilla’s role in promoting open, innovation and opportunity on the web.
In addition, if you have any curriculum that teaches web literacy, we’d love you to share it. We want to use the power of Open Education and the Open Web to make the world more web literate.
Will you join us?

Webmaker: An Open Educational Ecosystem (OEE)

Often it’s difficult to get contributions to open projects because some people aren’t quite sure what contribution means or how to go about doing it. Other folks don’t know what “open” means, and thus they don’t know they can contribute at all. Perhaps it’s the nomenclature of “open” that confuses people. Perhaps it’s just an “open” marketing problem.
I want to help people teach the web in an open and participatory way, sharing their processes and ideas online. I was thinking about what a kind of technical training program for the web would look like, and to me, it looked like an open community.

Photo by Doug Belshaw


Our community–a globally diverse group of passionate educators and technologists–believe in the web as a platform for learning, sharing, connecting and making, and they believe that open practice and participation are key elements to becoming a citizen in the digital world. They are eager to spread web literacy in their local contexts, but participating in the global movement means that one needs to navigate through a complex and sometimes confusing ecosystem of digital-human communication.
We’re planning and designing a new training program to give people an easy in to the types of online communication and participation I’m talking about. We want people to experiment and fail forward. We’d like online components to support offline actions and vice versa. We want the experience to be centered around making and connecting around what you make. This is also the reason that we are trying to encourage a peer-to-peer aspect of learning.
Continue reading …

Software Carpentry Week in Review: March 10-16, 2014

What’s happening next week

Workshops

One workshop happened last week:

Upcoming/This Week’s Workshops

  • 03/17 : New York University, New York, NY USA.
  • 03/17 : University of California at Berkeley, Berkeley CA USA.
  • 03/17 : University of Washington, Seattle WA USA.
  • 03/17 : Purdue University, Lafayette IN USA.
  • 04/02 : University of Victoria, Victoria, BC Canada.

Lesson Development

8 pull requests were merged, 8 issues were closed, and 3 issues were opened. In addition to the merges, we had 17 commits made by Raniere Silva, Trevor W. King, and Greg Wilson.

Other News

  • Aleksandra Pawlik made a nice recap on the blog of the first Software Carpentry bootcamp at the Genome Analysis Center in Norwich, UK.
  • Justin Kitzes wrote an opinion post on why collaborative development of lessons and curricula is not as popular as collaborative coding or writing.
  • There is an open issue in our main repo to comment which are the tools that used to manage data analysis pipelines. Feel free to contribute.
  • Greg Wilson noticed a letter from Von Neuman written in 1952 where the famous mathematician laments that people does not read other people’s code.
  • Greg also wrote two opinion pieces on the blog: one about some old tools that becoming new again, and another about improvisation, Software Carpentry, and Jimi Hendrix.
  • Workshops for the spring and summer need instructors and helpers. If you’re close to North Carolina, they need an instructor for a workshop at Duke University in June. Another instructor is needed for Pisa in Italy for a workshop also in June. In adittion, open spots for Toronto and Vancouver in Canada, Cold Spring Harbor and Ithaca in New York, Paris in France, the Federal Reserve in Washington, and Atlanta in Georgia. Please check the details in this Etherpad or contact Amy and Arliss.

Teach the Web Community Call Recap, March 13, 2014

In our last Teach The Web call, we heard from community members who are empowering others to become web creators in New York City, Pittsburgh and India, and also celebrated the 25th birthday of the world wide web!
First, Jaimie Li from NYC Generation Tech joined us to talk about their first student hackathon, where high school students were challenged to develop digital prototypes that address local challenges like increasing student engagement in school, promoting healthy lifestyle habits, and connecting youth with employment opportunities. GenTech offered Webmaker training to the participants who had no prior coding or web development skills, which in turn enabled them to learn new HTML and CSS skills, and also to create and remix webpages to promote their teams’ digital prototypes. You can read more about their event and see all of the student projects including the winners.

Image from Huffington Post


We were excited to learn that this all came about after Jaimie had come across the TASCasaurus curriculum, which was created by Mozilla’s Hive NYC Learning Network and The After School Corporation. It was developed by Julia Vallera and geared towards educators in after school programs at middle schools to increase student’s digital literacy and interest in STEM (science, technology, engineering, and mathematics), and uses X-Ray Goggles to teach youth about remix as well as the basics of HTML and CSS. Jaimie found this open education resource helpful in planning the GenTech hackathon and she said the X-Ray Goggles were a huge hit! They plan to continue using Webmaker tools at upcoming events, and if you’re interested in volunteering and mentoring NYC students, please get in touch with Jaimie directly.
Continue reading …

Join us for our next community call on March 20 (11 ET)

Our next community call will take place this Thursday, March 20. The call is open to the public and will start at 11 am ET. Call in details can be found on the call etherpad (where you can also find notes and the agenda) and on the wiki. (If you have trouble with the toll-free number, try one of the numbers at the bottom of this post.) Please note: due to Daylight Savings, call in times for those outside of the US are different this week. Please check the top of the etherpad for guidance.

The Science Lab meeting is our community call, taking place each month, highlighting recent developments and work of the community relevant to science and the web. Join us to hear more about current projects, find out how you can get involved, and hear from others about their work in and around open research.

This month, we’ll be hearing about some incredible work recently discussed at a workshop on African scholarship in Nairobi, as well as hearing the latest about our “code as a research object” project with GitHub and figshare.

For this call, we’re thrilled to be joined by Michelle Willmers from OpenUCT at the University of Cape Town in South Africa, one of continent’s leading voices around access and discoverability of African research. She recently led a two-day workshop in Nairobi which we attended exploring these topics, and will be telling us about some of the insights from the workshop as well as some of the remaining challenges. For more background, check out this fantastic interview on Richard Poynder’s blog.

We’ll also be joined by Tezira Lore, a food scientist and communications specialist working with the International Livestock Research Institute, a Kenyan organisation that works to improve food security and reduce poverty in developing countries through research for better and more sustainable use of livestock. Tezira will be sharing some of ILRI’s efforts around sharing research data, content and code. Do tune in. You won’t want to miss this.

And last but not least, Arfon Smith (GitHub) and Mark Hahnel (figshare) will be updating us on the latest work around the “Code as a research object” project. We’ve come quite a ways since our start in December, and look forward to updating you on our progress to date.

Have a project, blog post or event you’d like to share relevant to open science? Add it to the etherpad (see line 95). It’s a great way to share what you’re working on and/or interested in with the community. Don’t be shy. Have a look at last month’s notes for an idea of what others contributed to the conversation.

Mark your calendars, tune in and help us spread the word. Our first few calls have hit record participation (and stretched the limits of open software solutions). Let’s see if we can drum up the same turnout, and be sure to join us a few minutes before 11 ET to secure a spot on the line. For call-in details and links to the etherpad, visit our wiki page. We hope you’ll join us.

Note: Having trouble dialing in? Try one of these numbers. (Note that they are toll calls and you’ll be charged by your telephone company if the number is long-distance.)

After you enter the extension, you’ll be asked for the conference ID, which is 7677.

  • US/California/Mountain View: +1 650 903 0800, extension 92
  • US/California/San Francisco: +1 415 762 5700, extension 92
  • US/Oregon/Portland: +1 971 544 8000, extension 92
  • CA/Vancouver: +1 778 785 1540, extension 92
  • CA/Toronto: +1 416 848 3114, extension 92
  • UK/London: +44 (0)207 855 3000, extension 92
  • FR/Paris: +33 1 44 79 34 80, extension 92

Webmaker Experiments with Brackets

One of the research projects underway in Webmaker is an effort to leverage Adobe’s open source web editor, Brackets, within our tools. We’ve written previously about this in the context of Thimble (codenamed Nimble), and similar work is being explored by Simon Wex within AppMaker.
Brackets is currently a web app you install as a desktop app.  It doesn’t work fully (yet) in web browsers; however, the Brackets’ community has been slowly picking away at this.  Recently things have gotten to a much better place. For our Webmaker uses, “works in modern browsers” is a must.
One of the hardest problems has been how to replace the native filesystem Brackets uses. A few of us have been tackling this problem head-on with Filer. Filer re-creates the node.js fs module, and makes it possible to have persistent filesystems for web apps in modern browsers.
The Filer code has matured in the past few months to the point where doing a full demo of Brackets in a Browser is now possible. Using Brackets+Filer we’ve successfully been able to explore in-browser editing of Webmaker projects.
We still have more work to do, but we’re happy to be able to demo some of the work. For this demo we’ve created a version of Brackets that runs via web server (gh-pages with no special server for the filesystem), and allows for live editing of the same source code being run.  You can try it yourself here:
http://humphd.github.io/brackets/src/ (source is here)
Here’s a screencast of the demo in action:

In this screencast we’re doing a number of things:

  1. Demonstrating Brackets loading statically in Firefox, with no remote filesystem.  Just HTML, CSS, and JS in a browser.
  2. Modifying RequireJS–the module loading system used by Brackets (and most of Webmaker)–in order to load-and-cache all JavaScript into a browser filesystem using Filer. On Chrome/Firefox that uses IndexedDB behind the scenes, and WebSQL in Safari. In essence, we’ve created a way to install a web app by loading it once. We have larger plans for this technique within Filer.
  3. Having Brackets open the folder of JavaScript modules that were cached in step 1
  4. Opening multiple versions of the app at once in different browser windows, and syncing changes across the shared filesystem. We do this using node’s Watch API in Filer.
  5. Live editing Brackets in Brackets (meta enough for ya?) and then testing those changes with a Refresh.  The second, third, etc. loads come from the shared filesystem vs. the server.

And it works well!  Here it is running in Firefox, Chrome, and Safari:
Brackets in Browsers
And the inevitable “does it work on mobile?” proof:
brackets-iphone
UPDATE: with another fix it works in IE10+ :)
Brackets in IE10
This is very much a tech demo to show what’s possible vs. a product we’re shipping.  However we’re excited by the possibilities it showcases.  We hope to have more updates to share in subsequent posts.  If you want to talk to us about the work, stop by the #filer channel on irc.mozilla.org.
NOTES:
If you edit the source, and break your editor, you can force the files to re-download into your fs (overwriting your changes) by adding ?refreshCache=1 to your url:
http://humphd.github.io/brackets/src/?refreshCache=1
If you want to completely delete the files from the filesystem, use ?deleteCache=1
http://humphd.github.io/brackets/src/?deleteCache=1
No attempt to optimize load times, files, etc was done due to the nature of this demo (i.e., we want to be able to edit the exploded source).  Making Brackets load fast(er) is another task.
We haven’t modified the Brackets Extension loader to use the shared filesystem yet, so not all the extensions will work. Unifying Brackets’ notion of the filesystem (so data and app are in the same fs) is something we’re considering.
We’ve been working on adding File Open/Save As… dialogs in Brackets, but this demo doesn’t have that work yet.
If you’re running in Safari, and get prompted to allow the page to use storage, it may mean you timeout the requirejs loading.  Hit refresh to get it going again.