NaBL: A Meta-Language for Declarative Name Binding and Scope RulesEelco Visser
Slides from talk for Code Generation 2013 in Cambridge. Most of the presentation was a live demonstration and is not reflected in the slides. Slide 5 is the code that we ended up developing during the presentation.
This is a beginner-level programming session where you will learn the fundamentals of Java. Between each lesson, you'll have skill testing in the form of quizzes, as well as hands-on experience in the field.
An intermediate level session where we delve deeper into the concepts of Java and learn how to code these out.
Between each lesson, you'll have skill testing in the form of quizzes, as well as hands-on experience in the field.
NaBL: A Meta-Language for Declarative Name Binding and Scope RulesEelco Visser
Slides from talk for Code Generation 2013 in Cambridge. Most of the presentation was a live demonstration and is not reflected in the slides. Slide 5 is the code that we ended up developing during the presentation.
This is a beginner-level programming session where you will learn the fundamentals of Java. Between each lesson, you'll have skill testing in the form of quizzes, as well as hands-on experience in the field.
An intermediate level session where we delve deeper into the concepts of Java and learn how to code these out.
Between each lesson, you'll have skill testing in the form of quizzes, as well as hands-on experience in the field.
Problem that I see regularly in the first years I TA - they're too overwhelmed by syntax and don't manage to break the problem down into bits so that they can code it.
Internet security: a landscape of unintended consequencesSarah Allen
Increasingly, software is connected to the internet. How do we design software that will do what it was designed to do without making humans and connected systems vulnerable?
Sarah Allen shares lessons learned from Shockwave and Flash, and the kinds of modern exploits that ought to keep you up at night, along with both modern and time-tested techniques that every developer should know.
Code Mesh LDN 2019
RTMP: how did we get to now? (Demuxed 2019)Sarah Allen
RTMP: web video innovation or Web 1.0 hack… how did we get to now? (Demuxed 2019)
One of the creators of RTMP will take you back to a time before Firefox, Safari, and Chrome, when Internet Explorer was used by the majority of people on the Web, and over 98% of browsers had Flash installed. RTMP was first prototyped in late 2000 and released in July 2002. Sarah Allen shares the untold story of the origins of this protocol — careful design choices and unexpected hacks that led to a de-facto standard that still drives the majority of live web video today.
Problem that I see regularly in the first years I TA - they're too overwhelmed by syntax and don't manage to break the problem down into bits so that they can code it.
Internet security: a landscape of unintended consequencesSarah Allen
Increasingly, software is connected to the internet. How do we design software that will do what it was designed to do without making humans and connected systems vulnerable?
Sarah Allen shares lessons learned from Shockwave and Flash, and the kinds of modern exploits that ought to keep you up at night, along with both modern and time-tested techniques that every developer should know.
Code Mesh LDN 2019
RTMP: how did we get to now? (Demuxed 2019)Sarah Allen
RTMP: web video innovation or Web 1.0 hack… how did we get to now? (Demuxed 2019)
One of the creators of RTMP will take you back to a time before Firefox, Safari, and Chrome, when Internet Explorer was used by the majority of people on the Web, and over 98% of browsers had Flash installed. RTMP was first prototyped in late 2000 and released in July 2002. Sarah Allen shares the untold story of the origins of this protocol — careful design choices and unexpected hacks that led to a de-facto standard that still drives the majority of live web video today.
Rocky Mountain Ruby 9/30/2016
I share stories and examples from open source, business and community organizing: how communication about what we do is as important as the work itself. I'll also dive into coding as communication with an example of good API design highlighting the expressiveness of the Ruby language.
Feb 2016, Government Transformation conference
Sarah will tell the story about how innovation was inspired at the Federal Government. She will explore what 18F is and how this internal digital agency was formed within government. She will highlight a specific project that has been incredibly successful at encouraging collaboration between federal government employees from different agencies around task sharing. Sarah will also discuss how Open Source software is used by 18F and what impact that has had.
Transparency is a powerful means of making change. Open source increases the speed of software development and leads to higher quality code. These patterns of how we make software are changing how we do business and how our governments work. These aren’t just patterns of how we write code; these are patterns of how we interact with each other, teach and learn new skills, and experiment with new ideas. When we make our work visible, we expand its potential, and increase the chances of dramatic, unexpected impact.
Ruby Conf Taiwan, Sept 12, 2015
July 2015, Brighton Ruby
Sarah Allen introduces some theories of play and how to apply these and other ideas from games to making other kinds of software fun, and then how our work can be influenced by ideas of play.
Sarah Allen, Magma Conf 2015
This talk explores power of transparency to create with higher quality at lower cost, looking at open source community process, code and documentation, as well as lean startup open business, customer, and product development processes.
Sarah Allen, Mightyverse @mightyverse, AltConf, June 2015
Making your app fun to use requires more than sprinkling a little gamification on top. It requires thoughtful imagination and experimentation. In this talk, I highlight some expert perspectives on theories of play and behavioral psychology, and and how we can apply these ideas in mobile app design. I also share prototyping techniques and how to validate whether a design will actually be fun.
Ruby in the US Government for Ruby World ConferenceSarah Allen
In the United States, Ruby is a common technology choice for startups and is also gaining popularity in large companies. In contrast, Ruby is rarely used for US Government projects. Why do startups favor Ruby while the government makes other choices?
I have been both a startup founder and government employee. After developing a Ruby on Rails web app for my startup Mightyverse from 2009, I worked as a Presidential Innovation Fellow within the Obama administration. I will discuss work in both spheres, and highlight the common themes in the development process.
Playing is simple, even a child can do it, but designing something simple is hard. How can we combine prototyping with production software to get our ideas in front of real people? How can we evolve our software over time? How do we measure if something is fun?
I will talk about how Ruby’s flexibility and a strong testing ethos can bring some sanity to this uncertain world. And when I say testing, I’m not just talking about RSpec, Cucumber or Capybara, I’ll share stories from Mightyverse about how we test whether our software actually “works” for the people who use it — sharing failures, I mean, learning, as well as success.
I love Ruby, but last year I found myself at the Smithsonian Institution coding in, of all things, PHP & Drupal. And I realized that despite my ambivalence towards those technologies, I had no compelling-enough reason to propose Ruby as an alternative. How did we get to this point? I’ll tell 3 reasons we didn't use Ruby, and reflect on whether these are things we want, or problems we should solve.
Sarah Allen talks about her experience as a Presidential Innovation Fellow at the Smithsonian, then poses the question: why was Drupal a good fit for her project, and how did Ruby and Rails fall short?
This is a review of the Transcription projects outside of the Smithsonian. This presentation is not comprehensive. It focuses on looking at the breath of user experience choices for engaging with volunteers.
An overview of video for the mobile web with a "lean startup" case study about how supporting web video on mobile had both expected and unexpected positive effects on Mightyverse metrics.
1. method_missing When you send a message to a Ruby object, Ruby looks for a method to invoke with the same name as the message you sent. You can override method_missing and tell Ruby what to do when it can’t find a method. Developers often use this to create domain-specific languages (DSLs) in Ruby.
2. class Thing def method_missing(m, *args, &block) puts "There's no method called #{m} here -- please try again." puts "parameters = #{args.inspect}" end end >> t = Thing.new >> t.anything("ddd",3) There's no method called anything here -- please try again. parameters = ["ddd", 3] => nil