muhanga

@muhanga@programming.dev
0 Post – 24 Comments
Joined 1 years ago

Game mods and Advent Of Code did it for me.

I did a small RimWorld mod and a parser for NoManSky internal format.

Creating both of them was a blast. I had fun doing programming stuff again.

Advent Of Code allowed me to try different languages in a small bursts of the different problems. Somehow I really like this format.

And sadly one more font I will never be able to use due to missing support of non-latin characters.

Sadly some features are nice.

3 more...

This really devolves into "good teams can deploy daily, can raise a small PRs and have small number of rework". And this is like... thank you, but it is obvious. If team is able to do this things constantly it is probably a good team.

DORA says that if your team is able to do same pattern (as they show) it will be "elite/good" team. This really smell like a cargo cult. And managers are already using DORA metrics as good/bad teams metric.

This is clear Goodhart's Law case: ""When a measure becomes a target, it ceases to be a good measure". So either DORA knowingly did nothing to protect against metric gaming or they didn't considered impact they will make. Neither of those is a good in my opinion.

So yeah I don't like DORA in it current iteration.

I wholeheartedly agree with that. Every version of Excel is massively worse than previous one. Same with the other Office products. Incremental fixes and impovements covered with unneded features and Ribbon design.

The Ribbon interface intoduction is the most obnoxious design decision that was pushed to the keyboard and mouse users. It only helps "touch" or "pen" users and only marginally.

Then OneDrive aka "we holding your data ransom" Drive. This is the only one Drive that is purelly sheit.

2 more...

Which OOP? Alan Kay meant this:

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.

But there is also various other OOP around. And those really about completly different things.

Plain Old Human language. Remember comments? Remember moments when things get very complicated and docs and comments become your only help?

That mostly because none of the languages is the best. Some of them better in some places and worst in others.

For example: Java. Amazing library range, enterprise support and feature and community reach. Java also fail in shambles when you need a low level or guaranteed performance. Erlang. Robust distributed and fault tolerant. Now try to create something that is not network, agent oriented and should work locally only.

Every language has a niche. Look at javascript. JS is only exist because of it's niche. It wasn't good as a language, but it was the only one viable solution in it's niche.

Same with assembly. Nobody sane would use assembly if it wasn't that close to the metal.

There are time tested solution in every niche and it is wise to know why they still there and what drives them.

1 more...

Clojure. Simple language for complex things. It also has java interop and Javascript interop and c# interop. So I will be fine.

Is it possible to build XML parser in it?

If answer is yes then i will build XML parser in it.

Solving a problem you know how to solve and solved more than once is a my goto approach in learning languge or frameworks. Translation of already solved problem to the new operational model or semantic exposes a lot internal stuff and marketing double talk.

This is a lot of work and time so can not recommend it for all cases and situations.

Same problem with "top 10%".

"DORA guys" came to our org in the past. And sing a song of "all successfully teams do that to, so you should too". One of the my question, that was left unanswered, was did they analyse negative scenarios to check if their suggestions actually works and add too the reducing cycle times and what not?

And most of the time my cycle time is more depends on number of meetings I need to attend through day than on anything even remotely related to the coding.

I understand what DORA tries to do, but what they achieve is just another cargo cult.

If you are using BitBucket Cloud you can create pr rules to include people into Review based on files change. And then you can create a user for a bot to monitor those PRs using standard BB notification emails. Of course if there is not much PRs bot is Overkill and human will be enough.

You can always "just" create a static script that pulls repo check diff for files and email people if something is found. This way you don't link your solution to the git cloud offering.

Somewhere someone probably does... But this piece of code really look like someone either tried to inline a bunch of calls or this is code generated object mapper from json or other nested model.

Nobody with a sane mind and serious attitude will use this code as a "real" code. (I still believe in people, despite all the evidence to the contrary I get every day)

As a fun bit though this taken some dedication.

Coding interviews are a decent way to screen out the false positives. Watching someone solve coding challenges gives you some assurance that they can, well, code.

Hahahahaha. If only. There is very big distinction between ability to priduce code that solves the problem and solving the problem. My personal experiense showed me that passing the coding interview and being a good Software engineer is a two different skills.

Tldr; take offer, don't quit engineering yet, you are fine

Don't quit engineering if you enjoy it. If you have better offer and the current ship is leaky as fuck => jump the ship. Saving the leaky ships should be very profitable if it is not => you are being heavily exploited.

I jumped the ship thrice. And one time accepted a lower payed position, just because I was quite burnout.

On the topic not using the progress and not understanding the Intenals. Understanding internal will not make you senior. Understanding what you can apply that you already know can make you senior. I remember being in a situation like yours. I thought I didn't know Jack, but then on a newplace I seen people who were running around like a headless chickens on crack. This has given me a good understanding about what knowledge is and that applicable knowledge is the key.

And also there is a lot of cases where you really don't need or want static typing. Static typing and type systems are great when they helping you but very bad when you are forced to fight them due to compiler problems or bad modeling.

In the end it is all an engineering problem: which amount of your budget you need to spend on proving programm correctness. Cost/benefit and all of that.

Static typing and unit tests don't make your codebases great, safe and supportable. Thinking and understanding your usecases, decomplecting problems and some future planning wins.

I learned this lesson through one of my optimization tasks. Speeding up programm by just reducing input data by 80% solved multiple problems. And real eye openner was an "article" about grep: https://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html

Basically if you have less work you will do it faster. Since then my first question is always: Can we do less work?

You are absolutely right. At first I just wanted to add my favorite language to the bunch, but then I realised that this isn't really answering anything, because the use case matters most.

You can use any language to programm solution to any problem in any environment. And given that here we have many developers fixing many different problems we will end with just a collection of all possible languages and problem/solution permutation.

Language doesn't matter. Solution and solution logic matter. And most times we are using a Plain Human Language to crate a solution and then encode it.

This is why computers had a big reset button.

Some might. I using Comic Code and Fantasque Code from time to time as it forces my brain to reinterpret "known" code and helps to find errors that way. It also help with minor dyslexia moments. I like Radon, except I fully hate how "i" character is looking it is a "z" with a dot on it. If there were variant with normal "i" I would consider using it.

Thank you for sharing link to the site! I have found 4 new terminal fonts to try.

in many cases for text docs I'd rather write them using markdown and maybe add some html styling then convert with pandoc

Yep. Exactly the case. Using the multiple instruments instead of one "specially created for this reason" programm become normal. And it become normal because the program become unpredictable in changes. All the functionality is click away, but you need to know what to click.

And as a chery on top Outlook by default uses ctrl+f to forward a message. Instead of starting search.

Consider to take look on http://intive-fdv.github.io/DynamicJasper/ It is more code friendly Jasper wrapper to provide reports. Plain jasper is very XML heavy and you will end in wrapping it in some template engine at some point to reduce repetition. Otherwise download the Jasper Report studio crate simple reports and play around. There are maven and gradle build plugins that compile reports during the build and then you can work with compiled versions.

Jasper by itself is not a bad technology and work quite good for designing reports.

And release zip contains a _MACOSX folder which is a clear indication of sloppiness and/or rushed release. ... and ligatures don't work out the box in JetBrains product IDEs.

And if only they slapped beta on this there will be not problem what so ever...

1 more...

Yes. It is much in vogue. Especially in big corps. And Big corps have no idea what they doing. A year ago I had helped couple of managers to "go back to engineering", because org had to many managers.

The amount of people who can make code and manage is very limited. But it is very alluring from the perspective of human resource optimization for people to do both. You take decent engineer => You receive shitty miserable manager that can code something non essential. This is very sad.

Big corps are like a pythons on ketanol. They have no idea what happening but they want to grow and shit profits everywhere.

There is no love if you dont constructor it. Then you would need to initialize it or use existing instance to borrow. You can even extend from Respect or Humor as a starting point, there is no need to implement Love from scratch.