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.