• 13 Posts
  • 88 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle



  • 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).



  • 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.


  • 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.


  • stevecrox@kbin.socialtoGames@lemmy.worldWhat's up with Epic Games?
    link
    fedilink
    arrow-up
    8
    arrow-down
    1
    ·
    11 months ago

    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.


  • 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.


  • 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.




  • Nvidia drivers don’t tend to be as performant under linux.

    With AMD instead of using the AMD VLK driver, you would use the RADV (developed largely by valve). Which petforms better.

    Every AMD card under linux supports OpenCL (the driver is more based on graphics card architecture) and you install it very easily. Googling it with windows found pages of errors and missing support.

    Blender supports OpenCL. I bet the 2x improvement is Blender being able to ofload rendering to the AMD graphics card.

    Also this represents the biggest headache in Linux, lots of gamers insist they can only use Nvidia cards. Nvidia treats linux as an afterthought as best or deliberately sabotages things at worse.

    AMD embraced open source and so Linux land is much nicer on AMD (and to a less extent Intel).

    The results here will probably be a DxVK quirk, lots of “Nvidia optimised” games have game engines doing weird things and the Nvidia driver compensates. DxVK has been identifying that to produce “good” vulkan calls.


  • Mint was a reaction to Gnome 3, the unique workflow upset a lot of people and the people behind Mint decided to build Cinnamon desktop (its Gnome 3 made to look/work like Gnome 2). They needed a distribution to build/test their work and so based a distribution off of Ubuntu and called it Mint.

    As a bit of explanation, there are only a few projects which attempt to build an entire linux distribution from scratch. This involves finding code from thousands of sources, work out packaging, etc… We call these ‘base’ distributions, Debian is the base distribution for Ubuntu, Ubuntu is the base distribution for Mint.

    Ubuntu tends to be slightly ahead of Debian in the software versions it uses and automatically enables the ‘non-free’ repositories. Ubuntu tends to push some Canonical specific things like Snaps (which everyone hates)

    I believe Mint rolls the Canonical specific things out of Ubuntu and you get the latest version of Cinnamon.

    Its all a bit…


  • If its for work I would suggest picking a “stable” distribution like Debian, Kubuntu or OpenSuse.

    A lot of people recommend Arch or Fedora but the focus of those is getting the very latest releases, which increases your chance of stuff breaking.

    A lot of people will suggest niche distributions, those can be great for specific needs but generally you will always find Debian/Ubuntu/RHEL support for commercial apps.

    I would also suggest looking at the KDE Desktop, many distributions default to Gnome but it is unique in how it works, KDE (or XFCE) will provide a desktop similar to Windows 11.

    Lastly I would suggest looking at Crossover Linux by Codeweavers.

    Linux has something called WINE, its an attempt to implement the Windows 95 - 11 API’s so windows applications can run on linux.

    WINE is how the Steam Deck/Linux is able to play Windows games. Valve embedded it into Steam and called it “Proton”.

    WINE is primarily developed by Codeweavers and they provide the Crossover application that makes setting up and running a Windows application really easy.

    People will mention Lutris but that has a far higher learning curve.

    There is an application database so you can see in advance if your applications would work: https://appdb.winehq.org/



  • Python’s public API changes subtly, so minor changes in Python version can lead to massive changes in the version of dependencies you use.

    A few years ago we developed a script to update Cassandra on Python 2.7.Y. Production environment used Python 2.7.X (it was 5 patch releases earlier).

    This completely changed the cassandra library version. We had to go back 15 patch releases which annoying resulting in a breaking change in the Cassandra libraries API and wouldn’t work on the dev environments Python.

    Python 3 hasn’t solved this, 2 years ago I was asked to look at a number of Machine Learning projects running in docker. Upgrading Python from 3.4 to 3.8 had a huge effect on dependencies and figuring out the right combination was a huge pain.

    This is a solved problem in Java, Node.js has the same weakness but their changes to language spec are additive so old code runs on new releases (just not the inverse). Ruby has exactly the same issues as Python


  • This advice isn’t grounded in reality.

    Management normally defines ways to track and judge itself, these are typically called Key Performance Indicators.

    KPI’s are normally things like contract value growth, new contracts signed, profit margin, etc…

    So if the project manager is meeting or exceeding their KPI’s and you walk up to their boss telling them the PM is failing as basic job functions, the boss won’t care.

    This is because the boss might have set the KPI’s or the boss might also be judged on them. In either situation its to the bosses advantage to ignore you.

    The boss will only care if there is a KPI you can demonstrate the PM failing to meet.

    Every person/group will have various incentives and motivations. To affect change you have to understand what they are.



  • A project manager has responsibility for delivery of a project but they typically lack domain specific knowledge. As a result they can’t directly deliver something, merely ask subject matter experts for advice and facilitate a team to deliver.

    Most PM’s cope with the stress of this position poorly.

    This cartoon is an example of micro management (a common coping mechanisim), the manager has involved themselves in the low level decisions because that gives a sense of control. If a technical team then tell them its a bad decison the team are effectively attacking their coping mechanisim.

    The solution isn’t to tell them their technical idea is terrible, when you’ve fallen down this rabbit hole you have to treat the PM as a stakeholder. They are someone you have to manage, so a common solution is to give them confidence there is a path to delivery, a way to track and understand it.


  • Tactic developed by Wagnar.

    The create a plan with fixed waypoints for a squad to run. They plan for 5-8 squads to run the route at set intervals.

    The idea is each squad exposes the Ukrainian position so the next squad knows where to attack. By sending so many squads in a short space of time the Ukrainian position is overwhelmed.

    Wagner would plan to have the first 4-7 squads made up of convict units with minimal training, with a trained well equipped squad operating as a reserve. The idea being as soon as a Ukrainian position looked to be close to failure the reserve is dispatched.

    Fundamentally everyone apart from the well trained reserve exists to soak up bullets and explosives. They are “meat”.

    The Russian army had “well” trained battalions, as those battalions are attrited it would shrink them down to maintain effectiveness.

    With Wagner’s success they backfilled the battalions with convict and mobilisation soliders. Those soliders are used following the tactic above with the original remnants of the battalion representing the well trained reserve.

    This is how Russia solved their inability to train new soliders


  • SpaceX are launching 26-52 satellites at a time and have sustained 3 launches a week for most of the year.

    The satellites are in a Low Earth Orbit, without constant thrust, atmospheric drag will force them to re enter earths atmosphere within a few months. This means they aren’t adding to junk in space.

    Unlike Nasa, ULA, Arriannespace, RoscosMos, etc… SpaceX have always performed 2nd Stage Deorbit burns, so they aren’t adding to Space junk by launching either.

    The Low Earth Orbit is to ensure low latency and the need for constant thrust means the satellites have a short life expectancy by design. That is why SpaceX fought to keep the satellites as cheap as possible (e.g. $250k)

    First stage booster reuse and fairing reuse means the majority of the launch cost is the second stage ($15 million).

    The whole lot is privately funded