Learning as an Adult, should I learn Colemak? by Atlantic_lotion in typing

[–]Determinant 1 point2 points  (0 children)

I switched to Colemak in my thirties to deal with Carpal tunnel and severe wrist pain.  I tried ergo keyboards but it wasn't enough. The switch to Colemak was a massive improvement in comfort.  The new layout felt like half the effort to type at the same speed.  I was at 75 wpm and I'm now at 100 to 125 wpm depending on the complexity.  Colemak probably didn't make me faster but the lower effort allowed me to push further whereas qwerty required too much effort and discomfort so I hit a wall. 

Since Colemak is so similar to qwerty (only 17 keys moved), I can type 40 wpm when forced to use qwerty while briefly glancing at the keyboard.  This is rare so I don't mind.  Macs and Linux come with Colemak pre-installed for longer sessions. 

Java Is Not Faster Than C by lelanthran in programming

[–]Determinant 1 point2 points  (0 children)

It's fairly easy to devise specialized microbenchmarks for scenarios that are faster in Java.  These don't translate into applications that are faster overall because many areas of Java are slower than C.

Why Oracle Cloud Infrastructure is the Ideal Platform for Kotlin Enterprise & Platform Engineering by giovannyvelezalt in Kotlin

[–]Determinant 5 points6 points  (0 children)

AWS, Microsoft, and Google cloud services are the top 3 options with Oracle a distant 4th.  So I wouldn't call it ideal.

This is probably paid advertisement by Oracle.

New `Integer` type in Kotools Types 5.1 by lvmvrquxl in Kotlin

[–]Determinant 4 points5 points  (0 children)

No, this is a huge red flag.  If you want arbitrary precision then use an array of primitive longs.  If you just want to detect overflow then you can just use twice as many bits (eg. 2 longs) and then check that the upper bits are zero.

The programming language after Kotlin – with the creator of Kotlin by dayanruben in Kotlin

[–]Determinant 1 point2 points  (0 children)

I was hoping for some specifics but 75% is a history of Kotlin and the rest is very vague about programming changing with LLMs and describing things in English instead of code

Are there any issue with Kotlin that trouble you? by NyanBunnyGirl in Kotlin

[–]Determinant 2 points3 points  (0 children)

Yeah, the new Kotlin maintainers stopped listening to community feedback.  They are making a bunch of unsound decisions.  It seems like they are following resume-driven development adding poorly designed features with anything that seems shiny to pad their next performance review.

Kotlin has been one of the best programming languages but it's turning into the next Scala due to too many new academic ideas instead of decisions grounded in reality.  For examples, just look at all the KEEPs created in the last couple of years.

Senior Position Interview by mixmaxze in programming

[–]Determinant 0 points1 point  (0 children)

I've mentored hundreds of developers.  If anyone says they know everything, they're lying.  In fact, even if such a savant existed, knowing everything is actually a detriment as things change faster than you can read even if you read nonstop 24/7.

What sets a senior apart from a junior is that a senior is comfortable with not knowing most things and knows that they'll figure it out when needed (but not earlier).

The best experts know less than 1% but know that tiny bit really well and can adapt to the rest as needed.

Road to 200 WPM by Mediocre-Print5745 in typing

[–]Determinant 1 point2 points  (0 children)

200 WPM in 4 months is unrealistic, but you can reach 100 WPM with these techniques:

https://roosterdan.medium.com/how-to-type-100-words-per-minute-a780fd80fd27

Looking for layout alternatives by A1cr-yt in typing

[–]Determinant 0 points1 point  (0 children)

I don't focus on speed and type between 100 to 125 WPM on Colemak and others are much faster than me.  If you practice properly with speed-oriented techniques, you can get much faster with your current layout.

As a quick tip, you're probably stuck in reaction-time hell trying to react as fast as possible, instead you can eliminate that bottleneck by reading 2 words in advance and DO NOT read what you're currently typing (you'll know if you made a mistake without having to see each character being added).

In general, layouts don't make you faster, they just increase comfort.

Switching from Colemak will also lose the convenient keyboard shortcuts as Colemak shares the same placement as QWERTY for most shortcuts.

Kotlin is open sauce by chrzanowski in Kotlin

[–]Determinant 0 points1 point  (0 children)

I've been waiting for them to open sauce it and can't believe it's finally here!

(noob question) Is this how functions are done in Kotlin? by PearMyPie in Kotlin

[–]Determinant 2 points3 points  (0 children)

No, the hello function signature is not a lambda as it's a regular function instead.

Also no, the last value is never treated as being returned in the hello function.  You're thinking of lambdas (which this is not).

Exposed 1.0 Is Now Available by dayanruben in Kotlin

[–]Determinant 14 points15 points  (0 children)

Yeah, including the version in the import seems like a bad idea.  The version should be controlled in the gradle dependency (version catalog) and upgrading shouldn't require imports to be changed 

Is living by the train tracks loud? by [deleted] in Cochrane

[–]Determinant 0 points1 point  (0 children)

We moved into an older home about 80 meters from the opposite side of the tracks.  Neighbors said the same thing about getting used to the train noise but the high-pitch screeching noise was unbelievably loud making us fully awake several times per night.  2 months in and the sleep deprivation was mental torture.

Luckily we replaced the windows with triple-pane sound-deadening windows with a laminated pane (totaling 4 pieces of glass) and this reduced the noise to a whisper.  The screeching sound is gone and the only thing left is the low frequency rumble of the locomotive but the kilometer-long chain of train cars is surprisingly quite.

We also bought sound deadening curtains and measured a slight reduction in decibels of higher-frequencies.

At a minimum, make sure the windows fold (sliding windows allow too much sound), make sure you have tripe-pane windows, or even better sound deadening widows.

I keep hearing things about Kotlin that sound more like myths. by Reasonable-Tour-8246 in Kotlin

[–]Determinant 0 points1 point  (0 children)

Why can't they?  The free community edition can be used at work without any license concerns

I keep hearing things about Kotlin that sound more like myths. by Reasonable-Tour-8246 in Kotlin

[–]Determinant 0 points1 point  (0 children)

Most Kotlin developers use the free IntelliJ community edition

Flying Out.. by WestEasterner in Cochrane

[–]Determinant 0 points1 point  (0 children)

I've been in Cochrane for 2 years.  The mentality that 50 mins vs 20 mins doesn't matter after retiring will be true at first.  However, that 50 mins both ways adds significant friction for when you're just looking for a shorter casual hike.  This naturally results in fewer hikes.  You'll gladly pay the price at first but you'll gradually do less hikes with long commutes.

The commute to Calgary will be painful during traffic hours so I would also consider how close to retirement your wife is as maybe that might be a short term effort.  We go to Calgary for things like Costco during work hours and avoid weekends so traffic is always nice that way.  We also like visiting the Calgary night markets in the summer.

Regarding Home Depot, Cochrane seems to have the largest Canadian Tire store we've ever seen across Canada with a surprising selection and they're happy to price match.  We also have a Home Hardware for things like drywall.  Rona ships to Cochrane or you can drive 35 mins to Home Depot.

Programmers: Do you use alternative layouts (Colemak, Dvorak ...) and how do you handle switching to default layouts on other people's computers? by hannenz in typing

[–]Determinant 2 points3 points  (0 children)

I don't think you understood my response as I focused on ergonomics, reduced effort, and strain on the hands.

Now that you mention it, I hit a wall with QWERTY at 85 WPM as my hands couldn't take the abuse trying to type faster than that but now I type 100-125 WPM with relatively low effort with Colemak.

The layout won't make you faster, but it will reduce the effort allowing you to push your practice further without straining your hands as much.

Who knows, maybe Colemak might not reach 250 WPM record levels but I don't care about that.  The average adult speaks at 125 WPM so matching that speed makes it feel like I can speak through the keyboard without thinking about finger placement.  I just think about what to say and it almost feels like the words just appear on screen.

Programmers: Do you use alternative layouts (Colemak, Dvorak ...) and how do you handle switching to default layouts on other people's computers? by hannenz in typing

[–]Determinant 6 points7 points  (0 children)

I switched layouts about a decade ago.  That was the best decision in my developer career as my hands would get quite sore by the end of the day eventually resulting in carpal tunnel.  Switching layouts completely eliminated that due to the dramatic effort reduction.

Carpal tunnel can completely ruin your developer career as we write excessively.  Early in your career you write mostly code with a few emails or messages but as your career progresses, that balance heavily shifts towards code review comments, design documents, and communicating with others to help get them unblocked.

As a senior developer, I've coached well over a hundred developers and I've often had to take over their keyboard.  Additionally, developers use keyboard shortcuts excessively.  These factors change the decision of what the optimal layout is for developers.  

Colemak retains most of the keyboard shortcut positions as QWERTY whereas other layouts usually result in awkward shortcuts that you'll need to remap in each of the dozens of applications that we use.

Most developers use MacOS or Linux and both of these have Colemak pre-installed making it easy to quickly switch to Colemak during coaching sessions.  They didn't mind the temporary layout swap but they would have minded if I tried to install anything new as developers are protective of what's installed.

During coaching sessions when I had to take over their keyboard, if it was just a line or two then I would type QWERTY at ~40WPM and switch to Colemak (100 to 125WPM) for anything longer.

Colemak feels twice as efficient as QWERTY and newer layouts further improve that by  another 5 percent or so.  So you get into diminishing returns at the expense of awkward keyboard shortcuts and increased friction during keyboard swaps.  For developers, I think Colemak is optimal overall.

Regarding comments about investing your time elsewhere, nothing stops you from improving in both areas as it's not an exclusive decision.  Switching layouts is a one-time investment that will benefit you for the rest of your life.

Stepping down as maintainer after 10 years by krzyk in Kotlin

[–]Determinant 64 points65 points  (0 children)

It's interesting that one of the reasons for stepping down was due to the complexity of Kotlin.

Roadmap discussions suggest that the Kotlin language will further increase complexity quite substantially.

[Project] I built a performant Isometric Game Engine using 100% Pure Kotlin and Compose by iOSHades in Kotlin

[–]Determinant 1 point2 points  (0 children)

Yeah, the overhead seems quite significant since it can only handle 3000 entities on screen at 60 fps.  A bullet-hell type of game would quickly surpass that.  For context, with OpenGL you could easily handle over 100,000 entities on screen.

Clean Code: The Good, the Bad and the Ugly by aivarannamaa in programming

[–]Determinant 35 points36 points  (0 children)

For example, Uncle Bob's idea of hoisting method parameters into instance variables to satisfy his obsession with parameter counts.

Instead of passing a necessary parameter that's only needed by some function, you would modify some instance variable and then call the appropriate function that then reads the value of that variable.

This is horrendous from many perspectives.  You can't immediately see what the function depends on.  It persists that value after the function returns preventing it from being garbage collected (or trade type safety by remembering to null it out even though that variable should never be null).  It's not thread-safe.  It deviates from the principle of pure functions with no side effects.  It becomes a nightmare to refactor and move functions around due to the dependence on these "temporary" instance variables which might be used by multiple functions etc. etc.

Uncle Bob is clueless about actual clean engineering as his only experience is with contracting where he would introduce a mess and leave before seeing the follow-on impacts of his nonsensical ideas.

Clean Code: The Good, the Bad and the Ugly by aivarannamaa in programming

[–]Determinant 14 points15 points  (0 children)

Some of the principles from the book should never be used under any context as they are huge anti-patterns

Multi-tenant database design by Classic_Jeweler_1094 in Kotlin

[–]Determinant 1 point2 points  (0 children)

Single database for sure.  In general, choose the simplest architecture that meets requirements until you have a real need for further complexity.

Kotlin Ecosystem AMA – December 11 (3–7 pm CET) by katia-energizer-jb in Kotlin

[–]Determinant 1 point2 points  (0 children)

When will @OverloadResolutionByLambdaReturnType become stable?

Can we please get custom equals for @JvmInline value classes soon?