Git Product home page Git Product logo

budapest's People

Contributors

gergelyke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

thebergamo

budapest's Issues

Build your own JavaScript powered radio

Title

Build your own JavaScript powered radio

Description

Capture and transmit radio waves using software (and just a tiny bit of hardware). This talk is about SDR (Software Defined Radio) and how you can listen to and transcode the radio spectrum using Node.js. It allows you to interact with IoT devices, debug cellular meta-data, and intercept commercial and private airplane communication.

Learning objectives

You’ll get a soft intro to Software Defined Radio and how you can use Node.js to interact with the radio spectrum

City of residence

Copenhagen, Denmark

API Documentation Done Right

Title

API Documentation Done Right

Description

Documentation is hard. Especially while prototyping, there are hundreds of changes on endpoints and it's some times impossible to keep up with documenting them. We're currently working on a new middleware to automate API documentation with a few simple techniques.

Learning objectives

We'll go through several documentation styles and possibilities, a little bit of Swagger and how to have your fully automated API documentation ready for consumers within minutes.

City of residence

Barcelona, Spain

debugging < profiling < monitoring < tracing

Title

debugging < profiling < monitoring < tracing

Description

For each stage of your applications lifecycle there are viable ways to get insights into Node.js.
But what happens if we attach a debugger or what does the V8 profiling facility give us and what does it cost and what makes tracing Node so hard to do?
Let's run through the various metrics available to learn when to use which and find out what's on the slate for upcoming versions of Node.

Learning objectives

  • Get to know the metrics Node.js provides
  • Learn to interpret them
  • Understand the theory behind them

City of residence

Linz / Austria

Conflict Resolution with Guns

Title

Conflict Resolution with Guns

Description

How do you survive failure? You distribute. But distributed systems are distressingly complicated, everything from PAXOS to RAFT. Can we do better? Can we simplify things while still achieving reasonable results? And how do you handle conflict without a Master?

We'll demonstrate some amazing recoveries from harsh failures and go into detail about how the fully Open Source, peer-to-peer distributed algorithm works. We'll also discuss its weaknesses, where it fits in the CAP Theorem, and how it can be used as a building block for higher level consistency guarantees.

Learning objectives

You'll learn why Master based algorithms like PAXOS and RAFT have so many edge cases, and why Masterless alternatives are better - excluding certain limitations. You'll come out of the talk with a fresh perspective on concurrency that will help you make better decisions for your company's tough distributed problems and why graphs help solve them.

City of residence

Los Angeles or Salt Lake City

Speed as a maximum priority with Node.js

Title

Speed as a maximum priority with Node.js

Description

We all have tried Express, Hapi or other Node.js frameworks. They are awesome, but sometimes we need to use a custom solution to get the maximum out of our servers for a specific purpose.

I will show you how we use dedicated worker processes with ZeroMQ to push the limits of our severs further, how we ensure speedy responses even when our database layer gets grumpy, and why it is good to tell yourself how fast your system needs to be before you start coding.

Learning objectives

  • Advantages of Worker pattern in Node.js
  • Using ZeroMQ with Node.js
  • Tips for speed-oriented applications

City of residence

Prague, Czech Republic

Video pitch https://www.youtube.com/watch?v=j7CXtsfI-2o

NodeGirls or how attract women for IT events

Title

NodeGirls or how attract women for IT events

Description

Nowadays everyone talks about diversity in IT and why we don't have enough women. Every time I hear this discussions the only solutions are coming up is to make IT attractive for girls from childhood, encourage girls-teenagers etc. It is a good solution but in a long term. But is there anything we can do in a short-term?

I by myself started programming 2.5 years ago with self-guided tutorials, online courses and occasional workshops. Now I work as a full stack javascript/node developer and mentor in Sydney. I'm also co-organiser of WomenWhoCode in Sydney, co-organiser of Nasa Space Apps Challenge, organiser of NodeSchool workshops and a founder of NodeGirls Sydney (upcoming Melbourne and Brisbane).

Having organised and hosted a bunch of IT events for the last year I learned a lot about diversity and I would be happy to share that knowledge with others.

Learning objectives

  • Encourage women to join, participate, mentor and organise IT events
  • Share experience on how to organise high-diversity events, hackathons, workshops

City of residence

Sydney, Australia

Building chat bots with Node.js, Telegram example

Title

Building chat bots with Node.js, Telegram example

Description

What are the chat bots and why could chat bots become/becoming important right now?
Basically, nobody is going to install your mobile app anymore, it's not convenient, people are fed with the number of mobile apps on their phones. If you are another pizza delivery - people would not install your app, however they can contact you via their favourite messaging platform.

Which messaging platforms are allowing us to develop the chat bots?
Facebook, Slack, Telegram, Microsoft Bot Framework (https://dev.botframework.com/)

As Telegram provides the most richest API comparing to the other messaging platforms, further I'm going to focus crowd attention on developing for this platform.
How to develop the chat bot? What do you need for local development, how to deploy your bot?

  • How to integrate unit and e2e testing of your bot?
    I expect it would be the biggest part of the section, where I want to share my experience in developing the Telegram bot.
    Currently you can find my opensource "learning-germant-bot" on GitHub. During the development I have found a list of interesting things, which can make it easier to start bots development for others:
  • Registering the bot with BotFather.
  • Technologies used Hapi.js + MongoDb.
  • Using https://ngrok.com/ for testing your bot locally.
  • Using https://buddy.works/ (for free) for configuring of CI for your bot, not an advertisement, only my experience.
  • unit and e2e tests

Using storebot. Analytics for your bot?
After the bot is ready to go live we can publish it to the Telegram's bot store. https://storebot.me/ .
It's already possible to track analytics for your bot, using http://botan.io/ .

Even more interesting
To make the presentation even more interesting, I suggest developing some custom opensource bot for the conference. Therefore during the presentation I will refer all the points to the BudapestNodeJsBot development process.

Learning objectives

  • what are the chat bots, why do we need them, why it could be promising area to invest your time
  • how to build a Telegram bot from A to Z

City of residence

Hamburg, Germany

The Hitchhiker's Guide to Serverless

Title

The Hitchhiker's Guide to Serverless

Description

"Serverless". It is already being called the buzzword of 2016. Steve is going to bring "serverless" back to reality by showing how Bustle has built a fully serverless application platform. Real production examples handling millions of API calls a day. You will leave knowing if the hype is justified.

Learning objectives

This talk is not just about explaining what serverless is. I'll do a little of that, but I want to unpack "serverless" with concrete examples. At Bustle were doing ~15 million serverless API calls a day. Several of our applications are completely end to end serverless. I'll talk about how we use it, where it has been awesome, where it has fallen down. I want attendees to leave with a understanding of what a building a real production serverless platform is like. I want to give them a real foundation of knowledge that could be used to justify building serverless apps to clients/PMs/CTOs and also non-technical colleagues.

City of residence

Philadelphia, USA

Large distributed desktop application design with Electron

Title

Large distributed desktop application design with Electron

Description

In the new era of HTML 5 and Javascript, large global enterprises have started to redesign their JAVA SWING, WPF, or flex applications in HTML. Banks or cargos freight have complex long flows, big models, and hugely, a very long list of requirements!

This talk is about how to design a large scale enterprise system, with a complex UI eventing system that needs to be in real time locally and globally.

Learning objectives

  • Distributed Domain Driven Design (DDDD) in Javascript / Typescript
  • Npm and packages
  • Electron, and modules

City of residence

London

The Dark Side of Observables

Title

The Dark Side of Observables

Description

Reactive Functional Programming is the new kid in the block, everyone loves it, and so do I. It provides a different way to think about async, and it's a key component to provide smooth experiences, that's why Netflix promotes it, and Angular 2 have RxJs as one of its 4 dependencies.

But like most things, the devil is in the details. Instead of doing Yet Another Observable Talk, providing the selling points, the silver bullets, I decided to take out the dirty laundry, see what are the things to look out for, the gotchas, and what are the things I wish I had known before starting out.

Learning objectives

  • Learn common pitfalls when using Rx
  • Understand how FP relates to Rx

City of residence

Buenos Aires

Use Promise, Future and some functional programing stuff without being a math nerd.

Title

Use Promise, Future and some functional programing stuff without being a math nerd.

Description

Javascript is awesome, and asynchronous. But some libraries are made by egocentric people : how to contain all DB interaction to the connection callback? Does the Callback soup a fatality? This talk help you to use data structure to keep safe your code. Some great ideas are coming from the functional programming world. How to use it with javascript browser and/or node.js? Is it really complicated?
So, Future, Promise, Either, Options and other algebraic data model can be useful, there is how

Learning objectives

I write this talk because I use node.js a lot and write a lot of fix in my code to abstract database driver (couchbase, mongo, postgre...). I found an effective way to solve problems using functional programing data structure. But this talk is not for nerd or claiming functional programing superiority : some tools are cool, make your code cleanest and modular, so use it !

http://fr.slideshare.net/quentinadam/use-promise-future-and-some-functional-programing-stuff-without-being-a-math-nerd-devoxx-maroc-2015

City of residence

Nantes, France

Yaks, Lambdas, and first class citizens on nodejs

Title

Yaks, Lambdas, and first class citizens on nodejs

Description

The talk covers the history of computational theory and how it applies to modern programming languages. Kurt Gödel's incompleteness theorem, Alonzo Church's Lambda Calculus, and Haskell Curry-Howard isomorphism are described in terms of what it meant for Computing. However, the talk is about modern (ES6) Javascript and how those concepts can be used within any node.js program. It's very interactive as I will be using a node-REPL throughout the talk to demonstrate the concepts with small code chunks.

Javascript contains lots of functional elements out of the box, and I will explains how you can leverage those concepts to structure your programs more concisely while making your syntax easier to understand and more declarative.

The talk is extending a short session I did earlier this year: https://youtu.be/nzOb1kNVrZQ

Learning objectives

Structuring a program with functions and leveraging immutability, Better understanding the State of your app, REPL-driven development

City of residence

Vienna, Austria

“I can’t work on my phone” - desktop all the things

Title

“I can’t work on my phone” - desktop all the things

Description

The web platform gets stronger every month. Bluetooth, offline capability and even virtual reality are coming into our browsers.

Does this mean that we don't need desktop apps anymore?

No, a big trend is happening in parallel. A new go-to platform to build desktop applications entered the stage – Electron.

Everything in Electron is built with HTML, CSS and JavaScript. Now frontend developers build almost everything with it. From small tiny apps solving everyday problems to full fledged IDEs – developers build tools for the environment they spend at least eight hours a day in: the desktop.

Let's have a look at how this works and what it takes to build a desktop app from scratch.

Learning objectives

The audience will learn how to build Electron apps themselves. They will see that it doesn't take much more than a bit of JavaScript knowledge to build apps fitting exactly their needs and solving problems they have every day.

City of residence

Berlin

FullStack DevOps.

Title

FullStack DevOps.

Description

JavaScript has long reigned in the frontend, and has in the past few years taken the backend by assult. It is high time we start making inroads at DevOps development. Many languages have thrived in the space: Java (Ant, Jenkins), Ruby (Puppet, Chef), Python (Ansible, Fabric), and now Go (Docker or Kubernetes). Luckily there are now some Node.js packages: StriderCD or ShipIt, but they are nowhere near the adoption that they should have.

In this talk we will speak about our real-world experience at MediaSmart Mobile using Node.js for DevOps. We have long used Node.js to create our own tools: load testing, deployment, server orchestration. We are now adopting third party packages like StriderCD and ShipIt, with mixed success. We will show how knowing how to build your own tools is important for any self-respecting engineer, and when to choose third party software. We will also explore the limits of JavaScript and Node.js, with practical cases: for instance how we built our own balancer that routinely handles 400k requests per second.

Learning objectives

  • Use Node.js for DevOps work.
  • Build your own infrastructure tools.
  • Operational constraints of Node.js.

City of residence

Madrid, Spain.

Hardening nodeJS site security with HTTP headers

Title

Hardening nodeJS site security with HTTP headers

Description

It will be an overview of HTTP headers which are designed to prevent different attacks and how to add them to your nodeJS application (such as X-Frame-Options, X-Content-Type-Options, etc.). Most of them are not as popular and well-known as it should be. Some of them can now be used by more sites with free HTTPS certificates from Let's Encrypt (e.g. HSTS).
For each HTTP header, I'll describe the following:

  • short description
  • header options
  • an example of an attack on a site without this header (brief description, without exploit code)
  • how to use it with nodeJS application
  • edge cases

Learning objectives

  • Understand how to improve site security with HTTP headers
  • How to use them with nodeJS application
  • How to add them to an existing site and don't break pages which violate strict security policies.

City of residence

Chernihiv, Ukraine

From Zero to Hero IRL

Title

From Zero to Hero IRL

Description

A year ago I quit my day job and founded my own company so I could pursue the technologies I find truly productive and innovative. Since then I’m building web applications for living.

How I delivered my first production-ready app with the help of NodeJS and user system starter platforms like Drywall, Aqua, Frame? How I deployed the first production updates and handled the first production issues?

In retrospect to the past year lots of things has been changed. I developed new coding habits, found better tools, adopted new technologies. Find out what triggered these changes.

Learning objectives

I won’t dive deeply into any particular technology I used, the documentations can be found online. What I will do is tell my first-hand experience of becoming a full-stack engineer with the help of NodeJS.

This talk can be helpful for those who want to start their own business or thinking about switching platforms. Those who spent years with JavaScript, learn how the current ecosystem looks like from the perspective of a newcomer.

City of residence

Novi Sad, Serbia

Sex, Lies and Design Patterns

Title

Sex, Lies and Design Patterns

Description

Almost everyone in software industry agrees that design patterns are important and beneficial for success of any project. Some regard them as an essential part of ‘good practices”.

On the other hand, more in the land of reality, most development efforts are done under various pressures, from vague specifications, short schedules, ridiculous time to market constraints and similar. As a result what is called good practices usually suffer and get substitute with just practices, or less.

There are numerous excuses reported by various developers why the design patterns are only consequence of implementation instead of deliberate action of software architecture design in their projects.

It's totally bizarre to not use the tool whose main purpose is to show success path in order to solve the encountered problem. It’s even more strange as we know that all of design patterns come out of experience and long process of real life validation.

Knowledge to recognize the problem, the context and to pick appropriate design / action patterns are essential for creating any worth mentioning solution.

This talk will try to emphasize need to keep design patterns continuously in focus during software development efforts but also how to distinct good ones from hype.

Learning objectives

  • what is sex and how it's related to design patterns
  • what are lies related to design patterns
  • the grand scheme of design patterns, what, when, why

City of residence

Belgrade, Serbia

Make Content Management Great Again

Title

Make Content Management Great Again

Description

Bringing the Node.js philosophy to content management gives us a new way to solve a perennial problem. Yesterday's CMS solved yesterday's problems; with Node.js we tackle the challenges of tomorrow.

Content management is a hard problem and one that everybody has. Users need a CMS, developers want an adaptive CMS. 3.5 million developers are going to use Node.js for the first time this year, and with Node.js everyone can have the CMS they deserve.

By combining Node.js' modularity, its package ecosystem, and modern development techniques we can challenge age old assumptions about developing with a CMS. We can break through the ceiling that traditional CMS platforms represent.

We can make content management great again!

Learning objectives

  • The Node.js Philosophy, and why it matters
  • How we took those ideas to create a completely new way to look at content management
  • How you can use those ideas in your own work to create awesome things

City of residence

Vienna, Austria

You Too Can Be A Sketching Machine!

Title

You Too Can Be A Sketching Machine!

Description

Sketching is a crucial skill for all Adobe Creative Cloud users. Whether you use Photoshop, Illustrator, After Effects, Premiere Pro or any other Adobe CC application, sketching can help while brainstorming ideas, iterating through concepts, and communicating our ideas to others. Whether working individually or in a group, our ability to sketch helps take the abstract ideas out of heads and into the real world. If you’re not comfortable sketching then there is little chance that your ideas will stick with you, your team members, and even your clients. Don’t worry—the confidence you need to put your pen to paper and start to sketch is close at hand! With the addition of a few simple approaches to your daily routine, you too can harness the power of sketching and become a sketching machine.

Please bring a pen (Yes, pen. I will explain why in the presentation), a highlighter, a Post-It notepad, and a notebook. We will do some fun sketching activities so you can experience the power of sketching firsthand.

Learning objectives

  • Learn the power of sketching
  • Take part in various activities to see that everyone can sketch and that it doesn't take a lot of time.
  • Gain confidence to harness the power of sketching.
  • Get out of your comfort zone where the learning happens.

City of residence

Roseville, California, USA

missclick

Title

Description

Learning objectives

City of residence

I've been web developer for 17 years and this is what I've learned

Title

I've been web developer for 17 years and this is what I've learned

Description

Now that some of my listeners were born when I uploaded my first website it is the perfect time to look back and share a few things I had to learn the hard way. Sit down at my imaginary campfire to learn how I went from Nerd to pragmatic programmer, how I apply this knowledge when working with Node and how I spot one day hypes and bs.
(This talk may contain traces of opinionated rants)

Learning objectives

  • Learn to not jump on every hype
  • Learn the key principles of pragmatic programming
  • Learn my opinion about what some people do wrong when using JavaScript

City of residence

Linz / Austria

NodeConf Budapest, 2017. Call for proposals start here!

Hi there prospective speaker (or prospective attendee)!!

Thanks for your interest, to submit a proposal, please open a new Github issue.

Talk Acceptance

All talks are still being considered. Talks will be accepted one at a time over the next few months. Because many events are structured in a narrative acceptance happens in the order we fill the narrative.

You should still submit your talk! We are definitely still accepting them :)

Submissions

Create an issue in this repository. You can suggest a talk you'd like to give or one that you would like to see with or without a suggested speaker.

The idea doesn't have to be fully fleshed out and we're here to help.

Format & Audience

Talks are 20 minutes. There is no time for Q&A after.

All talks are presented as part of a narrative. Don't worry about fitting your talk in to specific narrative, that's the job of the curator, and we may add new narratives based on the proposals we get.

What makes a good talk

Don't talk about a technology, tell the story of what you did with that technology.

Nobody ever left a conference talk with enough information in their head to write a program from what they learned. For obvious practical reasons people learn and continue to follow documentation while writing software. Don't try to teach people what is already in the documentation, tell them a story that makes them care enough to follow up with that technology.

Dr. Strangelove or: How I Learned to Stop Worrying and Love the Serverless Chatbots

Title

Dr. Strangelove or: How I Learned to Stop Worrying and Love the Serverless Chatbots

Description

A talk about what could happen if the wrong person combine multiple buzzwords and press the wrong button -- and it played the situation for laughs.
The main goal of this talk is to analyze 2 different and at the moment popular buzzwords - serverless and chatbots; and then to combine them with node.js and simple NLP and show how easy is to build useful chatbots with insignificant cost of the infrastructure.

Learning objectives

  • What is "serverless" and why and for what it makes sense
  • Why and for what chatbots can be useful
  • How to build a serverless chatbot with a simple NLP that costs $0

City of residence

Belgrade, Serbia

How much scaffolding do you need?

Title

How much scaffolding do you need?

Description

It’s been widely discussed that, in the JavaScript universe, we have a paralysing abundance of tooling, frameworks, libraries, and packages (which also change every year). Often referred to as 'Javascript fatigue'

A useful question to ask is how much scaffolding and tooling do you need for what you are building?

I'd like to suggest an approach of starting with the minimal amount, and to iteratively add tools as you need to.

Loosely based on the article I have just published here: https://medium.com/@Haakathon/js-in-2016-how-much-scaffolding-do-you-need-bdbf857af766#.kb8kjji4q

Learning objectives

  1. Learn what the problem is: JavaScript Fatigue
  2. Learn what a useful solution is: Scaffolding iteratively
  3. Walkthrough at an example application, starting with vanilla js and building up to a fully fledged universal web app.

City of residence

London

Debugging Node.js Performance Issues in Production

Title

Debugging Node.js Performance Issues in Production

Description

Node.js doesn’t require much to get started building apps. You can easily create a simple HTTP server, query a database and respond to client requests. But as with any other platform, sooner or later you’ll run into issues like scalability, memory leaks, or requests that take forever to complete.

This talk covers the top Node.js performance issues, and will guide you through how to solve them.

Learning objectives

Learn how to detect, debug and fix performance issue with your Node.js application

City of residence

Copenhagen, Denmark

A View Into the Vortex, or Tracing Asynchronous Operations in Node

A View Into the Vortex, or Tracing Asynchronous Operations in Node

Description

Tracing asynchronous code paths in Node.js is really hard. This makes it difficult to understand what is going wrong when your application blows up. Since Node.js version 4.0, however, Node has included the AsyncWrap API. In this talk you will learn how you can use the API to to gain a better understanding of what went wrong when your application fails, and where potential asynchronous processing bottlenecks are lurking.

Learning objectives

I will be presenting the AsyncWrap API in an overview format, with some discussion of the potential usages of the API in user applications and custom frameworks. I will review some existing modules that provide an abstraction layer over this low-level API, and demonstrate the development of a long stack trace module, making use of the API.

City of residence

Asheville, North Carolina, USA

Node.js and Africa market

Title

Node.js and Africa market

Description

Faster Code vs Slow Internet: How useful Node.js could be for Africa market in performance? What does the Africa market look like? What the dev community in Africa knows about Node.js? Prudence OGATCHA will highlight opportunities and challenges and solutions for Node ecosystem in Africa. Prudence OGATCHA will discuss the new full stack and present how Pliby (https://pliby.com) is solving problems to address performance optimisation with the slower Africa internet, and the music streaming service.

Learning objectives

My presentation will be useful and profitable for all global scale enterprise, startup or node.js developer to efficiently target the Africa market. It will expose also the need for Node Foundation to empower and train developers in Africa for the benefit of Node.js ecosystem in Africa.

City of residence

Lagos, Nigeria

Node Todo: Making Everyone A Contributor

Title

Node Todo: Making Everyone A Contributor

Description

Node Todo is an initiative to have free and open-to-the-public events and resources to help people get their first (and second and third) commits into Node.js core. Lots of projects have labels in their issue trackers for “good first contributions” or “easy fixes". Those sorts of things often run into problems. Node Todo is an attempt to solve those problems, or at least an attempt to extend and improve the “good first contribution” label.

In any event, I'll just leave this right here: http://nodetodo.org/

Learning objectives

Why is it important to evangelize contributing?
And what has and hasn't worked?
And how can you get involved?

City of residence

San Francisco

PM2

PM2 & Gridcontrol

Description

PM2 is the most advanced and used process manager of the Node.js ecosystem. With 14k+ stars on Github, 50k downloads/day and 12M in total now, it is one of the most starred package of npm. We are about to launch a new version very adapted to the new era of microservices and that's why we communicate this year. Also, we are launching a new research OS project called Gridcontrol related to P2P cloud function that could, if good traction, skyrocket some features of PM2 and other back-end applications.

Learning objectives

  • Microservices architecture
  • Load balancing, process management, performance and monitoring issues

City of residence

*France/Paris

Enhancing Node command line apps with Bash

Title

Enhancing Node command line apps with Bash

Description

Imagine being able to build simple scripts that can interact easily with any
Unix commands and compose together to make complex applications. Not only is
that possible with Node.js, it's easy! Node provides easy access to everything
you need to create powerful system-level utilities, and following the Unix
philosophy of modularity and reusability enables developers to write
incredibly powerful and flexible command line applications. This talk will
introduce the concepts of Unix command pipelines, input and output stream
handling in Node.js, and effective API design for Node scripts. By the end,
developers will know how to begin writing custom scripts that hook up to any
other Unix utilities.

Learning objectives

  1. Pass data from bash utilities to Node scripts and back out
  2. Write Node scripts that can be tested on small jobs yet used for large jobs
  3. Show bash isn't hard or scary, and any Node dev can leverage it!

City of residence

Medellín, Colombia

Doing Network unittests with node

Title

Doing Network unittests with node

Description

For a giving ip network graph out of router and hosts, you want to be sure if.you change something is it still working like expected. The only way to do this is by building a system an see if it works. But would it.be nice if you are able.to write an unittests, where you validate if a packet passes a specific path and is not been dropped by any obstacles like firewalls.

Learning objectives

IP Routing,Javascriptobjectgraphs,Visualisation,Typescript

City of residence

Living on the Road

NodeJS Testing: The Most Efficient Approach

Title

NodeJS Testing: The Most Efficient Approach

Description

If your goal with tests is to prove your software has no bugs, you are doing it wrong. In this 20 minute talk I will not only show you why this approach is bad, I will show you how to write better tests with the newest available tools. I won’t talk about TDD, I will talk about doing it right.

Efficacy means being able to get something done, but efficiency means being able to get something done in the best way possible, and that is what I’m going to talk about.

Almost everybody know what is TDD and how it is done, but not many people know how to write tests right and, unfortunately, this makes the whole process lose its value. Let me show you why getting this right can save you a lot of time and save your company a lot of money, if you have never thought about the correlation between those two factors you better prepare to be astonished.

In this talk I will show you solid facts and examples to convince you how important it is to write good tests, what is the most efficient mindset to have when writing tests and why the metrics most people use to measure the effectiveness of their tests are wrong.

Come with me and I guarantee the quality of the code you and your team are delivering will never be the same. Test things right: more time available, less bugs on production.

Learning objectives

  • TDD
  • Better Unit Testing
  • Assertion/Testing Libraries in NodeJS

City of residence

Florianópolis - Brazil

Writing Clear and Interesting Technical Content and Documentation

Title

Writing Clear and Interesting Technical Content and Documentation

Description

You’re smart, educated, and you’ve been working in this industry for years. You’ve created amazing open-source packages and great documentation. But all that flies out the window if what you write about your project isn’t being read.

“But it’s comprehensive! It has all the info that I would need!” you may reply.

The problem is not writing for people like you; it’s writing and creating documentation that anyone can read, understand, and get excited about. This is true for projects aimed at beginners, but it goes double for projects and writing aimed at intermediate/expert programmers. Your projects will benefit when you write something that everyone can understand and would want to read. More readers = more users = perhaps more contributors!

Learning objectives

Attendees will learn how to write clearer technical content that reads more naturally (rather than robotic). See this blog post for an overview: https://medium.com/@limedaring/five-tips-for-improving-your-technical-writing-and-documentation-47353723c8a7#.mom27hfey

City of residence

Toronto ON Canada

Transitions between Server Side Rendering and Client Side

Transitions between Server Side Rendering and Client Side

Description

Going from Client Side and Server Side rendering in Node is a big deal. Now, as most enterprise firms use Webpack, Babel, React while having their own API's, there is much ground to cover from Client Side to SSR. Complications are hard to reason about and to do server side rendering, it seems like people need to know the whole stack in order to profit from using this at all.

The presentation will go through how you reason about the transition at a core level. Naturally, there will also be code covered in the talk while we go through improvement steps. We will try to make the transition as easy as possible on the technical side while reasoning on the pragmatic upsides and downsides of having SSR and when we should use it.

Learning objectives

  • Give people the ability to write SSR code similarly to Client Side
  • Give beginners the ground they'll need in order to do SSR
  • Convince people how SSR could impact Development Flow
  • Explain why implementation symmetry is important to workflow

City of residence

Oslo, Norway

Using Node to unlock new input devices

Using Node to unlock new input devices

Description

There is new input devices coming to the market that let us use our hands or our full body to control the computer. But how do we get those devices to the browser?

The answer is: Node.js and web sockets!

In this talk we'll find out how to connect a LEAPMotion for magical hand-waving to command the computer, a Kinect to finally get some excercise and then look at the general concept of using node extensions to grab data from new hardware and pipe it into the browser using web sockets.

It'll be weird, it'll be fun and you'll see things you normally don't do in Node - luckily so.

Learning objectives

  • Using and making C extensions for Node.js
  • Using WebSockets to feed input device data to the browser
  • What is OpenNI and how to use it with a Kinect device

City of residence

Zurich, Switzerland

Kill all Humans, Development Tool Automation Like a Pro

Kill all Humans, Development Tool Automation Like a Pro

Bender: Kill All Humans

Description

“Versionsnummernerhöhungsangst” is the German word for the fear of increasing the major version number of a module, and just look at this word – it must be real! Let’s explore the reasons for this fear and how we, collectively, can overcome it.

People think Semantic Versioning is an ambiguous concept, but we can learn how to work with it correctly, how to interpret the author’s intent (or express our own), and how to back up the whole process with automation, security layers and verification mechanisms.

Let me introduce you to an automated, tool-backed process that unfolds the full potential of a small modules world, while leaving humans to what they’re needed for: creation, communication and decision making.

Learning objectives

Automating development workflows to free developers minds from tedious tasks, so they can focus on what they are good at: code.

This is applicable for anyone from beginners who want to have more fun coding to enterprise developers who want to save time in their busy schedules.

City of residence

Berlin, Germany

Building your next app in KoaJS and ES6/ES7

Title

Building your next app in KoaJS and ES6/ES7

Description

Using a photo-sharing app 1batch as a template for making your next web app with the KoaJS framework.

At the beginning of 2016, I was surprised to see the thread Is Express dying?. All of my best apps are written in Express! So I went looking for a replacement.

KoaJS (currently rolling out version 2) is a leading framework designed around the latest JS features, including arrow functions and replacing callbacks with async/await. This talk would be targeted at Express users and new NodeJS programmers explaining how to use Koa, implement PassportJS to authenticate users, and compile code with BabelJS.

Learning objectives

  • designing a simple mobile web app (Instagram clone)
  • using KoaJS v2 framework
  • async/await instead of callbacks or generators
  • PassportJS authentication
  • BabelJS transpiler
  • compatibility with older Koa, Express, and other JS code

City of residence

New York City, USA

Organising a conference - the coder way

Title

Organising a conference - the coder way

Description

Managing an organisation is hard, organising a conference is hard, managing an organisation that organises conferences... Well you guessed it, it's even harder! This is the story of how we, a group of students involved in SINFO, came to build a set of open source tools and services in NodeJS to help us manage all of our events.

From the initial problems we aimed at solving, to the caffeine packed hack nights we spent coding insanely amounts of Javascript, to the wrong decisions we made, to where we are now. We’ll get a view of the back office we use to manage contacts, sponsors, speakers and the agenda for the events and how it fuels our web app, side by side with a service used to manage our attendees.

Learning objectives

This talk won’t present any new software design pattern, or a new tool that can improve the life of every developer. It will rather cover a set of software development steps we, as young developers/engineers/hackers, came to do or miss and how this helped us realise how important they are. This included the absence of tests that slowed us down, or how the cool project you hacked in a fortnight is suddenly used by a whole bunch of people and you’ve got no idea what you’re doing.

City of residence

Lisbon, Portugal

Solving service discovery in Node.js with SWIM

Title

Solving service discovery in Node.js with SWIM

Description

The microservice architecture is a powerful way to structure large scale Node.js systems. Microservices bring many benefits, enabling rapid development, making continuous delivery easier, and making fine-grained scaling practical. But this architecture is a distributed system, and brings with it all the associated challenges of such systems, not least of which is the need for individual services to find each other. Deciding how to solving the service discovery problem is a key decision point for any architect building microservice systems.

A common approach is to use a service registry. Unfortunately service registries bring their own problems, such as ensuring consistency while scaling, or increasing deployment complexity with the need to run agents. All this could be forgiven, but for a greater sin - registries encourage strong coupling between microservices by providing a concept of service identity. The very purpose of the registry, service discovery, is poisonous to one of the key benefits of microservices - that the system is dynamic and flexible.

There is a better way. Services can find each other dynamically, using gossip protocol algorithms. Highly efficient algorithms such SWIM (Scalable Weakly-consistent Infection-style Process Group Membership Protocol) mean that microservices can do away with service discovery altogether, relying instead on an constantly evolving, dynamic map of their local network. By pushing intelligence to the edges of the network, not only does this approach make failure detection orders of magnitude faster (no more waiting for heartbeats to timeout), but it also makes deployment much easier, as the network configures itself.

This talk will examine the use of the SWIM algorithm to build a Twitter clone in Node.js, one microservice at a time.

Learning objectives

  • Understand the problems of running O(10^2+) Node services
  • Understand why service discovery is not as simple as it looks
  • Understand how newer algorithms like SWIM can overcome these issues
  • Review and build on a working code example

City of residence

Waterford, Ireland

RxJS - destroy the state machine!

Title

RxJS - destroy the state machine!

Description

Learn our story how we discovered RxJS and it helped to bring us from a massive state machine into an elegant event-based reactive platform. In this talk I am going to give you an overview of RxJS and why should you use it. I am going to talk about how once we adopted the reactive approach, it completely changed the way we think about state and state programming. All this with code examples.

Learning objectives

RxJS, Reactive programming

City of residence

Estonia, Tartu

That escalated quickly! Prototyping IoT with JavaScript

Title

That escalated quickly! Prototyping IoT with JavaScript

Description

Let me tell you a story. Or wait, 2 stories.

One of the stories is about a man who wanted pretty graphs and useful logs about different aspects of his beer brewing process. He decided to use JavaScript. Before he knew what he got himself into, he had made graphs of temperature in the mashing, boiling and fermenting process. That was when it escalated. The story speaks of logging of plops per minute (ppm™) and real-time streaming of Co2 levels turned into midi tones.

The other story is about a man who had a slot car racing track. He wanted to control this programatically. He decided to use JavaScript. Before he knew it, a press of a button on a webpage ran the race car 2 rounds on the track (including loops). That was when it escalated. The story speaks of webRTC streaming of a slot car "dashcam", car speed measurement scoring systems and VR with Google Cardboard. Escalated indeed.

Learning objectives

This session will not highlight any new CS paradigms. There will be less “wow, that was useful” and more “Why did he do that? Because he could”. The “transpilation example to GIF ratio” (tetg ratio™ for short) will probably be in favor of the image format. And since I already promised beer, slot cars, GIFs and VR, I will also promise both pictures of cats and dogs.

In short, the session is about enthusiasm for JavaScript, hacking together things, GIFs and life itself.

City of residence

Trondheim

peer-to-peer service architecture

Title

peer-to-peer service architecture

Description

A talk about how we can construct a world wide network of small services connected through the internet. Using node modules and techniques like udp hole punching, we can create small node programs, that can be discovered through a world wide dht using a simple name. I'll show how it easy it is to create an architecture like this and demo interesting applications we can build on top.

Learning objectives

  • networking
  • udp + utp + p2p connectivity
  • discovery techniques (resolving a service name to a host+port somewhere)

City of residence

Copenhagen

Building Cross-Platform Desktop Applications With Electron

Title

Building Cross-Platform Desktop Applications With Electron

Description

The advent of web technologies and evolution of JavaScript has made web the first choice for running applications.Electron is the next-generation technology for developing desktop applications. It uses HTML, JavaScript and other web technologies to build the applications and Node.JS to hold it all together.Using Electron, you can develop applications once and run them multiple times, anywhere. Using Electron web developers, who are comfortable with JavaScript, HTML and other web technologies can develop high-performance cross platform desktop applications.

This talk will cover all the aspects of desktop application development using Electron, starting from the basics to a deep dive into Electron as a technology. It will cover the basic application structure, installation procedure, the main process, renderer process, communication between processes using IPC, working with native menus, dialogs, UI toolkit for Electron like Photon and finally packaging of applications. The attendees will also be learning about the basics of Node.JS which is the building block of Electron.

Learning objectives

  • Learn how to build desktop applications with Electron
  • Main Process, Renderer Process
  • Communication between the processes using IPC
  • Using toolkits like Photon
  • Packaging of the desktop applications built on Electron

City of residence

New Delhi

Design for Non-Designers

Title

Design for Non-Designers

Description

Not everyone can hire a professional designer for their websites and web apps, but we all still want our interfaces to be easy to use and attractive. However, if you want to learn a bit of design, design books jump straight into concepts like "the golden ratio" and teach proper typographic terms which, to be frank, aren't needed if you're just looking to improve your website's look and feel.

This talk will cover the top quick ways to improve your website, covering both user experience as well as visual design. Quick hits, easy to understand and utilize principles that anyone can use to improve their design skills. Perhaps you too can become the next designer+developer unicorn!

Learning objectives

Attendees should have the know-how to quickly improve the design of their websites immediately as well as knowledge of resources to improve their design eye.

City of residence

Toronto, ON Canada

Building a multiplayer game server and keeping (most of) your hair

Title

Building a multiplayer game server and keeping (most of) your hair

Description

Whether it’s a first person shooter, real time strategy, action or physics based - making a game is the hardest software challenge you will ever undertake. That is - until you’ve decided to make it multiplayer.

So how do you create a server that runs a game, communicates with clients and compensates for lag? How do you make all your players feel like they’re playing the same game, at the same time, with each other (even though they actually don’t)?

I will present the major challenges for enabling low-latency games on the web with with Node.js. I’ll also talk about how to write efficient net code, optimize the data that goes over the wire and demystify scary terms like “client side prediction” and “entity interpolation/extrapolation”.
By the end of the talk you’ll have a working multiplayer game that we can all play together!

Learning objectives

  • Understanding the challenges of real-time, low-latency games
  • Solutions to problems of latency and perception
  • Why Node is awesome for making games on the web

City of Residence
Tel Aviv, Israel

Adding types to Javascript

Adding types to Javascript

Description

In large codebases, it sometimes helps to have a compiler check for a few obvious errors to avoid them exploding at the users' faces at runtime. When I talk to other Javascript developers about static typing, they usually picture something like Java in their heads. The idea of this talk is to explore a few statically typed alternatives that you can use today to write better programs targeting both the browser and the server. To do this, we are going to look at three languages/libraries. We will walk through some of the defining features of these languages and explore the kind of bugs that these can catch in your codebase.

  1. Flow - Flow is a static type checker for Javascript. It is not really a language but adds optional typing to your existing Javascript codebase. You can decorate your Javascript files with an // @flow comment as the first line and the flow will do the type checking for you. The output of the flow plugin is simply all the flow related parts stripped from the code. It plays quite well with babel so you could use any level of babel presets with Flow.
  2. TypeScript - TypeScript is a statically typed language that compiles down to Javascript. Unlike flow, TypeScript is a compiler. You can also have typescript type annotations in a separate file accompanying your javascript file. While TS looks pretty much the same as Flow, it has slightly different semantics when it comes to handling generics and nullability.
  3. PureScript - PureScript is a strongly typed language that compiles down to Javascript. It is the deep end of the functional, strongly typed camp. While Flow and Typescript code still resembles Javascript, PureScript is closer to haskell. Purescript embraces immutability and forces you to organize your logic around pure functions with no side effects and couples that with a powerful monadic effect system. Unlike Elm, Purescript does not need a runtime and works well both on the server and the client.

Learning objectives

The goal of this talk is to understand the landscape of statically typed compile-to-JS languages or checkers out there and how you can start using it today in your projects. While there are other worthy languages like Dart, Elm, Ceylon or Kotlin I am focusing on these three languages because I only have 20 minutes and I like these languages.

City of residence

I am residing in Chennai, India. You can view some of my other talks on youtube.

Building a VPN with node

Building a VPN with node

Description

There are alot VPN solution out there. But all uses proprietary protocols for transport.
But we have web sockets why not pipe raw ip through this? And than allow to have a server running node and a client either running node too or just a browser.
I used a c++ part to attach the kernel routing the userlevel. But I had done this in plain node before in my sashimi project.

Learning objectives

Websocket, Typescript, Tun/Tap, C++, Buffers, Streams

City of residence

Living on the Road

Demystifying JavaScript engines

Title

Demystifying JavaScript engines

Description

How a JavaScript engine works? What are its basic components? How to measure its performance? What is JIT compilation? Stigmatization: is JavaScript fast enough? are some of the questions I think we currently fail to answer in a, somewhat, short and direct way.

Learning objectives

It will be really useful for developers to know more about the underlying mechanisms that are being used to run their applications. Moreover, the talk will give attendees the concepts necessary to think on current performance bottlenecks and have some hints on how overcome them.

City of residence

Buenos Aires, Argentina

Writing Secure Node Code

Title

Writing Secure Node Code

Description

Some of the very things that make JavaScript awesome can also expose it to security risks. This talk will go through some sample security flaws unique to Node’s async nature and surrounding ecosystem (or especially relevant to it). We'll show how these could occur in your own code or in npm dependencies.

The talk will revolve around a sample vulnerable application, Goof, which we will exploit as an attacker would. For each issue, we'll explain why it happened, show its impact, and – most importantly – see how to avoid or fix it.

Learning objectives

Getting familiar with common vulnerabilities and the ways to avoid them.

City of residence

Tel Aviv, Israel

Demystifying NaN, Infinity, and Floating Point Numbers

Title

Demystifying NaN, Infinity, and Floating Point Numbers

Description

You’ve probably seen NaN and Infinity pop up on you before, but do you really know the when & why? We’ll go through what these two values are, where they appear, and what one should know about them, from the perspectives of JavaScript and floating point numbers. Then a quick primer on floating point binary representations will take us into numbers so big that x + 1 === x. We'll use Node Buffers to first see how those numbers behave and how big they can get, and then to count just how many NaNs there really are. This goes all the way down to the ECMA-262 and IEEE 754 specs and covers quirks, gotchas, and some history of how we got to where we are. Some parts will verge on esoteric, but only enough to get a good laugh and see how numbers really work.

Learning objectives

No longer be afraid of NaN, Infinity, and floating point numbers. Understand why:

  • NaN !== NaN
  • 1 ** Infinity should equal Infinity ** 0 but doesn’t
  • 2 ** 53 equals 2 ** 53 + 1
  • 1.8e308 equals Infinity but 1.79e308 doesn’t

City of residence

San Francisco

This would be an expansion of a ~12 minute talk on NaN I gave at WaffleJS in May 2016. The slides for that talk are here and a video recording is here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.