CampJS V!

May 22–25 2015

Melbourne, Australia

CampJS V is now over - thanks to everyone that attended!

Diversity Tickets on Offer courtesy of the kind folk at Buildkite

We are deeply grateful to the following companies for their support of CampJS V, without them CampJS would not be possible:

If you are interested in joining these companies in helping make CampJS as amazing as it possibly can be, please take a look at the sponsorship information doc.



Information

CampJS is for everyone who is interested in web technology. Beginners & experts, all are welcome.

Networking with other developers is arguably the most valuable aspect of a conference, yet it’s often a hurried and fleeting affair that happens in-between the schedule of a regular conference — but CampJS isn’t a regular conference. This weekend-long retreat allows everyone enough time to learn new things, relax and most importantly: create real friendships and connections.

CampJS creates a unique blend of expert-led, structured content and self-directed, unstructured learning. Some content is scheduled, but the main area is reserved for hacking. The final night is reserved for demos for people to show off what they have built or learned at the event.

When?

CampJS V will commence at 3pm Friday on the 22nd of May, and run through to 9am Monday the 25th of May. The Camp will be held at Lord Somers Camp, Victoria, Australia.

The venue provides food, drink and comfortable accommodation for the duration of the event. You may camp on the grounds if that is your wish.

Transport

A bus will be provided to take attendees to and from the venue. It will travel from Tullamarine airport and back via Melbourne CBD. Interstate travellers should fly into Tullamarine airport around midday, busses will leave between 1 and 2pm. The return bus will get people back to the airport before midday.

What’s Provided

What to Bring

Should you attend?

Yes you should.

To get a vibe for the event please check out the Videos, Photos & Tweets from previous events.

Code of Conduct

CampJS takes pride in being accessible and welcoming for people from all walks of life. Participants should to review our code of conduct prior to attending as any violations will be taken seriously.

View the CampJS Code of Conduct

Activities

NodeBoats Builder with Spark.io

Chinmay Pendharkar

We’re going to dive into the mysteries of hardware programming with JavaScript. You’ll get all the parts and tools necessary to build your own kick-ass boat with a Spark Core at its connected heart.

We’ll throw you in a team of two and your creativity and craftsmanship is key to come up with, build and program the best boat of the conference. This workshop will be delivered in multiple parts over the weekend and on the Sunday afternoon you’ll get to test your boat in a race against other competitors, with prizes for the winning team.

We only have limited spots for this event, please register your interest here if you plan on participating.

A big thank you to spark.io for providing the Spark Core Maker Kits. Chinmay ran this same workshop at JSConf.asia 2014.

Chinmay’s NodeBoats workshop at JSConf.asia 2014

The Disconnected Ensemble: Scattered Clouds, Underground.

Soledad Penadés

Leave the routers and repeaters, the cabling and the splitters, all behind. Just bring those phones, and let’s go underground. Let’s sit on a train and play music, left to our own devices, with our own devices.

glslify

Hugh Kennedy

At the core of WebGL is GLSL, a domain-specific language that allows you to write code leveraging the power of your graphics card for super speedy rendering of countless triangles and/or pixels.

glslify adds a Node.js-like module system on top of the language, so you can create and consume community packages on npm with GLSL as easily as you can with JavaScript. This is an introduction to how glslify works, why you’d want to use it, and what’s possible using the tool.

High Performance in the Critical Rendering Path

Nicolas Bevacqua

This workshop covers the past, present and future of web application performance when it comes to delivery optimization. We’ll start by glancing over what you’re already doing — minifying your static assets, bundling them together, and using progressive enhancement techniques. Then we’ll move on to what you should be doing — optimizing TCP network delivery, inlining critical CSS, deferring font loading and CSS so that you don’t block the rendering path, and of course deferring JavaScript. Afterwards we’ll look at the future, and what HTTP 2.0 has in store for us, going full circle and letting us forego hacks of the past like bundling and minification.

The ESNext Generation

Jess Telford

In this journey, we will explore the strange new worlds of ESNext’s Iterators and Generators.
We will seek out new ways to loop; new iterations.
We will boldly code what no one has coded before!

Follow along as we discover; How Iterators, and then Generators came to be; How they can be leveraged to solve practical problems, and; How they can be used in production today!

Go & JavaScript — Together at Last

Conrad Pankoff

Go is in vogue right now and JavaScript is an unstoppable force. Learn about using the otto JavaScript interpreter to add JavaScript functionality to an existing Go application.

Holistic InfoSec For Web Developers

Kim Carter

Join Kim Carter in the exploration into an insightful set of steps he has learned, from an architectural perspective down to the zeros and ones. Also providing insights of how attackers of your systems think.

We will also look at other tried and tested practices and processes for reducing security defects early. That is every Sprint for each Product Backlog Item (PBI). As an architect, engineer and security specialist, Kim will uncover how to identify the lowest hanging fruit (for the attackers) by taking a holistic approach (a 30,000′ view), then honing in on the areas with the highest security ratings, based on a tried and tested threat modelling process that allows you to discover and prioritise the defects most likely to be compromised by attackers of your systems.

We are going to look at automating (Security Test (Behaviour) Driven Development (STDD/SBDD)) some of the traditional manual based penetration testing methods often performed after go live and bringing them forward into parallel with your development cycles (Sprints).
Thus empowering Developers to do what was once only performed by deeply specialised security consultancies at the end of the project. Dramatically increasing the confidence we as developers have in what we are delivering, thus reducing the cost of change due to defects being found as they are introduced rather than at go live. Trainee Requirements:

Scope Chains & Closures

Jess Telford

Scope Chains, Closures, Hoisting, and Garbage Collection all have one thing in common: They’re often hand-waved away. How do closures actually work? When does Garbage Collection occur? What really IS the Scope Chain?

In this talk, we will discover it’s not black magic after all; No hand waving is required to explain these language features, in fact you’ve been using them all along without realising.

Cross Origin Resource Sharing for Fun & Profit: An idiot’s guide to CORs, APIs, & server relationships

Ryan Pauley

CORS enables web applications to share information from server to server. Without CORS, APIs, and much of the internet are far more frustrating to share with. Introduced to CORS in a Rails<>Node project, I had a head-smashing time trying to get our servers to play nice and share data. I wasn’t content with stack overflow’s cut & paste fix and this presentation is the end result of my desire to come to a better idea of how to manage CORS challenges.

HTTP Headers – The Simplest Security

Wei Lu

Not sure what Content-Security-Policy and Strict-Transport-Security are about? Your web apps are at risk! Security is crucial but can be hard to get right. Luckily for web developers, the HTTP protocol comes with well-thought-out security specifications. Modern browsers implementing those security features are capable of doing much of the heavy lifting for us. It is our responsibility to put the browsers on guard. This talk explores which security headers are especially useful along with when and how to use them.

ORTC — bringing WebRTC to mobile devices and servers with JavaScript

Adam Ullman

ORTC is a free open-source project that enables mobile and server endpoints to communicate with Real-Time Communications via native and simple JavaScript APIs. It builds upon the existing WebRTC capabilities of the browser and fills in some gaps to make interoperating with mobile devices and servers possible. This talk will answer some questions about what is missing in WebRTC, what does ORTC hope to achieve and why do you care. It will also dive into some open source ORTC implementations and give a demo.

A State of Change — On the future of Object.observe

Mark Dalgleish

Tracking data changes and presenting them to the user is a fundamental part of any web application. With Object.observe, JavaScript now offers us a fast, native way to track changes to standard objects without the need for custom model types or dirty state checking. As game-changing as this new functionality may be, we might just be seeing the beginning of the next great JavaScript rivalry: mutable versus immutable state.

Using WebCrypto to Protect User Data

Paul Theriault

With “offline” all the rage, protecting your user’s data is more important than ever. Come learn how to protect client-side data using the Web Crypto API. We’ll demystify cryptography basics and cover practical considerations for the protection of secrets in web applications.

IoT Commerce with Node

Steven Cooper

In this session we will look at the IoT world and how it can be integrated with Node to create new and awesome ways for users to interface the digital world like never before and ways that developers can monitise new IoT opportunities.

Beyond Simple Payments

Daniel Cousens

An introduction to advanced payment techniques with bitcoin using JavaScript. A talk will cover a basic primer on bitcoin and the reasons for some of the difficulties in this area; including limitations. A follow-up workshop will involve some basic tutorials as well as advanced.

Elements of Mercury

Colin Gourlay

I’m going to briefly cover the various modules that make up mercury, which will touch on virtual DOM, delegated events and observable state. I’ll also show a few examples which will hopefully illustrate why these concepts work so well together, and why not prescribing specific implementation details is a good thing.

Decentralizing Diversity – Maintaining community is everyone’s responsibility

Pomke Nohkan

Unlike others, for good or bad, the Javascript community is a headless monster. It is exactly the decentralised nature of the JS community which has allowed us to thrive far beyond other comparable technologies.

So when it comes to steering the moral behaviour of the Javascript swarm, it takes a hive-mind rather than a top-down approach. So we need to be communicating about this on a regular basis.

It is everyone’s responsibility to make the Javascript community one which welcomes people from all backgrounds, and that unless we take this seriously and ALL contribute to what defines to collectively acceptable behaviour, then (even from a purely selfish POV) we rapidly diminish the quality of our environment (And of course do real harm to others).

The Future of Node

Rod Vagg

Rod is passionate about Node.js and its future as a wide-spread, general-purpose and enterprise programming platform. This passion has lead to his involvement in io.js as a way to reinvigorate the core of Node.js and bring it in alignment with the future of JavaScript.

Snap.SVG inside out

Dmitry Baranovskiy

Just another powerful tool in your toolbox. Snap allows you to easily manipulate vector graphics on the web. Lets see how easy and hard it is and go behind the scenes. I will reveal some secrets of Snap that not many people know.

Particularly Particles — an affair brought to you by JS

Joshua Koo

A guy who fell in love with particles and javascript gets torn between fulfilling the expectations of society and following his heart. After a period of time separated from his passions, he decides going on a journey to remember and rekindle his affections. Meeting new people and friends, he shows them about finding out more about his love at first sight.

React.js

Jed Watson

At Thinkmill, React has changed our client-side development experience. We’re building more complex things with less code, and having more fun doing it. So I want to share that with you.

In this session we’ll go through an intro to React, what it brings to the table, and how it fits into a modern development workflow. We’ll also see how you can start using it without a painful transition process, take advantage of reusable components, and look at how that scales to a complex React.js application.

Webtask: All you need is code

Ben Schwarz

Just say you’re writing a single page application — you step back to admire your work… Now, just add two simple dynamic actions. Hmm. Architecure, deployment, hosting. Just like you always have. Ok. I got that. Tying a couple of systems together using IFTTT… hmm, just need to transform it a bit, damn… I need to write a little server that receives a webhook. Deployment, hosting. Just like you always have.

What if you could just write some simple single use code, and forget about deployment altogether? Enter webtask.io. I’ll show you came to be, and take you through how you can build and launch powerful applications without worrying about another server somewhere.

Ops for Dev: How to not get paged

Michael Pearson

Small, seemingly inconsequential decisions made over the lifetime of a project can have a massive effect on both the reliability of your application and your ability to manage & improve on it.

Michael Pearson draws on his background as a systems administrator and software developer to teach you how to understand and manage risk, avoid unintended complexity in your architecture, and recover from incidents when they occur. This session will be of special interest to any developers responsible for their application's hosting or people wishing to find common ground with their operations team.

Offline-first Hackathon with DigitalOcean

Angelina Fabbro

Theme

Why ditch your phone when you go bush? There’s no internet connection but a few well made applications can make or break those boring moments trapped in a rainy tent when the weather gets bad. Help us innovate our way around a lack of network connectivity in this offline-sync themed hackathon. There will be prizes for the best entries.

Teams

We recommend that you form teams of 2-3 people. Building an app from scratch in a few days is a lot of work. That being said, you can work on your own or in a larger size team: it’s up to you.

In designing the prize packs, we tried to provide enough cool stuff for roughly a team of three.

Criteria

All submissions must:

  1. …function nearly identical in both online/offline states, which is to say in the best case the user doesn’t ever notice a difference between the two
  2. …sync data to a DigitalOcean droplet/virtual server

Beyond these two criteria, you can be as creative as your heart desires. You’re encouraged to stay on theme with “camping” because arbitrary constraints as such can make magic happen. However, really we just want you to make something super cool and have a lot of fun.

To get started quickly, you might be interested in DigitalOcean’s MEAN stack one-click deploy.

Examples: Turn-based multiplayer game that syncs game state to the server, chat app that syncs communication, mapping app that updates the location of other campers in relation to one another when connectivity is available

On-Theme Hacking Prompts

Here’s a few “hacking prompts” in the style of essay or writing prompts. These ideas are here for you to bounce off of on your way toward your great idea:

Judging

Before 5pm on Sunday, email cyborg@digitalocean.com with the following information:

You don’t need to write a novel here: make sure you app speaks for itself.

Angelina will follow-up and tell you when you will be able to demo your app to the judges during the window of 3-4:30pm. You will have a five minute demo slot to show the judges your app in action. HARD STOP at five minutes.

Winners will be announced late in the evening after demos

Projects will be judged by the CampJS mentors according to the following criteria:

Judges

Guest Remote Judge: Joel Califa

A graduate of Parsons' Design & Technology program, Joel has been designing and building websites since 2001.

Mentors Judging at CampJS

He is currently a Product Designer at DigitalOcean, where he works on strategy, design, and front-end development. Prior to this, he designed innovative interfaces at Netcraft, Israel's leading interactive agency, and Amicus, a YC-backed startup that helps nonprofits turn their supporters into fundraisers and advocates.

Resources for Getting Started

WINNERS

  1. Pixel Anarchy
  2. Audio Splatter (try in Chrome)
  3. CoNote

PRIZES

Bomb-Ass Mighty-Fine Prize for FIRST PLACE:

Damn Fine SECOND PRIZE for Cool Devs Making Cool Apps:

Totally Rad THIRD PRIZE for Badass Devs:

Internet?

Yes.

There will be network connectivity & some Internet at the venue, brought to you by CampJS & DigitalOcean.

um hi i have a question ok

Email Angelina Fabbro at cyborg@digitalocean.com.

International NodeSchool Day

Inspired by Substack’s stream-adventure, Rod Vagg unveiled learnyounode and the workshopper framework at CampJS II in August 2013. This began a chain reaction resulting in the formation of NodeSchool, an amazing global community spreading JavaScript skills worldwide. NodeSchool has grown to 26 workshops and inspired many hundreds of community events worldwide. You can read more about the creation of the NodeSchool community in Mikael Roger’s excellent post on the topic.

This year, on May 23rd the NodeSchool community is organizing a day of educational web events around the globe. This coincides with the second day of CampJS, so to celebrate we’ll be mentoring NodeSchool sessions for the six workshops which were originally created for a CampJS event:

This is in addition to launching new TBA workshops.

"Try and leave this world a little better than you found it"

CampJS follows the scouts rule. With this in mind, we strongly encourage & support the creation of NodeSchool-esque workshops so presenter’s efforts can benefit the global JavaScript community, continuing to educate far beyond the scope of a CampJS event. It would be great if this were a model more conferences would adopt! Big props to NodeConf US which also inspired the creation of a number of NodeSchool workshops last year.

Mentors

Soledad Penadés

Devevangineer at Mozilla. Building real time audio+graphics experiments with JavaScript; breaking half the browsers in the process. It’s fun!

Chinmay Pendharkar

Chinmay is a geek who works with web based audio tech. His background is in embedded systems and engineering acoustics, and he spent 6 months helping to build an autonomous robotic submarine. He is the organizer of a bunch of cool local geek/developer/hacker meetups in Singapore.

Angelina Fabbro

Angelina Fabbro works for DigitalOcean, and before that, was on the Developer Tools team at Mozilla. Polyglot but prefers JavaScript and Python, Sublime Text on localhost and vim remotely, and earl grey tea to most anything else. Interested in figuring out how as developers, we can work smarter and spend time solving the problems we truly find interesting. Come say hi!

Nicolas Bevacqua

Nico is an enthusiastic JavaScript hacker, author, and public speaker based in Buenos Aires, Argentina. He works as a freelancer and contributes to the open-source community on a daily basis.

Matt McKegg

A JavaScript hacker and backyard musician and from Wellington, NZ. Lover of all things open and modular. I spend most of my time pressing buttons of various shapes, sizes and colours. Sometimes these buttons make sounds.

Jess Telford

A lover of JS, advocate of Bitcoin, hacker of ES6, and a constant learner, Jess recently returned from an eye opening year in Silicon Valley, bringing back the best of the tech scene to share what he’s learned. Now the official “Javascript Guru” at domain.com.au, Jess has also been privileged enough to work with Yahoo!, The Iconic, and Groupon.

Hugh Kennedy

Hugh is an Australian frontend developer and computer graphics enthusiast. He currently works with NodeSource, focusing his efforts on data visualisation and WebGL. He has published over 300 modules to npm and is also one of the maintainers of stack.gl, a Node.js-driven ecosystem of modular WebGL components.

Adam Ullman

Adam is the Director of API Engineering at TokBox which provides OpenTok, a cloud platform for video communications built on top of WebRTC. Adam was one of the original TokBox employees and has been loyal to the vision and the work since February 2007. Originally working from TokBox’s home base in San Francisco, Adam moved back to his homeland of Australia to launch Tokbox Australia in December 2011. Adam now directs the Sydney team, which is responsible for building the OpenTok JavaScript API.

Mark Dalgleish

Mark Dalgleish is the lead organiser of MelbJS and Decompress, and a self-described full-stack JavaScript addict and interaction craftsman at SEEK.

Conrad Pankoff

Conrad works at Macropod Software, hacking on Go and JavaScript. He enjoys sunsets, long walks on the beach, and chilli dogs.

Kim Carter

Kim Carter is a Software Engineer, Architect, Entrepreneur with a strong focus on security. Kim is also the founder of BinaryMist Ltd. He is passionate about and enjoys many things. Some of which include:

  • Designing and creating robust software and networks.
  • Breaking his and others software and networks, then fixing it/them.
  • Teaching, training, mentoring, motivating, listening to and being around smart people.
  • Increasing quality awareness and helping people and organisations implement higher quality in a cost effective manner.
  • Helping organisations to increase productivity.

Steven Cooper

Steven Cooper is responsible for working with the strong developer community within Asia-Pacific, to develop and nurture the healthy start-up culture that continues to flourish across the region.

Over the last 20 years, Steven has worked as a senior developer for a host of start-ups and as a developer analyst for more than 10 years with Sensis. Before joining PayPal, he configured and spec’d mass production technology hardware for the likes of Virgin, Coca-Cola, Pepsi, Visa, St. George and Westpac.

In his current role, Steven hopes to align businesses with the most appropriate PayPal solutions — products that deliver efficiency, flexibility and enable scalability.

Paul Theriault

Paul Theriault is the security lead for Mozilla’s Firefox OS project — a project developing a mobile operating system based on web technologies. He has an extensive background in web security with experience ranging from application security testing and code review to risk assessment and security management.

Ryan Pauley

Ryan is Ruby developer for a shipping startup called Sendle, but a Javascript developer for fun. A late-blooming coder, he has only recently started programming professionally after studying web development with General Assembly, Sydney in November. Working remotely from Canberra, Ryan organizes programming meetups for the two dozen non-dot-net developers in town.

Wei Lu

Wei is a software engineer working for Quantcast and co-maintainer of a number of popular open-source projects. Wei led the development effort of a bitcoin web-wallet, Hive Wallet and started her career working for Pivotal Labs.

Colin Gourlay

Colin Gourlay is an interactive story developer for ABC News. He works alongside journalists and designers, building custom controls, data visualisations, quizzes and multimedia features, trying to discover interesting ways to tell stories on the web.

Editor’s note: Colin is the world-renowned genius behind namethatblue.com

Daniel Cousens

Jed Watson

Jed is the creator of KeystoneJS, TouchstoneJS and Elemental UI as well as a partner / lead technical architect at Thinkmill in Sydney. He spends a lot of time working with node.js, react.js and open source.

Pomke Nohkan

Pomke is a Javascript & Python hacker, teapot collector and purveyor of purple.

Pom co-runs codekuma.io, a monthly newbie-friendly hack session for devs from all walks of life. Interested in the empowering nature of software engineering in the developing world and promoting diversity in Australia’s software industry.

Pomke is Head Janitor at etaskr doing all the Node things.

Rod Vagg

Rod Vagg is Director of Engineering with NodeSource. Rod is known for his work across the Node.js ecosystem, including in the Node.js databases community and for the creation of key NodeSchool workshoppers.

Dmitry Baranovskiy

Dmitry Baranovskiy

Dmitry is opinionated JavaScript artist. Author of Raphaël and Snap.SVG JavaScript libraries. Currently he is working as Senior Computer Scientist at Adobe.

Ben Schwarz

Ben Schwarz

Team @CSSConfAU, Building @calibreapp & Blessing the rains down in Africa. Developer advocate at Auth0.

Joshua Koo

Loves outdoors as much as computers, and is therefore excited to attend CampJS. Senior engineer from Zopim (a Zendesk company), currently building next generation platform tools for developers. Explores new and random ideas in his free time. Also organises creative coding meetups in Singapore, and his most popular github repository seems to be a particle system library written in javascript.

Michael Pearson

Michael Pearson

Known for laying cable & mis-interpreting benchmarks at CampJS IV, Michael is the Development Lead for Marketplacer. Likes big dogs, chainsaws, forests, Kerbal Space Program and things that do what they say on the box.

CampJS in the Past

CampJS IV Videos

Nov 2014

CampJS III Videos

May 2014