[2018 Oracle Code One] Developer Horror Stories

Development Horror Stories
Speaker: Roberto Cortez & Oleg Selajev

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


Stories

  • Broke filter so showed adult videos
  • Deleted inventory and no backups. Had to re-enter all data manually.
  • Units of measure
  • Emails with invalid address so bounced around for hours
  • Deleting a repository instead of a file
  • Used a magic number and it lived on forever..
  • Underpowered servers ad not enough tuning.
  • Off by one error because didn’t account for leap year
  • Recursive SQL statement caused issue with a very large bill of materials [and we all learned sql can be recursive]. Lesson: filter at as low a level as possible. Went from 100+ years to 75 milliseconds
  • Missig where clause so emailed too many people a scary message
  • Running a performance test on wifi is really slow.
  • Decompiling a jar making a change and recompiling it.
  • Running a performance test on prod. Didn’t tell security. Thought being DDoS’d
  • Deleted database. Thought was backed up vs being made permanently unavailable. Only two days of data entry to restore.
  • Exposing port publicly lets anyone delete your data
  • Ran test against prod. Looked like DOS so autoblocked headquarters. Prevented all reservations. Workaround was to use mobile site since run elsewhere.
  • Running CI on a laptop caused it to disappear when person got fired. It reappeared briefly when machine next booted up.
  • Project’s CM system is putting ode on CD and putting it in a file cabinet. Have software, but not OS or hardware to run it on
  • Added RAM instead of pagination
  • Rebooted prod (vs retired prod) by going to wrong building

They said youl could use a fake name or fake company name if you went up. Most everyone used their real name. It was funny because he kept asking if people used their real name. When I went up, I said I worked for an unnamed bank in NYC. The guy after me said he worked for an unnamed trading company in NYC.

I also liked how he “baseined” how many people would raise their hands by asking eveyone n the room t raise their hands hen he commented that 90% was like 100%

My take: I went to this session last year. It’s mostly stories from the audience which is fun and different. Great topic for lunchtime.

[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.