Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "llama"
-
This page doesnt look like much until I tell you it is written entirely in Clojure using a custom built HTML generator.9
-
I was asked by our tester and scrum master to ignore some failing unit tests yesterday. The tester literally said "no time for tests, we need the build now". The scrum master is also a tester and agreed. I dont think I can respect either of them as testers anymore.3
-
Functional Programming. Because Moores Law has moved from making processors faster to multiplying cores, and we may eventually have to code on machines that have 1024 cores or more. Mutable state will cause all kinds of hell in those scenarios. We already have problems with it when we have like 2-3 different threads.4
-
!rant
Yesterday I got my first promotion that was based on merit and not because I graduated or moved company 🍻
#feelsgoodman5 -
I’m surrounded by devs that use the light theme in IntelliJ. It triggers me more than any bad code 😂😂😂5
-
My last post was over a month ago about updating my CV to escape this place.
Pleased to report I got the job 😎3 -
I’ve begun to notice a distinct pattern with devs. I realise it has probably always been there but Im just thinking out loud as Ive started to actively notice it.
*Dev has literally one problem with a library/framework/environment*
“Holy crap <NAME> is the worst thing ever!! its actually worse than an STD. whoever made it needs to quit making software and become a goat farmer” (paraphrasing of course)
What is it with us that the second we have difficulty with a library or framework we immediately brand it as a cancerous polyp on the anus of humanity?8 -
Today, during an update from senior management, I was casually sitting in the corner filling in my CV to get out of here lol.3
-
Don’t put pressure on yourself to understand everything. No single person understands it all, that’s why there’s a bunch of us.6
-
Whatever was running on that computer in Jurassic park with the gif of the fat guy saying "ah ah ah"5
-
Every time I look at some code and say "what the hell?!" the code refactors itself before my very eyes.2
-
Bob Martin. His books Clean Code and the Clean Coder, and all his talks on architecture, SOLID and TDD. I could listen to him talk for days, and he taught me everything i know about writing clean code.2
-
My new start training at my current place of work.
Learned how to use Linux, terminal, ssh, git, MySQL, how to create basic web apps with Spring, how to write unit tests and UI tests. All in the space of 4 weeks. Best training I have ever been on.3 -
“Stop trying to name it and name it”
Kevlin Henney adapting Morpheus’ iconic “stop trying to hit me and hit me” with regard to choosing names for classes/functions/vars. Too often we pussyfoot around with computer sciency sounding words instead of just calling it exactly what it is.12 -
Well yesterday I had the absolute joy of marrying @GIS-Jedi.
I think I have gotten more Facebook notifications today than I did in all of 20184 -
PORTFOLIO INFLATION
when every junior is writing algorithms, the next step up, the only way to keep up is writing apps. When every junior is writing apps, the next leg up is writing an entire SN.
Eventually junior full stack devs are writing microservice streaming cloud backend content delivery optimized social networks wrapped in virtualization with load balancing, proper CI, public accessible analytics apis, written in custom webaseembly compiled scripting backend utilizing both the latest graphql and every single feature of postgres, while also being a web site builder, an in browser app, mobile optimized, designed to transmogrify your asset pipelines linearflow functional-oriented modular rust cratified turbencabulator while cooking your turducken with CPU cycles, diffusing your gpt, and finetunning your llama 69 trillion parameter AI model to jerk you off all at the same time.
And then the title "wizard" becomes a reality as the void of meaning in our lives occupied by the anxiety of trying to reduce the fear of rejection in job hunting, is subsumed by the brief accidental glance into the cthulian madness-inducing yawning abyss of the future which is all the rest of our lives we have to endure existing for until at last sweet sweet death consumes us and we go to annihilation never having to configure one more framework or devops deploy of another virtual environment.
And it dawns on us that we no longer develop or write code at all. No, everything has become a "service" in this new hellscape future. We slowly come to the realization that every job is really just Costco greeter, or eventually going to be reduced to something equivalent, all human creativity, free will and emotions now taken care of by the automation while we manage the human aspects, like sardines pushing against one another not realizing their doom has been sealed along with the airless can they have been packed into, to be suffocated by circumstance and a system designed to reduce everything to a competition of metrics designed by the devil, if the metrics were misery", and "torture", while we ourselves are driven by this ratfuck wheel to turn endlessly toward social cannibalism, like rats eating their babies, but for the amusement of wallstreet corporate welfare whores who couldnt turn a dime if it wasnt already stolen.
And on our gravestones, those immortal words are carved, by the last person who gave up the ghost, the last whose soul wasnt yey shovelled onto the coal fires driving the content machine consuming the world:
Welcome to costco. I love you.12 -
The number of people who responded to this with bile such as “yeah but how well” or “i bet she can only write hello world”.
Its sad that this attitude still exists in our industry. If you havent seen the story she responded by clarifying that she is on the iOS tutorial team for Raywenderlich, and has a bachelors degree with a double major in Computer Science. But she shouldnt have to explain that just because shes a woman. Are people that insecure about their knowledge that they need to resort to demeaning other peoples? for shame.15 -
DO NOT be afraid to argue with people. It doesnt matter who they are. Senior engineers, tech leads, delivery managers, if you know something is wrong make it heard. I made a point of telling my Project Manager that the current project is the worst ive ever seen. The technology is awful and we all hate the development. They need to know this stuff. And if they come to you with a deadline that you dont think you can make, say it then and there. Then they cant come back and say why isnt this done. Basically dont just do as youre told. If we needed that we would get robots to do our job. We need people who think and have opinions and make those opinions heard at the appropriate level.2
-
Once during a standup, I mentioned that I needed to fix some unit tests before the build would be ready. Our tester then said "no time for tests, we need the build now". That was a dark day.
-
A word of advice to framework authors:
If I am currently using v2.5.5 of a library, and I update to 2.8.6, I would expect to maybe have to update a few deprecated method calls here and there.
I do not expect the entire API to be completely different, with half the classes totally renamed and restructured. Breaking changes should go into a new major version plz4 -
I dont work weekends ever. And I dont bring my work home with me, once I finish for the day, Im finished. Even if there is a deadline looming or something is due for a weekend release. I will only work when Im in the office. And I wont work extra unpaid hours. All that does is create unrealistic expectations from your employer and clients. I did it once and learned that there was no point and I could have just gone home and it would have been fine. Im never doing it again.3
-
Worked on a team where every single sprint planning was a useless meeting because we were expected to deliver everything in the backlog every sprint. So what are we really planning?5
-
An iOS app which was basically a wrapper for a giant jQuery eForm.
~5000 lines of custom JS and it broke ALL THE DAMN TIME. A team of us worked on it for about a year and all we ever did was fix bugs. But the bug count never went down. The bugs just got replaced with more bugs.
Thankfully its not live anymore.
After the global thermonuclear war, all that will remain is cockroaches and jQuery. -
Annoys me so much how obviously lazy my department has been with one of its products. We have an iPad app that does document management and eForms and stuff. Its not perfect but not the worst. Then they decide they need to build an app to handle a specific kind of eForm. They just went "well this app already does eForms so lets just adapt it".
Worst. Decision. Ever.
the app is simply a branch off the original app. despite being a completely different product which isnt even concerned with the same business objects. it has been hacked until it does what it needs to. And i have to somehow maintain this trainwreck.
As a result we have a branch in our main Git repo that contains a completely different product, which is basically an iOS wrapper for an HTML eForm with ~5000 lines of jQuery to further hack on the functionality that the eForm provides.
And they wonder why iOS developers have been leaving and some keep threatening to leave. Even the Delivery Manager wants us to just do what is needed and get it out the door and never look at it again. How are we supposed to care when thats the attitude of the people who are supposed to be invested in it. Im surprised the client hasnt told us to get lost the app is so hideously broken and unmaintainable. Performing an action on the form can break a completely unrelated section somewhere else. We have lost control.
And they just keep adding more scope, ignoring our concerns cos hey its too late to just start changing the whole approach of the solution. -
Shameless blog plug, but it does count as a rant 😅
Seriously folks, stop calling everything a service.
https://likelikeatemyshield.com/pos...15 -
Me: *Writes a nice little AWS Lambda service using Java 12*
Reviewing Dev: Lambda only supports JDK 8
Me: *Dies inside and cries as I replace every occurence of var*6 -
wrote some JS to make sure that eForm fields which are hidden/disabled via checkboxes are nullified before the form submission. Checking the request and the fields are definitely empty. But the tester says the data is still appearing in the DB. So i am moving immediately to Nepal where i intend to live as a goat.
-
Im gonna turn this topic on its head a little and mention the MOST NECESSARY feature that was never implemented in one of my projects.
It was an iOS client for a medical records system. Since it contained actual confidential medical information, some patient records could be “restricted”. Thos meant if you tried to open them you would be prompted for a reason, and this would be audited.
We already had 2 different iOS apps with this feature in place matching the web app. But for some reason with the 3rd app they just decided not to bother. I discovered that it was because the PO in charge of that project didnt consider it important enough for the demo. So we have one app where you can just bypass the whole auditing process and open restricted patient records freely.3 -
Client: There is currently no way for us to save forms to “the cloud” (yes they actually put the cloud in quotes)
Me: That would be because this software is installed on your onsite server infrastructure and is not cloud hosted in any way. -
This one from Silicon Valley:
“Tell me this isnt Zune bad”
“I’m sorry Gavin, it’s Apple Maps bad”
Or perhaps:
“Hey Danesh, nice chain...” 😂 -
Well... I once accidentally deleted a classmates entire assignment. Basically we were working together on one and we had the code in Github, I had named the repo after the module code.
He was having some weird git issues and I thought it would be easier to just delete and re-clone on his machine. You can probably see where this is going.
Me: rm -rf <DIR NAME> Enter
Him: wait, which folder did you just delete
Turns out he had the repo cloned inside another directory with the EXACT SAME NAME, which also contained his previous assignment, the only copy of it in the entire universe (it was a group project and they did it all on his laptop with no source control, which i found hilarious).
It wasnt so bad since that assignment was already submitted and graded, but a bit of a fail on both our parts. -
Just merged a PR, all checks were green and it was reviewed and approved by me and another dev.
Had a great big ‘do not merge’ label on it...
fml whoops -
I feel really bad for the guy I'm currently working with. I have until roughly the end of August to upskill him in every aspect of 3 different iOS apps because once I move to a new project he will be the entire maintenance team for those apps. Feel like he is getting shafted so badly. The whole process has been poorly managed. The managers don't care how well I train him as long as it doesn't take too many man-days. And they are expecting that they can still pull me back in to help if he gets stuck even after I've moved. Starting to feel like I'm being taken for granted. Can't wait to get off this horrible project.
-
Had some fun running automated UI tests today.
Background: My project is a cloud based tool for running automated tests against a 3rd party SaaS product, so when you start a test run, it opens a Firefox window and runs some selenium automation against the 3rd party product.
Our UI tests also open a Firefox window to log into our local env and run some selenium.
Today I tried to run 4 of our UI tests in parallel.
So each test case creates a Firefox instance, and each of those starts a test run which creates another Firefox instance, sometimes 2, depending on the process being tested.
In short, at one point I had 11 different Firefox windows open, all running selenium automation.
My laptop sounded like it was trying to take off... -
When I discovered that our awesome eForm solution for paramedics was a web frame in an iOS app containing a crappy HTML form powered by a 2000 line JS file3
-
@dfox in case you havent already discovered it i have found a bug with notifications in the iOS app.
Steps to reproduce:
1. open notifications
2. tap one of them as many times as you can really fast
3. It generates a new view controller for every time you tapped it.
obviously having to tap furiously is a bit obnoxious but i originally noticed it when the app was running slow and i tapped the notification a second time. It created 2 new view controllers instead of one so i had to actually go back twice to get back to the notifications screen.6 -
When a bunch of unit tests start failing locally because the AWS secret key got rotated.
oh wait...
THOSE AREN’T UNIT TESTS!!!
Unit tests do not depend on any external system, that includes AWS...
AAARRGHHHHH1 -
Who can come up with the best DevOps Power Ballad? I'll start off:
Phil Collins - Something happened on the way to production.
GO!12 -
Got a Yubikey today. Seems like a really cool bit of kit. Time to nerd out and 2FA all the things.2
-
So according to my manager its not really acceptable for me to sit at my desk and vent about what a colossal idiot my Tech Lead is. Fair enough i suppose. even though he feels the need to chime in on every technical decision when he himself doesnt understand how async code works. he thinks you can set a variable inside a promise and then return that variable outside the promise, because its after the call. This guy is a senior software engineer on an iOS team and I, a trainee, have more iOS experience than him.2
-
Manifesto for class naming
Through my work as a professional developer, I have come to value:
ComponentMapper over ComponentMappingService
TransactionalSequencer over TransactionalSequencingService
PayrollCsvGenerator over PayrollCsvService
InternalTestRunCreator over InternalService
Please people, just call them what they are. Forget the noise words and fluff. To quote Morpheus:
“Stop trying to name me and NAME me” -
Looking through job openings in case I get shafted so bad here I end up leaving, I see a nice sounding Java role and think "oohhh dis sounds good".
Required experience: Using the Eclipse IDE.
*closes page, cries* -
Today I learned that some external devs one of our projects is working with have DB tables where they store references to specific dates, and not only that, but every minute of those dates, and the day of the week, and what season its in. Im not joking.
Hmm should I use the local datetime libs or should I go through a firewall, load balancer and DB cluster just to find out what day it is? -
Don't forget to give the developers the opportunity to innovate. Nobody wants to sit and type out the same structures day after day. That's not why we got into this job. We like solving problems. In my current team we set aside some time every sprint to spend on individual innovation. Super useful as it gives us the chance to break out from the standard chugging of the backlog and spend some time trying to solve some of the trickier problems and bringing improvements back to the product that we discovered by messing around with stuff. If you are reading this and you are in charge of a development team, try this out for a sprint or 2.2
-
“Don’t forget to go home”
A solution architect when he looked into my team room at 6:30 and saw me still sitting there working. -
Objective-C is an awful programming language that nobody should ever use for anything.
Also you dont know how important unit tests are until you have to deliver an enterprise level application without them.
Biggest one Ive learned recently, managers will promise you the earth to keep you around as long as possible, and they will go back on every promise and call it a "change in priority" -
When Everybody Is Digging for Gold, It’s Good To Be in the Pick and Shovel Business
- ai is just another squeeze of money to cloud from our pockets, no matter what you do as long as you’re not selling/renting hardware or have high profit customers your product will die
I don’t believe in any ai product right now that can’t be self hosted and opensource and many of them are not.
I use mac, like 64GB m1 mac book pro so I can host load of things like llama, wizzard-lm, mistral, any yolo, whisper, gpt, fucking midjourney or other stable diffusion for me is no drama.
I’d say there is no consumer product for ai right now. OpenAI is scam given what we got from mistral.
We are very early in this new but old technology and my worries are that we are not there yet. We will need to wait for another iteration that is approximately 10 years to achieve what we have in mind because current hardware is 10 years behind software.
We don’t have an affordable computing power to go for our dreams.
Sad but true.5 -
When your tech lead revokes everyones merge priviliges on Github because of an issue with "code disappearing from the repo" which he originally suggested was a bug in Github and we should call them for help.
-
The day we had to have an app ready for an upcoming demo. Management said everything needed to be done by the end of the day. My change was done, but was dependant on another change being merged first. I had been in the office since 8am. It didnt get merged until 5pm. I was in the office until 8pm trying to fix the insane merge conflicts. In the end i gave up and went home. The next day we discovered that the "deadline" was made up anyway so we still had time. I wanted to flip every single table in that office.1
-
sister in law: *gets new laptop*
*produces antivirus*
“I’m not putting that on, I don’t need it”
me: *visible confusion*15 -
If you are a mobile game developer and you make those stupid interactive ads that pop up in the middle of another game and try to make me play it. I dont like you and would sooner leave a bad review on your game for having the audacity to invade my other games. Stop it. It is the most annoying type of ad I have ever seen and actively discourages me from downloading your game. Mobile games are already basically a cancer without that horrendous experience.3
-
Probably the autosave feature in our medical eForm application. You might think that doesnt sound unnecessary, but it was built to solve a problem that shouldnt have existed in the first place.
Autosave was put in place to rescue as much data as possible in the event that the app randomly crashed while a paramedic was filling in a form.
So in one sense it was a necessary feature because the app was so unstable. But on the other hand, if the app was built properly it would never have been needed.1 -
Just use the variable on the line after the promise, it will be populated then…
From a “tech lead”1 -
Logging work in Jira, because it goes against the whole ethos of trusting people to get the work done when they have to log exactly how much time they spent on each individual story. It also doesnt account for pair programming. so 2 people log the same time and it looks like the story took twice as long. I’ll stop now because I’m precariously close to opening the “time based estimates” can of worms and thats for another rant.4
-
!rant
working from office for the first time since Covid started.
so many little things I didnt even realise I missed, like an ethernet cable straight into the corp network so I dont have to connect to a VPN just to run a Jenkins build.4 -
So I fix a bug and I create a PR, someone reviews it and leaves a couple of comments, I address those comments and push up my updated code thinking “great I should be ok to move onto this big story waiting for me”
Then some Expletive.random(); from a totally different team who has no context of my change comes in and starts leaving petty comments. He literally pointed out 3 different things that could be made private/package-private.
Bugger off and focus on your own team’s work instead of leaving comments about relatively trivial things on my PRs.
Apparently he is well known for this. I can tell we are gonna have some fun encounters...1 -
Probably joining my first real project. Truly no amount of university education can prepare you for the sheer scale and complexity of an enterprise software project. 100+ git repos, 5 different services running just to run the project locally, with tunnels open to 2 different DBs. It was daunting to touch anything.3
-
A quick rant about dependency injection.
I see far too often in projects, a huge over-reliance on dependency injection / IOC frameworks which permeate throughout the entire codebase.
I cringe every time I see a constructor annotated with @Inject and 10 params.
The benefit of these frameworks is how easy they make it to manage many dependencies. What I dislike about them, is exactly that. I feel that they make it TOO easy to manage many dependencies.
How trivial is it to simply add another constructor param? exactly. And people then wonder why their dependency tree looks insane.
I am a strong believer in injecting dependencies the traditional way, via the constructor with no fancy framework. The reason being that it forces you to think more about the dependencies you are adding to your classes, and consider if they are really all needed.
The other problem I have with it, is it basically encourages you to inject everything because its so easy. The purpose of dependency injection is inversion of control and allowing classes to depend on abstraction rather than concrete implementation. All that goes out the window when you @Inject 6 different concrete classes.
Use dependency injection for its intended purpose, not as an excuse to be lazy and avoid thinking about dependencies.3 -
ignoring a broken unit test suite. although ive just convinced the tech lead to let is look into getting it working again.1
-
Ok, bug 2.
Another iOS one. I was handed an app that was built half-assedly by another team in a couple of days for a demo, And I had to maintain it and get it into a release-able state.
Someone had implemented deep linking in the app, so you could open a record by using a url from Safari/email etc. Worked fine. Problem was, the app had a login/pin screen, and if you werent authenticated and you tried to link from a url, it would just bring you to the login screen and once you logged in it would take you to the main menu rather than where you wanted to go.
So I added some logic to the linking code that if the app wasnt authenticated it would save the link in a kind of global variable. Then once you logged in and the app entered the authenticated state, it would check for a saved link and execute it if present, then clear it so that it wouldnt try to open every time you log in.
That was an interesting one to try and solve. -
When a senior engineer who was essentially a DBA on his last project is made tech lead on an iOS team. He had no iOS background before this and now he thinks hes a friggin architect.1
-
one more week....one more week....one more week....
One more week until I get off this stupid ridiculous project and into something at least a bit more sane -
The time myself and a colleague got the chance to do a POC to port our iOS app into Swift using storyboards and more modern iOS features. We were able to replicate a significant portion of the existing app in a couple of days. Just wish we had gotten the chance to spend more time on it. We are currently still stuck using crapjective-c
-
Teach students the importance of clean code/architecture and testing. Even if they dont yet understand the more complex topics such as architecture, they should understand why quality is important and that software is a craft more than a science. You cant just apply principle X and insert design pattern Y and profit++. You actually have to think and constantly improve. AND TEST.
Think I would probably also cover things like build automation and continuous delivery. These are now important things for junior devs to know about going into companies. -
Probably would have been a good idea for someone to tell me that if I upload the project to my tenant too many times it can break the entire realm and bring down all the other tenants in it. Good opportunity for some team documentation 😊
-
Current status: Writing a markdown document containing all my tips and tricks for fixing bugs in our apps so we can handover to maintenance. Including files I commonly have to look in, handy keyboard shortcuts, IDE settings and other tools that have made debugging easier. I figure if these guys are having a bunch of legacy apps dumped on them when they have no iOS experience, I should help them out as much as I can before I move projects.1
-
Heres a rant you dont see everyday, the lazy gits in my office who dont clean up after themselves. Go to the kitchen to make coffee only to be confronted by a mountain of dishes, the peak of which may have been level with High Hrothgar. Had to dry them and put them away before I could really even move. Like just wash something after you use it, then take the extra 20 seconds to dry it and put it away, dont just rinse it and then leave it sitting there. AAARRRGGGHHHH1
-
Honestly, nothing.
I’ve had some bad experiences in my career so far, but I wouldn’t go back and change any of it.
I believe I am the engineer I am now because of all the experiences I have had.
Embrace your bad experiences and awful projects, because you gain a greater appreciation for the right way to build things when you’ve witnessed the wrong way first hand.3 -
A comment on a handler function that simply says //WTF IS THIS?!
this might be because the last line of the function is:
return @"CHUCK TESTA";1 -
It has finally happened. I have escaped the land of bloated Objective-C and JabbaScript. This week I have started on another project, a full stack team working in Angular, Java, Hibernate, PostgreSQL. The dream has come true. Java it has been too long my friend.
-
First day of a group project and one of your group members utters the immortal phrase: "what's a get hub?"
-
Not a rejection per se, but a company I applied to just stopped emailing me after trying to arrange a day for me to come to the office and meet the team, following an informal phone interview. They dragged their heels while I was on leave and by the time they got back to me I was back at work and had limited time. They basically just ghosted me after that.
-
Mentoring someone in iOS from scratch, then teaching him how to maintain 3 different apps. He is able to maintain them without me now which is testament to how well I taught him, but it was challenging. Especially since I had to simultaneously work on other tickets and live prod issues.1
-
The codebase Im working with is like someone took 3 sets of earphones, crumpled them together in their pocket, and then threw them into a bag full of spaghetti and wasps. Too confusing to comprehend and dependencies absolutely everywhere. All I have to do is port over a relatively straightforward piece of functionality from one iOS app to another. Core Data has other plans it seems....
-
Was trying to figure out why my fix had created a performance issue in our app. Tried loads of different things. Turned out it was because I was iterating over a ~300 item array, and then iterating over another ~300 item array within that loop 😂
300 iterations * 300 = unhappy iPad2 -
I bonded a lot with a co-worker over the last several months as I had to mentor him in iOS and how to maintain our apps. We mostly bonded over how much we hate Objective-C and the management of the project. Now we are buying Christmas presents for eachother. Bad code brings people together
-
When a solution architect who has been in the company for 20 plus years turned to me and asked how to do a certain thing in Git.
;-; i am a god2 -
Uncle Bob, Martin Fowler, Kevlin Henney, Doc Norton, Allen Holub.
They have all taught me great things about software development, whether through books or superb conference talks. -
Wow. All these weekly rants work so well with my current project lol.
A 4-5 year old iOS project, written in Objective-C with some jQuery thrown in to keep things interesting. Its the kind of codebase where you look at some code and think "what the....how....you know what nevermind". Everything has CoreData mangled into it somewhere which causes all kinds of issues. got search results from a web API? better save those to CoreData. Why? Who knows...1 -
Swift can sometimes be just a bit too type safe, to the point where you have to put ! everywhere there is an optional variable to stop the compiler from complaining2
-
Complete my Clojure POC and do a knowledge sharing session in work on Functional Programming. Also get promoted to Senior Software Engineer.
-
My current side project. I’m doing a POC to upskill in functional programming. A Java/Dropwizard web service calling onto business logic written in Clojure. The bit im excited about is an HTML engine im writing in Clojure. So instead of inter-mixing raw HTML with code, my views will be written entirely in Clojure
-
Every one of our sprint "planning" meetings.
We would sit and be told to estimate a bunch of defects we had never seen before. And then we wouldnt actually decide as a team what to commit to because it was assumed that we had to deliver everything in the backlog every sprint. This is what happens when you try to apply scrum to a maintenance team. -
After reading the script for the architect scene in Matrix Reloaded I was determined to use the word 'concordantly' in a sentence. I am proud to say I have succeeded, and with reference to cloud computing no less.1
-
I remember on my first project which was Angular 1.* there was a file in the frontends repo called ShimOfShame.
The first few lines of that file was a comment apologising for its existence.
"My soul cries everytime i add a line to this file"5 -
In Vim, :x = save and quit
Never hear anyone mention this command. its the one i always use to quit Vim. Youre welcome :)3 -
mvn clean install: all tests pass
run all tests in IntelliJ: the same 6 tests fail every time
run those 6 tests in IntelliJ: they pass
-_-4 -
So remember when we said 1.1 would be the last release, and then we said that 1.2 would be the absolute last we promise this time release?
Well buckle up buckaroos because 1.3 will be the last release. -
I guess you could say that my speciality is cloud at scale. I’d say it chose me more than I chose it.
Looking back on it though, I think what I like about my speciality is the unique challenges it brings.
Every speciality has its own set of challenges, like tight resource limits in embedded, or client-server synchronisation in native/mobile.
The challenge of cloud at scale is throughput. Designing systems that can support 100K users making a bazillion requests a second, or a data pipeline firing events that you need to process in near real time without dropping a single one.
The real challenge of course is doing all this within a sensible budget. We have virtually infinite compute but we dont have infinite dollars to spend on it.
Its a fun problem to solve.3 -
Don’t commit your terraform state to github please, especially if it contains over 20 API keys for various services, and database master passwords.
Not speaking from experience of having to do some frantic rebasing of someones PR *eye twitch*6 -
Kong API Gateway in Kubernetes is a load of balls. Spent half a day trying to stabilise the deployment after I bumped its pod resource requests.1
-
Ok story number 2, this one takes place back when I was at Uni.
We had a group project where we had to make a basic website. Nothing fancy, just basic HTML/CSS/JS.
We were a group of 3, one of the guys did a fairly good job with the CSS, he made a really good looking banner/footer and a kind of ‘featured’ page which looked awesome.
But the other guy... his contribution was the ‘contact us’ page, which consisted of a totally static table with dummy info and an embedded Google map showing the location of our fake car dealership.
Meanwhile I wrote all the Javascript, complete with a fake in-memory database containing our car data for displaying on the home page. Even had basic filtering. I made sure to mention in the peer review that I felt like he could have done more. -
So 3 devs spent all of yesterday investigating a bug. Tracked it down to field validation handled by a 3rd party product. We decide the easiest fix is to remove that validation and implement it ourselves (its a really odd bug and a terrible product). Then today the tech lead comes along and says "there could be another way, hang on while i download the latest Xcode and waste half the day fighting with it when you could be fixing it". I dunno why we bother doing the work in the first place. Clearly we should just leave it to him to save the day.1
-
When I was working on my dissertation project. I was implementing a video sharing platform. Using Dropwizard for REST. I wrote the entire endpoint for uploading a video in one session. I was just taking a stab at how i thought it could work. Tested it in Postman expecting to get some kind of error.
And it worked first time. -
This was sadly recent. I have git checkout aliased to ‘gco’.
I was on a dev branch with a load of uncommitted changes, and I accidentally ran ‘gco ..’ instead of ‘cd ..’ (I use them both quite often)
That was one of my more frantic google searches.....
Thankfully I was able to get all my changes back, but only thanks to IntelliJ’s local history feature allowing me to revert each file reload from disk. -
Right now. I'm expected to train a guy in maintaining 3 different apps before the end of August. The manager wanted a complete plan for the whole process, with time estimates on everything. Then we put together a whole plan with a spreadsheet for the schedule and she wonders if we are "going overboard". If you expect this guy to be able to fix any issue by the end of this, theres no such thing as overboard. Get your head out of your ass. Meanwhile she is supposed to be finding a new project for me but I fully expect her to come back and say they need me to stay "just a bit longer". I cant wait for that meeting...
-
Spent most of this week busting my ass working on a hotfix that came out of nowhere with mega high priority. This annoys me greatly because the hotfix wasn't even fixing a bug, it was adding new functionality because certain customers were being blocked from testing without this specific feature. In my humble opinion, given that we release every weekend, hotfixes should be reserved for actual critical bugs. But anyway, as I probably could have predicted, the code got to QA and exploded. Literally nothing works.
This is what happens when you try to rush out features to satisfy customers. If you try to rush something that is late, you WILL make it later.
Meanwhile there's an issue I'm supposed to be fixing for our next release which goes out this weekend and I've had no time to even look because of this hotfix. And now it's the end of the day and I just feel worn out from stress, tomorrow will no doubt be similar.1 -
The 20 minute rule:
If you are unsure about a problem, you MUST spend 20 minutes trying to solve it yourself. If you havent solved it in those 20 minutes, you MUST ask someone for help.
Never tried this in practice but it sounds decent in theory. 2 heads are usually better than 12 -
When the client complains that there is no way to save a draft eForm to "the cloud". yes they actually put quotes around "the cloud". Our service is not cloud hosted in any shape or form, its installed directly to the clients onsite server. what cloud are they expecting us to save it to??!!2
-
Hmmm, so you’ve used the DAO pattern everywhere so you’re not coupled to a particular database, but you don’t mind having 8 lines of Hibernate annotations at the start of an entity class, and 2-3 annotations on every property.
I see... -
I was pissed off beyond all reason yesterday when I realised that the reason my code didnt work for 2 days was because i spelled eForm with an uppercase F in my data model, and a lowercase f in my object classes. There was no way for the compiler to warn me so everything compiled fine but crashed at runtime when I tried to access that property. When I saw it, my head hit the desk....
-
I ran a big long-running terraform apply and somehow thought it would still work if I locked my laptop.
When I went back the next day (I know lol) terraform was hanging, had to force stop which screwed up the remote tfstate.
Had to spend a whole day manually deleting about 70 AWS resources that terraform created but had no knowledge of because of the corrupted state.9 -
Ive fixed too many juicy bugs over the last couple of years to pick just one. So this will likely be the first of a series.
I fixed one a couple of years ago in an iOS app. There was some offline storage where records could be saved, and for security reasons they would be automatically deleted if not accessed for a certain duration.
Problem was, they never got deleted because every time the app synced with the server the timer was being reset.
Turned out the class being used to save the record in the first place, was also being used to update it on sync. And that class set the ‘lastAccessed’ property to ‘now’.
So I had to refactor the class structure so that we had 2 separate tasks as we should have in the first place, one to download the record and one to update it. -
Oh here's a good one. When the managers realised one of our apps is a giant hunk of crap that wasnt thought through at all and was lazily thrown together, and their solution is "meh let's just rewrite it in Swift on our new platform. And those other guys can maintain the old one and continue to do hotfixes for it until we are done".
I've been telling them for the past year that its the worst codebase I have ever seen and the lack of tests is disgusting and not something we should dare to release to paying customers (especially when those customers work in healthcare!!!). The best part was when one of them promised we would all be working on the new shiny platform by Christmas. That was last year. And I'm currently the poor bugger doing the legacy maintenance and in the process of trying to get moved to a new project. So much for managers promises amirite... -
Not a fight per se, but I once had a debate with a tech lead who thought you could set a variable in the ‘then’ clause of a Javascript promise and just use said variable after the promise declaration and assume it would be populated.
“no.... thats not how asynchronous code works.”1 -
i once explored our codebase and copied every line of commented out code into a text file. that file is over 350 lines long.1
-
Wondering about how I should continue with my blog.
One the one hand, Ive always liked the video format Uncle Bob uses, and I think Id actually find it easier to talk about my ideas rather than write about it.
On the other hand, I know a lot of people prefer a written article they can read at their own pace.
Thinking I might try a hybrid of some sort, like record a vlog and then write the article afterwards, using the video for reference since I already got the words out.2 -
Sharing the repo for a POC im working on right now for anyone interested in Clojure. Im building a web app which serves static HTML generated by a custom engine. You can literally write HTML in Clojure. Its still very much a work in progress.
https://github.com/LikeLikeAteMyShi...2 -
On a past project, every sprint planning was the most unproductive meeting. We were expected to fix all open bugs each sprint, so there was literally nothing to plan. How do you prioritize when the goal is “do everything”? 😂
-
We are currently debugging the most ridiculous issue. We have an eForm embedded in a native iOS app, and in the iOS 11 beta, every time we tap a dropdown list it takes 4 taps to dismiss it because it keeps reappearing. The final time it reappears with no data in it. The dropdowns are generated by Safari. We have replaced the Safari native dropdowns with a custom view and now the issue doesn't occur. What the hell Apple? What change did you make to Safari to cause such a random issue in a web view?
-
When you are virtually done with a story and then merge trunk and discover that something fundamental has changed so you need to basically rewrite half of it. You spend ~2 hours refactoring about 8 classes and their tests before realising that this way wont work either. So you have to rewrite it again.....
-
My project is a cloud based automated testing product. My current story is to extend a module to support multiple of a particular testcase type in one test run instead of just one. This has uncovered a rats nest of complexity because everything is designed with the assumption that there will only ever be one of these testcases.
Refactoring about 5 different classes just to get into a state where i can pass a list of testcases into a service instead of just one. Wrecking my head... -
Agreeing to do iOS dev. I feel like my previous project has stolen 2 valuable years of my career from me.
-
IntelliJ refactoring tools because......because.
Least favourite dev tool: Xcode refactoring tools because they still dont support Apples own language. -
So the people in charge of staff allocation came into our room the other day and straight up stole most of the front line support team for iOS. The team now has one member, and the manager of the team found out about it 15 minutes before it happened. This was done to fill requirements on other projects that they are struggling to get staff for.
Meanwhile I've been sitting here for months wanting to get out of this project and they cant find anything else for me. All because I wont travel 4 days a week... -
My most recent workaround occurred last week.
We have a demo very soon and I had to change our iOS app to use a new Web API endpoint for uploading content.
Long story short: The existing code is so awful and rigid and dependant on Core Data that I ended up having to completely bypass the service layer of the app and implement the new endpoint as a raw HTTP request. Its gonna take a long time to refactor the existing service layer. All because the new endpoint has a different content type. -
What baffles me is how despite being on version 3 of Swift, Apple still havent updated Xcodes refactoring tools to support it. All I want to do is rename a variable or function but oh no. "Xcode can only refactor C or Objective-C code". Yet they are plowing on with new features in other areas like the interface builder but completely ignoring the tools that make IDEs useful.
-
Its happening right now. Trying to get a project in my company when I am not willing to travel every week. Is it too much to ask for a project based in my home office? Especially with it being the company headquarters.
-
Not being able to do refactoring on an app that contains 900+ line view controllers because "its not safe to do refactoring before the demo at the end of the month"
F.M.L -
The CloudWatch API is an awkward piece of shit.
No convenient way to just ask for the latest value of a metric. Gotta supply a time window and hope metrics were actually reported within that window.
Oh and make sure your timestamps are in ISO 8601 or the request will fail (but the SDK does zero validation so a unit test won’t catch it of course).
Oh and you have to assign an arbitrary ID to each metric query in your request even if you don’t care about mapping the results back to the queries. And the regex for the ID is just fussy enough to be mildly irritating.1 -
So we have spent the last ~3 weeks creating workarounds for bugs that were found during testing against iOS 11 beta 1.
Today I had to go in and undo all the merges because as of beta 7 Apple have fixed the issues we were seeing.
Weeks of effort wasted that could have been spent upskilling or fixing build issues with an app that will have a release due in the coming weeks and we currently know little about.3 -
Management wanted all features finished by close of business yesterday to start testing before a demo next week.
I started work at 8am to get my task out of the way early. Unfortunately there was another persons task that mine was dependant on. I kept telling people it needed to be merged so i could integrate it with my changes.
It was merged at 5pm.
I was still fixing merge conflicts at 8pm. 😑1 -
Currently in our 4th cycle of manual regression testing for a release and still finding bugs. Automated tests? What are those? That sounds an awful lot like it would take time to implement. Time that could be spent fixing the bugs and getting the release out the door.
When release dates take priority over quality.... -
Why does it have to be so difficult to get unit tests to run? Spent about an hour yesterday trying to get a single test class to run and it kept complaining about a compiler error in a completely different module. Went to the file and there was no error. WTF?!
In the end, checking the “delegate build actions to gradle” box made it go away. why..... -
Our OOP lecturer spent the first 6 weeks of the module covering basic programming concepts we had already covered in 2 previous Java modules. Halfway through the module before he even mentioned objects. Biggest waste of time ever.
-
I was just playing with Eventbridge for research for a potential project, and I wanted to test setting up a Cloudwatch Logs target. I go to set up my target, click save, and am presented with "Resource limit exceeded".
After some digging in my browser's network inspector, and some googling, I discover that the account has reached its quota of Cloudwatch Logs resource policies, which can't even be viewed in the console, only the API and CLI.
Is network debugging and StackOverflow really the intended method of troubleshooting this issue? What the hell was I supposed to do with "Resource limit exceeded" and no further info? -
Probably either writing the occasional lazy commit message, or skipping a few testing scenarios when testing dev work locally. Although to be honest, its rarely out of laziness that I do these things. Its often trying to urgently finish something for a weekend release/hotfix.
-
When our app encounters an error, it shows an alert with an option to copy the error details to the clipboard, that includes the full stack trace, broadcasting to the world that we are coding in C#. Also, our page URLs show .aspx at the end, so anyone using it can see details of our implementation. Not exactly world-stopping since the desktop portal is only available on customer servers and the ipad app requires username/password AND pin authentication. But still....
-
Just use a promise that sets this variable, and then you can use the variable as long as its after the promise declaration.
No, just no. Thats not now asynchronous code works.2 -
about 12 hours, from 8am - 8pm
We were working on an iOS build for a demo and were told that day was the deadline for having code merged. I got kinda shafted cos I needed someone elses code merged before I could finish mine. It got merged at like 5pm and then everyone went home leaving me with a ton of merge conflicts to deal with. I gave up at 8pm and went home. Found out the next day that the deadline was horse crap anyway....1 -
Id probably still end up doing maintenance on our iPad app. No mere machine could ever comprehend that codebase and its *ahem* quirks....
-
The first code i ever wrote was a case statement in Visual Basic. I didnt really know what I was doing, just looking at the code that was already there and figuring out how to extend it to include more cases. I was about 17 at that point. I didnt properly start learning until I did Java in my first year of University.
-
Did an interesting experiment a few days ago, I counted the lines of code in my dissertation project. My project consists of a cloud hosted web service which allows video streaming, search and upload, as well as an iOS frontend which allows users to record their own video and upload it. The entire project spans about 2,400 lines of code. Then I looked in my work iOS project and saw a JavaScript file for manipulating form elements which spans about 2,100 lines of code. The whole project is about 100,000 lines of code and doesnt do anything special, it just calls a web API and saves/displays results mainly.
The effect of “Enterprise Architecture”1 -
Feeling a strong temptation to go in and just do some random refactoring on my work project. It has massive view controllers and 30% test coverage. I dunno about anyone else but in my book thats not good enough to release to paying customers.
-
When I was doing my onboarding training for work, we had to do a group exercise. We had to build a small app using Spring MVC connecting to a MySQL database.
We had a team of 4 people, and I think I was the only person who wrote a single line of Java the whole day.
One person decided that she would build the DB schema, so I thought ok fair enough I will make a start on hooking up Spring. But the other 2 decided that they would “focus on making it look pretty”.
Several hours later what they had basically managed to do was import Bootstrap.
We ended up with only one screen to demo while other groups had 3-4.
Thats not the only story I have where Im in a group project and basically end up writing all the code. I’ll post the other one later. -
Id say my least favourite part of my workflow right now is the selenium automation I have to run locally for dev testing.
The stuff I have to run for my current story takes about an hour to reach the point I am interested in. Then if it throws an exception or doesnt work properly, I have to make my fix and run it all again.
And theres not much else I can do while its running either, if I make any other code changes Gradle will recompile everything. So I basically have to sit and watch it, or go watch a clean coders video in another window while it runs. -
Today I escape from the clutches of the legacy iOS project ive been stuck in for about a year and a half.
Starting on a new team, totally different stack (TypeScript/Angular).
Its bad that what makes me happiest is that we have unit tests, something thats been missing from my life for so long now. I might actually get to do TDD now.
Life is good. -
Dunno if anyone else has ever used it or if most people just the browser, but the Twitch smart TV app is hot garbage. It takes several seconds to process every remote control input, even just navigating the menus.
It’s the only app on my TV that performs so badly. YouTube/Netflix/Prime all work perfectly, but for some reason Twitch acts like its running on a Windows Vista toaster1 -
My family mostly get it because my uncle is a solution architect. They probably still dont realise just how complex it can be though.
-
I discovered you could edit the Visual Basic code in MS Access. I would read the code that was in there and figure out how i could extend it to do what i want. first code i ever wrote was a switch statement to control whether a set of buttons were enabled based on a dropdown value.
-
currently setting up a repo for a git release branching demo because despite the fact we have a model in place, it was completely ignored when it came to release time with changes being pushed straight to the main develop branch *sighs*
-
Amazon what the hell.
You provide a cool RDS proxy which can be used to manage connection pooling which is especially useful for concurrent Lambda invocations.
But if you have an Aurora cluster and a read-intensive workload it is basically useless because it only sends traffic to the writer instance.
WTF?! Literally the one use case we have is the one thing it doesn’t do. AAARRRGGHHHH2 -
possibly my first !rant
Any Clojure programmers around? I started learning it seriously the other day and I have to say Im hooked. Im pretty new to functional programming and so far Im really liking it. It amazes me how much functionality you can produce from 2-3 nested function calls.2 -
Just a quick rant to express my distaste that the AWS ALB ingress controller for Kubernetes doesnt expose any useful metrics. I just wanna know the target response latency is that too much to ask?1
-
Holy crap, Meta Developer Connect keynote. Amazing innovation. This is what Apple **used to be**
Granted, the hardware is not as elegant as Apple but the cost is 1/10 and the capabilities are close, same, or exceed (Llama) what Apple is offering.
Now here is the gut punch, they figured out that the mobile app build system needs to build AR/VR/MR apps. That was Apple's edge.
As a developer, I am not enamored with Swift and it is pretty clear that if I have to change and use a niche language like Swift or change and do dev on Android, to target new Meta hardware and AI... well... lets just say I think Swift is crap from a language standpoint and I suspect it is the reason Apple's hardware uses so much more memory, battery and storage than it should. At the same time Meta's Orion runs on a god damn battery in the early piece of glasses. My AVP's have a huge brick.
#define kApple kGigaBloat
If I were Apple I would be shitting my pants watching this Meta presentation.6 -
Decided to start a software engineering blog after several years of procrastinating.
likelikeatemyshield.com
Just published my first post. Feedback is welcome :)7 -
Any iOS devs out there know of a good framework for recording and playing back MP3 audio? (must not be GPL dependant)
-
RDS Proxy is quickly becoming my least favourite AWS offering.
I ranted about it a while back because I had to abandon it for a project because it doesn’t support clusters very well (it only proxys to the primary node).
Well I tried to use it again for a different project with only a single RW instance. Surely it will be ideal?
Nope. It doesn’t support Postgres 13. Only goes up to 12.
What the hell Amazon?
pgbouncer it is I guess. -
mkdir ChuckTesta or MyTestProject or something similar.
I always like to use a sandbox beforehand to experiment with technologies and get familiar with them before committing to an actual project repo. -
On my last project we needed to have about 5 or 6 different webservices running and 2 ssh tunnels open to run the app locally. So i wrote a simple script to automatically split my terminal window into seperate panes and cd into each repo. I also had a script to go into every repo and git pull. Really simple scripts, but very useful.
-
Definitely my current manager. He is very supportive of our career goals and has us choose both goals related to team performance and personal progression. He supports us having time at the end of the sprint to innovate and research things to bring back into the product. He gives constructive feedback and doesnt breathe down peoples necks.
-
TL;DR I have to bump a Redis cluster from t3.medium to m6g.large just to get enough network bandwidth even though I have no need of the extra memory.
Debugged an interesting issue today.
I am adding Elasticache to a project to reduce strain on the single node postgres DB.
Deployed a Redis replication group with 2 shards, with multi-AZ replication for resilience.
Everything was going well. We arent caching that much atm so was barely using 100Mb of memory.
Suddenly, when our US region comes online, latency skyrockets and the logs are full of Jedis timeout errors.
Still no issue with memory or node CPU.
The cause? Arbitrary network bandwidth throttling by AWS. The app currently processes about 3,000 requests per second so we were exceeding Amazons random ass allowances which arent documented anywhere.1 -
HP Process Automation. Hideous abortion of a product for eForms and workflow. HP took it on when they acquired Autonomy the original developers. And Autonomy are now getting in trouble for possibly lying about their success figures before being acquired.
-
Most of my previous experience is in Java but my current area of focus is iOS apps for healthcare. Patient casenote management system and an electronic form solution for paramedics in ambulances. Im currently using both Java and Swift for my dissertation, an iOS app with a Java backend using Dropwizard for REST. iOS can be good but Im eager to get away from Objective-C. I wouldnt mind going back to java full time or even maybe C# since they are basically the same thing.
-
Had a release retro today.
We had the usual Trello board with columns for "what went well, what was bad, what can we improve" etc.
columns for the bad and the improvements had 10-20 cards each.
column for what went well was empty.... -
Im not asking for much really, I just think life would be easier if our environments were named something like integration, test, preprod etc instead of just numbers.
But no apparently we need to have a meeting to discuss the approach.
FML all i want to do is rename some environments, not re-structure the whole deployment process. -__-1 -
So my gaming card start to be Old.
Radeon 6800 XT.
But it feets perfectly them Llama 3.1 8B model. Like like a glove.
I have a linux server whicj now has nvidia card ( GTX 1070 or somethiong. Old). I'm scared that if I change the card server will not even boot lol.9 -
Blog: Never ever try to turn a rushed demo build into a live product.
https://likelikeatemyshield.com/pos... -
since my favourite phone automation app llama is no more i discovered automate. you build your 'scripts' with functional blocks. it's quite fun but debugging is messy.
mildly interesting: implementing a guided setup instead of defining the values directly leaves me with 77% setup and ui vs 23% actual task.1 -
How is the weekend going so far?
I was just wondering if anyone had any prior experience in Llama2 - https://ai.meta.com/llama/
Previous Week : https://devrant.com/rants/87581625 -
Getting started with my dissertation project for my degree. Using Java and Dropwizard for a backend service with a nice iOS client in Swift. Will make such a refreshing change from hacking crappy eForms together with jQuery and an Objective-C native bridge.1
-
Meta Platforms has launched Llama 3, their newest large language model (LLM), alongside a brand-new stand-alone AI chatbot. Llama 3 comprises two versions, one with 8 billion and the other with 70 billion parameters. Furthermore, Meta is currently developing an even more advanced 400 billion parameter model, though its release date remains unannounced.
Ragavan Srinivasan, Meta’s VP of Product, expressed enthusiasm about the model’s capabilities in a recent interview, stating, “From a performance perspective, it is really off the charts in terms of benchmarking capabilities.” He specifically referred to the ongoing development of the 400 billion parameter version.
https://freeaiall.com/ai-news/...6