Lærelysten? Vi deler gjerne!

Bli med på foredrag, kurs, eller workshop, eller len deg tilbake og se en screencast.

Foredrag

3 grunner til at ClojureScript gir deg superkrefter

Trenden i webutvikling går mot mer og mer avanserte klienter skrevet i JavaScript. ClojureScript er et pragmatisk språk som hjelper deg til å lage enklere løsninger. Her belyser jeg flere grunner til at ClojureScript er verdt å vurdere til ditt neste prosjekt.

5 approaches to concurrency in Java - which one is the best?

Presentasjon fra JavaZone 2016 om forskjellige rammeverk/paradigmer for å gjøre applikasjoner concurrent. Mye live eksempel.

How to Kill DevOps (in 5 minutes)

En liten seanse der jeg, med dårlig skjult ironi, raljerer litt over hvordan man kan unngå å lykkes med DevOps. Fra DevOpsDays i Oslo i 2016.

Functional Frontends with Elm

Lyntale på Oslo Socially Functional hvor jeg lager en enkel Chat klient med Elm

Functional Reactive Programming for the Web using Elm

I dette foredraget får du en oversikt over hvordan Elm omfavner Funksjonell Reaktive Programmering vha signaler (verdier som endrer seg over tid). Du vil lære litt om Elm platformen og arkitekturen for en typisk Elm applikasjon. Live koding står også på blokka !

Elm package docs preview in Light Table

Screencast som demonstrerer forhåndsvisning av pakke dokumentasjon for Elm i Light Table.

Sammenligning av GC alternativer

Lyntale hos javaBin som viser hvordan man kan sammenligne de forskjellige GC implementasjonene i standard JVM.

Managing and diagramming elm packages with d3 in Light Table

Screencast hvor jeg demonstrerer avhengighetshåndtering og viser avhengighetsgraf (laget med d3) for min Elm Light Table plugin.

16 minutter om Pure Functions

Jeg snakker hva, hvorfor og hvordan om Pure Functions, i et utbrudd av entusiasme etter å ha jobbet med en kodebase basert på disse prinsippene et par år.

Elm plugin for Light Table

Screencast som demonstrerer første versjon av min elm plugin for Light Table

Interaktiv programmering med ClojureScript

Interaktiv programmering er en teknikk som gir deg en umiddelbar nærhet til koden din og åpner opp for en ekstremt kort feedbackloop.

Sustainable code - what they don't teach you

En applikasjon koster mer å forvalte enn å utvikle. Likevel blir de fleste kodebaser optimalisert for arbeidet gjort i prosjektfasen før prodsetting. Jeg kommer med noen tanker rundt hva vi kan gjøre annerledes for å gjøre applikasjoner lettere å forvalte.

EcmaScript 2015: The Close Future of JavaScript

I juni 2015 ble siste versjon av EcmaScript - spec-en til JavaScript - ferdigstilt. EcmaScript 2015 (eller EcmaScript 6 som det en gang het) er tidenes største oppgradering av språket, og i dette foredraget gjennomgås en hel haug med eksempler på nye features og hvordan de kan brukes. Alt kodes live med hjelp av Emacs.

Plugin-basert arkitektur i Java!

Presentasjon fra JavaZone 2015 om bruk av plugins for å lage en modulær arkitektur. Spesielt relevant forhold til micro-services og muligheten for å splitte en applikasjon i separate tjenester på et senere tidspunkt.

Erfaringer med Clojure og Scala (og Java 8)

På Javazone 2015, snakket Alf Kristian erfaringer med de funksjonelle språkene på JVM'en. I tillegg sammenlignet han dem med "FP" i Java 8.

You can't change this: Immutability in JavaScript

Hva er immutability? Hva er hensikten? Kan man benytte seg av det i JavaScript? Hvordan? Hvilke konsekvenser har immutability for UI-programmering? Dette foredraget gir deg svar på disse spørsmålene, med mer til.

Calculating Taxes Using Functional Programming and Akka

Presentasjon fra flatMap 2015 - om erfaringer med Akka og Java 8 ifm. prosjekt hos Skatteetaten.

A pinch of Clojure love to Light Table

Screencast som demonstrerer kule features i min Light Table refactoring plugin

Clojure refactoring in Light Table

Screencast som demonstrerer litt av min Light Table refactoring plugin

Webutvikling med Clojure

Det finnes et utall plattformer for å lage webapplikasjoner; så hvorfor skal du vurdere Clojure? Fordi det gir deg enklere løsninger, raskere utvikling og færre feil. Ta sjansen til å bli kjent med et språk som vil forandre måten du tenker på.

Design for asynkronitet og høy ytelse!

Presentasjon fra JavaZone 2014 om skalering og concurrent programmering i Java. Sammenligner forskjellige rammeverk og prøver å gi noen gode scenarier for bruk.

Lyntale: Du MÅ ikke velge et rammeverk!

Lyntale fra JavaZone 2014 rundt valg av JavaScript-rammeverk.

ZombieCLJ: Live parprogrammering

Se Christian og Magnar parprogrammere på nettspill med Clojure og ClojureScript. Denne økten er for de som syns det er moro å se folk parprogrammere mens de prater om hva de driver med. Det blir Clojure med hanskene av, så man må tåle å ikke forstå alt. De som er helt nye til funksjonell programmering kan muligens få eksplodert hodet. Definitivt live koding.

Really understanding Clojure, getting into macros

På Javazone 2014, snakket Alf Kristian om Clojure sine makroer. Det ble et dypdykk inn i en av Clojure sine kraftigste features

The Groovy Light Table Plugin

Screencast om bruk av Groovy og Gradle i Light Table

Functional UI Programming

En introduksjon til React.js, med sammenligning av populære MC*-rammeverk, samt et eksempel på bruk i form av live-koding av minesveiper med ClojureScript og Om (en React-wrapper).

Creating and Using Snippets in Light Table

Screencast som viser hvordan lage og bruke snippets i LightTable med lt-snippets

InstaBuster Part 2: Powerful JavaScript testing using Light Table and Buster.JS

Screencast med demo av dashboard og autotest features for LightTable InstaBuster

InstaBuster: JavaScript testing with LightTable & Buster.JS

Screencast med en kort introduksjon til LightTable InstaBuster.

Fra Grid til Akka!

Presentasjon fra JavaZone 2013 som sammenligner grid-produktet Hazelcast med Akka forhold til concurrency og ytelse.

Elektronisk tekstbehandling

Moderne programmeringsspråk er kraftige saker; de kjemper om å overgå hverandre med høyere og høyere abstraksjonsnivåer. Men av og til kan den korteste veien til målet befinne seg i verktøy som ble laget før internett ble oppfunnet. Her får du en oversikt over Unix-verktøy for å strukturere og filtrere tekst.

Programmeringsspråket betyr alt!

Hovedverktøyet til programmerere er programmeringsspråket. Likevel velge vi sjeldent det beste riktige verktøyet for å løse oppgavene. Denne presentasjonen fokuserer på hvor viktig det er å velge riktig programmeringsspråk.

Better and groovier tests with Spock

Spock er et elegant testrammeverk for Java og Groovy- baserte applikasjoner. Det hjelper deg å skrive lesbare og presise tester, samtidig som det optimaliserer for utviklerproduktivitet.

De første delleveransene skal være stygge

I smidig produktutvikling er det viktig med fortløpende validering av løsningen. Man vil finne potensielle feil raskt. Man skal ikke vente med at applikasjonen er ferdig før man viser den. Det at de første leveransene er mangelfulle er en del av den nødvendige prosessen og må ikke sees som feil.

Gradle - Det er faktisk ditt bygg

Mange klamrer seg fortsatt til illusjonen at alle bygg er (nesten) helt like. Det stemmer kanskje i knøtteligaen, men i litt større organisasjoner finner man alltid spesielle krav til bygge/leveranseprosessene. Det virker logisk å velge et byggeverktøy som er svært fleksibelt og samtidig er basert på konvensjoner. Det verktøyet heter Gradle.

Hazelcast: Open Source In-Memory Data Grid

Presentasjon fra JavaZone 2012 som introduserer Hazelcast. Gir en innføring til grid og Hazelcast med en del erfaringer fra bruk av rammeverket i Skatteetaten.

Readable code

Når det gjelder kode - er lett å lese det samme som god?

Smidige utviklere spør ikke om råd

Smidig utvikling handler om å være reaktiv fremfor proaktiv. Istedenfor å analysere i forkant, validerer man antakelsene sine fortløpende. Vi må slutte å be om avklaringer i forkant og heller test ut teoriene våre og sjekke om de faktisk fungerer i virkeligheten.

Zombie TDD: Live parprogrammering

Magnar og jeg setter oss ned med emacsen og parprogrammerer foran publikum. Se hvordan to typer som digger JavaScript angriper problemer og gjør koden testbar.

Lisp er vakkert!

Mange misliker Lisp på grunn av annerledes syntaks. Men når man forstår hvorfor syntaksen er som den er, så blir språket vakkert!

Pure JavaScript

Kast de objekt-orienterte krykkene og se denne introduksjonen til funksjonell programmering med JavaScript

Hibernate should be to programmers what cake mixes are to bakers. Beneath their dignity

Jeg snakker om problemene med generiske rammeverk generelt og Hibernate og ORMer spesielt.

Clojure - JVM språket som er "multi-core ready"

En introduksjonspresentasjon om Clojure, som går igjennom språkets oppbygning og filosofi. Forklarer også hvorfor Clojure er et bedre rustet språk for fremtiden enn andre.

JavaScript design and architecture

En liten inspirasjonsprat om å finne gode abstraksjoner for frontend-programmering

Lyntale: Tracking location of your neighbours wearable

På javazone 2016 viste jeg frem hvor lett det er å overvåke alle bluetooth-enheter i nærheten med en egenlaget Android app og en backend skrevet i Go. Det blir ekstra skummelt når jeg sender dataene til google-appengine og lar alle med appen installert abonnere på puls-klokken til han som sitter ved siden av deg. Bluetooth var ikke bygd med tanke på personvern, det du har rundt håndleddet er en digital sauebjelle! Lyntalen har senere blitt utvidet til et foredrag som blant annet holdes på ISF sin høstkonferanse 2017.

Lyntale: Wrap Ajax'en din

Jeg tegner og forteller hvordan du får ryddig kode og trivelig testing ved å wrappe ajaxen din.

Mythbusters: JavaScript Edition

Få programmeringsspråk er omgitt av så mye unøyaktig, irrelevant og direkte feil informasjon og misforstått 'hjelpematriell'. I dette foredraget tar jeg for meg noen av de vanligste misforståelsene, og prøver gjennom eksempler å oppgradere publikums JavaScript-kunnskap.

Test-driven JavaScript Development

En praktisk gjennomgang av TDD i JavaScript. Foredraget er en times live-kode-sesjon der jeg lager et autocomplete/type-ahead søk, test-first.

Funksjonell Programmering på JVM

Presentasjon fra JavaZone 2010. Hovedsaklig en presentasjon av arbeidet Eivind gjorde med master-oppgaven. Snakker om forskjellige aspekter ved funksjonell programmering og hvordan man oppnår dette med forskjellige språk på JVM.

Elm - Awesomesauce or just yet another language for the frontend

Elm er kanskje et av de mest spennende språkene og platformene for å lage solide, raske og vedlikeholdbare web frontends. I dette fordraget får du en liten smakebit av fordelene med funksjonell programmering (med typer) i Elm. Du får også en innføring i hvordan Elm er mere enn bare et språk. Språket, plattformen og arkitekturen promoterer en ny måte å tenke på som virkelig fanger ens oppmerksomhet. Foredraget består av noen få slides og en solid dose med live-coding !

Groovy collection API

En oversikt over groovy's collection api, som gitt på Communities in Action, feb. 2012

The imminent revolution of functional append-only databases

I de fleste domener har gammel data høy verdi. Det bør ikke være ditt ansvar å løse dette manuelt med tradisjonelle muterbare databaser. Få en introduksjon til ny grensesprengende database-teknologi som løser dette problemet for deg.

WTF is Datomic?

Introduksjon til hvordan i alle dager en immutable database kan funke, og hvorfor det er bra greier.

You probably don't know how the internet actually works

En slags kjapp intro til hvordan internett egentlig funker. Halvparten om routing og slikt, resten om krypto.

Screencasts

Zombie TDD - Testdrevet JavaScript

Følg med når Magnar lager et nettspill fra scratch med JavaScript på klient og server. Testdrevet etter beste evne. Har du lyst til å være med? Hele greia er gratis og online - se første episode her.

Zombie CLJ - Clojure og ClojureScript

I denne oppfølgeren til Zombie TDD lager Magnar og Christian nettspill fra scratch med Clojure og ClojureScript.

Emacs Rocks!

En serie med kjappe, små videoer om hvorfor Magnar syns Emacs er en skikkelig trivelig editor.