When Geek
Leaks
Geek a carnival performer who performs sensationally morbid or disgusting acts, such as biting off the head of a live chicken.
a computer expert or enthusiast (a term of pride as selfreference, but often considered offensive when used by outsiders)
Geek
Geek a peculiar or otherwise dislikable person, especially one who is perceived to be overly intellectual.
Geek verb, slang. To inordinate amounts utterly immersed activity that seems interesting to the
spend of time in an not that laity.
Geek leaks
?
class
instantiation exception?
Richard Feynman
Synesthesia
This Feynman diagram shows a virtual top quark and anti-top quark appearing in the interaction between an electron and a positron
e =
2 mc
www.forbes.com/sites/techonomy/2011/11/30/ now-every-company-is-a-software-company/
geek leaks
(
=
+
*
)
recipe 1. Melt the butter in a heavy-bottomed sauté pan over medium-high heat. 2. Add the onion and sauté sauté for 2-3 minutes or until it turns slightly translucent. simmer for a minute or two until it reduces by 3. Add the wine and let it simmer about half.
4. Add the asparagus and sauté for 3-4 minutes or until it's bright green tenderbut butfirm firm and tender to to thethe bite.bite 5. Add the thyme and half the lemon juice and cook for a minute. 6.Season Seasonto to taste taste with Kosher salt, add more lemon juice if needed, and serve right away.
anti-patterns
bulletriddled corpse
floodmarks
floodmarks
user-added floodmarks
floodmarks
OK for bullet-
1st &
riddled
last
corpse
slides
floodmarks
eliminate numbing repetitive noise
Context Keeper
litmus tests how do you
determine the
Next Big Thing?
testability
integratability
licensing & cost
narrow suitability to task
Context Keeper
Backtracking
Hiccup Words
stale content
this slide intentionally left blank Invisibility
geek leaks
John McCarthy
http://en.wikipedia.org/wiki/ The_Mother_of_All_Demos
Denise Ritchie & Ken Thompson
?
geek leaks
habits free your brain to think about other stuff
geek leaks
continuous
integration integrate early & often
deployment deploy as the final stage of CI
delivery software is always deployable
pain
If it hurts... ... do it more often
bring the pain forward time
agile 101 + Continuous Delivery "Agile" team Analysis + Design
Centralized QA
IT Operations
Development
Integration + QA
Release and operation
Testing + Showcase
Customer Iteration
0
1
2
3
4
The "last mile"
geek leaks
Commit stage Version control
Version control
Artifact repository
Version control
Artifact repository
source code commit tests build scripts
acceptance tests deployment scripts configuration data
binaries
deployment scripts configuration data
binaries
Compile Unit test Assemble Code analysis
deployable binaries test reports metadata
Artifact repository
Acceptance test stage Configure environment Deploy and smoke test Acceptance test Tear down
test reports metadata
Artifact repository
Later stages Configure environment Deploy and smoke test Tear down on request
test reports metadata
Artifact repository
Env & app config
Source code
Env & app config
Version control
UAT Testers Self-service deployments
Developers See code metrics and test failures
Configure environment Deploy binaries Smoke test
Commit stage
Acceptance stage
Capacity stage
Compile Commit tests Assemble Code analysis
Configure environment Deploy binaries Smoke test Acceptance tests
Configure environment Deploy binaries Smoke test Run capacity tests
Production
reports binaries metadata
Operations perform push-button releases binaries
reports metadata
binaries
Artifact repository
Configure environment Deploy binaries Smoke test reports metadata
HR-optimized!
software delivery optimized DBA
Operations Manager
Developer
Tester
continuous improvement Deming cycle
continuous improvement Deming cycle
scientific method
the jeweler’s hammer
presentations
∆ prose?
Infodeck versus
Presentation animation
that was an animation!
movement & revelation within a slide
transition
you’re about to moving between slides see a transition‌
Infodeck http://martinfowler.com/articles/bigData/
Infodeck versus
Presentation
Demonstrations versus
Presentations Live Demo versus
Dead Demo
lipsync
19:30
1:30 temporal patterns enable higher information density
Going Meta
http://www.infoq.com/presentations/Simple-Made-Easy
what makes threading so hard in ?
?
variable ??? variable ???
time
identity state
Clojure’s view of identity explicit semantic identity
value value
identity
state
value
Clojure’s epochal time model
Process events (pure functions)
F
v1
Identity (succession of states)
F
v2
Observers/ perception/ memory
F
v3
v4
States (immutable values)
software transactional memory
transactions
v1
v2
v1
v2
v3
v3
v4
v4
v1
v2
v3
v4
v1
v2
v3
v4
F
F
F
F
F
F
F
F
F F
F F
Update a message apply an...
(defn add-message [msg] (dosync (alter messages conj msg)))
scope a transaction
...update fn
(martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf) Who Needs an Architect?
design
architecture Evolutionary Architecture & Emergent Design (bit.ly/nf-ead-all)
stuff that’s hard to change later
(as little of that stuff as possible)
images by Martin Fowler: martinfowler.com/bliki/CQRS.html
CRUD
CQRS
Command-Query Responsibility Segregation http://codebetter.com/gregyoung/2010/02/16/ cqrs-task-based-uis-event-sourcing-agh/
Env & app config
Source code
Env & app config
Version control
UAT Testers Self-service deployments
Developers See code metrics and test failures
Configure environment Deploy binaries Smoke test
Commit stage
Acceptance stage
Capacity stage
Compile Commit tests Assemble Code analysis
Configure environment Deploy binaries Smoke test Acceptance tests
Configure environment Deploy binaries Smoke test Run capacity tests
Production
reports binaries metadata
Operations perform push-button releases binaries
reports metadata
binaries
Artifact repository
Configure environment Deploy binaries Smoke test reports metadata
continuous integration for components Settlement engine VCS
Compile / unit tests
Portfolio management application
Acceptance tests
UAT deployment
VCS
Compile / unit tests
Acceptance tests
Performance tests
Reports engine Production deployment
VCS
Compile / unit tests
Acceptance tests Triggers Artifact dependencies between projects Artifact repository (only dependencies between projects are shown)
trust static Framework
explicit dependencies
fluid 2.2.12
Pricing engine
2.2.13
fluid
2.2.13
1.0.3 static
dynamic dependencies
1.0.4 1.3.1
guarded
guarded
CDS pricing library
failed auto-promote to new dependency
1.0.4
& (automatically ) trust !? verify
automatically automated
metrics & monitoring
automated
“I was born not knowing and have only had a little time to change that here and there.� Richard Feynman
geek leaks
geek leaks
clever solutions
http://www.wired.com/techbiz/it/magazine/17-03/wp_quant?currentPage=all
http://www.wired.com/techbiz/it/magazine/17-03/wp_quant?currentPage=all
Brogrammers…
you’re not helping!
1. A robot may not injure a human being or, through inaction, allow a human being to come to harm. 2. A robot must obey the orders given to it by human beings, except where such orders would conflict with the First Law. 3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Laws.
?
reconsider why I am continuing to do this.�
Dr. Richard Feynman, during a televised hearing by the Rogers Commission, investigating the Challenger Shuttle disaster
embrace the scientific method
There is no authority who decides what is a good idea. Richard Feynman
enjoy the conference! This work is licensed under the Creative Commons Attribution-Share Alike 3.0 License. http://creativecommons.org/licenses/by-sa/3.0/us/