[2019-oracle-code-one] Your Project, Brand, and Career

Your Project, Brand, and Career: Bring Attention to Your Project or Blog

Speakers: Yolande Poirier, Kenneth Kousen (@kenkousen), Donald Raab (@TheDonRaab) & Alexa Weber Morales (@WorlWindWriting)

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


General

  • When we blog, we are trying to create long tail content.
  • Ken Kousen gave a shout out to this blog. I’d write more, but it’s be recursive 🙂 [Click here for details]
  • Alexa switched from Twitter to YouTube. Didn’t transition audience.

YouTube

  • Form audience member: YouTube one directional. Twitter overwhelming.
  • Alexa suggested using same material on multiple channels. Ex: Convert youtube content to blog posts.
  • Yolanda runs @java youtube account. Can get transcript. Alexa said kludgy. Yolanda said teh transcript isn’t good because doesn’t understand tech terms. Rev.com sells better transcript for $1/minute
  • YouTube will penalize you if no written content. Be sure to tag.
  • Ken has a podcast which is part of a youtube channel.

Starting

  • What are you working on right now?
  • Blogs are about sharing.
  • Can share as learn and people see progression.
  • Ken’s blog is called “stuff I’ve learned recently”
  • Ken suggested thinking of blog as notes to yourself.
  • Write for self. Don’t assume initial content will get read.
  • Need to advertise first blog to get audience.

Blogging

  • Following increases over time as more people discover it. Important to have new content out there regularly.
  • Don tries to keep blog posts to a 3 minute read
  • Don posts executable code
  • “Whale post” – long post (ex: 2000 words). Some people will go back and update.
  • People like to see their (full) name. Interviewing people will get them to read it.
  • Guest posting
  • Present with someone/co-author with someone – spreads there name recognition
  • Blogs have stats
  • “Dance like nobody is matching; Blog like you are testifying in court” – Ken
  • Don blogs about open source so nobody thinks about his current work.
  • Don’t need focus. The focus is you. People will Google what need and look at your other posts. Ok if they are interested or not.
  • Write articles for InfoQ or DZone and follow up with blogs
  • Combine topics with tags

Where publish – once or everywhere

  • Medium posts can group/collect posts. Ex: Android
  • Ken used WordPress blog hosted there.
  • SEO = don’t repost
  • Don has goal to blog at least monthly. Will sometimes post at 11:59 on last day of month.
  • Ken noted can pay extra for own domain so not obvious hosted on wordpress. Also dev.to, github.io pages
  • Alexa said to make sure to use a CMS so get SEO advantage
  • Can set up to automatically tweet about new blog posts.
  • If write newsletter, make blog post as well
  • Scott noted you can pipe your blog to Amazon. [we do that]
  • Alexa speculated that walled garden approach is going down. Once something viral, it’s everywhere. So harder to wall off content and require pay.

My take

The presenters have a great rapport It was a great session for the final day since it was less “technical”

[2019 oracle code one] DevOps Theory vs Practice

DevOps Theory vs Practice: A Song of Ice and Tire Fire

Speakers: Viktor Gamov (@gamussa) & Baruch Sadogursky (@jbarauch)

Deck: https://jfrog.com/shownotes/

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


Humor from imaginary thought leader (make sure you enjoy sarcasm in this section)

  • “Everybody’s software must be releasable at absolutely any time” – even if drunk?
  • “Everyone must have 100% test automation” – even if release 3-4 times a user to 2-3 users. cost makes sense
  • “We do Continuous Security well” – even if hire security person so have someone to blame
  • “Your greatest threat is an outage. Not an employee; just trust your employees” – even if CIO leaves bus with all data.
  • “VMs are the enemy of DevOps. This is where you must focus your innovation, Docker and Kubernetes” – Even for app just migrated from mainframe and not container ready
  • “You are a beautiful unique snowflake as are your problems. No vendor could possibly understand them.” So should invent own framework b/c written by other people.
  • “Our company is based in SF b/c that’s where the best engineers are”. Expensive b/c rent high

Four Questions

  • Is org/team ready to adopt new tech?
  • Is it even good tech? What do you know besides the demo? Where is it on Gartner’s hype curve? Thoughtworks Technology Radar – https://www.thoughtworks.com/radar
  • What problem do I solve by using this tech? What problem are you trying to solve? Not resume driven development
  • Will solving this problem help my organization?

Random notes

  • You are not NetFlix. Running chaos monkey on your network of ATM machines not a good idea.
  • Master Excel or Google Spreadsheets

Maturity models

  • Think about capabilities when trying to accelerate software development, not maturity models
  • Bad maturity models are bad
  • Bad models – goal driven. Get to goal and then are “done” improving, one size fits all from book, checkboxes for tools, write and forget
  • Good models – process driven, focus on outcomes
  • Components – evaluation factors (ex: is there a CI process), scoring methodology (is there partial credit), self assessment vs 3rd party assessment (how know if good process), progress tracking (of evolution), visualization (to show to people with different levels of involvement)
  • Different levels of detail for capabilities
  • Account for priorities of different teams – engineering, ops, business
  • Only use primary colors
  • Involve team in involving model definition and assessment
  • Partner with forward looking teams
  • Evolve model over time

My take

The intro was hilarious. The content was good as well 🙂

[2019 oracle code one] mastering regular expressions

Mastering Regular Expressions (^.*$)(?#everything) You Should Know

Speakers: Fernando Babadopulos @babadopulos

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


History

  • Invented in 1951
  • Popularized in 70’s with vi/lex/sed/awk/expr
  • In 80’s Perl included advanced regex
  • Java 1.4 – added regex

General

  • Used for a spam filter before AI started detecting spam
  • Not just for developers. Can do lots of things in text editor

Engine

  • Eager – starts with leftmost match and first match is good enough.

Regex Examples

  • /Java/ – match first string “Java”
  • /database/g/ – match all instances of string “database” (different syntax than for Java. Typing without the / from now one)
  • .* – match everything (or nothing) – as much as can because eager
  • [dl]ate – character class matching d or l (followed by ate)
  • a[^p] – negated character class. No “p” after “a”
  • database[0-9]\. – range of database0. to database9.
  • \d\d.\d\d – Two digits, any character and two more digits. Probably not what you want. Works if have valid data. But will also match 15624. Use what want ex: [:h] instead of dot. (Or escape the dot if want a period)
  • ^(.*),(.*) – Want first two fields of a CSV. [unless have commas inside field with quotes]. Backtracks a lot though because consumes entire string and backtracks one character at a time until gets to a comma. Then backtracks more. Better to write [^,] than dot so express what actually want.
  • ^([^,]*),[^,]*)$ – match exactly two field [Unless have commas within quotes for an element]
  • ^[a-z]*$ – empty file or only lower case letters
  • get|set – match either string
  • \bget|set\b – matches words that end with get or start with set – not what intended
  • \b(get|set)\b – only match words get or set since checking for boundary (space, tab, etc)
  • Jan(uary)? – matches Jan or January
  • a{0,10} – 0-10 a’s
  • a{10} – exactly 10 a’s
  • a{0,} – zero or more a’s
  • a{1,} – at least one a’s
  • Java(?=Script) – positive lookahead – Java followed by Script
  • Java(?!Script) – negative lookahead – Java not followed by Script

Escaping

  • \( -escape paren
  • \d – shorthand for digit
  • \s – shorthand for whitespace
  • \w – shorthand for word
  • \\ – slash

Tips

  • Avoid . – use characters want or negative character class.
  • Use anchors (^ and $) wherever possible.

Regex101.com

  • Type regex
  • Gives explanation of regex typed
  • Can set flags ex: global
  • Area for test string to see what matches
  • Has a code generator so can get regex with proper Java escaping
  • Has debugger – can step through the parts of the reg ex and see what matches at each step. It also shows backtracking. This seems like a good way to see the efficiency of a regex as well. [Cool!]

Other URLs:

https://www.regular-expressions.info – tutorial

https://regexper.com – create graphs

My take

I enjoyed the debate (and then vote) on how to pronounce regex before the talk started! Half of the audience raised their hands for liking regular expressions. Biased crowd of course. The room was awkward and the lecturn hid part of the screen. I like that he showed a lot of examples and the execution graph. I really like the debugger on regex101. Learning that was worth attending the talk on its own! As was the regexper graph site