Cosa significa sviluppare un videogioco in VR partendo da zero? Cosa è andato dritto e cosa è andato storto durante questi mesi di crunch. Un talk informativo con approfondimenti tecnici dal punto di vista sia del Grafico che del Programmatore.
Getting started with go - Florin Patan - Codemotion Milan 2016Codemotion
This talk focuses on people which are interested the Go programming language and want to learn it. In it I will present the various resources new gophers have to learn Go, what are the usual pitfalls and how to get help when they are stuck.
Master the chaos: from raw data to analytics - Andrea Pompili, Riccardo Rossi...Codemotion
Nowadays we are drowning in data but starving for knowledge… Experience the challenging task of exploiting apparently unrelated data to address your information needs.
During the lab we will rely on the ELK stack to build up a state-of-the-art framework for data processing and visualization.
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...Codemotion
Cyber security is one of the most challenging topic in the current era. Cyber attacks are becoming day by day more sophisticated and difficult to be detected by automated systems. People who understand cyber threats and act to block cyber attacks are defined as cyber analysts. But what do they really do ? What dificulties do they meet and what background should they have before starting the "neverending" "cyber security" learning path ? Why is not enough an automated system ? Marco will talk about real experiences on the cyber analyst field.
DevOps in Cloud, dai Container all'approccio Codeless - Gabriele Provinciali,...Codemotion
Un approccio moderno allo sviluppo software dovrebbe sfruttare linguaggi ed ambienti appartenenti a diverse tipologie di innovazione: DevOps per automatizzare continuous integration e continuous delivery, il Cloud per gestire il ciclo di vita del software in qualsiasi momento, i Software Containers per raggiungere livelli di scalabilità adeguati alle dimensioni dell’audience e un approccio Codeless per confezionare applicazioni e cruscotti ad uso dell’utenza business. Il talk sarà articolato intorno a queste quattro aree mostrando principalmente esempi pratici.
Come rendere il proprio prodotto una bomba creandogli una intera community in...Codemotion
This document provides tips for building a community around a product. It emphasizes that community is key to long-term success and going far with a product. Some tips include starting small and growing organically, being inclusive, listening to the community, being transparent in development, and creating rituals and events to foster interaction and belonging. The overall message is that community is about bringing people together in shared experiences and goals, not just about the product itself.
Getting started with go - Florin Patan - Codemotion Milan 2016Codemotion
This talk focuses on people which are interested the Go programming language and want to learn it. In it I will present the various resources new gophers have to learn Go, what are the usual pitfalls and how to get help when they are stuck.
Master the chaos: from raw data to analytics - Andrea Pompili, Riccardo Rossi...Codemotion
Nowadays we are drowning in data but starving for knowledge… Experience the challenging task of exploiting apparently unrelated data to address your information needs.
During the lab we will rely on the ELK stack to build up a state-of-the-art framework for data processing and visualization.
Cyber Analysts: who they are, what they do, where they are - Marco Ramilli - ...Codemotion
Cyber security is one of the most challenging topic in the current era. Cyber attacks are becoming day by day more sophisticated and difficult to be detected by automated systems. People who understand cyber threats and act to block cyber attacks are defined as cyber analysts. But what do they really do ? What dificulties do they meet and what background should they have before starting the "neverending" "cyber security" learning path ? Why is not enough an automated system ? Marco will talk about real experiences on the cyber analyst field.
DevOps in Cloud, dai Container all'approccio Codeless - Gabriele Provinciali,...Codemotion
Un approccio moderno allo sviluppo software dovrebbe sfruttare linguaggi ed ambienti appartenenti a diverse tipologie di innovazione: DevOps per automatizzare continuous integration e continuous delivery, il Cloud per gestire il ciclo di vita del software in qualsiasi momento, i Software Containers per raggiungere livelli di scalabilità adeguati alle dimensioni dell’audience e un approccio Codeless per confezionare applicazioni e cruscotti ad uso dell’utenza business. Il talk sarà articolato intorno a queste quattro aree mostrando principalmente esempi pratici.
Come rendere il proprio prodotto una bomba creandogli una intera community in...Codemotion
This document provides tips for building a community around a product. It emphasizes that community is key to long-term success and going far with a product. Some tips include starting small and growing organically, being inclusive, listening to the community, being transparent in development, and creating rituals and events to foster interaction and belonging. The overall message is that community is about bringing people together in shared experiences and goals, not just about the product itself.
How To Structure Go Applications - Paul Bellamy - Codemotion Milan 2016Codemotion
1. The document discusses various ways to structure Go applications, including grouping code by domain, using interfaces to define dependencies, and separating applications into modules that can be tested independently.
2. It recommends creating packages for different parts of an application, such as an API, email provider, database adapter, and defining interfaces to abstract dependencies.
3. A sample application structure is shown with packages for the domain objects, API, email provider, database adapter, and a command package containing the executable.
The (almost) lost art of Smalltalk - Nikolas Martens - Codemotion Milan 2016Codemotion
This talk is not about how to survive your next elevator ride but about the grandfather of all Object-Oriented Programming language. Even 40 years after its inception, no other language can hold a candle to the elegance and purity of this dinosaur of computer science. With the recent appearance of new open-source implementations and web-development frameworks, it seems like Smalltalk is about to receive its second wind. In this talk I will introduce you to its exciting interactive capabilities and demonstrate how much fun web development can be. But warning: Smalltalk is highly addictive.
Developing apps for developing countries - Natalie Pistunovich - Codemotion M...Codemotion
App development for developing countries introduces a slew of new challenges: smartphones function as a user's main point of connection, local demand for use of mobile apps and web is different and the infrastructure places strict limits on users' internet data volume. In this talk we'll discuss how the mobile world looks like in developing countries: what apps are like, what are the common devices and and what are the current initiatives to increase internet connectivity. We'll then discuss further potential solutions like efficiently compressing data in the device.
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016Codemotion
One of the primary strengths of Go programming language is a built-in first-class support for concurrency. We're going to learn about it in a completely new way, using interactive 3D visualizations, which help us understand the complex but astonishing world of modern concurrent software. We'll see what’s happening inside the real code—from a simple “Hello, World” to real production-level high-loaded servers, and learn different approaches and concurrency patterns that are used for building concurrent pipelines and algorithms. And we'll do it all in 3D!
Progressive Web Apps: trick or real magic? - Maurizio Mangione - Codemotion M...Codemotion
Con il passare del tempo i siti e le applicazioni diventano sempre più pesanti e gli utenti consumano i loro contenuti prevalentemente attraverso dispositivi mobile. Due cose che non vanno certo d'accordo. Rendere le applicazioni performanti è un compito difficile soprattutto quando ci sono variabili che non possiamo controllare, come la connessione. I Service Worker e altre tecniche che stanno dietro le Progressive Web Apps possono essere una risposta concreta a questo problema.
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...Codemotion
This document discusses the evolution of asynchronous JavaScript programming. It covers callbacks, promises, generators, and async/await. Callbacks were initially used but led to callback hell. Promises improved the situation by providing a cleaner way to handle asynchronous code but promise hell was still possible. Generators allowed blocking-like code using yield but required promises to handle asynchronous functions. Now async/await in ES2017 allows writing asynchronous code that looks synchronous and resolves many of the past issues. Streams are also mentioned as an alternative concurrency model to callbacks and async code.
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016Codemotion
Angular 2 is a complete rewrite of the AngularJS framework, which introduces new approaches and leverages the latest technologies. Simplifying and generalizing core concepts, the performance is improved and the range of capabilities is broadened. In this session Shmuela will help you understand the core concepts of Angular 2 apps: the component-based architecture, dependency injection, change detection, and more.
A-Frame in the Virtual World, small bricks of virtual reality web - Giovanni ...Codemotion
Let's prototype VR experiences running in your browser! We don't need any complex tools but a bag full of VR bricks designed by Mozilla (aframe.io) and our knowledge of html5 and js.
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...Codemotion
Since we started to see JS on the server side, the dream of developers has been to reduce the gap and the cost of switch between frontend/backend. Today with Node.js, React and a whole ecosystem of tools, this dream is becoming true! In this talk I am going to discuss about Universal (a.k.a. Isomorphic) JS and present some practical example regarding the major patterns related to routing, data retrieval and rendering. I will use Node, React, Webpack, Babel and React Router and give you a series of example to get you started easily with this new technology trend.
Lo sviluppo di Edge Guardian VR - Marco Giammetti - Codemotion Milan 2016Codemotion
Cosa significa sviluppare un videogioco in VR partendo da zero? Cosa è andato dritto e cosa è andato storto durante questi mesi di crunch. Un talk informativo con approfondimenti tecnici dal punto di vista sia del Grafico che del Programmatore.
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
This year for the Salone del Mobile at frog, we came up with a funky experiment, based on Drones, Android, and VR. In this talk, your hosts will walk you through our Drone Race experiment, touching topics like real-time computer vision, reactive programming for mobile, indoor positioning and (wheeled) Drones hacking. The variety and complexity of these topics is equal to its coolness though, so you may be puzzled asking yourself: "Where do I start?" We will share experiences and lots of code, so that you can start right away.
Games of Simplicity - Pozzi; Molinari - Codemotion Milan 2016Codemotion
The document announces a games of simplicity event hosted by We Are Müesli on November 25-26, 2016 in Milan. We Are Müesli is an Italian game design and visual design studio founded by Claudia Molinari and Matteo Pozzi. The event will explore simplicity in game design based on John Maeda's six laws of simplicity from his 2006 book, which are reduce, organize, focus, efficiency, empathize and trust. A number of simple, minimalist games will be presented as examples that demonstrate Maeda's laws.
The hitchhiker's guide to UXing without a UXer - Chrissy Welsh - Codemotion M...Codemotion
The document provides tips for designing user experiences without a dedicated UX designer. It recommends having a clear vision, thinking like the intended users by researching who they are and what goals they are trying to achieve. It also recommends wireframing designs quickly using tools like pen and paper, creating throwaway prototypes to test designs, gathering user feedback to evaluate work, and being willing to scrap ideas that are not working and start over. The overall message is that iterative design and usability testing are important to create great experiences for users.
This document provides instructions for building a micro-service system using IBM Bluemix and DevOps services. It involves:
1. Setting up an Nginx proxy project in Bluemix to route requests.
2. Creating a Node.js microservice that serves pages and shared headers. Authentication is added using Facebook OAuth.
3. Adding another Node.js microservice and configuring the proxy to route to both services.
4. Sessions are stored in Redis to demonstrate integration with external services.
The full system allows composition of UIs from multiple microservices with shared authentication and session state.
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015Codemotion
Containers are a technology that will take over infrastructure management in next few years and it is absolutely important to anyone involved in software delivery automation and maintenance to understand the principles behind it and know how to use it. This workshop offers an introduction to Linux containers using the predominant technology, Docker. The following topics will be covered: - A bit of history (LXC Containers, Docker, other players) - Setting up your environment - Docker daemon and client - Image vs. container - Docker registry - Container orchestration - Docker use cases
A recommendation engine for your applications - M.Orselli - Codemotion Rome 17Codemotion
Nowadays a lot of websites try to guess what we could like: "Recommendation for you in books" "People you may like" Sounds familiar, isn't it? Wouldn't be cool if you could do the same in your application? Well, this session is for you! In the first part of this talk recommendation systems will be introduced, focusing on collaborative filtering algorithms (CR). After that we'll dive in Prediction.io, an open source machine learning server for software developers to create predictive features, such as personalization, recommendation and content discovery.
The document appears to be a collection of random words and phrases that do not form a coherent story or provide any clear information. It mentions not knowing what a quail looks like, contains random letters and numbers, and includes a partial web address.
This short document contains random information including a date, a statement about not knowing what a quail looks like, a number, another number with a decimal, and a URL fragment. It does not provide any clear context or narrative to summarize.
This short document contains random information including a date, a statement about not knowing what a quail looks like, numeric values, and a URL fragment. It does not have a clear topic or message to summarize.
Rich, interactive web applications AKA fat clients are now commonplace. There are so many frameworks for building these rich client applications, and the debate among developers is which of these frameworks to use. As designers and developers we need to step back, and ask ourselves when and how we should enrich our client applications and when or why not. Let’s dig in to the question: Why do we even want fat clients, and when should we use them? Let’s examine the complications such clients introduce so we can weigh them against all the benefits.
How To Structure Go Applications - Paul Bellamy - Codemotion Milan 2016Codemotion
1. The document discusses various ways to structure Go applications, including grouping code by domain, using interfaces to define dependencies, and separating applications into modules that can be tested independently.
2. It recommends creating packages for different parts of an application, such as an API, email provider, database adapter, and defining interfaces to abstract dependencies.
3. A sample application structure is shown with packages for the domain objects, API, email provider, database adapter, and a command package containing the executable.
The (almost) lost art of Smalltalk - Nikolas Martens - Codemotion Milan 2016Codemotion
This talk is not about how to survive your next elevator ride but about the grandfather of all Object-Oriented Programming language. Even 40 years after its inception, no other language can hold a candle to the elegance and purity of this dinosaur of computer science. With the recent appearance of new open-source implementations and web-development frameworks, it seems like Smalltalk is about to receive its second wind. In this talk I will introduce you to its exciting interactive capabilities and demonstrate how much fun web development can be. But warning: Smalltalk is highly addictive.
Developing apps for developing countries - Natalie Pistunovich - Codemotion M...Codemotion
App development for developing countries introduces a slew of new challenges: smartphones function as a user's main point of connection, local demand for use of mobile apps and web is different and the infrastructure places strict limits on users' internet data volume. In this talk we'll discuss how the mobile world looks like in developing countries: what apps are like, what are the common devices and and what are the current initiatives to increase internet connectivity. We'll then discuss further potential solutions like efficiently compressing data in the device.
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016Codemotion
One of the primary strengths of Go programming language is a built-in first-class support for concurrency. We're going to learn about it in a completely new way, using interactive 3D visualizations, which help us understand the complex but astonishing world of modern concurrent software. We'll see what’s happening inside the real code—from a simple “Hello, World” to real production-level high-loaded servers, and learn different approaches and concurrency patterns that are used for building concurrent pipelines and algorithms. And we'll do it all in 3D!
Progressive Web Apps: trick or real magic? - Maurizio Mangione - Codemotion M...Codemotion
Con il passare del tempo i siti e le applicazioni diventano sempre più pesanti e gli utenti consumano i loro contenuti prevalentemente attraverso dispositivi mobile. Due cose che non vanno certo d'accordo. Rendere le applicazioni performanti è un compito difficile soprattutto quando ci sono variabili che non possiamo controllare, come la connessione. I Service Worker e altre tecniche che stanno dietro le Progressive Web Apps possono essere una risposta concreta a questo problema.
The Evolution of Asynchronous Javascript - Alessandro Cinelli - Codemotion Mi...Codemotion
This document discusses the evolution of asynchronous JavaScript programming. It covers callbacks, promises, generators, and async/await. Callbacks were initially used but led to callback hell. Promises improved the situation by providing a cleaner way to handle asynchronous code but promise hell was still possible. Generators allowed blocking-like code using yield but required promises to handle asynchronous functions. Now async/await in ES2017 allows writing asynchronous code that looks synchronous and resolves many of the past issues. Streams are also mentioned as an alternative concurrency model to callbacks and async code.
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016Codemotion
Angular 2 is a complete rewrite of the AngularJS framework, which introduces new approaches and leverages the latest technologies. Simplifying and generalizing core concepts, the performance is improved and the range of capabilities is broadened. In this session Shmuela will help you understand the core concepts of Angular 2 apps: the component-based architecture, dependency injection, change detection, and more.
A-Frame in the Virtual World, small bricks of virtual reality web - Giovanni ...Codemotion
Let's prototype VR experiences running in your browser! We don't need any complex tools but a bag full of VR bricks designed by Mozilla (aframe.io) and our knowledge of html5 and js.
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...Codemotion
Since we started to see JS on the server side, the dream of developers has been to reduce the gap and the cost of switch between frontend/backend. Today with Node.js, React and a whole ecosystem of tools, this dream is becoming true! In this talk I am going to discuss about Universal (a.k.a. Isomorphic) JS and present some practical example regarding the major patterns related to routing, data retrieval and rendering. I will use Node, React, Webpack, Babel and React Router and give you a series of example to get you started easily with this new technology trend.
Lo sviluppo di Edge Guardian VR - Marco Giammetti - Codemotion Milan 2016Codemotion
Cosa significa sviluppare un videogioco in VR partendo da zero? Cosa è andato dritto e cosa è andato storto durante questi mesi di crunch. Un talk informativo con approfondimenti tecnici dal punto di vista sia del Grafico che del Programmatore.
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
This year for the Salone del Mobile at frog, we came up with a funky experiment, based on Drones, Android, and VR. In this talk, your hosts will walk you through our Drone Race experiment, touching topics like real-time computer vision, reactive programming for mobile, indoor positioning and (wheeled) Drones hacking. The variety and complexity of these topics is equal to its coolness though, so you may be puzzled asking yourself: "Where do I start?" We will share experiences and lots of code, so that you can start right away.
Games of Simplicity - Pozzi; Molinari - Codemotion Milan 2016Codemotion
The document announces a games of simplicity event hosted by We Are Müesli on November 25-26, 2016 in Milan. We Are Müesli is an Italian game design and visual design studio founded by Claudia Molinari and Matteo Pozzi. The event will explore simplicity in game design based on John Maeda's six laws of simplicity from his 2006 book, which are reduce, organize, focus, efficiency, empathize and trust. A number of simple, minimalist games will be presented as examples that demonstrate Maeda's laws.
The hitchhiker's guide to UXing without a UXer - Chrissy Welsh - Codemotion M...Codemotion
The document provides tips for designing user experiences without a dedicated UX designer. It recommends having a clear vision, thinking like the intended users by researching who they are and what goals they are trying to achieve. It also recommends wireframing designs quickly using tools like pen and paper, creating throwaway prototypes to test designs, gathering user feedback to evaluate work, and being willing to scrap ideas that are not working and start over. The overall message is that iterative design and usability testing are important to create great experiences for users.
This document provides instructions for building a micro-service system using IBM Bluemix and DevOps services. It involves:
1. Setting up an Nginx proxy project in Bluemix to route requests.
2. Creating a Node.js microservice that serves pages and shared headers. Authentication is added using Facebook OAuth.
3. Adding another Node.js microservice and configuring the proxy to route to both services.
4. Sessions are stored in Redis to demonstrate integration with external services.
The full system allows composition of UIs from multiple microservices with shared authentication and session state.
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015Codemotion
Containers are a technology that will take over infrastructure management in next few years and it is absolutely important to anyone involved in software delivery automation and maintenance to understand the principles behind it and know how to use it. This workshop offers an introduction to Linux containers using the predominant technology, Docker. The following topics will be covered: - A bit of history (LXC Containers, Docker, other players) - Setting up your environment - Docker daemon and client - Image vs. container - Docker registry - Container orchestration - Docker use cases
A recommendation engine for your applications - M.Orselli - Codemotion Rome 17Codemotion
Nowadays a lot of websites try to guess what we could like: "Recommendation for you in books" "People you may like" Sounds familiar, isn't it? Wouldn't be cool if you could do the same in your application? Well, this session is for you! In the first part of this talk recommendation systems will be introduced, focusing on collaborative filtering algorithms (CR). After that we'll dive in Prediction.io, an open source machine learning server for software developers to create predictive features, such as personalization, recommendation and content discovery.
The document appears to be a collection of random words and phrases that do not form a coherent story or provide any clear information. It mentions not knowing what a quail looks like, contains random letters and numbers, and includes a partial web address.
This short document contains random information including a date, a statement about not knowing what a quail looks like, a number, another number with a decimal, and a URL fragment. It does not provide any clear context or narrative to summarize.
This short document contains random information including a date, a statement about not knowing what a quail looks like, numeric values, and a URL fragment. It does not have a clear topic or message to summarize.
Rich, interactive web applications AKA fat clients are now commonplace. There are so many frameworks for building these rich client applications, and the debate among developers is which of these frameworks to use. As designers and developers we need to step back, and ask ourselves when and how we should enrich our client applications and when or why not. Let’s dig in to the question: Why do we even want fat clients, and when should we use them? Let’s examine the complications such clients introduce so we can weigh them against all the benefits.
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
La recente affermazione in ambito web delle applicazioni rich basate su HTML5 e Javascript è diventato sorgente di una serie di librerie innovative e di strumenti che, se usati correttamente, possono semplificare enormemente lo sviluppo. In questa sessione sarà illustrato come sfruttare Typescript, in concomitanza con Angular e Bootstrap per realizzare applicazioni che sfruttino al massimo le possibilità dei browser e diano un feedback il più possibile simile alle applicazioni desktop.
It Starts with a Goal - Continuous Delivery of an API PlatformRiccardo Porrini
It's 9:30 in the morning. After a brief stand-up meeting your team releases the latest version of the Webapp. Then you pull out a task from the top of the backlog. You design, code, test and deploy to staging. After a successful validation you add the feature you developed to the next release, scheduled for tomorrow morning. It's now 18:30: time to head home. Tomorrow will be another productive day!
Is this just another Continuous Delivery fairy tale? Do you need to be Netflix or Zalando to keep a development pace where features are released on a daily basis?
The experience and lessons learned at Mia-platform in setting up our Continuous Delivery pipeline. How to cope with the difficulties of releasing every day our API Platform, in a sustainable and persistent way, and without discontinuing our clients' businesses.
Di progetti fatti con Arduino se ne sono visti tanti, e tanti se ne continuano a vedere. Se ne vedono un po' meno con Netduino, il microcontrollore che gira con il .NET Micro Framework. In questa sessione vedremo come il nostro giocattolino può diventare un dispositivo di input per il nostro computer. Costruiremo un semplice circuito, e useremo Netduino per raccogliere i dati dall'ambiente esterno e inviarli ad un'applicazione Windows Store.
Similar to Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016 (20)
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Il Commodore 65 è un prototipo di personal computer che Commodore avrebbe dovuto mettere in commercio quale successore del Commodore 64. Purtroppo la sua realizzazione si fermò appunto allo stadio prototipale. Racconterò l'affascinante storia del suo sviluppo ed il perchè della soppressione del progetto ormai ad un passo dalla immissione in commercio.
Rivivere l'ebbrezza di progettare un vecchio computer o una consolle da bar è oggi possibile sfruttando le FPGA, ovvero logiche programmabili che consentono a chiunque di progettare il proprio hardware o di ricrearne uno del passato. In questa sessione si racconta come dal reverse engineering dell'hardware di vecchie glorie come il Commodore 64 e lo ZX Spectrum sia stato possibile farle rivivere attraverso tecnologie oggi alla portata di tutti.
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
There's a lot of talk about blockchain, but how does the technology behind it actually work? For developers, getting some hands-on experience is the fastest way to get familiair with new technologies. So let's build a blockchain, then! In this session, we're going to build one in plain old Java, and have it working in 40 minutes. We'll cover key concepts of a blockchain: transactions, blocks, mining, proof-of-work, and reaching consensus in the blockchain network. After this session, you'll have a better understanding of core aspects of blockchain technology.
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
When was the last time you were truly lost? Thanks to the maps and location technology in our phones, a whole generation has now grown up in a world where getting lost is truly a thing of the past. Location technology goes far beyond maps in the palm of our hand, however. In this talk, we will explore how a ridesharing app works. How do we discover our destination?How do we find the closest driver? How do we display this information on a map? How do we find the best route?To answer these questions,we will be learning about a variety of location APIs, including Maps, Positioning, Geocoding etc.
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
Eward Driehuis, SecureLink's research chief, will guide you through the bumpy ride we call the cyber threat landscape. As the industry has over a decade of experience of dealing with increasingly sophisticated attacks, you might be surprised to hear more attacks slip through the cracks than ever. From analyzing 20.000 of them in 2018, backed by a quarter of a million security events and over ten trillion data points, Eward will outline why this happens, how attacks are changing, and why it doesn't matter how neatly or securely you code.
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
IoT revolution is ended. Thanks to hardware improvement, building an intelligent ecosystem is easier than never before for both startups and large-scale enterprises. The real challenge is now to connect, process, store and analyze data: in the cloud, but also, at the edge. We’ll give a quick look on frameworks that aggregate dispersed devices data into a single global optimized system allowing to improve operational efficiency, to predict maintenance, to track asset in real-time, to secure cloud-connected devices and much more.
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
What if Virtual Reality glasses could transform your environment into a three-dimensional work of art in realtime in the style of a painting from Van Gogh? One of the many interesting developments in the field of Deep Learning is the so called "Style Transfer". It describes a possibility to create a patchwork (or pastiche) from two images. While one of these images defines the the artistic style of the result picture, the other one is used for extracting the image content. A team from TNG Technology Consulting managed to build an AI showcase using OpenCV and Tensorflow to realize such goggles.
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
The document summarizes some of the security issues with blockchain technology. It discusses how blockchain is not a "silver bullet" and does not inherently solve problems like privacy and security of smart devices. It outlines various application security issues with complex code, protocols, and difficulty of updates on blockchains. Concerns over data immutability and security of smart contracts are also covered. The document questions whether blockchain truly provides the level of decentralization and anonymity claimed, and outlines some impossibility results and limitations of existing approaches to achieving security and privacy in blockchain systems.
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
The document provides an overview of the HTTP network protocol in its early stages of development. It summarizes the initial IMP (Interface Message Processor) software used to establish connections and transmit messages over the ARPANET. It outlines some early requirements for host-to-host software to enable simple and advanced use between computer systems. The document also describes the initial host software specifications, including establishing connections, transmitting data efficiently, and implementing error checking between connected systems. This was one of the first documents to define core aspects of the early HTTP network protocol to enable information exchange over the fledgling internet.
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
Performance tests are not only an important instrument for understanding a system and its runtime environment. It is also essential in order to check stability and scalability – non-functional requirements that might be decisive for success. But won't my cloud hosting service scale for me as long as I can afford it? Yes, but… It only operates and scales resources. It won't automatically make your system fast, stable and scalable. This talk shows how such and comparable questions can be clarified with performance tests and how DevOps teams benefit from regular test practise.
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
Sascha will demonstrate the opportunities and challenges of Conversational AI learned from the practice. Both Technology and User Experience will be covered introducing a process finding micro-moments, writing happy paths, gathering intents, designing the conversational flow, and finally publishing on almost all channels including Voice Services and Chatbots. Valuable for enterprises, developers, and designers. All live on stage in just minutes and with almost no code.
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
A key challenge we face at Pacmed is quickly calibrating and deploying our tools for clinical decision support in different hospitals, where data formats may vary greatly. Using Intensive Care Units as a case study, I’ll delve into our scalable Python pipeline, which leverages Pandas’ split-apply-combine approach to perform complex feature engineering and automatic quality checks on large time-varying data, e.g. vital signs. I’ll show how we use the resulting flexible and interpretable dataframes to quickly (re)train our models to predict mortality, discharge, and medical complications.
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
Coolblue is a proud Dutch company, with a large internal development department; one that truly takes CI/CD to heart. Empowerment through automation is at the heart of these development teams, and with more than 1000 deployments a day, we think it's working out quite well. In this session, Pat Hermens (a Development Managers) will step you through what enables us to move so quickly, which tools we use, and most importantly, the mindset that is required to enable development teams to deliver at such a rapid pace.
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
Quantum computers can use all of the possible pathways generated by quantum decisions to solve problems that will forever remain intractable to classical compute power. As the mega players vie for quantum supremacy and Rigetti announces its $1M "quantum advantage" prize, we live in exciting times. IBM-Q and Microsoft Q# are two ways you can learn to program quantum computers so that you're ready when the quantum revolution comes. I'll demonstrate some quantum solutions to problems that will forever be out of reach of classical, including organic chemistry and large number factorisation.
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
Chinese food exploded across America in the early 20th century, rapidly adapting to local tastes while also spreading like wildfire. How was it able to spread so fast? The GY6 is a family of scooter engines that has achieved near total ubiquity in Europe. It is reliable and cheap to manufacture, and it's made in factories across China. How are these factories able to remain afloat? Chinese-American food and the GY6 are both riveting studies in product-market fit, and both are the product of a distributed open source-like development model. What lessons can we learn for open source software?
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
The design space has exploded in size within the last few years and Sketch is one of the most important milestones to represent the phenomenon. But behind the scenes of this growing reality there is a remote team that revolutionizes the design space all without leaving the home office. This talk will present how Sketch has grown to become a modern, product designer's tool.
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what “Software Engineering” really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
What is the job of a CTO and how does it change as a startup grows in size and scale? As a CTO, where should you spend your focus? As an engineer aspiring to be a CTO, what skills should you pursue? In this inspiring and personal talk, I describe my journey from early Red Hat engineer to CTO at Bloomon. I will share my view on what it means to be a CTO, and ultimately answer the question: Should the CTO be coding?
2. Partendo da zero
● Realizzare un MVP videludico in pochi mesi
○ Quali sfide tecniche?
○ Vediamo qualche esempio
3. Partendo da zero
● Rendering stereoscopico
○ Low level rendering
○ Setup della telecamera
■ Distanza interoculare
■ Convergenza
● Tracking
○ Librerie di basso livello per l’acquisizione
○ Interpolazione e smoothing dei dati di tracking
○ Gestione dei tracked device
4. Integrazione con Unity3D
Uso di Unity con HTC Vive:
● SteamVR (architettura open source)
○ OpenVR (libreria open source)
● VRTK (VR Tool Kit)
○ Nato dalla community
○ Grezzo all’inizio
■ Alcune integrazioni sono state necessarie
○ Evoluto moltissimo in pochi mesi
5. Le vere sfide
Iterazioni brevi:
● Mercato nuovo ed in fermento
○ Necessità di essere disponibili al pubblico il prima possibile
Ottimizzazione:
● Vive richiede(va) 90fps obbligatori
○ Ogni hiccup risulta estremamente fastidioso
○ Cali prolungati di framerate portano nausea
○ Problema parzialmente superato di recente con ATW (Asynchronous
reprojection)
7. Comportamenti emergenti
Rendere i nemici più “intelligenti”:
● Avvicinamento convincente
● Capacità di evitare gli attacchi
● Non rimanere bloccati dietro ostacoli o nel paesaggio
● Movimento fluido
● Evitare comportamenti “robotici”
8. Comportamenti emergenti
Soluzioni:
● Behaviour trees?
● Flocking behaviours?
● Reti neurali?
● Forse meglio partire da un approccio semplice…
○ Physics based
○ Un unico movimento base: reach point
○ Guidato da una FSM
○ Meccanismo di evitamento
14. Ottimizzazioni
● Questione di applicare fin dall’inizio alcune best
practices
○ Pooling per evitare instanziazione
○ Paradigma 90/10
■ Problema “a thousand updates”
■ Gestione dei cicli
○ I test, anche su macchine relativamente low end, hanno dato risultati
incoraggianti
“Debolezze” di Unity da conoscere ed aggirare
15. Ottimizzazioni
● Pooling degli oggetti
○ Istanziazione di un nuovo oggetto: operazione dispendiosa
○ Ondate di centinaia di nemici in contemporanea
○ Pool di nemici istanziati in startup
■ Offscreen
■ Diverse categorie
■ Configurabili
■ Un manager che ne gestisce il ciclo di vita
16. Ottimizzazioni
● “A thousand updates”
(https://blogs.unity3d.com/2015/12/23/1k-update-calls/)
○ Unity si basa sul paradigma entità/componenti
○ Ogni componente possiede vari “hook”
■ Alcuni, come Update(), vengono richiamati ad ogni ciclo
Overhead
Chiamata
Update()
17. Ottimizzazioni
● “A thousand updates”
○ Con molti oggetti interattivi in contemporanea, l’overhead può essere
un grosso problema
○ Soluzione:
■ Di nuovo il manager pattern
● Un solo oggetto che abbia i riferimenti a tutti gli oggetti
di una categoria
● Una chiamata ad Update()...
● ...che aggiorna tutti gli oggetti in un ciclo
18. Ottimizzazioni
● Garbage collection e gestione dei cicli
○ Unity scripting backend: Mono 2.6.5 (circa .NET 2.0)
○ Gestione automatica della memoria e GC
■ GC non generazionale
■ Ogni passaggio del GC causa fps hiccups
○ .NET possiede classi collection generiche molto utili
■ List<>, Queue<>, Stack<>, Dictionary<>, …
■ MA
■ L’utilizzo del pratico costrutto foreach su di essi genera
garbage
● (bug di Mono 2.6.5)
19. Ottimizzazioni
● Garbage collection e gestione dei cicli
○ Rimanendo nel paradigma 90/10 esistono due soluzioni
■ Utilizzare for al posto di foreach
■ Riscrivere l’enumeratore per le classi interessate