Avatar

stevecrox

stevecrox@kbin.social
Joined
30 posts • 174 comments
Direct message

When I looked at Kbin the “caddy” was wrapped around RabbitMQ. You can get RabbitMQ to solve a lot of those issues.

Firstly with Rabbit you can set a Time To Live header in messages.

By default RabbitMQ queues have no limit in size, you can set a limit.

Lastly RabbitMQ allows message prioritisation. So you can drop the priority of things the older/more retries they contain.

Most of this is either RabbitMQ policy or Queue rules based on Headers in the AMQP message. Depending on how KBin is generating messages you might be able to do this as a system admin

permalink
report
parent
reply

This is about thew new starter cost.

When a developer joins a team, they will not be as productive as they have to learn the code, frameworks, libraries, the project purpose, the tooling, etc… Often this impacts other members of the team lowering the entire teams productivity.

When you use productivity tracking (e.g. things like capacity planning) you will see the teams performance drop and it will take time for it to exceed the previous measured performance. This is the cost of adding a new starter.

So if it takes 6 weeks for a new starter to increase overall team producitivty then planning someone on a project for 4 weeks is pointless since the team will have a higher delivery rate without the extra person. This is typically why an organsation loses its ability to migrate staff between projects.

Code formating affects the layout of the code and our brains do all sorts of tricks around pattern recognition, so if your code formatting rules are too different a someone migrating between projects has to spend time looking for code and retraining their brain.

Its an additional barrier and a one within an organisations skills to remove (by forcing a common code standard).

permalink
report
parent
reply

The last part is why you use an IDE.

Several of them will ingest prettier files to build code formatting rules

IDE support is normally a good way to work out what the wider community is using.

permalink
report
parent
reply

Python is unique in formatting forms part of the syntax, every language has linters but its far more common for orgs to tweak the default rules .

For example Java has Checkstyle. The default rules ‘sun checks’ give a line length of 80, tabs are 4 spaces and everything is placed on a new line.

Junior devs inevitably want to trash the line length (honestly on 1080p monitors, 120 makes sense,).

There is always a new line/same line discussion (everyone perfers same line but there is always one die hard new line person).

The tab width discussion always has one junior dev complain that “tabs are better”, as someone who started development on Visual Studio 6 where half the team double spaced, the other half used tabs. Those people get a lecture from me on how we can convert tabs to spaces but not the inverse so it will always be spaces if I am near.

With Checkstyle you upload the rule file as an artifact into your M2 repository. Then you can pull it down as a dependency when the checkstyle plugin runs.

permalink
report
reply

As someone who bought Half Life 2 when it was released …

I only remember people being excited about Steam, Web stores weren’t a thing back then and they were the future! (It was the following years of audio and ebook stores locking stuff down and evapourating that taught us to hate it).

Game/Audio CD DRM hacking the kernel and breaking/massively slowing down your PC was pretty common back then and Steam’ s DRM didn’t do that.

The HL2 disc installer didn’t require you to install Steam, once installed it asked you to setup Steam and there was a sticker under the DVD with the Steam code for you to enter.

You were then rewarded with a copy of HL2 Deathmatch and Counterstrike Source.

Steam wasn’t always on DRM, back then ADSL/DSL was relatively new and alot of people were still stuck on Dial Up modems.

Steam let you sign in and authorize your games for 30 days at which point you would need to log into Steam again. This was incredibly helpful feature for young me.

permalink
report
parent
reply

Basically Epic like every other publisher has created their own launcher/store.

They aren’t trying to compete on features and instead using profits from their franchise to buy market share (e.g. buying store exclusives).

The tone and strategy often comes off as aggressive and hostile.

For example Valve was concerned Microsoft were going to leverage their store to kill Steam. Valve has invested alot in adding windows operability to Linux and ensuring Linux is a good gaming platform. To them this is the hedge against agressive Microsoft business practices.

The Epic CEO thinks Windows is the only operating system and actively prevents Linux support and revoked Linux support from properties they bought.

As a linux user, Valve will keep getting my money and I literally can’t give it to Epic because they don’t want it.

permalink
report
reply

I avoid any company that requires a software test before the interview.

I worked for a company that introduced them after I joined, I collected evidence all of the companies top performers wouldn’t have joined since we all had multiple offers and having to do the test would put people off applying. The scores from it didn’t correlate with interview results so it was being ignored by everyone. Still took 2 years to get rid of it.

The best place used STAR (Situation Task Action Result) based interviews. The goal was to ask questions until you got 2 stars.

I thought these were great because it was more varied and conversational but there was a comparable consistency accross interviewers.

You would inevitably get references to past work and you switch to asking a few questions about that. Since it was around a situation you would get more complete technical explanations (e.g. on that project I wrote an X and Y was really challenging because of Z).

I loved asking “Tell me about something your really proud off”. Even a nervous junior would start opening up after that question.

After an hour interview you would end up with enough information you could compare them against the company gradings (junior, senior, etc…).

This was important because it changed the attitude of the interview. It wasn’t a case of if the candidate would be a good senior dev for project X, but an assessment of the candidate. If they came out as a lead and we had a lead role, lets offer them that.

permalink
report
reply

If you signup to social media it will pester you for your email contacts, location and hobbies/interests.

Building a signup wizard to use that information to select a instance would seemto be the best approach.

The contacts would let you know what instance most of your friends are located (e.g. look up email addresses).

Topic specific instance, can provide a hobby/interests selection section.

Lastly the location would let you choose a country specific general instance.

It would help push decentralisation but instead of providing choice your asking questions the user is used to being asked.

permalink
report
reply

Basic rule if someone claims X magically solves a problem they don’t follow X and are a huge generator of the problem.

For example people who claim they don’t need to write comments because they write self documenting code are the people that use variable names x1,x2,y, etc…

Similarly anyone you meet claiming Test Driven Development means they have better tests will write code with appalling code coverage and epically bad tests.

permalink
report
reply

The butler informed me Kinder Eggs don’t make a nice pyramid, Lindt doesn’t stack and suggested I would offend her ladyship if I tried Heroes.

I have the staff practicing making a house of cards using After 8’s, the butler thinks its something those terrible colonialists would try but he sees no other option

permalink
report
parent
reply