Codeblr - Tumblr Posts

9 months ago

I work for insane people

So… I started work a few months ago and...

I keep being impressed with corporations lowering my expectations.

Like. EVERY time I think "Surely, this is as incompetent as it gets".

The boss is nice, the workers are nice, every PERSON is great so far. But the firm is just… fucked in ways that makes it hard to not scream with laughter.

It is like working in the ministry of silly walks by Monty Python. Insane things are happening, and everyone just acts like it is normal.

A dude was stating to someone else near me, that despite the costumers saying they did not want it, his code that crashed the application once a day, was NECESSARY, because writing code without memory leaks in C is basically impossible. Like… I just have all these small moments of insanity. Completely disconnected from each-other

My boss showing me and the other 3 new hires the coffee room, where a big screen proudly shows that not a single software product have 100% code coverage… as in, not a single person in this entire building filled with software people knows how code coverage works. He then points out an empty bowl, and declares "Twice a week, there is a fruit event". By which he means, fresh fruit is provided, and people can just grab some…. just said by a alien who is pretending to be human. Badly.

He then explained that the 2 coffee machines in here makes bad coffee. He then takes us to the copy room, showing us that THIS is where the GOOD coffee machine is. Which only takes coffee beans from a SPECIFIC vendor (Is… is the coffee machine… sponsored????)

He briefly pets the Foosball table (Again, in the copy room), which is jammed up against the wall so you can only reach the controls on one side ( Because, again, it is a copy room, and there is not enough space for it ) and he exclaims "Ahhhh… Not enough people are using this"

Suggesting, that he is trying to promote the little known sport "Single-player Foosball">

I start setting up my work PC and... Whenever any of the developers in this place wants to install things on their PC's, including compilers and testing frameworks, they have to either use the "SOFTWARE CENTER" program, which installs it FOR you… or in 10% of the cases, fails, without giving you any context for why it did that, and no tools for fixing it. Is it missing a dependency? Not working with the OS? Who knows!

Some programs cannot be installed like this though, because the SOFTWARE CENTER is not updated a lot. And when you want to install something the normal way… You get a popup, where you must provide a written explanation for why you need to have temporary admin rights to your own dang PC … you then submit that, and your screen will then be watched remotely by a worker from India, for a varied amount of time you are not told…

Or at least it says so. Maybe the Indian dude watching me is just an empty threat. Who knows. But they get to see me running absolutely… BONKERS .bat files

Like, I CHECKED them, and a good 80% of them calls a Power-Shell script in the folder above it, called "YES_OR_NO.ps1" which opens a windows 95 window informing you that DURING INSTALLATION YOU MAY NOT USE THE KEYBOARD OR MOUSE, AS IT MAY DISTURB THE SCRIPT THAT WILL INSTALL THE PROGRAM. A normal installation wizard then runs, except the developers are not trusted to click the buttons, and instead the script does it for you by moving and clicking the mouse.

All of this is documented. In markdown like reasonable people? Of course not! It is in ENHANCED markdown. Which is markdown in the same way javascript is java.

ENHANCED markdown requires browser and visual studio code extensions to be read. Completely missing the point of markdown being readable both raw and encoded… And sometimes word documents And sometimes power-point presentations left next to another bat file… this one calling the .exe file… right next to it…. I later found out is because the idea USED to be that all documentation MUST be made with Microsoft office tools.

I had to read the code of conduct today. And it was actually very well written.

I then watched a interactive animation telling me about the code of conduct… which it not only got a fact wrong about, it also broke it once.

I repeat. The introductory course in the code of conduct… broke the code of conduct'

After I watched that, and read the safety material…. which literally just said "Wear safety boots in the production floor"… I was then show the testing room.

I was lead to a different building, saying hello to the Vice CEO who was walking the other way, we walk into the production floor, ignored the fact that none of us have safety boots on, and walks into a room, with a 3*2 meter wide machine, several meters tall.

We edge around it, quietly hoping no one turns it on, since we would get slammed by it if they did, and walk down some stairs into the basement. Casually walk over a small river in the floor from a pipe that is leaking… what I really hope is water, and over to a shelf rack FILLED with the most MacGyver shit you ever did see.

Including, but not limited to, the 3D printed plastic block, with a piston that repeatedly smacking half a aluminum nameplate over the device it is testing. You see, it is a capacitance button, and it is testing it by simulating a human finger pressing it many thousands of times, a saws off antenna which is the end of a cable that is attached to it via a nice thick bolt, so it can send fake signals into it.

And of course the 24 volt, 5 amp system that is turning a circuit board on and off again, until it will crack.

We walk back out, remembering to step over the small river, which never even got a comment, and walk back to my department It is SO great. It is like working in the ministry of silly walks by Monty Python Like… Do I think I can bring value to this company? Like, making it better and more efficient? Yes. It would be hard not to!

And his is the largest pump manufacturer in the world! A super serious company with 4 billion dollars of revenue a year. And it is just… a NUTHOUSE

Like… NEVER believe the myth that corporations are competent.


Tags :
8 months ago

What is "Agile" anyway?

So...

I feel like my posts are best when I write about things on my mind. And because of my job, "dark agile" and "dark scrum" have been a lot on my mind. "Dark" basically is used to mean "Subversive" or "Pretending to do X, but in fact doing to opposite.

Dark design for example, refers to design that is worse for the users ( Making it harder to say no to cookies than yes for example).

But to talk about dark agile, I have to explain what agile actually is. I also want to do this because agile is super simple. But if you ever want to see a LOT of successful scamming, check out business management consulting. A LOT of people have a vested interest in making it sound a lot more complicated than it is and/or ignore what it actually is in favor of telling companies what they want to hear.

Agile is short for "Agile software development"

First, understanding the problem agile solves:

Small companies can change what they are doing, and how they are doing it really quickly. They are also very good at listening to their developers and put their good ideas into practice.

As companies grow larger, they quickly lose these abilities.

Agile, is a way to keep those abilities in a larger company. This is done by giving each development team freedom to develop however they want ( not WHATever they want ), and to give them as direct a line as possible to whoever is the decision maker for the thing they are developing, which allows them to change what they are developing very quickly, but in a way that still leaves that decision maker happy.

Or in other words, encourage worker empowerment and grassroot organization ( Can you guess why companies REALLY try hard to not actually do agile? :p )

That's it. That is agile... as in, all of it.

You can read the agile manifesto and the agile principles, which flushes out what exact values agile is trying to achieve, but you basically already have all the info

agilemanifesto.org
We are uncovering better ways of developing software by doing it and helping others do it. These are our values and principles.

If you are thinking "But what about Scrum?", scrum is a proposed tool to achieve agile. It is not agile, nor is it part of agile. Agile is a goal. Scrum is a tool that may help a company reach that goal.


Tags :
8 months ago

Next up! Scrum!

So... this may be a controversial post... I swear, no listen, I SWEAR that is not on purpose nor is it a goal. I hate that nonsense, but I wanted to give you a heads up. If people start talks in the replies or the reposts, be kind. Read the entire post, and their answers and consider their context before engaging in a constructive manner, or decide you have nothing to say that will improve things. And remember the hermeneutics of generosity. (Basically, assume the writer means well, and is just not good at getting their point across) https://nerdfighteria.info/v/ovrzKCQ2JTM/

I say this because entire books have been written about how to do scrum... which I personally consider somewhat insane. And it is my opinion that a lot of this is just the business management consulting scammers that again have taken perfectly good systems, concepts and words and abused them to the point of meaninglessness.

Because scrum is SIMPLE. And great BECAUSE it is simple. A bit harder than agile, but then, usually the way to the goal IS harder than defining the goal, so that checks out. So just like my post on agile, let us start with what problem is scrum trying to solve.

Basically, a company wants to be more agile. But just bursting open a door, pointing to some random developers while yelling "BE AGILE" proved a somewhat ineffective strategy (except for Steve, who immediately did a full split). To be agile you want the development team to decide how they want to do development... so what do you do when they don't know themselves? You do scrum!

Scrum (Named after the "All players grab each-others shoulders and listen to a super quick message by the coach" thing in sportsball) is a plan for how to plan development, analyze how you are doing development, and improve it. It centers around a team of developers (Usually between 4-8) and a constant time period called a sprint. This is usually 1-3 weeks. Then you do these steps: 1: Make a plan for the next sprint. Take the tasks that needs doing, break them down into clear tasks, and hand them out to people. Try to get the amount of work given to each developer as close to the amount of time they have to work on it in the sprint. Write these things down, however you want. 2: Do the sprint! Basically, do development. Each day, have a super short meeting where each developer explains what they did yesterday, and what they plan to do today. With focus on decisions they have made. Each person talks for 1-3 min. If you need to talk more, do it with the specific people you need AFTER this meeting. 3: When the sprint is over, evaluate how the sprint went. This is the most important part, and the one that should be spend the most time and effort on. Because this is the real core of SCRUM. Did everyone manage to do their tasks? Did some run out of things to do? Was certain tasks harder than expected? Why? What things we did could be improved? What things we did should be done differently, or not at all?

You write down your hypotheses, and start again at step 1 with making a plan for the next sprint, this time, with changes you want to test.

If you just realized that this is the very well known "fuck around and find out" or "The scientific method" as some nerds call it, then congratulations! You now understand Scrum at a deeper level than 90% of companies!

Now. There are 2 extra roles in the development team to make sure this method... you know, actually works 1: A scrum master. This is essentially just the poor sucker who makes sure that the team actually follows the plan, and remembers the steps that was agreed upon. They note down interesting things said during the daily meetings, the plan during the planning and the ideas and thoughts during the retrospective meeting. They are NOT a leader or manager. They do NOT dictate anything. Usually they are just a developer who have the magical skill "Being able to take notes and participate in the meeting at the same time" (I am a bit in awe of that skill).

2: A product owner. Sadly, developers have to actually make stuff, not just have fun. And the product owner is there to make sure that everything still centers around the correct goal. "To make great software for whoever wanted to software". If the team is developing software for a costumer outside the firm, then this is a representative of that firm. Ideally the specific person who ordered it. If they are making software based on orders by a manager or a marketing leader, then the product owner is that person. Only the person who wants the software knows what the software should be like. And humans are terrible at communicating so you do not want a game of telephone going on or the futile game of "Just have the costumer write down what they want the software to do, and then we make it". Because the product owner is often busy and so it is ok for them to only show up at the planning and retrospective meetings and it is ok for them to video call in, but their participation is MANDATORY. They MUST be an active part of the meetings or none of this will work.

We want the team to make changes to how they develop, and what they develop on the fly (The developers decide how, they product owners what). And if you do that without a constant line to the product owner, the project will go off the rail very quickly and fail with almost 100% certainty. It is also a great help because not only will the developers be able to get questions answered quickly, the product owner will also get a good insight into how the thing they want are actually being made and make better decisions. Wrong assumptions will be caught early, and misunderstandings minimized. Maybe a thing they want is really hard to do. If they want it enough, then maybe the hard work is worth it. Maybe not. You find out by TALKING.

That is it. That is Scrum. Now, you may already have spottet why so many people get confused on what scrum is, or how specific or expansive it is. Because what scrum is, is a super simple setup, designed to mutate, and test if those mutations are good. Meaning after a while, a team may only have the short meetings every other day. Or have tasks given to sub-teams of 2-3 developers. Or drop the daily meeting and have Sprints that last half a week. Or have moved some of their developers to teams that fits them better, and gotten developers that like the way THIS team works. Or maybe they have a extra meeting in every sprint with a select group of people outside the team that are experienced in working with what the team is currently working on. Or maybe a team does not want to do any part of basic scrum.

And none of these are right or wrong . The ONLY thing that matters is "Does it work for THIS team?".

You may think "But you just described a structure with rules that seem rather strict...". Correct! That is the STARTING point. Meaning very few teams will be running exactly like that, because most teams (hopefully) did not just recently start existing.

But sometimes you also want a reset. A team may not be working well anymore. Maybe some key team members have left the company or gotten other jobs. And it is decided that it is easier to go back to basic scrum and start inventing a new way to do things for the current team. Maybe the team think they might be a bit too used to a current way of doing things to come up with a new one. Maybe the team is dissolved, and its members put into other teams, and a new team is created in its stead to start from basic scrum with individuals from other teams that wants to try new ways of doing things. It is perfect scrum to have a team of veteran developers who have not changed how they develop things in several years because they by now know what they want.

You can easily see why this works, and why it is good. Because if a part is not efficient or the team hates it? Then get rid of it. And it is easy to see why Scrum helps a company become agile. It is a tool that facilitates the worker empowerment and grassroots decisions that agile set as a goal.

You can also see why many companies HATES this. It makes a lot of middle managers unnecessary. It empowers workers to want things, and trains them on how to get them. It stops managers from coming up with "brilliant" new ways to develop software and then force that method onto the developers. Managers who come up with ideas for products will have to explain themselves to the developers, and risk looking silly. In front of the pleb workers!!!. Dear god, costumers will get to see the greasy reality of how the software they want is made! And management have to knowledge that developers are the best at... developing.... And will have to... trust their workers...

A thing you will often hear in defense of not letting teams decide on how to develop, is that if everyone develops in different ways, then nothing will be standardized. Each team may use different tools, languages and architectures! It will be a massive mess!

Which is true... if you completely miss the point. Again, the developers should be free to choose HOW to develop. Not WHAT to develop. The product owner is the major force in deciding what features and products is developed, and standards like code format or use of profiling tools can still be required by management (Which is entirely reasonable).

But the teams get to choose HOW they develop those. A simple example, many people like placing brackets like this: void MyFunction(){ // some code }

But my team prefer doing void MyFunction() { // some code } The idea in scrum, is NOT to allow a team to go "We write however we want!". The idea is "WE decide how we get to the required form". I have worked in a team that simply had a auto-formater build into each of the team members command line tools, so when they pushed to the remote git repo, the code format followed the standard, and when THEY looked at it, it looked how the team preferred it to look. I have seen teams that wanted to work in a different language, so they used a Source-to-source compiler in much the same way.

That is scrum. It is a simple, yet powerful idea.


Tags :
6 months ago

In order to learn something, I use it.

That means using it badly to start with. When it is a C++ thing, I make a tiny demo program in Godbolt with comments for myself. I then go over it until I know it for an exam, or I polish it everytime I need it. That way, the things I need to most, I have put the most work into.

For arcitecture like von Neumann, I would have the model drawn up, and then on a whiteboard, go through how the computer runs a tiny assembler program ( Like adding 2 variables together and saving it in a third ), and write it up in normal english text.

The CPU fetches the first variable from memory, into a register

The CPU fetches the second variable from memory, into a register

The CPU uses the ALU to add the variables together in the first variables place

You can use this Tom Scot video to get a good start:

If I need to be able to draw the model from memory, I then practice that AFTER I can use it.

It is much easier to learn drawing a model when you know how to use it, since it will be obvious to you when you are missing a bit or placed something wrong, because you know how it is supposed to work.

I don't know what context you need this in but... unless you are getting very specialized, the von neuman model is more something you should have a idea of what it is, and if you need it in the future, you can look it up then... it is not terrible important for understanding most things computer in my experience

okay question: how do you guys study graphics? i have to study —among other things—the von neumann model for next week and i just realized i have no idea how. how do i remember which part is which? how to draw it? the only idea i have is to stare at the page for an hour or find a way to magicly develop photographic memory overnight. so, if anyone has a tip or a technique or something, i'd be forever grateful to know


Tags :
6 months ago

That is what experience is :3

Traveling in time to tell yourself the solution

Travelling back in time to tell myself that sticking with Lua and Love2D was the solution


Tags :
6 months ago

So probably this is old news for most of us on Tumblr, but binary gender is deprecated:

So Probably This Is Old News For Most Of Us On Tumblr, But Binary Gender Is Deprecated:

Tags :
6 months ago

I've been learning to code at my new job and I work with a senior software engineer, who's a genius at this sort of thing.

But like an hour ago, he was in my office angrily murmuring, "what?! what?! what the hell?" over and over again as he furiously typed on my keyboard, trying to fix something in git.

and it's honestly very reassuring to know.

that whether you're a novice or an expert at coding... sometimes you just find yourself angrily swearing at the program for showing you the same error message a dozen times, asking why are you doing that, almost begging, really.

it was actually kinda funny, he sounded like he was about to start crying, which was literally me, two hours ago, when I initially asked him for help.

it's part of the human condition, I think, wrestling with computer programs and furiously typing in commands, only to be met with defiance.


Tags :
6 months ago

I need help!

Can anyone remember the law/rule that says something along the lines of "people/companies tend to prefer metrics that are easy to measure rather than good/usefull metrics"

It is not Goodhart's law... that is different...

Help! My google fo have failed me!


Tags :
5 months ago

I love being at work and in a good mood.

Whistling happily as I look up the contact information of work safety authorities so i can hand in my firms insane and careless breaches of basic safety.

The process for setting up hardware that can kill you is: "Whoever can do it. No knowledge or training required. The checklist for what to do is inside the heads of some people in the firm... Probably...maybe, and if those people randomly are near they will tell you what they think they remember they know"

I had a hardware setup that KILLS YOU if you touch the wrong parts. And it had been running FOR A MONTH before someone said "I... seem to remember us being told that the rules say you have to print and fill out a risk assessment and hang it on the safety rail?"

Goodie!


Tags :
4 months ago

You can write object oriented in C, functional in Java. Mono-paradime is bad.

The real world is complex, and picking 1 solution to everything means picking a bad solution.

Right tool for the right job.

"So you know how C is procedural, Haskell is functional, and Java is object-oriented? You may ask: 'what about Python?'

Well, Python is bullshit-oriented."

My friend, teaching me Python.


Tags :
4 months ago

Honestly, how I learned was via make.

Like... you can easily find compleatly incomprehensible make files that automate everything.

Those you can use, but they are not how you learn.

How you learn iz by doing it very very copy-paste of the lines toh would write to the compiler in a shell. Most basic one with a single .c file would be:

gcc main.c

Then figure out what arguments to add to it to make it how you want. Name the output file. Have the source file in a different folder. Have the ouput be in a different folder.

You now know how to compile a single file by using a shell

Now. Create a make file. Simply have it call exactly the same thing you wrote in the shell before.

Then figure out how to compile a main file and a file with functions and a header. Again, first just by using a shell. And then build it into your build file.

This is not too hard. There are plenty of guides and examples. It is fun exploration where you get your hand dirty and you will learn a LOT about how coding projects and IDEs work.

A programming IDE is just a text editor and make file builder with a pretty GUI on top

It is not magic. And it is not even that complicated.

Sure. Automating it and making it solid and taking all the things that may change into account so it can be generic is hard

But creating a make file that will compile YOUR project? Not hat bad.

never learning how to properly handle multi file c projects is finally catching up to me and stabbing me to death with linker errors.


Tags :
4 months ago

Hey now!

Kotlin is a wonderful language!

For example, when exiting a coroutine, Kotlin AUTOMATICALLY throws a specific exeption and automatically catches it, to show that the coroutine exited normally.

Now, you may think it is bad to use exeptions as part of normal programming flow, but it is NESSESARY to re-invent GOTO's in a high level langauge like Kotlin!

/s

this year i'm in the mobile development trenches and it feels like it just gets worse every time i get back into it. if i never have to hear the words "gradle" or "kotlin" again i would be very happy. whatever those even are


Tags :
3 months ago

It have been a stupid and outdated thing for more than a decade.

It is a security measure that relies on humans being 100% reliable and able to generate passwords with no patterns.

Meanin, it does not work. Any place that requires this have people who decide security policies who knows nothing about security and are not in contact with the security community

I fucking hate forced password rotation, and I have no proof for this (personal speculation) but I think it's probably a shitty security measure.

Like. I only have so many passwords in me. If you force me to change my password every couple months then eventually imma give up and start coming up with ones that barely fulfill the password strength requirements just to get that shit over with.

Like idk from a data security standpoint I think it's probably better to have your employees stick with one good password than go through six mediocre ones a year.


Tags :
3 months ago

The... Crowdstrike issue is not being resolved... at all...

The issue was not a bad update.

The issue was no testing. Pushing late friday. Pushing to all users at the same time.

And that is the easy-to-get-right stuff that we can see. Most likely the firm is a complete fucking from top to bottom. Because it basically have to be to let something like that happen.

And that is not getting fixed. Not for Crowdstrike or the tech industry in general.

Hell, the CEO of Crowdstrike have had THIS EXACT SAME PROBLEM with lack of testing and structure in previous firms he have been CEO of.

But since his strategy of removing all safety and structure makes money in the short term, IE is good for stock owners, IE the already filthy rich, he gets to keep being CEO of important firms.

NONE of that is getting fixed. We got solid proof that the biggest danger to modern infrastructure is not hackers or the people all the invasion-of-privacy tech and laws target.

It is the massive for profit organizations with root access to everyones machines. Meaning the laws and tech that are being rolled out RIGHT NOW to spy on everyone and gain access to everyones machines is not only sacrificing privacy. It also makes you LESS safe.

But that lesson is not allowed to be learned. So we have done nothing about this, and we will do nothing about this.

the crowdstrike catastrophe is getting resolved but the intel 13th and 14th gen CPU nightmare is just beginning. damn


Tags :
2 months ago

Happens a lot on all of tech as more companies is doing the Enshittification thing.

I was told by a senior engineer that what I was promising my boss I could build was not possible.

I countered by oppening the datasheet for the microcontroller in question and pointing to the page that said I was correct.

Turns out he have never read the documentation for the microcontroller he have been working on for the last 10 years.

I had read the entire thing before having been there a month

All his knowledge is based on rumors and hearsay

I think the real reason most websites are janky as hell to use these days is because web developers have become so specialised that nobody really understands how anything works anymore. The other day I had to explain why hosting critical Javascript libraries on a third-party CDN is a bad idea to a "lead developer" who genuinely didn't know the difference between server-side versus client-side scripting.


Tags :
2 months ago

Which is honestly because you are a good programmer

Developers who claim 1 programming language is the best sounds like a craftsman claiming 1 tool is the best.

But when you see that "craftsman" hammer nails in and solder with a saw you realise it is not craftsman... it is just an idiot...

Or when you see your firm having implemented C++ metaprogramming in giant python scripts and yaml files which generate .c files... because they want to only program in C ... I just... I don't... WHY was this ever done???

Right tool for right job. And all tools have flaws and quirks

I love programming but I hate every programming language.


Tags :
2 months ago

And guess how Large language models do math?

Either they do it terrible, or human programmers try to make it recognize when it is being asked a math problem ( which is NOT a 100% thing it can spot ) and then... they have hardcoded it to use a calculator.

It is JUST a basic calculator with a horrible interface that burns energy, steal peoples content and helps evil companies.

Oh. And according to the leading experts in the field is on the same thread level to humanity as nuclear weapons and global pandemics.

Just...don't...

Didn't reblog that one "wait you guys actually use chatgpt" post but the one reply where someone said they use it to do math is insane to me, we already have an AI that does math for you it's called a calculator and it's been around for decades


Tags :
2 months ago

Got an email at work today that my workplace will now allow the use of co-pilot in development.

So I replied and asked what the firms stance is on copyright and licenses when it comes to large language models.

Because if their stance is that running code through a large language model strips copyright and licenses away then they have just given every worker permission to do that to the firms code and sell it to our competitors. Should take me a few hours to write the python file.

OR is their take that the copyright and licenses survive?

Because some of the code used to train co-pilot is under the GNU license meaning any codebase using it must be published as open source under the GNU license.

Either way, the firm is fucked.

I am looking forward to their response


Tags :
2 months ago

Honestly... my advice when people ask how to learn git is:

1 Open a console.

2 Write "git"

3 press enter.

Now read and follow instructions.

Git is OLDSCHOOL.

Meaning it is a self documenting program


Tags :
2 months ago

If you write "git" and follow what it says, it have you creating a dummy repo as the second command it tells you to use in the tutorial.

So "just write git and press enter" gets the same result as your recommendation :3

Honestly... my advice when people ask how to learn git is:

1 Open a console.

2 Write "git"

3 press enter.

Now read and follow instructions.

Git is OLDSCHOOL.

Meaning it is a self documenting program


Tags :