2013/09/30 GOTOcon Aarhus Day 1 and 2

by Gene Kim on

#gotoaar

Up: Brian Goetz: Java Language Architect, "Java: Past, Present, and Future"

  • .@BrianGoetz: "Java is world's most popular programming language; constraints on updating it is much stricter than language that no one uses
  • .@BrianGoetz: "When Java was built (1992-95), it was C, all the time, except Fortran for sci.computing, + occas Perl, Pascal
  • .@BrianGoetz: "Why? C had relatively portable compiler that could be used for a variety of platforms. But, C sucked
  • .@BrianGoetz: "Why did C suck? Too low level for most apps; and not actually portable (e.g., pointers, libraries)
  • .@BrianGoetz: "What was hyped back then? Objects would save the world; precursors to C++, Dist Objects: CORBA, DOE, DCE, ...
  • .@BrianGoetz: "Java self-described by inventors as a 'blue collar language'; opposite of 'ivory tower invention'
  • .@BrianGoetz: "A simple, object oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high performance, multithreaded, dynamic language -- the hype"
  • .@BrianGoetz: "Maybe the riskiest design decision of Java: interpreted; everything was designed for JIT; very rare at time
  • .@BrianGoetz: "Java is actually surprisingly dynamic; statically typed, and dynamically, too"
  • .@BrianGoetz: "Java has some radical design bets; used garbage collection, JIT, Bytecode would work, despite perf probs
  • .@BrianGoetz: "OTOH, Java serialization was worst design decision ever, but maybe success reqd it (used on server side)
  • .@BrianGoetz: "Fanatical about safety: no access to pointers
  • .@BrianGoetz: "all risky stuff was in VM; the YAGNI ('u aren't gonna need it') stuff is mostly in the language
  • .@BrianGoetz: "Gosling: 'Every needed GC, JIT, dynamic linkage, threading; but they always came in languages that scared devs'
  • .@BrianGoetz: "Missteps: set-top boxes, client, then server (success!); why? Fast GC/JIT; reliable concurrency, safety, dynamic
  • @andypiper: “… don’t say monad - it scares people” @BrianGoetz
  • .@BrianGoetz: "Java today: world's most popular deployment platform: 97% of enterprise desktops; 9MM users"
  • .@BrianGoetz: "If Java were country: population: 9MM; GDP: $200 billion USD (based on Dev income); same size as Sweden
  • @andypiper: “Java is… like Sweden” @BrianGoetz #gotoaar http://t.co/Fl44ECrWWf
  • .@BrianGoetz: "Core language principles: reading code more important than writing; simplicity matters; one language, same everywhere
  • .@BrianGoetz: "Integrating Java language patch is first 0% of work; may foreclose future language options
  • .@BrianGoetz: "If you submit Java code patch, we prob look like a bunch of self-important jerks; but changing language is hard."
  • .@BrianGoetz: "Java 8: lambda expressions, java.util.stream; small, but have lots of impact on dev productivity
  • @deanwampler: RT @drkrab: Advice for FP advocates: wrap the good features in a language that doesn't scare people /cc @josevalim #gotoaar http://t.co/KaL
  • .@BrianGoetz: "Pre-Java8, lambda expr was so ugly & cumbersome, no sane person would want to use it; now looks like Scala or C#
  • .@BrianGoetz: "I love the talk by Guy Steele on
  • Did anyone get the title/URL of the Guy Steele talk that @BrianGoetz recommended so highly?
  • .@BrianGoetz: (Haha. Java has new internal type called 'Spliterator', to support parallel exec of lambda exprs)
  • .@BrianGoetz: "People ask me, 'why do I work on Java, when I could be working on something cool like Clojure? Answer: leverage
  • .@BrianGoetz: "Side effect of adding lambda expr: Collections libr now looks even more ancient/outdated; over 15+ yrs old (!!)
  • @martinobrink: Wow, @BrianGoetz talk: Java 8 lambdas and parallelism with streaming apis actually looks pretty sexy #java
  • @gsaab: RT @drkrab: New word of the day: Spliterator #gotoaar #java8 http://t.co/DMOLrik989
  • @johankjensen: @RealGeneKim @BrianGoetz I think this is the talk he mentioned: How to think about parallel programming-Not #gotoaar http://t.co/F2ezHzFjdz
  • Thank you! @johankjensen: here is talk that @BrianGoetz mentioned: How to think about parallel programming #gotoaar http://t.co/F2ezHzFjdz
  • .@BrianGoetz: "Pain points beyond Java SE 8: boxing, tuples, records, multiple ret, erasure, where's List, ptr chasing.
  • .@BrianGoetz: "
  • @cdberg: "If you make the path of least resistance lead to the right result, people's natural laziness works for you." @BrianGoetz
  • @chr_horsdal: The #gotoaar keynote was an Interesting history lesson about the design and evolution of Java by @BrianGoetz Good start of the day.
  • @trisha_gee: RT @abedra: It's easy to innovate with no baggage. What @BrianGoetz and team have done with Java 8 is subtle and brilliant.

Up: Ben Rockwood: "Obstacles And Frameworks To Maximize Flow In IT (Cloud) Operations" #devops

  • .@benr: "The challenge: we have 4 weeks to stand up a Formula 1 analytics website;
  • .@benr: "Dev produces an asset; Ops produces the service (which is reliant upon the correct functioning of the asset)" #devops
  • .@benr: "Systems thinking: emergent properties come out of the system, not from indiv components (eg, dev, ops) " #devops
  • .@benr: "In restaurant: lots of work centers: wait staff, kitchen, maitre'd; rarely bad experience due to head chef; usually svc
  • .@benr: "@lhawthorn: The #devops flow: people, process and tools facilitating flow. #gotoaar @benr http://t.co/ciKZResy99
  • .@benr: "Pattern 1: Start With Why: key to doing anything well is Intentionality (having good #devops, good marriage)
  • .@benr: "Pattern 2: Build Trusting Relnships; Sinek: 'when we're around people who believe what we believe, trust emerges
  • .@benr: "...you don't to be 'friends,' but you must be peers and not enemies'
  • .@benr: "Pattern 3: Share Vision, Align Culture: customer focus; propagate flow; cut people who can't, who'll sabotage
  • @lhawthorn: Have honest conversations with people and get out of the office, very important for leaders - @benr #gotoaar http://t.co/oBZCkpRgsi
  • .@benr: "Pattern 4: Value Stream Mapping: start w/resources; value is added thru a variety of steps; this is the internal sys
  • .@benr is citing Leaning To See, from Mike Rother, Jon Shook:
    https://pbs.twimg.com/media/BVen-36CcAAmfRE.jpg
  • .@benr: "Pattern 5: Standardize Work: Document your work; employees should never struggle to know what to do, record exec times
  • .@benr: "Pattern 6: Manage Flow In Value Stream; Kanbans are grt tool, citing @LeanKit; Tickets aren't enough; helps chg mgmt
  • .@benr: "Can't just live in Jira; problems happen when you cross org boundaries; kanbans help keep flow of work moving
  • @rachellaycock: "Writing a TODO list is boring but important"
  • .@benr: "Pattern 7: Muda, eliminate waste (Japanese for 'futility'); Ex: insuff chg data given to Ops; too many mtgs, large chgs
  • .@benr: "@lhawthorn: Eliminate Waste (Muda: Japanese for futility) - If it does not add value or help you achieve your goals, get rid of them <3<3 #gotoaar @benr
  • @rcastag: Obstacles And Patterns To Maximize Flow In IT Operations. Some great nuggets on managing services and value
  • .@benr: "Pattern 8: Kaizen (Japanese for 'change for the better' or 'improvement'); scientific method for experimentation
  • .@benr: "Kaizen must be driven by people actually doing the work; can't be command and control, or driven by outside group
  • .@benr: "Drucker: 'Efficiency is doing things right; Effectiveness is doing right things'" (focus on effectiveness, not efficiency)
  • @robynbergeron: RT @lhawthorn: True Kaizen is driven by stakeholders + empowered by management; those doing the work know how best to improve it! #gotoaar
  • @robynbergeron: /me is sad she is not at #gotoaar, but strongly believes that @RealGeneKim and @lhawthorn should meet if they never have! :) hugs
  • @lhawthorn: True Kaizen is driven by stakeholders + empowered by management; those doing the work know how best to improve it! #gotoaar @benr
  • .@benr: "Pattern 9: Jidoka (quality at source); "autonomous automation"; Ex: building idempotent (tools than can be run 2+ times
  • .@benr: "When you write better error logging, somewhere out there, a sysadmin loves you" #devops
  • .@benr: "Pattern 10: Gemba ("go and see where the work happens"); not only spend time w/customers, but w/ops people, deploys
  • .@benr: "Pattern 11: Practice and Teach Kata ("form"); kata is abt way we solve problems, not just the outcomes; daily practice
  • .@benr: "Use repeatable patterns; otherwise random occurrences of improvements (ie, accidents)
  • @lhawthorn: Know who and where you are and where you want to be. And be brutally honest about this process. #gotoaar @benr
  • Q: "If I were to annoint you as the ambassador of Ops people to the Development community, what are the three things you would want everyone to know?"

Up: Jez Humble: "DevOps Culture And Practices To Create Flow" (@jezhumble)

  • .@jezhumble: "Lean is transforming how we deliver value and services; Poppendicks, Reinersten, Ries, etc..."
  • .@jezhumble: "The problem is that our work (as dev & ops) is invisible; sometimes mapping isn't obvious." Citing Charles Betz
  • .@jezhumble: "There's Toyota Production System & Toyota Product Dev System; Betz: design of IT products & IT svcs is analogous
  • .@jezhumble: "Citing awsome @CharlesTBetz book: 'Architectural and Patterns for IT' & Reinertsen 'Principles Of Product Dev Flow
  • .@jezhumble: "
  • @lhawthorn: What flows through the production line is information particularly about what people want - Reinertsen, Principles of Prod Dev Flow
  • @lhawthorn: C.Betz, Architecture + Patterns for IT - product portfolio lifecycle vs manufacturing individual transaction in IT = each mfg prod
  • @johankjensen: @gotoaar Just got it confirmed, that GOTO-badge gives access to ARoS.
  • .@jezhumble: Citing the chronic problem of Agile-Scrum-Fall.
    https://pbs.twimg.com/media/BVe1SZHCEAAZ2Y6.jpg
  • .@jezhumble: "In 2006, Chris Read, Dan North & I wrote paper 'The Deployment Production Line,' basis of Continuous Delivery
  • .@jezhumble: "Toyoda Automatic Loom, Type G may be birth of TPS: automatically detected errors (e.g., cotton running out)
  • .@jezhumble: "Ohno: automation + people = autonomation" (machines know what machines can't do)
  • @lhawthorn: Jidoka: automation + people = autonomation > The instantiation of ask for forgiveness not for permission when team is empowered
  • .@jezhumble: "In avg Toyota plant, andon cord is pulled 3500 times/day, often stopping production" (everyone gasps :)
  • @lhawthorn: Toyota mfg processes and Jidoka http://t.co/6cCw7Ppl8a
  • @lhawthorn: Toyota plants - stop switch pushed 3,500 times per day when errors are found in production process #gotoaar Improvement is constant
  • .@jezhumble asking: "who is doing continuous integration; devs checking in at least once/day; builds fixed in less than 10 min"
  • .@jezhumble: "Continuous integration is not running Jenkins on your feature branches" (haha); "Poppendick: WIP = unmerged code"
  • .@jezhumble: "My favorite talk is James Shore: 'Doing Continuous Integration On A Dollar A Day" http://www.jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Day.html
  • @RealGeneKim: .@jezhumble: “My favorite talk is James Shore: ‘Doing Continuous Integration On A Dollar A Day” http://t.co/io6n42Gg7E #gotoaar
  • .@jezhumble: "Dev hates continuous integration; they like wearing headphones, refactoring & dreading integration 1 wk later"
  • .@jezhumble: "Version control is a communication mechanism, it's the way you communicate what you're working w/rest of team
  • .@jezhumble: "People become software engineers b/c they don't like talking to people
  • @lhawthorn: "It is incredibly nasty to keep your change in that broke the build + keep everyone from checking in on trunk. Revert." @jezhumble
  • .@jezhumble: "We shouldn't optimize process for time-to-complete-on-dev-branch, b/c it req nasty integration phase"
  • .@jezhumble: "
  • @lhawthorn: "Whole reason people become software engineers is so they don't have to talk to other people" @jezhumble #gotoaar Amusing if oversimplified
  • .@jezhumble: "
  • @kutzi: Checking in your changes to trunk is communication with other devs. Jez Humble
  • .@jezhumble: "Only 5 people in this room of 250 are actually doing continuous integration
  • .@jezhumble: "Poppendieck: 'how long would it take ur org to deploy single line of code?'; many don't know, or highly variable
  • .@jezhumble: "
  • @rlengwinat: "Optimize for cycle time, not for velocity." @jezhumble at
  • .@jezhumble on Little's Law for feature (batch) size:
    https://pbs.twimg.com/media/BVe57oGCUAAHpqU.jpg
  • .@jezhumble: "Devs can't be fully utilized, as Little's Law shows; what should they do? Jidoka! Write automated tests, fix pipeline
  • @lhawthorn: "We'll pay to build the thing, but not to test it. That's an optional extra." @jezhumble #gotoaar followed by many LOLs
  • @lhawthorn: People assigned to one project are not underutilized - they add automated tests, look for bugs, continuously improve the product.
  • @lhawthorn: Many managers optimize utilization which makes cycle time massively increase Faster cycle time = reduce utilization. Find problems
  • .@jezhumble citing "Toyota Kata" by Mike Rother, a really wonderful book & one of most prolific Lean researchers
  • @lhawthorn: Toyota Kata by Rother. Secret to effective management - to manage, you must have worked on the floor. Go where the work is done.
  • .@jezhumble sharing amazing story of 2008 HP LaserJet by Gary Gruver: only 5% spent on innovation
    https://pbs.twimg.com/media/BVe8QxuCYAEBztj.jpg
  • .@jezhumble: showing continuous integration process in git; 2 hrs testing in L2, 30K hrs of tests in L4
    https://pbs.twimg.com/media/BVe8qhtCEAAEfha.jpg
  • .@jezhumble: "HP: 10MM lines of code, 100 checkins/day, 10-15 good builds/day; eliminated entire integration/stabilization phase
  • .@jezhumble: "Outcome: 5% Dev time on innovation -> 40% time on innovation" (!!) "23% managing automated testing"
  • @lhawthorn: Hardest thing with Jidoka - prioritizing identifying problems and getting them fixed rapidly
  • .@jezhumble: "Dev costs down 40%; programs under dev up 140%; dev cost/program down 78%"
  • .@jezhumble: "Showing Etsy A/B testing & business hypothesis testing: green: control; blue: exper feature
    https://pbs.twimg.com/media/BVe9r0DCYAAVho0.jpg
  • .@jezhumble: "Kohavi: 'Online Experimentation at Microsoft': 'only 1/3 of features actually improved the key metric"
  • .@jezhumble: "Goal: filter out bad ideas quickly (in fuzzy front end); citing Cost of Delay (Google 'Farming Black Swans')
  • @tastapod: When a test passes it should give you confidence, when it fails it should have found a bug. Many tests aren't like that. @jezhumble #gotoaar
  • @workingsensors: most it companies do water-scrum-fall. @jezhumble at
  • @lhawthorn: People think the important thing is having lots of automated tests. It's about having good automated tests that give useful info.
  • @yassalsundman: Really like @jezhumble sequence diagram for the #continuousdelivery pipeline #gotoaar http://t.co/HXWHVdqZNb
  • @rcastag: DevOps Culture And Practices To Create Flow. Great insights on continuous integration. Checkin to the trunk FTW
  • @lhawthorn: Black Swan Farming - way of thinking about value at front end

Brent Beer, "How Github Builds Code"

Up: Mirko Presser, Smart City Lab, Alexandra Institute, "Don't be religious about the Internet of Things!"

  • MIRKO PRESSER, RESEARCH AND INNOVATION FOR THE SMART CITY LAB, ALEXANDRA INSTITUTE
  • Presser: "Pilot projects: trash bins that create route planning for collection; street lights dim based on # of people around
  • Presser: "Two ideas are on collision course: Internet of Things and Open Data" (Presser got PhD on Mobile Internet of Things :)
  • Presser: "Here's a map of where pics are taken by tourists & residents, rendered from Flickr data"
    https://pbs.twimg.com/media/BVfzuU6CEAEzPI-.jpg
  • Presser: showing LIVE train map for London Underground: Matthew Sommerville. Wow! http://traintimes.org.uk/map/tube/
  • Holy cow. Presser attempting to show demo: graphing everyone's mobile phone GPS loc; enuf granularity to show ppl waving phones
  • ...just from people going to a URL from their mobile phone; startling concept that you could see < 1ft resolution movement.
  • Presser: "We're hiring at Gatesense"
  • Wow. Presser: Step 1) send mobile phones to URL http://kognitionsdesign.dk/testing/citypulse/; Step 2) see phones rotation/movement
  • Screenshot of graph, displaying mobile phone movements/rotations; Genuinely startling!
    https://pbs.twimg.com/media/BVf3bB-CMAAVIWh.jpg
  • @teropa: RT @tastapod: Open Data is not a big data problem, yet - you can do a lot of this in Excel or writing little programs. @aslamkhn at #Gotoaar
  • Correction on Presser talk: demo is based on phone's accelerometer; going to URL streams data from phone every 2ms. Wow!
  • Still... Startled that my phone will send constant accelerometer data to any website who asks for it...

Keynote: Jeff Hawkins, "Computing Like The Human Brain"

  • http://en.wikipedia.org/wiki/Jeff_Hawkins
  • Three things
    • Onlin learning from streaming data
    • Sequence memory
  • Hawkins: "Human brains process constant stream of data; 2 types of memory: dense (like computer ram) vs. sparse distributed (like neuron)
  • Sparse representation: pick 40 best descriptors among 2000 attributes
  • Shared bits = semantic similarity
  • SDR operators
    • similarity
    • store and compare
    • union membership
  • Intelligent machines will be built n SDRs
  • Sequence memory
    • rotates every several milliseconds
    • 40 active columns: 10 cells per column: 10^40 ways to represent different contexts
    • high order, high capacity
    • noise and fault tolerant
    • multiple simultaneous predictions
    • semantic generalization
  • Online learning
    • Learning is the growth of new synapses, can be grown in seconds
    • Cortical learning algorithm
  • Three next steps
    • Commericilization: GROK: predictive analytics using CLA
    • Open source project nuPIC CLA open source softwre and community
      • http://www.numenta.org
      • Community: 200+ mailing list subscibers, 20+ msgs/day, full time manager (Matt Taylor)
    • improe algorithms, develop applications
    • Custom CLA hardware
      • Running into limits of software: IBM, Seagate, Sandia Lab, DARPA
    • Encoders turn scalar, native data to SDRs
    • Learns spatial representation
  • Definitely
    • Hawkins: "We build brains faster, bigger; fastest brain is 5ms; we can make them faster and bigger"
    • Hawkins: "Super sensors; like windmils, not five senses
    • Hawkins: "Fluid robotics; distributed hiierarchy; they don't need to be colocated
  • Maybe
    • Humanoid; "I don't care about making humans; I'd be happy with a a mouse"
    • "we may not have computer/brain interfaces; maybe for handicapped people"
  • Definitely Not
    • "Uploaded brains will never happen"
    • "Evil robots"; "It's just memory"
  • Why should we create intelligent machines?
    • Live better
    • Learn more
  • @Mekkaz: RT @Caligin35: A lot about small teams at #gotoaar . Small, passionate teams kick assess.

Misc

  • @synodinos: Funniest slide at #gotocon yet (by @robertnyman) http://t.co/WRMGiL0YNv
  • RT @andypiper: “… and don’t say monad - it scares people” @BrianGoetz
  • RT @andypiper: “Java is… like Sweden” @BrianGoetz #gotoaar http://t.co/Fl44ECrWWf
  • @mindrudan: Today at #Aros: a lot of wind + see the photo #gotoaar http://t.co/HYTKCfXNfo
  • +1 RT @trisha_gee/@abedra: It's easy to innovate w/no baggage. What @BrianGoetz & team have done w/Java 8 is subtle & brilliant.
  • @KuraFire: “RIM recently announced they’re going to retreat into Enterprise, and that simply means they’re going to curl up and die.” @asymco
  • @lagergren: I hate talking after @BrianGoetz. My brain is smaller than his.
  • @jakobfaerch: Straight from Brian Goetz: "invokedynamic: the ultimate procrastination tool"
  • @lagergren: Now @BrianGoetz goes behind the scenes of the lambda impl in the JVM. Good, because it's sort of a prerequisite for my audience ;)
  • RT @lhawthorn: "People become software engrs is so they don't have to talk to other people" @jezhumble #gotoaar Amusing if oversimplified
  • D3 blows my mind. Reminds me of Numpy. @zoodor: Nice short intro to d3 by @darkgreener, need to think of something to try visualising #GotoAar
  • D3 blows my mind. In old days, reqd tons of numpy code. Amazing! @zoodor: Nice short intro to d3 by @darkgreener: http://d3js.org
  • , need to think of something to try visualising #GotoAar
  • @triforkams: The first slides of today's presentations @GOTOaar are online! Click here to download them: http://t.co/QKOAZ09FTB

RT @triforkams: The first slides of today's presentations @GOTOaar are online! Click here to download them: http://t.co/QKOAZ09FTB

  • @kriswager: Activists do AB testing these days according to @aslamkhn, testing signs etc
  • RT @kriswager: Activists do AB testing these days according to @aslamkhn, testing signs etc