Skip to main content

Notes from Tuesday afternoon Jazoon

Posted by haroldcarr on June 24, 2009 at 10:08 AM PDT

Here are my notes from the Tuesday afternoon at

Tuesday afternoon June 23, 2009

GridGain - Java Gateway to Cloud Computing
Nikita Ivanov – GridGain Systems

- Grid: 2 or more computers working on same task in parallel
- Grid computing: parallel procesing + parallel data storage
- Cloud: data center automation (virtualization)
- Cloud computing: Grid computing + data center virtualization
- Clouds are the new way to deploy and run grid appications

Why Grid/Cloud?
- Amazon: 100ms latency cost 1% of sales
- Google: 500ms latency drops traffic 20%
- Financial: $M/ms lose if 5ms behind
- Solves problems often unsolvable otherwise

eBay: partition processing from data access

- OpenSource (LGPL and Apache 2.0) Java cloud platform
- Build and run grid compute apps on cloud infrastructure
- integrates with leading data grids
- built for native cloud apps



- Integrate multiple data sources
- Was surprised when I asked if they could handle HTML pages
  with embedded microformats or RDFa

- Layer on top of GWT

Java Rule Engines (Drools, iLog)
Raed Haltam – wega Informatik

Treat business logic as business data

Rules Engine
- execute
- stores, versions, secures
- rules engine -> repository <- access policy <- edit
                  Scenario Manager

BOM = business object model
XOM = exceution object model

Drools, iLog, Jess, ...
Rule format: when <condition> then <actions>
Based on Charles Forgys RETE Algorithm
Rule set, Rule package, BOM and Rule Flow
Higher level or "business language"
Rule security (on statement level: EG: condition, parameter, action)

Rules and SOA
- Monitoring of SLAs
- Enforcement of contract terms
- Business Rules Routing

Rules Engine and Complex Event Processing
- IBM, Tibco, BEA/Oracle, JBos, WebMethods, ...
- JBoss uses Drools

OpenUAT: Experiences from the implementation of an Open Source
Ubiquitous Authentication Toolkit
Iulia Ion – ETH Zurich
Rene Mayrhofer: Univserit of Vienna

How to establish a secure connection between two (mobile) devices

Out-of-band channels
- Visual channel : EG: visual barcodes and phone camera
- Audio Channel : EG: key is encoded and transmitted via audio channel
- manual string comparison : EG: user compares output manually
- Accelerometer data : EG: shake both devices
- Button press : EG: pushing buttons simultanesouly on both devices

Audio channel
- Diffie-Hellman key exchange over Bluetooth
- Encode, play -> record, decode hash code of key
- device synchronization done via bluetooth play/record

Video channel
- Hash encoded in a QR code
- Take a picture of the other device and decode

Shake together
- Use the accelerometer times series as a common input secret

Button channels
- Common input by simultaneous button presses
- OR message transmission through button presses

Useful libraries
- BouncyCastle light
- Log4J
- Microlog

Smithying in the 21st Century
Neal Ford - ThoughtWorks

Avoid becoming a technology dinosaur
Our brains are bad at predicting the future
We are bad at statistics (See _The Drunkard's Walk_)
Anything this is in world when you where born is natural
Anything invented between 15 and 35 - you can make your living at it
Anything invented after you are 35 is against the natural order of things
Look for paradigm changers
- EG: iPhone
  Apple is largest music retailer in the world
Look for warmed over technology
- EG: UCSD p-System virtual machine)
  See: Bruce Tate: _Beyond Java_
- Threading
  Solution: Haskell, O'Caml, Scala, F#
- Dynamic languages
  Groovy, JRuby, JavaScript, Clojure
- One that lie at crossroads
What to do with data (data gather is easy, but now how do you process it)?
- The End of Science:
  Civel War: surgery
  WWI: airplanes
  WWII: computers
  Now: robotics
Cautionary tales
- Reevaluate whether you should continue "solving" "the" problem
  Maybe the problem is not important/useful any longer
- _The Singularity is Near_, Ray Kurzweil
Software developers need an Hippocratic Oath
- Miles Dyson promise: do not build super intelligent homicidal cyborgs
- SWOOPO : "Entertainment shopping"
  bad site that takes advantage of people's nonunderstanding of statistics
The Future
- languages matter
  safir-whorf : language effects ability to have thoughts
    discrete, but perhaps true in computer languages
- Orwell _1984_
- notation matters
- polyglot programming - use languages stategically
- technology changes us
  Press elevator
    Over 30: index finger
    Under 30: thumb
"The best way to predict the future is to create it" - Peter Drucker

What they don't teach you about software at school: Be Smart!
Ivar Jacobson – Ivar Jacobson

Goal: good software quickly at low cost

- Useful
- Extensible
- Reliable
- Competent and motivated people
Low Cost:
- Large scale reuse of components

Software is a fashion industry
- 15 years ago: OO
- 10 years ago: UML, Unified Process
-  5 years ago: RUP and CMMI
-  2 years ago: XP
-          now: Scrum
- None of above is ALL you need
- Software industry still looking for silver bullet

"Things should be done as simple as possile, but no simpler" - Einstein

Being smart is not the same thing as being intelligent
Being smart is an evolution of Being Agile

Smart cases (what they do not teach you in school)
- people, teams, projects, requirements, architecture, modeling,
  test, documentation, process, knowledge, outsourcing, tools

- some companies view processes and tools as more important than people.
  NOT smart.

- Often organized into stove-pipe groups.
  EG: requirements, implementation, test.
  NOT smart.
- Cross-functional team
  Ideal size is less than 10 people

- Waterfall: NOT smart
- Build a skinny REAL system to demonstrate you have elminated critical risks
- Add more capabilities on top of that skinny system
- Think big, build in small steps

- Lightweight requirements
- Add detail when needed
- Requirements are negotiable and can change

  1. no architecture: code then refactor later
  2. enterprise architect: design everything up front
- Smart: enterprise iterative architecture
- Focus on skinny system
  Make it executable (otherwise it is a hallucination)
  Refactor over releases (large refactoring is costly)

- think/create: developers; cleanup: testers
  testing is too late and too expensive
- SMART: we are all testers
  YOU are not done until YOU have verified that YOU did
  what YOU wanted to do

- UNSMART: people don't read documents
- SMART: focus on essentials: placeholders for conversations

- People don't read process books

How do you become smart?
- You need knowledge/experience in GOOD practices
- Training and mentoring are key
Related Topics >>