Controlling the world with Arduino & JavaScriptMagnus Green
"Any application that can be written in JavaScript will eventually be written in JavaScript" - Atwoods Law
Have you ever wanted to control devices in your own home over the internet? I will show you how you can do this with the help of Arduino and JavaScript.
Arduino is an open-source microcontroller that can connect to various sensors and affect it's surroundings by controlling lights, LCD screens, motors and other actuators. Johnny-five is a JavaScript library that can communicate with an Arduino using node.js. This opens doors for new possibilities, like integrating with Windows Azure or Firebase. I will introduce Arduino and johhny-five and show you how these two in conjunction can get you started with "The Internet of things".
https://github.com/magnushg/automatr
Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009Eoin Brazil
CS4062 Masters in Interactive Media - Fourth Arduino Lecture - March 18th 2009 - University of Limerick. This lecture presents a short review and introduction to programming concepts relevant to Arduino. This was aimed at a digital media / music technology masters student audience.
Visma Sirius holdt Onsdag 14. september kurs i JQuery for Abakus og Online ved NTNU i Trondheim. JQuery er et rammeverk for Javascript som forenkler utvikling av webapplikasjoner.
Controlling the world with Arduino & JavaScriptMagnus Green
"Any application that can be written in JavaScript will eventually be written in JavaScript" - Atwoods Law
Have you ever wanted to control devices in your own home over the internet? I will show you how you can do this with the help of Arduino and JavaScript.
Arduino is an open-source microcontroller that can connect to various sensors and affect it's surroundings by controlling lights, LCD screens, motors and other actuators. Johnny-five is a JavaScript library that can communicate with an Arduino using node.js. This opens doors for new possibilities, like integrating with Windows Azure or Firebase. I will introduce Arduino and johhny-five and show you how these two in conjunction can get you started with "The Internet of things".
https://github.com/magnushg/automatr
Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009Eoin Brazil
CS4062 Masters in Interactive Media - Fourth Arduino Lecture - March 18th 2009 - University of Limerick. This lecture presents a short review and introduction to programming concepts relevant to Arduino. This was aimed at a digital media / music technology masters student audience.
Visma Sirius holdt Onsdag 14. september kurs i JQuery for Abakus og Online ved NTNU i Trondheim. JQuery er et rammeverk for Javascript som forenkler utvikling av webapplikasjoner.
11 erfaringer ditt prosjekt ikke behøver å gjentailmyggo
Presentasjon på JavaZone 2015: Alle prosjekter gjør valg man skulle ønske man kunne gjøre om i etterpåklokskapens klare lys. Vi tar for oss 11 erfaringer fra MAG og EDAG i Skattetetaen, bakgrunnen for valgene og konsekvensene de medførte. Sannsynligvis greit å vite om ditt prosjekt står ovenfor tilsvarende problemstillinger.
Ifølge Oscar Wilde er "the only good thing to do with good advice is pass it on; it is never of any use to oneself". Allikevel vil vi beskrive 11 erfaringer som kan være nyttige for akkurat deg. Prosjektene MAG (Modernisering av grunnlagsdata) og EDAG (Elektronisk dialog med arbeidsgiver) nærmer seg avslutning, og har levert de første stegene i Skatteetatens moderniseringsmålbilde. Med et blikk i bakspeilet ser vi på designvalg som vi sannsynligvis ikke ville gjort om vi hadde hatt kunnskapen vi har i dag. Dette omfatter større og mindre valg som bruk av UUID som primærnøkkel, tilrettelegging av backup og restore, streaming, feilhåndtering, transaksjonstimeout og Jersey-avhengigheter. Rådene kan iallefall videreformidles til andre!
http://t.co/tquXpmblsz
Når man tar i bruk skytjenester kan det være viktig å ha et aktivt forhold til hvordan trafikk til og fra bedriftens nettverk skal håndteres. Det finnes en del eldre myter og “sannheter” som ikke nødvendig vis stemmer i dagens tekniske virkelighet, samtidig som mulighetene og alternativene kan være forvirrende. Bli med i en gjennomgang […]
Presentasjon på personalmøte 19 mai 2009
-Web 2.0 tenester og verktøy - kva kan dei
brukast til og litt om teknologien bak?
-Litt om korleis dei nye nettsidene våre skal
bruke web 2.0
-Få inspirasjon til å komme igang med
tenestene sjølv :)
11 erfaringer ditt prosjekt ikke behøver å gjentailmyggo
Presentasjon på JavaZone 2015: Alle prosjekter gjør valg man skulle ønske man kunne gjøre om i etterpåklokskapens klare lys. Vi tar for oss 11 erfaringer fra MAG og EDAG i Skattetetaen, bakgrunnen for valgene og konsekvensene de medførte. Sannsynligvis greit å vite om ditt prosjekt står ovenfor tilsvarende problemstillinger.
Ifølge Oscar Wilde er "the only good thing to do with good advice is pass it on; it is never of any use to oneself". Allikevel vil vi beskrive 11 erfaringer som kan være nyttige for akkurat deg. Prosjektene MAG (Modernisering av grunnlagsdata) og EDAG (Elektronisk dialog med arbeidsgiver) nærmer seg avslutning, og har levert de første stegene i Skatteetatens moderniseringsmålbilde. Med et blikk i bakspeilet ser vi på designvalg som vi sannsynligvis ikke ville gjort om vi hadde hatt kunnskapen vi har i dag. Dette omfatter større og mindre valg som bruk av UUID som primærnøkkel, tilrettelegging av backup og restore, streaming, feilhåndtering, transaksjonstimeout og Jersey-avhengigheter. Rådene kan iallefall videreformidles til andre!
http://t.co/tquXpmblsz
Når man tar i bruk skytjenester kan det være viktig å ha et aktivt forhold til hvordan trafikk til og fra bedriftens nettverk skal håndteres. Det finnes en del eldre myter og “sannheter” som ikke nødvendig vis stemmer i dagens tekniske virkelighet, samtidig som mulighetene og alternativene kan være forvirrende. Bli med i en gjennomgang […]
Presentasjon på personalmøte 19 mai 2009
-Web 2.0 tenester og verktøy - kva kan dei
brukast til og litt om teknologien bak?
-Litt om korleis dei nye nettsidene våre skal
bruke web 2.0
-Få inspirasjon til å komme igang med
tenestene sjølv :)
2. MAGNUS GREEN (@magnusg)
Reise Film
Rock n’ Roll
Kaffe
www
Konsulent
Gaming
TDD .net
JavaScript
Clean Code Øl
Smidig
Sneakers
New York
Master of Information Technology
5. Hva skal vi gjennom?
• Hva er en Single Page Application?
• Hvorfor Single Page Application?
• Hvordan lage en Single Page Application?
• Bootstrap – HTML5 UI rammeverk
• RequireJS – Modularisert JavaScript
• Knockout – MVVM rammeverk
• SignalR – Real-time async signaling
• Deploy som en Azure web-site
• Oppsummering
6. Single Page Web Application
• Applikasjon != Webside
• Data oppdateres når det er
nødvendig
• Data oppdateres der hvor det
er nødvendig
• Tilstand og navigasjon
6
7. Client Server Data store
Tradisjonell web
Display HTML Authentication
Decorative JS Authorization
Ajax for HTML Validation Store data
Business logic Retrieve data
Generate HTML Business logic
Client Server Data store
Ajax for JSON Authentication
Business Logic Authorization
SPA
Generate HTML Validation Store data
Generate JSON Retrieve data
Kilde:
Single page web applications, Michael S. Mikowski og Josh C.
Powell
7
8.
9.
10. Forvirret og sint bruker
(Dårlig steming) Blid og fornøyd bruker
(God stemning)
11. KISS
• SPA i sin enkleste form med jQuery
– http://jsfiddle.net/magnusg/xCDR5/
• Litt mer avansert med flere rammeverk
– http://bit.ly/nnugspa
11
12. Twitter Bootstrap
• Hva?
– Front-end rammeverk fra skaperne av
twitter
• Hvorfor?
– Rask vei til å få opp et godt rammeverk /
prototyp for en SPA eller webside.
– Lett å style om i etterkant
12
14. RequireJS
• Hva?
– Dependency injection for JavaScript
• Hvorfor?
– JavaScript-koden deles opp i moduler
– Lettere å få til SRP og renere kode
– Tar hånd om rekkefølgen på lastingen av
JavaScript moduler
14
15. Modulnavn Avhengighet
define('dataservice.images', ['ajaxhelper'], function (ajaxhelper) {
var getImages = function (callbacks, searchTerm) {
var search = { searchTerm: searchTerm };
var data = search.searchTerm ? search : searchTerm;
return ajaxhelper.ajaxRequest('api/images', data)
.done(callbacks.success)
.fail(callbacks.error);
};
return {
getImages: getImages Revealing module
};
});
17. KnockoutJS
• Hva?
– MVVM (Model-View-ViewModel) rammeverk
– Data-binding for JavaScript
• Hvorfor?
– Oppdatering av UI når og hvor det er behov
– Applikasjonstilstand
– Renere markup og JavaScript
– Klart skille mellom markup og JavaScript
17
20. SignalR
• Hva?
– Sanntidskommunikasjon mellom server og klient
• Hvorfor?
– Sanntidsoppdatering av klienter
– Meldinger om endringer i data eller endringer i andre
klienter
20
22. Pass på!
• JavaScript minnehåndtering
• Ikke rør DOM hvis du ikke må!
• Lær deg JavaScript!
• Bruk Chrome debugging og
performance tools (Firebug /
Dragonfly)
22
23. Oppsummering
• SPA = RIA = RWA?
• SPA er applikasjoner, ikke web-sider
• Bedre brukeropplevelse på flere plattformer
• JavaScript kan være rent og
vedlikeholdbart
• Web browseren som plattform har kommet
for å bli!
23 22. august 2012 Bunntekst – endres/slettes med "Sett inn, Topptekst og bunntekst"