Video: https://www.youtube.com/watch?v=JNMWi7Z0Ssg
Let us bring back the days where we could write declarative representations of how we want our UI components to work. We should be able to read our code from top to bottom and intuitively know what the output will be, just like the good old HTML, but with the power of functional programming. In this talk we'll explore bringing functional programming into views. Instead of moving logic to markup through weird DSLs we bring expressive views into the programming language. We'll see how to create a UI where we have composable, pure and referentially transparent components; components with no side-effects and predictable output. We couple this with immutable data and components with single responsibilities, and we can get a fast and smart way to build UIs with a unidirectional flow and a simpler static mental model.
By studying the current presentation, you will learn more about the requirements and specifications of the second of the ISE components: The Controlled Written Exam.
Content is an important part of the customer experience. This presentation shows how you can improve customer experience design by mapping content to customer journeys. It outlines the content elements you should consider and the steps to take to create and get sign-off on useful, usable content maps. Finally, we share some approaches to get quick wins and an exercise to start you on the way to successful content mapping.
Intro to Tools & Resources: UMSI Orientation Fall 2014Jackie Wolf
I ran a session during UMSI orientation that introduced incoming students to the tools we are accustomed to using as a Google Campus: Drive, Mail, Calendars, and other items.
Video: https://www.youtube.com/watch?v=JNMWi7Z0Ssg
Let us bring back the days where we could write declarative representations of how we want our UI components to work. We should be able to read our code from top to bottom and intuitively know what the output will be, just like the good old HTML, but with the power of functional programming. In this talk we'll explore bringing functional programming into views. Instead of moving logic to markup through weird DSLs we bring expressive views into the programming language. We'll see how to create a UI where we have composable, pure and referentially transparent components; components with no side-effects and predictable output. We couple this with immutable data and components with single responsibilities, and we can get a fast and smart way to build UIs with a unidirectional flow and a simpler static mental model.
By studying the current presentation, you will learn more about the requirements and specifications of the second of the ISE components: The Controlled Written Exam.
Content is an important part of the customer experience. This presentation shows how you can improve customer experience design by mapping content to customer journeys. It outlines the content elements you should consider and the steps to take to create and get sign-off on useful, usable content maps. Finally, we share some approaches to get quick wins and an exercise to start you on the way to successful content mapping.
Intro to Tools & Resources: UMSI Orientation Fall 2014Jackie Wolf
I ran a session during UMSI orientation that introduced incoming students to the tools we are accustomed to using as a Google Campus: Drive, Mail, Calendars, and other items.
Come portare lo sviluppo strategico e operativo in una PMIbusinessup
Presentazione di Marco Cavadini, CEO di Business Up, tenutasi il 12 Ottobre 2015 durante l'evento "Organizzazione e strategia aziendali vincenti e anticrisi". L'evento è stato organizzato da Business Up, AITI, Supsi e Gruppo Spinelli
Come portare lo sviluppo strategico e operativo in una PMIbusinessup
Presentazione di Marco Cavadini, CEO di Business Up, tenutasi il 12 Ottobre 2015 durante l'evento "Organizzazione e strategia aziendali vincenti e anticrisi". L'evento è stato organizzato da Business Up, AITI, Supsi e Gruppo Spinelli
3. FUNKSJONELL PROGRAMMERING
En deklarativ programmeringsparadigme med funksjoner i fokus.
Unngår tilstander og mutable objekter.
Unngår uønskede bieffekter med bruk av rene funksjoner
4. FUNKSJONELL PROGRAMMERING
Vanlig med bruk av blant annet funktorer som map, filter og reduce.
[1, 2, 3].map(function (i) {
return i * 2;
});
//= [2, 4, 6]
[1, 2, 3].filter(function (i) {
return i % 2 === 0;
});
//= [2]
7. REAKTIV PROGRAMMERING
Kan beskrives som en metode for å holde systemet kontinuerlig oppdatert med
omgivelsene.
En måte for data å reagere på endringer og oppdatere seg for å reflektere disse
endringene.
11. FRP
Hendelser
En diskret verdi. Eksempelvis museklikk eller en mengde.
I FRP blir adferder og hendelser behandlet som sekvenser og kan bli håndtert på
en funksjonell måte.
Adferder
En kontinuerlig verdi. Eksempelvis klokken, høyde eller vektorgrafikk.
12. FRP
Gevinst av FRP
• Reaktive datatyper for representasjon av tilstand.
• Sammensettbar data / komposisjoner
• GUI uten bi-effekter.
Praktisk
bruk
13. FRP
Bacon.js
Bacon er et bibliotek som kan brukes for å oppnå FRP i nettleseren
I Bacon kalles en adferd Property og hendelse kalles EventStream.
14. FRP
I Bacon.js innkapsler vi datakilder som reaktive datatyper.
• fromEventTarget
• fromPromise
• fromCallback
• ...med flere
17. FRP
var getInputAsProperty = function (id) {
var $el = $(id);
return $el.asEventStream('change')
.map('.currentTarget.value') // får inn jquery event obj.
.toProperty($el.val()) // får inn tekst
.map(Number); // gjør om til tall
};
var $a = getInputAsProperty("#a"),
$b = getInputAsProperty("#b");
$a.combine($b, _add).assign($("#sum"), "val");
18. FRP
mouseMove
// isClickDown er en property som er true når mus er klikket
.filter(isClickDown)
// Spre utover per 50. ms
.throttle(50)
// Gjør om til et parsable objekt
.map(function (e) {
return {
x: e.clientX,
y: e.clientY,
color: randomColor
};
})
// Tegn en figur
.onValue(drawCircle)