JavaOne – Escaping Developers’ Nightmares

“Escaping Developers’ Nightmares”

Speaker: Rustam Mehmandarov

For more blog posts from JavaOne, see the table of contents


Put together code tools and cs to make developer’s paradise.

90s – waterfall, java in notepad/emacs/vim, visual sourcesafe, cvs, javac at command line, MS Access in a shared network folder for defect tracking

now it is rainbows and unicorns – git, real issues tracking

Tweet from here:

YOU ARE IN A LEGACY CODEBASE

> RUN TESTS
YOU HAVE NO TESTS

> READ SPEC
YOU HAVE NO SPEC

> WRITE FIX
YOU ARE EATEN BY AN ELDER CODE HACK.

Continuous integration/deployment/delivery sold as unicorn or rocketship that will takes to stars.

Code quality

  • Code standard – do you have a coding standard? Do you follow it?
  • Encodign – If coding in langage other than English, do you have encoding standard? Is checking automated?
  • MIME Type – Do you have standard?
  • Code Reviews – Do you do? How know code does what supposed to?

Development Tools

  • Code Versioning – “Git or even SVN”. Do you have a branching and tagging strategy?
  • Complexity, Testing
  • Branching
  • Static code analysis
  • Plugins – ex: Sonar
  • IDEs, checks at comits, integrates with unit testing and sonarqube)
  • build tool – Jenkins, TeamCity, Bamboo, etc and Maven, Gradle, etc
  • Unit, integration, UI, end to end tests

Third party libraries

  • Do you track your third party libraries
  • Do you have known issues/vulnerablities
  • Are they updated? Are they maintained? Are they compatible with each other?
  • Are the licenses appropriate
  • Are they in Apache Attic? Where projects go to die
  • Google OSS Fuzz test

Packaging > Delivery > Deploy

  • Automated deployment?
  • What environments can you deploy to?
  • Are enviornment similar
  • Same process to deploy to each environment
  • Do QA and Prod use separate physical hardware
  • How easy to rebuild from a script
  • Do you have monitoring in all environments

Architecture

  • Do you support continous deploy? Microservices? Load balancing?
  • Code package structure can hurt or help you

Helpful Maven plugins
Assembly, versions, depedency, enforcer surefire, failsafe, sonar, findbugs, pmd

Documentation

  • Wiki
  • Avoid multiple documentation systems

Collaboration

  • Issue tracking
  • Wiki
  • Chat

Blog post on bash ools:
https://mehmandarov.com/cmd-tools-for-developers/

My take: Fun comparison. He even drew a unicorn with rainbow hair and a rainbow tail for the “rainbows and unicorns” slide. A lot of things were covered. And if you know you are supposed to do them, definitely a good review/checklist. There were a few stories. I was hoping for more stories or more on how to sell the need for such tools. [Someone asked about how to sell and he said “you just have to explain it and show the value.” I thought how would be in the talk”]

JavaOne – Nurturing Online Communities

“Nurturing Online Communities”

Speaker: Simon Maple

For more blog posts from JavaOne, see the table of contents


Runs VJUG (virtual java user group)

Events

  • Talks
  • Book club – then talk to author of book online when done
  • Forum
  • IRC chat – mainly used during sessions
  • Conference – 24 hour conference Oct 25th – https://virtualjug.com/vjug24/ – borrow other’s physical meetups by holding viewing parties for vgug24

Metrics

  • Page views
  • user counts

Benefits

  • Easier to find speakers – no travel so speaker can say yes more easily
  • Diversity – anyone on planet can join. Also, talking to a handle so not influenced by race/gender
  • Can view session while working from office
  • Can view recording after the fact – have all 4 years of content. Recording important for time zones. Find 5pm UK time to be best
  • The core center of the community is online rather than in a place
  • No cost for venue, food, drink

Negatives

  • Speaker interaction not as detailed
  • Easier to accidentally offend someone/be disrespectful
  • Hard to recover from assholes in the community
  • Speaker can’t see audience
  • Lag on questions as people type

Best practices

  • Youtube and Google Hangout make recording sessions trivial
  • Ensure same experience regardless of device
  • Google analytics for website and youtube analytics for videos
  • Need to invest time (vs money)
  • Getting a company involved helps. Company trades employee time for sponsorship
  • Have a team of people to help run
  • Want a self managing community
  • Twitter worked best of all social media attempts
  • People attracted by content and/or a known speaker
  • Meetup doesn’t like virtual events, but ok because big

Other notes

  • 100-200 people watch live and 1000-2000 within a week. Benefits of live are IRC and questions.
  • members from 120 countries
  • 500-700 people signed up in first month
  • Looking at replacing IRC with Slack because more people use it. Wanted to lower registration bar so can be anonymous.

My take: Good discussion of online specific beneits and constraints

JavaOne – Disrupting Engineering Education

“Disprupting Engineering Education; Hello from 42”

Speaker: Tony Hendrick, Oleksandra Fedorova & Giacomo Guiulfo

For more blog posts from JavaOne, see the table of contents


https://www.42.us.org

42 Silicon Valley

  • tuition free coding school
  • no teachers
  • no classes
  • when start – can only communicate by Slack
  • the application process starts with two logic games with no instructions. The first test involves memory. If you pass, you get an email with the next steps
  • Then comes the piscine a 4 week crash course in C with daily peer reviewed exercises. Each weekend get an individual and group project. 10-15 hours a day for 28 days. Then whatever want; most students choose 8-10 hour days
  • Staff doesn’t answer questions. They tell you to ask other students. 250-300 students
  • 3-5 year program. Twenty one levels to go through. Self paced
  • Start with writing a C library then can choose branch working with 4 other people
  • high school diploma required only if under 18
  • Supplement with other resources. ex: coursera
  • Buiding open 24×7 so can work when want. Must be in person for tests, grading, etc. Want to build face to face skils for office
  • Learn many languages
  • Must do coding internship after a year. Can pause account if get offer or contract job (or family suitation)
  • Funded by philanthropist
  • Grading is pass/fail. If a tiny bit wrong, still fail
  • Paris campus opened in 2013 and US campus opened in 2016. Also have satelitte campuses in a few countries

Branch choices

  • unix – to become systems programmer – make unix commands, shell
  • graphics – math heavy, fractals
  • algorithms – rebuild common algorithms from scratch and then projects

Example Projects

  • Reimplment printf
  • C++ crash course (in a crash course a project is due every 2 days for 2 weeks
  • Mock interviews – algorithms on whiteboard

Staff
10 full time staff
600 students
1024 computers
staff create opportunities – ex: book room for club

Learning Techniques

  • Active learning – few instructions so figure it out
  • Learning through explaining to others
  • Ability to adapt, research ability, speed
  • Randomized team vs choose a team depending on project

42 Embassadors
Volunteer – demos, registration desk at this conference, etc

My take: Interesting approach to learning and building a community of learners. This sounds way better than what the coding bootcamps are trying to do.