Day 13 of BlueSky; thoughts so far

I signed up for Bluesky on November 2nd. Why then you ask? I had “try Bluesky or Threads” on my to do list for a long time. I was waiting until I had time to do it. Which meant finishing Java OCP 21 Certified Professional Study Guide and submitting all Word document drafts of Real-World Java: Helping You Navigate the Java Ecosystem. After that I started catching up on the many things I want to do. It was easy to decide between the two platforms. I remembered a number of Brazilian users had started using Bluesky when X temporarily banned their country. And by November 2nd, tech twitter had started moving over as well.

I do use Mastodon but it doesn’t fulfill the same need for me. For example, plain text search is something I use on Twitter/X and Bluesky that Mastodon does not have. So now I check three social media sites periodically. Some duplication; some differences in perspective.

Here is where I am right now. I’m sure this will change over time, but at just under two weeks, it is enough to feel comfortable.

Security

The only option for two factor is to receive an email with the two factor code, such as 5HAGF-MBYB1, and type it in. (I could copy paste in the browser, but not always in apps). Kinda annoying, but I’m set up now.

Youc an also set up application passwords instead of giving a third party application your real password which is nice.

Starter pack

Starter packs are groups of people you can follow with “follow all” to quickly get started. I followed the Java Champions starter pack. I also had some accounts I had stored in my to do list of people who gave their handles when they left Twitter/X that I was following. After I joined, Sharat created Java Community Starter Packs One and Two.

You can see all starter packs here and search/filter for what you are interested in.

Lists

In addition to my following feed, I subscribed to two lists. One on Cyber Security and one on US Politics. Both are things I want to check periodically but don’t need in my main feed. I expect to add more lists over time.

iPhone client

The official Bluesky Social app works great on the phone.

Mac client

While you can use the official Bluesky app, it is vey clearly an iPhone app. It’s the size of an iPhone which is very much not what I want on my computer. However, I was happy with the browser tab on a computer. I just didn’t want it in my main browser window with all the other stuff I aspire to look at :).

I asked on BlueSky and Josh Long had a great idea. On Safari on Mac, you can choose File > Add to Dock to get a shortcut for just that browser tab. Opening it is like a full screen app. Perfect. Oddly I can’t upload images to my posts so I use the main browser when I want to do that but the docked tab for read/write in general.

iPad client

While you can use the official Bluesky app, it is vey clearly an iPhone app. It’s the size of an iPhone and making it bigger just makes the font huge rather than being reactive. Also, I couldn’t type on the dummy iPhone keyboard. I abandoned that approach almost immediately.

I also tried Graysky. I couldn’t get it to let me log in with two factor and gave up on that too.

iPad has a similar approach to Mac for storing a browser link. However, it opened as a tab my main browser which is what I wanted to avoid! Additionally, I want to see notifications on my Ipad which a browser doesn’t do.

Then I tried the Skeets app which is working great for me. There’s a free and paid version. So far, the free version does everything I want.

PASSED! Jeanne’s Experience Taking the SAFe ScrumMaster exam.

Today I took the SAFe 6.0 ScrumMaster certification and passed with a score of 80%. Passing is 73%. I was optimizing for passing quickly and not investing a lot of time rather than a high score though.

My path to certification

As background, I’ve been a part time SM (and rest of the time developer) for over a decade and been on a SAFe team for a while.

  • Oct 21-24 – took SAFe6 training course – half a day each of the four days. It was online and I felt myself absorbing less each day. It’s hard to pay attention to people talking online for that long every day. I also felt the energy level of fellow students dropping both in the main classroom and in the breakouts. Which became a negative feedback loop.
  • Oct 24 – I was also helping get ready for a conference so my brain was somewhat distracted
  • Oct 25-27 – went on vacation. Didn’t think about SAFe or work at all
  • Oct 28-29 – attended/spoke at/helped run an agile conference. Further distanced myself from class with more information on the topic of agile that wasn’t safe.
  • Oct 30 – went to NYC Scrum user group. Awesome talk but again more info on the topic of agile that wasn’t safe. Took first practice test when I got home (and was tired.). Got at 80%. Good enough. it’s a pass.
  • Oct 31 – re-read PDF from class and then took real exam in between trick or treaters. Tired and distracted but glad to be done. Pass!

In class they advised us to practice until getting a 90% on the pracitce exam. I did not follow this advice. It’s only $50 for a retake so better to try the real one and see what happened rather than

I didn’t want to leave this for the weekend because I want to spend a bunch of time working on my upcoming book so need to be thinking about Java. Also, you have to take it within 30 days and I’m not going to find myself with more time if I wait.

The exam

All questions were single answer multiple choice with four possible answers. All of them were relatively short which was a pleasure after my experience with the Java 21 exam!

Some were very easy. Some had two reasonable sounding answers. For a number of them you had to know how SAFe would handle the scenario even if that’s not how another agile framework would.

Logistics

The exam is non proctored and you don’t have to show your environment on camera. It was nice not to have to clean up all the programming books and papers around me. The environment is exactly the same as the practice tests one.

After the exam

You get a score report with the % right for each category. This part looks like the report for the practice exam. Unlike the practice exam, you don’t see the questions and which ones you got wrong specifically.

Timing

As I mentioned in my experience with the Java 21 exam blog, I typically finish exams with lots of time to spare. This was a 90 minute exam. I finished my first pass in 34 minutes and my second (to clean up the ones I was unsure of) in 20. really a little less sinceI got up for trick or treaters a few times.

[2024 dev2next] reading code

Speaker Marit van Dijk

For more see the table of contents


Notes

  • We spend more time reading code than writing code
  • Read code when adding features, fixing bugs, understand new codebase, when doing code review, when learning new technologies, etc
  • Up to 58% of time comprehending existing source code – Felienne Hermans, Programmer’s Brain
  • We spend time learning by writing code. We rarely deliberately practicing reading code
  • 1992 research – three groups. One learned by writing and reading code. One write and read but also explanations about code such as why made decisions. Last group only read code with those explanations. Second and third groups did better.

Code reading club

  • http://codereading.club
  • Marit participated in a monthly club – https://maritvandijk.com/code-reading-club/
  • Printed code sample that is 1-2 pages, structured exercises (ex: annotate code with markers)
  • Practice reading a variety of exercises
  • Focus on reading to understand rather than to judge

Example exercises

  • First glance – 1 minute.. Note the first and second thing that catches your eye. Think about why noticed first. Examples was in Groovy
  • Identify components and relationships – ex: methods
  • Identify the five most important lines. If don’t discuss up front what “most important” means, answers vary. The group then converged on what was most important
  • Identify concepts. Someone in the group is likely to know
  • Summarize what think code does

Lack of info

  • Could be short or long term, details, names, too many things
  • Chunking – 3-5 things

Lack of knowledge

  • language, constructs, business domain
  • Create a list of what don’t know, research and memorize if relevant

Lack of processing power

  • Too much to keep track of
  • Dependency graph – on paper, draw arrows to show where variable used
  • State table – keep track of variable values

Dimensions of code reading

  • Structure – we don’t read linearly. More experienced programmers scan code a lot before focusing on a piece
    • Domain – data
  • Concepts – programming and domain
  • Context – why app written, who uses it

Getting started

  • Checkout the code. Proves found project and have access
  • Look at package structure. How many? Names? If see name unfamiliar with, add to list so look up what means later
  • Build project to ensure can
  • Read readme.md. Tip: Check readme to ensure clear how to build and test application
  • See if can run locally and explore in UI if possible
  • Find starting point – main method, export
  • Docs 0 exL swagger

IntelliJ Features

  • AI assistant – Prompt to ask what’s wrong and how to fix
  • Generate diagram to show relationships between classes. Tip: draw own to focus on part interested in and remember it better
  • Generate matrix showing relationship between modules. SHows number of dependencies as well.
  • Can trace code outside in and see where leads
  • Endpoints view – to go a part of the code.
  • Be able to search/navigate without thinking

Outside IDE

  • Identify use case
  • Draw own diagrams

Understanding code

  • structured exercises can help
  • start with the thing you noticed in the 1 minute example to get past being stuck
  • IDE can help you
  • syntax highlighting
  • pull up documentation in pop up
  • pull up code in pop up
  • collapse sections of code
  • find references
  • view tests – hopefully their names express the indended behavior
  • debugger
  • AI assistant can give summary of a commit or set of commits

My take

The code was way too small on the 1 minute example. It was fine on everything else.. Marit invited us to move. Two people (I was one) sat on the floor in the font. I liked the demo. My brain was full before the session started though.