[kcdc 2022] diving into debugging spring boot applications

Speaker Mark Heckler @mkheck

For more, see the table of contents

Notes

  • Developers don’t believe in magic
  • Most developers are bad at debugging. Or at least not as good as they could be
  • We got sloppy when we get used to thinking we know what’s happening
  • Important to isolate problem and not just symptoms

Code wakthru

  • @SpringBootApplication – meta-annotation. Enables the other scaning annotations
    • @SpringBootConfiguration
    • @EnableAutoConfiguration
    • @ComponentScan
  • Starter parent pom has dpendencies that have been tested together. Provided in dependency management so can choose what need
  • Proved @Component still creates a @Bean
  • SpringApplication.run returns a ConfigurableApplicationContext. We don’t typically use it directly, but can look into it.
  • ApplicationRunner (creates prop object from args) vs CommandLineRunner (has args as array). The later is slightly more efficient.
  • @Value lets you get a property

Overwriting name

  • application.properties with wrong key name. Typo causes code not to use the value
  • application.yaml – ignored; still uses application.properties because higher precedence

Actuator

  • Can expose a lot of info
  • By default, opens two endpoints, status and one other. If want actual info, allow by privilege.
  • Can expose everything via management.endpoints.webexposure.include=* (don’t do this in prod)
  • loalhost:8080/actuator – see endpoints
  • localhost:8080/actuator/env – see java version, list of beans, etc (so can see order)

Remote debugging

  • In IDE config, set -agentib:jdwp=transport=dt_socket,server.. (missed the end)

Container

  • Can set config in Docker fil.

Key point

You don’t know. You can suspect and hypothesize, but not assume.

My take

I like that Mark showed Spring source code to show what was happening. It took a long time to get to the first thing that went wrong (missing property).. (40 minutes in; another session was already applauding by then). Once he got to that part, I started learning stuff. Mark also seemed rushed for the end and that info went too fast for me. (Combo if it being new and I think he was going faster) Also, the using the audience members as names in the example was fun.

[kcdc 2022] 4 deadly sins of mentorship

Speaker: Christina Aldan @luckygirliegirl

For more, see the table of contents

Notes

  • “Experiences re the sum total of who we are, but not of what we can become” – Christina’s first mentor
  • Pass on experience
  • Doesn’t need to be older, just needs to have an experience to share
  • Results legaycc, relevancy, avoiding mistakes, honest feebck, long lasting friendship, employee retention, strenthen teams
  • Teach: work experience, new hires, resource suggestions, skill building, networking tips, how to give/receive feedback
  • Helps mentor – stay relevant, emotional intelligence, expand network, reinforce skills, is fulfilling
  • Idea: mentor monday’s – start on happy note
  • Helps mentee – gain practical advice, emotional intellingence, expand network, improve communication, get direction/focus
  • Mentoring is not making a copy of yourself. Learn from a variety of diverse people and pick what relevant to you.

Arranging mentoring

  • Can be any duration. ex: coffee once a quarter
  • Can reach out to someone you follow online and ask to discuss experience.
  • 7 minutes is a specific time limit. 5 minutes sounds like an owner. will probably renew another time
  • https://www.polywork.com has less noise than linked in
  • Measurable, finiite, clear on want help with, mentor knows that that mentor,
  • Ok to be ongoing if still set goals and be intentional.

Emotional Intelligence

  • Awareness of self – needed for empathy. Improve by naming emotions more specificallly
  • Management of self
  • Awareness of others
  • Management of others
  • Neuroplasticity – can make new connections. As soon as 5-6 hours after create new response, starts. More stimulate, the stronger the connection becomes. (thicker/more connections). If don’t stimulate neuropathway, it disolves

Sins

  • Using guilt or shame
  • Not dictatorship
  • Motivating with bribes
  • Courtesy bias – don’t want to hurt feelings. However, growth happens in discomfort

More notes

  • Tech, don’t preach
  • Guide through process
  • Mentee needs to internalize
  • Be a talent detectve to see what the mentee wants
  • Be honest while remaining kind
  • Host open hours, inlude in contractor fee, cross-dept, panel mentoring, join another team one day a month to see what do (job shadow)
  • Define boundaries, identify an dassign mentor, set a timeline
  • If no goal/end date, just fade away. Mentee wonders what’s up and mentor thinks all is fine. Reach out
  • Mentor fatigue – be aware of what you can offer. Needs to be sustainable
  • Mentee should be concise, engaged and proactive
  • Mentor – stay in lane (only there to share experiences, not a parent/therapist) set clear hours, comunicate clearly

ALGEE (for mental health)

  • Access
  • Listen
  • Give Reassurance
  • Encourage Self Care
  • Encourage professional help

My take

Christina began with a great story. I like that she did it before introducing ourself. It results in a stronger audience connection and is something I’m trying to get better about. The content was excellent and relatable. She made it interactive so we got to hear a bunch of experiences. My only complaint is the room was too small for the audience. The captioning was A LOT (10 minutes?) behind. It started late so don’t think anyone was relying on it though.

[kcdc 2022] network fundamentals for developers

Speaker: Sean Whitesell @codewithseanw

For more, see the table of contents

Home networking

  • Lots of devices at home
  • Some devices require connectivity to phone home or won’t operate
  • Home devices connect to router
  • LAN – router <–> home devices
  • WAN – router <–> internet
  • Local devices not having IP exposed to world
  • Packets – pieces of data – think of as train cars. Don’t put everyone in same car

DNS (Domain Name Service)

  • Converts friendly name to address. Like calling a contact – you don’t know the phone number
  • On Windows:
    • ipconfig /displaydns
    • ipconfig /flushdns
  • A record – name to IP
  • CNAME – alias – subdomain www.google.com points to google.com. Can route to elsewhere
  • MX – mail exchange
  • nslookup set type=NS (or MX or CNAME or AAAA for IPv6)
  • nslookup url.com – can return multiple addresses so resiliency if goes down

Routing

  • If mail a letter, look at zip code then street than address.
  • Like a perimeter. Routing brings inside house
  • IP v4 – 32 bits
  • Subnet mask 255.255.255.0
  • Class A – 0.0.0.0 – 127.255.255.255 – 128 networks, 16 million addresses
  • Class B – 128.0.0.0 – 191.255.255.255 – 65K addresses
  • Class C – 192.0.0.0 – 255.255.255.255 – 254 addresses
  • RFC 1918 – non routable addresses
  • CIDR (classless inter-domain routing) notation lets you waste less addresses – ex: 10/8

Network sizing

  • If don’t pick enough have to move all devices
  • 10.0.0.0/24 – CIDR says use first 24 bits – 256 addresses
  • 10.0.0.0/23 – now use first 23 bits – 512 addressesCloud doesn’t let you do /30 because only 4 addresses and AWS/Azure use 5 addresses per subnet
  • Subnets – like multiple rooms in a house. To partition things off

Network Address Translation

  • 192.168.* means internal/non-routable address
  • http://whatismyipaddress.com – shows public address
  • Router keeps track of ports and which device to go to
  • 65536 available ports. 0-1023 are reserved. Similarly browser tabs have ports to keep track of conversation

Common ports

  • FTP – 20 and 21
  • SSH – 22
  • SMTP – 25
  • DNS – 53
  • Web and SSL/TLS, HTTP/HTTPs – 80 and 443
  • SQL server – 1443

OSI (open system interconnect) model

  • 7 – application – Azure App gateway, AWS ALB, Mginx
  • 6 – presentation – SSL
  • 5 – session
  • 4 – transport – TCP (ack everything; very chatty) vs UDP (send and forget without confirmation), Azure LB, AWS NLB
  • 3- network – IP
  • 2 – data
  • 1 – physical

North-South East-West Security Model

  • DMZ
  • App Server Layer
  • Database Layer

Route table

  • Control and enforce traffic
  • Determine which traffic goes to firewall.
  • Different rules for different subnets
  • Private subnet has no internet access
  • AWS has internet gateway – needed to get to internet

Cloud

  • Load balancer – can be layer 4 or 7
  • Network security groups – VM/EC2 level, stateful
  • AWS NACL (network access control list_ stateless. One rule does not allow both directions

My take

This was a good overview. Some I knew. Some I used to know. Some was new. The end felt rushed. Regardless, I’m glad I attended.