• Like
  • Save
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James Gough
Upcoming SlideShare
Loading in...5
×
 

Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James Gough

on

  • 1,384 views

Have you always secretly wondered what the heck 'monads' are? How about 'Tail-call recursion?' or 'monomorphic dispatch'? If this sort of terminology has ever left you with self-doubts or seething ...

Have you always secretly wondered what the heck 'monads' are? How about 'Tail-call recursion?' or 'monomorphic dispatch'? If this sort of terminology has ever left you with self-doubts or seething with anger because someone is confusing you with elitist terminology, then this is the talk for you! Dr Richard Warburton and the Diabolical Developer + James Gough will take a humorous look at the wide range of incomprehensible terminology in our industry today. They'll cover the concepts behind the jargon with simple examples and some practical tips on how to blend the terminology into your day to day technical conversations without scaring everyone off. At the end of the talk you'll be ready to battle it out on tough mailing lists (Scala!) and have a new appreciation for some of the academic principles behind our craft. Oh and as for monads? Well they're just like burritos, except they're not...

Statistics

Views

Total Views
1,384
Views on SlideShare
1,375
Embed Views
9

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 9

http://lanyrd.com 9

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • It’s the Community night tonight, so come on down\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Enter stage for Job Interview.\n\n5 mins\n
  • JG: Leaning towards other and in the most earnest tone possible, "Wow, this guy sounds like he knows a lot about vim. If he has such passionate opinions backed up such complex terminology then he must be a really well informed and good developer."\n\nRW: leaning in "I've met this guy before - he's a bluffer!"\n\nJG: "You know, we've got a position open at work, would you be interested in interviewing?"\n\n- How do you do your source control and build management?\n\n10mins\n\n
  • \n
  • http://en.wikipedia.org/wiki/Buzzword_bingo\n\nAsk audience for some of their favourites\n
  • \n
  • \n
  • 15mins\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 25 mins\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 30mins\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 35 mins\n
  • \n
  • \n
  • \n
  • \n
  • 40mins\n
  • \n

Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James Gough Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James Gough Presentation Transcript

  • The Bluffers Guide to Elitist JargonJim Gough@JavaJimLondonMartijn Verburg@kariannaRichard Warburton@RichardWarburto
  • Contents• Introduction to JUGs• Business Jargon• Java Jargon• Computer Science Jargon 2
  • What is a user group? 3
  • What is a user group? Welcome to the London Java Community. 4
  • What is a user group? It’s my first time at the London Java Developer Community. What’s it all about? 5
  • The Wanderer 6
  • The Alcoholic 7
  • The Unwilling Other Half 8
  • The Meetup.com Stalkers 9
  • The Jug Leader/Recruitment Agent 10
  • The Enthusiastic Job Seeker 11
  • The Passionate Vim Advocate 12
  • Bluffer vs Realityhttp://abibritton.wordpress.com/2011/02/22/live-and-mediated-performance-the-matrix/ 13
  • What is it like working in a large corporation? What’s it like working in a large Corporation? Can be a lot of fun! Politics and red tape Lots of buzz words!! 14
  • Buzz Word Bingo ? Reach Out SynergyTouch Base LeverageCircle Back Around Cross Pollination Bleeding Edge Flying Blind 15
  • Why should we care about buzz words?• Increases complexity of the problem domain.• Causes confusion when specifying requirements.• Someone won’t know the acronyms or buzz words.• In house - more training needed for new starts. 16
  • Financial Terms• Exchange – Market place, people buy things and sell things.• Arbitrage – If it’s cheaper at Best Buy and you sell it on Ebay for more...• Execute (or hit) – Buy or sell it• Hedge – Buy something else to minimize impact of massive price movement 17
  • Accounting Terms• Acid Test Ratio – Assets that can be converted to cash to cover current liabilities• Bad Debts – All debts are bad?• Intangible Assets – Long term value but no physical identity. – Eg. Patents, trade marks or brands• Bootstrapping – Make your own money to start a firm 18
  • Enough! Too much business talkThis is a technical conference! 19
  • Hotspot It can also be easy to get tied up in management. A compiler that runs at runtimeUses info about programs executionFocusses on compiling small parts of the application, the “hotspots” 20
  • Lambdas Ah yes, what about this Java 8 stuff. What are Lambdas? A function without a name (x, y) -> x + y 21
  • Lambdas 22
  • Abstract Syntax Tree Sounds a bit abstract... Is it like an abstract syntax tree?A way of representing a program as atree, used inside a compiler.A Node = a construct in the program.An Edge = Being a child in the ASTmeans that youre "inside" something. 23
  • Abstract Syntax Treeint x = 2 + y 24
  • Latch Do you know anything? What is a latch?A concurrency primitive implemented asa class.Holds all threads up until they’ve reacheda certain point 25
  • Memory Barrier• A type of ordering barrier on memory operations.• CPUs reorder instructions• Can change behaviour of multi-threaded programs• Fences enforce an ordering.• Example: the volatile keyword (since Java 1.5) 26
  • Computer Science Terminology Industry doesnt have anything on academia in terms of elitist jargon! 27
  • Linear Regression• When the relationship between multiple variables looks like a straight line. 28
  • Markov Chain, YES!• A state machine where transitions have probabilities 29
  • Gaussion Distribution AKA “Normal Distribution” 30
  • Continuous Uniform Distribution 31
  • Poisson Distribution 32
  • Poisson Distribution• Shows the probability of a number of events happening in an interval.• Lambda is the mean and the variance 33
  • Kronecker Deltaint kroneckerDelta(int x, int y) { if (x == y) { return 1; } else { return 0; }}As a Matrix100010001 34
  • False Positives• “Are there any Java Developers in the room?”• False Positive • “Yes” for an empty room.• False Negative • “No” for this room. 35
  • Monomorphic Dispatch• A method call has only one possible implementation• In Java we can call methods on: – Interfaces – Virtual methods on Objects• Not all methods are monomorphic 36
  • Monomorphic DispatchList<String> strings = new ArrayList<>();strings.add(“a”); // monomorphicif (randomNumber > 0.5) strings = new LinkedList<>();strings.add(“b”); // polymorphic 37
  • Tail Call Recursionint factorial(int n) { return fact(n, 1);}int fact(int n, int acc) { if (n == 0) return acc; else return fact(n - 1, acc * n);} 38
  • Not Tail Call Recursionint factorial(n) { if (n == 0) return 1; else return n * factorial(n - 1);} 39
  • Trampolining 40
  • NO - I mean indirect jump vectors!• A memory location holding an address.• Execution Jumps to the memory location and then immediately jumps to that address.• Why? • Interrupt Routines • Code performing low-level I/O • Avoids assuming that these programs are located in one place. 41
  • Or maybe I mean in LISP? Doubly overloaded - this is the high level meaning • An approach to implementing Tail Call Recursion • Problem: if you recurse a lot you eventually run out of stack space and your program crashes • Your paying customers are now sad pandas.• 42
  • What is Trampolined Style? A trampoline is a function whose purpose is to call other functions in a program. • All functions are called via the trampoline. • Program functions: • dont call other program functions • return the address of the function to the trampoline • return the arguments to the trampoline• 43
  • Conclusions on Complex Terminology• Complicates our domain.• Confuses our developers.• Software Engineering – Domain driven design – Pitching at the right level• See if you can spot the bluffers this week! 44
  • Jim Gough@JavaJimLondonMartijn Verburg@kariannaRichard Warburton@RichardWarburto See you at the Bar!