[2018 oracle code one] Bulletproof Java Enterprise Applications

Building Bulletproof Java Enterprise Applications
Speaker: Sebastian Daschner

For more blog posts, see The Oracle Code One table of contents


 

Being resilient

  • Don’t crash
  • Prevent faiures from casading
  • Don’t allow actions that are doomed to fail

Timeouts

  • Avoid deadlocks
  • Kill at some point so overall system and continue
  • Especially http and database timeouts.
  • Some libraries default to no timeouts

Retries

  • Immediately retry to avoid temporary failure – but be careful that not putting more load on a failing server
  • Avoid unnecessary error codes
  • Decide how often and how many times to retry

Java EE Extensions

My take: I like that there are actual code examples. I don’t like that the text based slides are in vi (or a screenshot of vi). Such a smal font and tons of wasted whitespace.

[2018 oracle code one] tech writing for developers

Write More Better: Tech Writing for Developers

Speaker: Elliotte Rusty Harold
Google

For more blog posts, see The Oracle Code One table of contents


General

  • In user testing, the first thing people do is google how to do the task.
  • SEO: want the first hit to be your doc page for the task.
  • Developers use Google, read Stack Overflow, buy O’Reilly books that tell them about docs.

Tech Writer Specific SEO

  • Learn abut general SEO
  • Delete old docs so they don’t show up in search
  • If want old docs available, archive at different URL and make sure the URLs search engines have points to the latest

Links

  • Good for search engine juice
  • Bad for users
  • Assume some users follow every link and get lost.
  • Every link loses 1% of users
  • Inline links lose 10% of users
  • No one reads the sidebar
  • The only good place to put links is the bottom

Readers skim

  • Leave out the boring parts – try to write the most important parts first and see if you need more.
  • Code samples are critical
  • Bulleted and numbered lists are excellent
  • Use headings and whitespace

Writing for developers

  • Developer casual mode
  • Straightforward but not stilted
  • Not too personal. Be comfortable, but not too familiar. Helps for international readers where might be less comfortable
  • No jokes
  • Avoid culturally specific examples (ex: baseball)
  • Clear/concise/simple prose
  • Short sentences
  • One thought per sentences
  • Itemized lists are good. Numbered lists are better
  • Use present tense by default. Use simple past/present for specific past/future events.
  • Use active (not passive) voice. Clearer because obvious who is the “doer” of the action.
  • “You” for tutorials; “it” for references
  • I/we are ok for war stories and case studies
  • Simple words
  • Omit needless words

English skills

  • Aim for an eight grade reading level (except for technical terms)
  • “Your reader’s English is much better than your high school French” – However, still not native speakers
  • The people you work with and who attend English language tech conferences are not a representative sample.
  • Easier to write simpler English then read harder English

Words to avoid

Can search your text for these words for ideas of what to make clearer

  • Use to
  • Tends to
  • In order to
  • Is able to
  • Just (and other unneeded adjectives) – want adjective to clarify. If nobody would ever say the opposite of the word, it doesn’t mean anything.
  • Please note that

Design

  • How much of page is fluff? Headers/sidebars
  • Header should scroll off page once page down. Wasted space when sticky
  • Watch out for chart junk
  • Videos are an addition to your docs, not a substitute. Some developers love videos; others will not watch them.

Productivity

  • Write fast; edit later. Ok to use sentence fragments, “screenshot will go here”, link is xxx.
  • Outline in headings/bulleted lists. Then expand later.
  • Include docs in pull requests
  • Put doc tasks in agile tracker
  • Make sure all docs don’t fall the to person with the title “tech writer”
  • Let coders write. Some will be better than others.
  • Make sure low effort to publish

Feedback

  • Make corrections easy – feedback link, file bug, edit this page. [I like when you can submit a pull request for the doc fix to an open source product]
  • Have two feedback links – doc comments and product comments. That way goes to right area
  • Good example: Maven has a “?” link where you can click and git will automatically fork for editing/pull requests. Can do everything in a browser.
  • Use a plin text format (HTML/Markdown) vs Word/Google Docs/PDF to ease editing.

References

My take: Excellent session. Some were things I’ve heard a million times. But I also learned a bunch of things and came away with ways to make books, blog posts and wiki pages clearer. I especially liked the before/after of sentences.

[2018 oracle code one] dapps/chaincode/smart contracts hands on lab

DApps, Chaincode, Smart Contracts: Get Decentralized or we’ll go without you.
Speaker: Axel Bronder (Oracle)

For more blog posts, see The Oracle Code One table of contents


Blockchain

  • distributed database/ledger
  • consensus before write
  • immutable data (once write)
  • uses cryptography
  • distributed apps and business logic
  • smart contracts == chaincode (business apps)
  • dApps – ex: Etherium

Hyperledger Fabric

  •  open source
  • permission blockchain
  • can choose consensus model – don’t have to use mining
  • multiple channels – know channel exist, but can’t read it
  • works with different blockchain (doesn’t have to be Oracle Blockchain)
  • peers generate consensus
  • ledger – world state
  • application – ex: Postman

Lab

My take: They wanted people to pair for the lab. Which is fine. But they wanted you to pair on one computer and share the login to the cloud. My partner doesn’t speak English well so we had communication troubles. That turned out to not be my largest problem. They provided papers for two different cloud environments. For half of the participants, the environment was “slow” and timed out. After a bunch of confusion, it installed the chain but didn’t instantiate. An hour into the lab (really 40 minutes because the beginning was talking), we were told to start over. I got another timeout in the new environment and decided to leave and go to another session instead. I did read the entire lab PDF so I got the gist. (I hope our lab goes better tomorrow!)