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.
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
Comfortable Dorm-style sleeping quarters.
Meals and Drinks
Coffee (via aldi pod machine) and Tea
Power & Limited Internet
Great People
Prizes
What to Bring
Earplugs
Warm Clothes
Sleeping Bag + Pillow
Bathroom Equipment
Snacks to Share
Computer, Phone & Associated Chargers
Board/Card Games
Headphones
Instruments
Medications
Warm Clothes & Earplugs
Good Attitude
Anything else you need to survive the weekend
Should you attend?
Yes you should.
To get a vibe for the event please check out the Videos, Photos & Tweets from previous events.
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.
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.
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.
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.
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.
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 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.
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:
Laptop or something able to run the following
Some virtualisation software able to run an ISO. I.E. VirtualBox or VMWare
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.
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.
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 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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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:
…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
…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.
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:
Disaster has stuck and its up to you to save the day
Everyone is stuck in their tents during bad weather: how can we all communicate?
What is the app supposed to do? (eg. “It’s a game”, “camping navigation helper”)
Some screenshots of your app’s UI, any wireframes that went into designing the app
Explain to us what information the app stores offline, and how and when it syncs to the remote server
Describe a bit about what technologies you chose for the project and why (e.g. “I chose Angular because I wub it”)
Tell us about any challenges you encountered
Tell us what else you would have built given more time
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:
Online vs. Offline experience: Does the app continue to provide value to the user when offline as compared to online? Does the experience degrade gracefully for the user when connectivity is interrupted?
Stability: Does the app crash on us? Crashy hackathon apps usually mean you didn’t scope your features well, so be careful.
Usability: Is the app easy for us to use without you having to explain “press that button over there”?
Surprise & Delight: Does the app make us feel like sparkles
Judges
Guest Remote Judge: Joel Califa
A graduate of Parsons' Design & Technology program, Joel has been designing and building websites since 2001.
... and also Tim Oxley, our fearless CampJS leader
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.
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.
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 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!
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.
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.
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 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 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.
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.
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 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 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 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 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
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 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 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 is opinionated JavaScript artist. Author of Raphaël and
Snap.SVG JavaScript libraries. Currently he is working as Senior
Computer Scientist at Adobe.
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.
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.