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 - "code completion"
-
Rant
Why do shithead clients think they can walk away without paying us once we deliver the project !!!
So, here goes nothing..
Got an online gig to create a dashboard.
Since i had to deal with a lot of shitheads in the past, I told them my rules were simple, 20% advance, 40% on 50% completion and 40% after i complete and send them proof of completion. Once i receive the payment in full, only then i will hand over the code.
They said it was fine and paid 20%.
I got the next 40% also without any effort but they said they also needed me to deploy the code on their AWS account, and they were ready to pay extra for it, so i agreed.
I complete the whole project and sent them the screenshots, asking for the remaining 40% payment. They rejected the request saying my work was not complete as i had not deployed on AWS yet. After a couple of more such exchanges, i agreed to setup their account before the payment. But i could sense something fishy, so i did everything on their AWS account, except registered the domain from my account and set up everything. Once i inform them that its done and ask for the remaining payment.
The reply i got was LOL.
I tried to login to the AWS account, only to find password had been changed.
Database access revoked.
Even my admin account on the app had been removed. Thinking that they have been successful, they even published ads about thier NEW dashboard to their customers.
I sent them a final mail with warning ending with a middle finger emoji. 24 hours later,
I created a github page with the text " This website has been siezed by the government as the owner is found accused in fraud" and redirected the domain to it. Got an apology mail from them 2 hours later begging me to restore the website. i asked for an extra 10% penalty apart from the remaining payment. After i got paid, set an auto-reply of LOL to thier emails and chilled for a week before restoring the domain back to normal.
Dev : 1
Shithead Client: 024 -
Fuxk yeah! My code works! It's 2AM, I'm happy and there's no one around, so I wrote a poem :-P
What was once impossible,
Is now close to completion,
Thanks to my debug statements,
Which now await their deletion.28 -
!Story
The day I became the 400 pound Chinese hacker 4chan.
I built this front-end solution for a client (but behind a back end login), and we get on the line with some fancy European team who will handle penetration testing for the client as we are nearing dev completion.
They seem... pretty confident in themselves, and pretty disrespectful to the LAMP environment, and make the client worry even though it's behind a login the project is still vulnerable. No idea why the client hired an uppity .NET house to test a LAMP app. I don't even bother asking these questions anymore...
And worse, they insist we allow them to scrape for vulnerabilities BEHIND the server side login. As though a user was already compromised.
So, I know I want to fuck with them. and I sit around and smoke some weed and just let this issue marinate around in my crazy ass brain for a bit. Trying to think of a way I can obfuscate all this localStorage and what it's doing... And then, inspiration strikes.
I know this library for compressing JSON. I only use it when localStorage space gets tight, and this project was only storing a few k to localStorage... so compression was unnecessary, but what the hell. Problem: it would be obvious from exposed source that it was being called.
After a little more thought, I decide to override the addslashes and stripslashes functions and to do the compression/decompression from within those overrides.
I then minify the whole thing and stash it in the minified jquery file.
So, what LOOKS from exposed client side code to be a simple addslashes ends up compressing the JSON before putting it in localStorage. And what LOOKS like a stripslashes decompresses.
Now, the compression does some bit math that frankly is over my head, but the practical result is if you output the data compressed, it looks like mandarin and random characters. As a result, everything that can be seen in dev tools looks like the image.
So we GIVE the penetration team login credentials... they log in and start trying to crack it.
I sit and wait. Grinning as fuck.
Not even an hour goes by and they call an emergency meeting. I can barely contain laughter.
We get my PM and me and then several guys from their team on the line. They share screen and show the dev tools.
"We think you may have been compromised by a Chinese hacker!"
I mute and then die my ass off. Holy shit this is maybe the best thing I've ever done.
My PM, who has seen me use the JSON compression technique before and knows exactly whats up starts telling them about it so they don't freak out. And finally I unmute and manage a, "Guys... I'm standing right here." between gasped laughter.
If only it was more common to use video in these calls because I WISH I could have seen their faces.
Anyway, they calmed their attitude down, we told them how to decompress the localStorage, and then they still didn't find jack shit because i'm a fucking badass and even after we gave them keys to the login and gave them keys to my secret localStorage it only led to AWS Cognito protected async calls.
Anyway, that's the story of how I became a "Chinese hacker" and made a room full of penetration testers look like morons with a (reasonably) simple JS trick.9 -
Dear Programming Languages,
if you only support weakly typed constructs, I wish you a special place in hell.
Dear Fellow Developers,
if you use a language that allows strong typing with weak typing, the next time we will meet after I have to fix a shitty bug due to that I will play piano on your teeth, and a melody you won't like.
And yes, that means PHP as well. PHP allows for strict types since php7.
So. Just. Fucking. Use. It.
There are no excuses!
I don't care if you don't see the benefit or find it "annoying" and tedious to write it out. Use a decent editor and it will be mostly code-completion anyway.
I just don't want to fix your fuckups. And if your fuckup is due to a typing issue that "slipped" by, you are part of the problem.
If you write software, it should be clear what type each and every variable or object has.
There are no excuses but your laziness.
If you want to be ambiguous, try poetry.23 -
Most satisfying bug I've fixed?
Fixed a n+1 issue with a web service retrieving price information. I initially wrote the service, but it was taken over by a couple of 'world class' monday-morning-quarterbacks.
The "Worst code I've ever seen" ... "I can't believe this crap compiles" types that never met anyone else's code that was any good.
After a few months (yes months) and heavy refactoring, the service still returned price information for a product. Pass the service a list of product numbers, service returns the price, availability, etc, that was it.
After a very proud and boisterous deployment, over the next couple of days the service seemed to get slower and slower. DBAs started to complain that the service was causing unusually high wait times, locks, and CPU spikes causing problems for other applications. The usual finger pointing began which ended up with "If PaperTrail had written the service 'correctly' the first time, we wouldn't be in this mess."
Only mattered that I initially wrote the service and no one seemed to care about the two geniuses that took months changing the code.
The dev manager was able to justify a complete re-write of the service using 'proper development methodologies' including budgeting devs, DBAs, server resources, etc..etc. with a projected year+ completion date.
My 'BS Meter' goes off, so I open up the code, maybe 5 minutes...tada...found it. The corresponding stored procedure accepts a list of product numbers and a price type (1=Retail, 2=Dealer, and so on). If you pass 0, the stored procedure returns all the prices.
Code basically looked like this..
public List<Prices> GetPrices(List<Product> products, int priceTypeId)
{
foreach (var item in products)
{
List<int> productIdsParameter = new List<int>();
productIdsParameter.Add(item.ProductID);
List<Price> prices = dataProvider.GetPrices(productIdsParameter, 0);
foreach (var price in prices)
{
if (price.PriceTypeID == priceTypeId)
{
prices = dataProvider.GetPrices(productIdsParameter, price.PriceTypeID);
return prices;
}
* Omitting the other 'WTF?' code to handle the zero price type
}
}
}
I removed the double stored procedure call, updated the method signature to only accept the list of product numbers (which it was before the 'major refactor'), deployed the service to dev (the issue was reproducible in our dev environment) and had the DBA monitor.
The two devs and the manager are grumbling and mocking the changes (they never looked, they assumed I wrote some threading monstrosity) then the DBA walks up..
DBA: "We're good. You hit the database pretty hard and the CPU never moved. Execution plans, locks, all good to go."
<dba starts to walk away>
DevMgr: "No fucking way! Putting that code in a thread wouldn't have fix it"
Me: "Um, I didn't use threads"
Dev1: "You had to. There was no way you made that code run faster without threads"
Dev2: "It runs fine in dev, but there is no way that level of threading will work in production with thousands of requests. I've got unit tests that prove our design is perfect."
Me: "I looked at what the code was doing and removed what it shouldn't be doing. That's it."
DBA: "If the database is happy with the changes, I'm happy. Good job. Get that service deployed tomorrow and lets move on"
Me: "You'll remove the recommendation for a complete re-write of the service?"
DevMgr: "Hell no! The re-write moves forward. This, whatever you did, changes nothing."
DBA: "Hell yes it does!! I've got too much on my plate already to play babysitter with you assholes. I'm done and no one on my team will waste any more time on this. Am I clear?"
Seeing the dev manager face turn red and the other two devs look completely dumbfounded was the most satisfying bug I've fixed.5 -
App nearing completion. Code tested, everything's working fine. Ready for release.
The client just calls me and tells me that they have decided to turn the app into two separate ones. Should not be a problem, you developers must have some tricks for that, according to the client. Of course, the release date remains unchanged.
Clients!, finally understand that there's no secret button for turning an app into two separate ones.5 -
Yesterday, after six months of work, a small side project ran to completion, a search engine written in django.
It's a thing of beauty, which took many trials, including discovering utf8 in mysql isn't the full utf8 spec, dealing with files that have wrong date metadata, or even none at all, a new it backup policy that stores backups along side real data.
Nevertheless, it is a pretty complete product. Beaming with pride I began to get myself a drink, and collapsed onto the floor, this caused me to accidentally hibernate my computer, which interrupted the network connection, which in turn caused an OSError exception in one of my threads, which caused a critical part of code not to run, which left a thread suspended, doing nothing.
From the floor I looked at my error and realised my hubris and meditated on my assumptions that in theory nothing should interrupt a specific block of code, but in reality something might, like someone falling over...7 -
Developers created IDEs with intelligent code completion and languages provide users with an annotation syntax to document their methods.
And then there is Python, nuking all the efforts of our ancestors by dynamic typing. And they are smug enough to call this laziness duck typing. "If it squawks like a duck, swims like a duck, walks like a duck its a duck".
Shit no, it ain't a duck because a fucking goose does all the same but is a mean bastard compared to a duck. You might pet a duck but only the craziest will attempt to pet a goose.
Fuck python and undocumented methods in particular!5 -
I spent over a decade of my life working with Ada. I've spent almost the same amount of time working with C# and VisualBasic. And I've spent almost six years now with F#. I consider all of these great languages for various reasons, each with their respective problems. As these are mostly mature languages some of the problems were only knowable in hindsight. But Ada was always sort of my baby. I don't really mind extra typing, as at least what I do, reading happens much more than writing, and tab completion has most things only being 3-4 key presses irl. But I'm no zealot, and have been fully aware of deficiencies in the language, just like any language would have. I've had similar feelings of all languages I've worked with, and the .NET/C#/VB/F# guys are excellent with taking suggestions and feedback.
This is not the case with Ada, and this will be my story, since I've no longer decided anonymity is necessary.
First few years learning the language I did what anyone does: you write shit that already exists just to learn. Kept refining it over time, sometimes needing to do entire rewrites. Eventually a few of these wound up being good. Not novel, just good stuff that already existed. Outperforming the leading Ada company in benchmarks kind of good. At the time I was really gung-ho about the language. Would have loved to make Ada development a career. Eventually build up enough of this, as well as a working, but very bad performing compiler, and decide to try to apply for a job at this company. I wasn't worried about the quality of the compiler, as anyone who's seriously worked with Ada knows, the language is remarkably complex with some bizarre rules in dark corners, so a compiler which passes the standards test indicates a very intimate knowledge of the language few can attest to.
I get told they didn't think I would be a good fit for the job, and that they didn't think I should be doing development.
A few months of rapid cycling between hatred and self loathing passes, and then a suicide attempt. I've got past problems which contributed more so than the actual job denial.
So I get better and start working even harder on my shit. Get the performance of my stuff up even better. Don't bother even trying to fix up the compiler, and start researching about text parsing. Do tons of small programs to test things, and wind up learning a lot. I'm starting to notice a lot of languages really surpassing Ada in _quality of life_, with things package managers and repositories for those, as well as social media presence and exhaustive tutorials from the community.
At the time I didn't really get programming language specific package managers (I do now), but I still brought this up to the community. Don't do that. They don't like new ideas. Odd for a language which at the time was so innovative. But social media presence did eventually happen with a Twitter account that is most definitely run by a specific Ada company masquerading as a general Ada advocate. It did occasionally draw interest to neat things from the community, so that's cool.
Since I've been using both VisualStudio and an IDE this Ada company provides, I saw a very jarring quality difference over the years. I'm not gonna say VS is perfect, it's not. But this piece of shit made VS look like a polished streamlined bug free race car designed by expert UX people. It. Was. Bad. Very little features, with little added over the years. Fast forwarding several years, I can find about ten bugs in five minutes each update, and I can't find bugs in the video games I play, so I'm no bug finder. It's just that bad. This from a company providing software for "highly reliable systems"...
So I decide to take a crack at writing an editor extension for VS Code, which I had never even used. It actually went well, and as of this writing it has over 24k downloads, and I've received some great comments from some people over on Twitter about how detailed the highlighting is. Plenty of bespoke advertising the entire time in development, of course.
Never a single word from the community about me.
Around this time I had also started a YouTube channel to provide educational content about the language, since there's very little, except large textbooks which aren't right for everyone. Now keep in mind I had written a compiler which at least was passing the language standards test, so I definitely know the language very well. This is a standard the programmers at these companies will admit very few people understand. YouTube channel met with hate from the community, and overwhelming thanks from newcomers. Never a shout out from the "community" Twitter account. The hate went as far as things like how nothing I say should be listened to because I'm a degenerate Irishman, to things like how the world would have been a better place if I was successful in killing myself (I don't talk much about my mental illness, but it shows up).
I'm strictly a .NET developer now. All code ported.5 -
PM: You can cut corners it it's necessary.
Me: Thanks for giving me permission to move faster.
*But as you know, I wouldn't be in this position if you hadn't made us agree to such an unrealistic deadline.*
..
...
*after completion*
.
.
PM: There are bugs in the code.
ME: There are bugs, because you asked me to cut corners. *fu#k you* *wtf moment*4 -
I noticed my co-worker has been using Atom editor for everything (we do Java/Scala). I asked, "So are you using the new language servers? How are you doing code completion?"
"I don't use code completion. I turn it off."
O_o "Do you not use screwdrivers? Like do you tighten screws in by hand?"
I've know people who code Java/Scala in emacs and vim, but they still had completion, type-lookups, etc. They was a higher learning curve in knowing all the keyboard commands, but all the tools were still there. I don't get people who refuse to use tools. It's reflected in this guys works too when looking at the code reviews.
When all you have is a hammer, everything is going to look like a nail.4 -
Visual Studio Code - ever since the beta.
VS Code is... amazing. There's no words to describe it. It's just amazing.
VSCode since the inception was just this tiny version of Visual Studio that you can transform into your own little IDE. That was the whole point of VSCode - it was a extensible editor. For many years I've used it and never looked back, I still use VS from time to time but Microsoft really nailed this one.
Most of the editors I knew lacked good auto completion and good linting, which IntelliSense was good, and it became even greater once support for languages started piling up. Themes also were top notch, I still remember you can't theme the entire window just the editor, nowadays you can.
And last but not the least is the Remote integration. I didn't need to leave my OS just to do work from another, I just need a SSH agent and it works. It's very straightforward and easy.
Overall Visual Studio Code is a editor that is more about choice and your own style - which makes it unique from IDEs, its fresh and its definitely earned its place as one of the most sought after tools in development.3 -
I cannot believe its 2020 and I'm reading: Customize font size for navigation items & tabs as "New Features!"
From Apple:
With an all-new design that looks great on macOS Big Sur, Xcode 12 has customizable font sizes for the navigator, streamlined code completion, and new document tabs5 -
Back in college, we were taught to code in Java, nothing much more complicated than Hello worlds and non persistent CRUDs.
Somehow I eventually ended up discovering the auto completion function, which later I learned Emmet.
I had only found out how it worked with css classes, html elements and their IDs, but recently I started to wonder whether it could work also with the type attribute, so I went ahead and googled it.
I found this https://docs.emmet.io/cheat-sheet/
I was like:2 -
Just before the holidays started I was given a task by my manager, $M.
$M: "Kyntak, while I'm away I want you to look into this new way of starting $important_service"
$me: "Okay $M, is there a bug for this that explains what is needed?"
$M: "Yes, you should be able to find it"
Goes looking, finds someone else working on something connected but not the same, finds the code change that makes this available... It doesn't explain how to use it, when the async events fire or (well, to a junior engineer like me) really anything.
Message the other (very experienced) eng.
$me: "Hey I've been asked to make $important_service use the new starting API, can you tell me about?"
$eng: "Yup, here's a bug for that and I'm happy to answer any questions you have" *goes offline*
I read the bug. It doesn't mention the original problem I was trying to solve, it doesn't even mention $important_service. There's no design doc mentioned. The bug has a higher priority assigned than any of my other work. It has an expected completion date only days after I get back from holidays (which $M told me to take).
I try to contact $M and $eng. They've already left for holidays.
"Hmm"
Implements as much of the fairly inevitable boilerplate that I can infer from the bugs and surrounding code.
"Hmm"
So, I'm into my second week of holiday and am starting to think about the potential shit storm I may return to.
I hope the bug's priority was wrong.4 -
I just finished designing an entire asset management pipeline and christ on a fucking pogo stick, if it isn't convoluted.
Theres a lot of game engines out there, but all of them do it a little different. They all tackle a slightly different problem, without even realizing it.
1. asset management
2. asset change management
3. behavior change management
4. data management
5. combinatorial design management.
6. Combinatorial Behavior management
7. Feature completion
ASSET MANAGEMENT is exactly what it says on the tin.
ASSET CHANGE management can be thought of handling the import, export, formatting, platform specific packing, and versioning (including forking) of an asset.
BEHAVIORAL CHANGE management is a subset of asset management, because code is a subset of assets (depending on how you define 'assets'). The oldest known example of this is commenting and uncommenting code.
Or worse, printf debugging.
This can be file versioning, basic undo services, graph management of forks and mergers, toggles for features or modules, etc.
DATA management is about anything that doesn't fall into the other categories, everything from mission text to npc dialogues, quests, location names, item stats, the works. Anything you'd be tempted to put in a database, falls under this category. Haven't yet seen many engines offer this as an explicit built in tool as of yet, because the other problems are non-trivial as is, so this is a bit of low hanging fruit that gets handled by external tools, or loaded from formats as simple as json.
COMBINATORIAL DESIGN management is the idea of prefabbing, blueprints of broader object design using nested prototypes of existing game objects, to create more complex, reusable set pieces. Unity did this well. GM does this in part.
COMBINATORIAL BEHAVIOR management is entity-component systems, plus tooling to make it easy to add, remove, and configure components and their values on entity blueprints, also not uncommon. Both stencyl and unity do this. GM has a precursor to this in the form of configurable fields, but these fields are not based on component scripts attached to objects.
FEATURE COMPLETION is that set of gameplay mechanics or styles of design that an engine naturally makes easier to include or build in a game.
I don't think I'm aiming for all that, but I think at minimum a good engine has to do asset management, behavioral change management, prefabs, and entity-component systems with management tools for that. And ideally, asset change management.8 -
We had 1 Android app to be developed for charity org for data collection for ground water level increase competition among villages.
Initial scope was very small & feasible. Around 10 forms with 3-4 fields in each to be developed in 2 months (1 for dev, 1 for testing). There was a prod version which had similar forms with no validations etc.
We had received prod source, which was total junk. No KT was given.
In existing source, spelling mistakes were there in the era of spell/grammar checking tools.
There were rural names of classes, variables in regional language in English letters & that regional language is somewhat known to some developers but even they don't know those rural names' meanings. This costed us at great length in visualizing data flow between entities. Even Google translate wasn't reliable for this language due to low Internet penetration in that language region.
OOP wasn't followed, so at 10 places exact same code exists. If error or bug needed to be fixed it had to be fixed at all those 10 places.
No foreign key relationships was there in database while actually there were logical relations among different entites.
No created, updated timestamps in records at app side to have audit trail.
Small part of that existing source was quite good with Fragments, MVP etc. while other part was ancient Activities with business logic.
We have to support Android 4.0 to 9.0 of many screen sizes & resolutions without any target devices issued to us by the client.
Then Corona lockdown happened & during that suddenly client side professionals became over efficient.
Client started adding requirements like very complex validation which has inter-entity dependencies. Then they started filing bugs from prod version on us.
Let's come to the developers' expertise,
2 developers with 8+ years of experience & they're not knowing how to resolve conflicts in git merge which were created by them only due to not following git best practice for coding like only appending new implementation in existing classes for easy auto merge etc.
They are thinking like handling click events is called development.
They don't want to think about OOP, well structured code. They don't want to re-use code mostly & when they copy paste, they think it's called re-use.
They wanted to follow old school Java development in memory scarce Android app life cycle in end user phone. They don't understand memory leaks, even though it's pin pointed by memory leak detection tools (Leak canary etc.).
Now 3.5 months are over, that competition was called off for this year due to Corona & development is still ongoing.
We are nowhere close to completion even for initial internal QA round.
On top of this, nothing is billable so it's like financial suicide.
Remember whatever said here is only 10% of what is faced.
- An Engineering lead in a half billion dollar company.4 -
My biggest problem with Visual Studio Code is that every fucking piece of shit dev thinks it's their duty to introduce it to me. STOP. Just stop this shit, alright? Wanna use vscode? Fine, just don't tell me it's the best tool and I MUST use it instead of the tools I'm used to. I'm tired of this bullshit.
Every new project, every new team. Starting from js/java/.net monke and ending with PMs, I must hear this bullshit about god blessed IDE that I must use, because "why you need intellij/webstorm/rider? just install vscode and some plugins. we all use it in our project and it's ok".
FUCK YOU! Refactoring is not just renaming variables and extracting blocks of code into functions. If you want terminal integrated into your text editor with highlighting and LSP support, so be it. I want an IDE with rich refactoring tools, code analysis and good completion, database viewing/modeling support, good build tools support, good UI for git and git-diff, good test and code coverage support. I don't want your semi-IDE, bloated with hundreds of bugged third-party plugins, which I must spend a week on to configure and merry with each other before using.
JUST STOP this crap and let people use the tools they are proficient/comfortable/productive with.18 -
My job environment is either fucked up or am too young to understand what a job life is.
I was hired to intern for a startup having 2 main bosses/founders . one of them is mostly administrative and comes to office daily. He sets some tasks and i have to complete them, as soon as possible or sometimes till a deadline. He has little knowledge about the complexity of wotk so usually he says "just complete it as soon as possible so we could release it" but we haven't pushed any updates since i joined (of course i have completed some tasks, but they are just not pushed to the release version)
The other one , as i ranted previously is a completely different story.I think he is an elder bro or senior of the other boss,but he is just a superman: dealing with the distributers, commanding the hardware ppl, discussing with the othr boss, handling the server and most importantly the guy who wrote all the code i am working on. So he comes extremely rarely(1 or 2 days / week) , tries to communicate with me , but is immediately diverted by some other call/person and goes away.
The problem is : am feeling a little helpless. They give me tasks and i start working on them with excitement .( I don't believe myself to be a terrible beginner: i have been learning/working on android development for past 1 year, i know my things. And even if i don't, i know how to search/debug and produce results) . So as usual, i start and try to apply my skills / search for things i don't / try to understand his large,overwhelming and confusing codebase and at the end am stuck at some point where i don't understand what to do next. Sometimes its a bug which doesn't seems to fix, sometimes its a thing thats in the codebase but i couldn't find or sometimes it's just something i couldn't seem to understand why isn't it working. At that time, I only wish that boss to be here and look at what and how i have done, if its a correct approch and how can we together take it to completion (or simply wtf am i doing wrong, see my shit and tell me) .
But again, the tech boss is busy or wouldn't have time to understand my problem in our short , incomplete meetings. But he or the nontech boss will definitely have the time to ask the sttus of project and pressurise for the "deadline" .
Like today, i was so stuck at this fucking one line error that i couldn't detect that i just messaged him that am leaving for home 3 hours early. He came running and for the first time in history gave me a complete undisturbed time. It was such a small mistake, but i wasn't able to catch on my own. But when i told him, he immediately caught , changed a single line and the code started to work.
I am feeling irritated. Is this all a correct environment?2 -
We're all on gradle and we had a new guy who started a project with Maven. He also used atom editor for Java/Scala code (even though we had a license for Intellij), and refused to use anything with code completion (or turned it off if there was an option). My boss had to explain basic git branching to him, his pull requests were missing build files, READMEs and he'd check in tons of scripts to run things instead of using maven/gradle.
I just thought he was weird, but I didn't look at his pull requests close enough to realize how bad his code was, until they fired him earlier this week. -
Not being able to write code only using pen and paper :/
I had one job interview where they ask me to iterate a tree using my preferred language. I felt so uncomfortable.
And my problem is only the pen and paper.
I'm able to write working code without any code completion even without highlighting in any shitty editor. But when it comes to write code by hand on paper it feels like my programmer brain side turns off.1 -
ideal sprint fallacy.
total days 10 , total hours(excluding breaks ) 8 hrs per day= 80 hrs per dev
code freeze day = day 8, testing+ fixing days : 8,9,10. release day : day 10
so ideal dev time = 7days/56 hr
meetings= - 1hr per day => 49 hrs per dev
- 1 day for planning i.e d1 . so dev time left . 6 days 42 hrs.
-----------
all good planning. now here comes the messups
1. last release took some time. so planning could not happen on d1. all devs are waiting. . devtime = 5 days 35 hrs.
2. during planning:
mgr: hey devx what's the status on task 1?
d: i integrated mock apis. if server has made the apis, i will test them .
mgr : server says the apis are done. whats your guestimate for the task completion?
d : max 1-2 hrs?
m : cool. i assign you 4 hrs for this. now what about task 2?
d : task told to me is done and working . however sub mgr mentioned that a new screen will be added. so that will take time
m : no we probably won't be taking the screen. what's your giestimate?
d : a few more testing on existing features. maybe 1-2 hrs ?
m: cool
another 4 hrs for u. what about task 3?
d : <same story>
m : cool. another 4 hrs for u. so a total of 12 hrs out of 35 hrs? you must be relaxed this sprint.
d : yeah i guess.
m cool.
-------
timelines.
d1: wasted i previous sprint
d2 : sprint planning
d3 : 3+ hrs of meetings, apis for task 1 weren't available sub manager randomly decided that yes we can add another screen but didn't discussed. updates on all 3 tasks : no change in status
d4 : same story. dev apis starts failing so testing comes to halt.
d5 : apis for task1 available . task 3 got additional improvement points from mgr out of random. some prod issue happens which takes 4+ hrs. update on tasks : some more work done on task 3, task 1 and 2 remains same.
d6 : task1 apis are different from mocks. additionally 2 apis start breaking and its come to know thatgrs did not explain the task properly. finally after another 3+ hrs of discussion , we come to some conclusions and resolutions
d7 : prod issue again comes. 4+ hrs goes into it . task 2 and 3 are discussed for new screen additiona that can easily take 2+ days to be created . we agree tot ake 1 and drop 2nd task's changes i finish task 2 new screens in 6 hrs , hoping that finally everything will be fine.
d8 : prod issue again comes, and changes are requested in task 2 and 3
day 9 build finally goes to tester
day 10 first few bugs come with approval for some tasks
day 11(day 1 of new sprint) final build with fixes is shared. new bugs (unrelated to tasks. basically new features disguised as bugs) are raised . we reject and release the build.
day 2 sprint planning
mgr : hey dev x, u had only 12 hrs of work in your plate. why did the build got delayed?
🥲🫡5 -
*Screaming Internally* I'm really, REALLY, stressed.
We just entered the final sprint for the finishing of a major project. This is my first "Launch" type achievement since I started working as a programmer(I started almost exactly a year ago)
We have a lot of work done on the project, and it's very clearly near "Completion" but we all know a programmers job is never done.
But specifically I've been thinking about the code i've worked on. I've been at the burnt out phase of the development for a week now, I haven't been getting a lot done, and I can't help but stress that my code is going to be what breaks on launch day and i'm going to get canned or something...
It's not that i'm a bad programmer(at least I don't think) but more or less that I just have been so stressed I think I've made some mistakes, and I think it's going to blow up in my face, and I might lose my job over it.
How do you guys deal with work stress?1 -
Why do bosses have to be such absolute bellends?
I have depression and ptsd after my time in the Army, which I was open with my boss about when I started.
It is more or less under control, but over the last month or so I’ve been going through a bit of a bad patch, and had a telling off at work about being late and using my phone too much. I’ve been doing everything that has been asked of me, but I hold my hands up and admit that I shouldn’t be using my phone (I have trouble concentrating at the moment so have a tendency to switch between things a lot like Work, emails, phone, emails, work etc. While at home I’ll have the tv on my computer and my phone switching. Between the 3)
So after my telling off and I’d calmed down a bit I sent my boss an email apology, saying I was going through a rough patch but that it isn’t an excuse and I will try harder to stop it from affecting my work etc.
She comes back with an email about she’s done this for me and that for me but she needs to see some output and wants to own some issues and see them to completion.
Now, I admit my output has been down a bit but I’ve spent the last two weeks working on some custom software that’s full of spaghetti code so it also requires time for me to get my head around it to understand what’s going on, and the guy who wrote it and is the one who knows exactly what it is that needs to be done only works 3 days a week and is only in the office for two of those, so makes it a bit difficult.
Anyway, I assume that she for got I am the person running the project (I use running in its loosest possible terms) to migrate us from SourceSafe to GitLab and if she’d bothered to look she would have seen every single piece of work that I’d committed over the last 2/3 weeks.
Luckily for me I know have to re-write all of the work I did in the last 2/3 weeks in one night.
Also because I, quite correctly, got told off I know feel like an absolute cunt, I’m getting marri d in 3 weeks and now I seriously feel like saying fuck it all and leaving everything and moving away2 -
I just used Visual studio c++ for the first time. In comparison to intellij it just sucks, so many features are missing, im fighting with the editor all the time.. For example Code completion, visual studio suggests me the method name, i press enter, new line inserted, wtf? Apparently only tab is working here, next try, visual studio suggests method, I click tab, method name inserted but whithout brackets, omg. The standard shortcut for commenting out code is CTRL+K followed by CTRL+C, if you want to use the code again you need to use CTRL+K followed by CTRL+U. HOW STUPID IS THIS? Refactoring of code, e.g. Method names also sucks...5
-
Context: New to typescript. Writing a thing, doing it for work, good opportunity to stretch my dev legs. Using a propriety lib, alternatives not an option.
Rant begin:
SOOOO, who the fuck thought THIS was a good idea:
1. Lib has minified react in dev (because closed source) meaning no downstream errors AND the entire premise of the lib is that a widget is a react component, so I'm writing typescript react the entire time without downstream errors
2. SHIT docs. By that, I mean there's an API reference page that's so sparse there's literally a set of CRUCIAL interfaces that only say the word 'Interface' on them. That's it. that's what i get. It's an interface. NO FUCKING SHIT SHERLOCK, what the fuck is it though? What's its purpose? Is it an interface for a dog? A dog that has a 'shit' property? or a cat? or a cat eating dog shit? Nobody fucking knows - the docs sure as fuck don't care.
3. No syntax highlighting - editors, IDEs (i've tried a few) can't even find the lib inside this environment, so Code and everything else thinks I'm importing shit that doesn't even exist - so no error prediction, code completion based on syntax of the library, none of that.
4. There are some EXTREMELY basic samples - these samples exclusively use React classes - no function components, no hooks, nada - just classes and even perfect replicas of the sample code display erratic behavior like errors about missing props, so that's mostly FUCKING USELESS
5. And this... this is where the straw breaks the fucking camel's back... there's no... there's no hot reloading... Do you know what that (in conjunction with the previous 4 fuckups) means?
When I write anything or I fuck up (which of course I'm doing every time I write half a line because how the fuck?) I have to restart the client and server EVERY FUCKING TIME and manually test to see if the error (THAT ONLY GETS REPORTED IN THE LOCAL UI) is gone or different.
Then, once I see the error, it isn't an error: it's the minified React error-decoder link and guess what? It isn't really clickable a link OR copyable, meaning that every FUCKING time I get a new error, I have to MANUALLY TYPE A FUCKING 50 CHAR URL TO FIND OUT A GENERIC REACT ERROR MESSAGE WITHOUT A LINE NUMBER OR ANY FUCKING CONTEXT. I HAVE TO DO THIS CONSTANTLY TO SEE IF ANYTHING I'M DOING EVEN WORKS.
6. There's no github to complain to the maintainers or search for issues because it's NOT FUCKING OPEN SOURCE so there is literally nothing to be fucking done about it.
This is due in a week and a half, found out about it last Friday. How's your day going?
PS: good to be back after a long respite from dev ranting.1 -
We need to update the slang "script kiddie" to "prompt enginot" or something.
So my boss's boss or someone even higher up drank the generative AI kool-aid and hired a 40-something kid to generate images for the marketing teams (or something like it).
Naturally, things soon went to shit.
The bloke already left, having staid less than six months on the job.
Guess who got to handle all the shit-is-currently-on-fire the kiddie left behind?
First impression: apparently, muggles tried to slak him some very broad descriptions of what they needed, and at first he actually tried to summarize those bark-speech pseudo-words into an actual prompt.
It does not seem to have gone for too long, though.
After users requested changes to the AI outputs, he would update the prompts, all right. And the process seemed to go fast enough... until reaching near-to-completion status.
Then users would request the tiniest changes to the AI output...
And the bloke couldn't do it.
Seriously. Some things were as simple as "we need this slider to go all the way up to 180% instead of 100%" on a lame dashboard and *kid. could. not. do. it.*.
In many cases he literally just gave up and copied the slak history into the AI prompt. No dice.
Bloke couldn't code a print('hello world') into a jupyter notebook cell, that's what i'm saying.
Apparently, he was "self taught", too. And was hired to "speed up the process of generating visual aids for usage in meetings and presentations". But then "the budget for this position was considered excessive" (meaning: shit results from a raw idea some executive crapped some day) and "the position was expanded to include the development of Business Inteligence Dashboards and Data Apps".
So now it is up to me (and my CRIMINALLY UNDERPAID team) to clean up his mess and maintain/fix/deprecate DOZENS of SHODDILY DESIGNED and MOSTLY USELESS but QUITE ACTIVE "data vis" PIECES OF SHIT.
Fuck "AI prompters", fucking snake oil script kiddies.7 -
If there was an IDE which combines Xcodes debugging with Android Studios code completion, that would be an almost perfect IDE!
In Xcode you don‘t have to start the debugging process explicitly, you just set breakpoints while the app is running. Thats so much better than in Android Studio where you have to switch from normal running to debug mode.
In Android Studio you can use a function which is not declared yet and if you declare it afterwards, it is recogniced and can be completed by the code completion. Xcode does not know shit about undeclared funtions...5 -
I've tried to give it many chances, but I just don't think Python will ever be for me. Even "quick and dirty" scripts are faster for me in a statically-typed language with static syntax checking and sensible code completion.8
-
Just wrote a Scala test class using Sublime, felt like I moved faster than with IntelliJ... Maybe I should try vim next?1
-
Just a quick follow up. I told you guys after rebooting my server by accident, I'll color in the terminals for my ssh connections.
Normal terminal in white. With the code to do it. Just a shell script with the name ssh earlier in the path than the actual ssh. That was the only solution that didn't fuck my auto-completion. compdef was somehow useless. But it is simple.
For some reason I had to hardcode the return color to white. Alacritty was not happy with just a no-color code. But whatever. Super useful. I won't accidentally restart non-host computers now.
Planning on extending this to have different colors according to the host. Like my homelab could be green. Live servers would be red. Dev servers blue. But that's for the future.
Just wanted to share my little improvement that will make my computing saver.8 -
Got my first job after graduation for my Java skills. I was told to learn Hybris from its wiki. I gave it my best and worked very hard.
Two months later, manager tells me to forget about Hybris and puts me in a team with two idiots in a new . Net project.
Worked non stop and and single-handedly brought the new project to completion with . Net, bootstrap, jQuery etc.
Again the manager tells me that they need people in integration team and i have to learn Apigee and Informatica.
The thing i regret most is leaving my beautiful code in the hands of those two idiots that will definitely shit all over it.
In case you're wondering, I don't work for a start up, my company is worth US$ 99.64 billion.2 -
IDEs vs Text Editors? Wanted to get your opinions.
IDE- code suggestion(auto completion), easier to configure build options
Text editors- minimalistic and...?12 -
Game title: Vacations of an engineering student.
Aim: to utilize 60 days of freedom with something worth useful in future career.
Game Modes: (1) Sit at home. (2) intern for some company
Mode(1) Sit at home.
>>Villains : Games,Netflix and movies, food, friend parties, late night sleeps, afternoon wake ups, trips (random villains)
>>Boss Battles : laziness, procrastination, loosing of interest in stuff you wanna do
>>reward on completion: more knowledge increase, better resume ,$0 earnings
Mode(2) : intern for some company
>> extra level before starting : apply for 100s of companies,interview rounds, test
>>villans : no self choice, work with shitty code, too much workload, less time for outside-work life
>> Boss battles: do stuff that you didn't agree to, less stipend, unwanted scoldings from boss
>> reward on completion : more work experience , lesser knowledge, more $
What would be your mode of playing this summer?3 -
Guys, which code editor is better for PHP/JS/HTML/CSS? I mean, with more addons, code completion, and so on..
Atom? Sublime? Brackets? VS Code?
Thanks!21 -
I really feel lost in the world of freelancing, I mean I literally have three jobs on the go so barely any pressure and yet I'm cocking up my time estimations and mixing up code for each site, and giving incorrect predictions for completion, so basically I keep ending up working for free. Freelancers of the depths of devRant, please help! How do you manage to maintain a work life balance? Is accurate predictions and time management just something that comes with experience?
Also huge props to you for being able to keep your mentality!12 -
I really don't like this trend of building command line applications for controlling some <buzzword> cloud app or <buzzword> framework.
Why should I need or want to learn the exact wording of your gcloud command, or the path to your Ng cli, or some ass-backwards AWS search syntax when I can get the same functionality from your web app, where I can use my FUCKING EYES to work out where the "Create Instance" button is and how to click it!!!??
Stop pushing your shitty python monolith of a client where possibilities for the above task range from:
- google-cloud instances --add "subfjfechye thiq"
To
- gcloud /create /type=INSTANCE "rogdhyuffhue"
"BuT iT mAkEs iT MoRe aUtomaTaBLe"
I DON'T CARE. What is the point when I can use a proper programming language instead of bash, with actual code-completion and syntax rather than the horrendous excuse for a suggestion system that is the Tab key where it probably doesn't even work in the first place and I have to copy and paste some mysterious dbus command buried in an old documentation page on the Wayback Machine using a utility I don't have installed and a broken URL?
Go away.8 -
Fellow web devs, your favourite tool for coding ?
I use and love phpstorm because it prevents my 90% typos and provides code completion.
What tool do you use to improve your coding, and if there is any tool which you use to get more productive?14 -
What IDE do you guys use?
I use notepad++, Codeanywhere and Visual Studio 2017 Pro.
I'm looking for decent code completion with internal referencing to keep track of methods and variable.
Would you recommend staying with VS or how about intelliJ?
Or something new?6 -
To use Unity with VS you have to get Unity Build Tools as a plugin.
Alright, I'll download that.
Oh but now there's an error with connecting to unity, I need to get a newer VS and switch to the 2018 version of the engine.
Ok fine that's annoying but I guess I might as well upgrade.
Oh now there's no Intellisense? I guess I need to reload my project.
Oh what's this? Some major build error due to a missing component from Vs 2015?
This is getting stupid, fine let me install it.
Oh but to install the component you need to rerun the installer for VS, fine I'll redownload that.
Oh but apparently the installer _I JUST DOWNLOADED A FEW SECONDS AGO_ is outdated and needs to be upgraded. I can't _not_ update the installer and still install the components because that would be stupid, why would we let the developer decide what versions to use obviously they don't know what they're doing I mean it's not like they know how to use computers?
To get simple code completion, let's force developers to download an installer that then needs to be updated to install a component for this giant IDE that also requires the 2015 version of the IDE to be installed alongside a special plugin and patch designed for a specific game engine.
All this. For fucking code completion. I can't even get Intellisense to work in VSCode without fixing the issue since the C# extension in VSCode just binds to Visual Studio tools and runs the same shit with a different GUI.10 -
Background: I am working on task x. On successful completion of task x, task y may be given to me. Task x is haaaaaard. My group is not the only player and any fuck up will break my group and at least two others. Now here is my story:
Me: Yeah I am doing this hard thing and that hard thing and getting ready for these hard meetings.
FormerCoWorker fcw (): wow that sounds hard.
CurrentCoWorker ccw (): yeah he's working on task x and task you.
Me me (): what? No I'm not. I am working on task x. Don't go randomly assigning me tasks like that.
ccw: well if you finish task x you will be an expert in section z of code. So it is only natural you take on task you.
me: yeah but task x sucks and task y is why several engineers have quit the company. You never know. You could be assigned task y and quit. Why do I have to take on task y and quit?
NGL, I will do it of they promote me. I may be a whore, but I am gonna get paid. -
How do you deal with code/project burnout?
I've been refactoring and bugfixing my script for a week now. The project seems simple on the surface but the edge cases and methods to handle certain subsets of data are breaking it because handling them is vague and takes time to figure out and every day something is fixed and something else ends up as the issue preventing completion.
On the surface the idea seems sound so I'm also under pressure to get something "this easy" done.
Starting to feel some burnout on this.1 -
some languages completely get lost in minutiae, disposable preciousism that looks pretty but mischievously gobble development cycles. Now, there's no doubt they make for skinnier, trustworthy, low maintenance code, yes, congratulations Haskell. Although, you see, Haskell, not every language out here is defacto an academic one. You hear me, Rust. So, for fuck sakes, Rust dear. You've macros, sis, you don't need a new languages feature every other naughty day. You need prototyping speed, not more complexity. I'm not complaining not really.... It's your fucking language server, your compiler... They can't take this shit no more. Have you seen their overeating problems? Please, Rust, stop picking plastic surgery instead of make-up and use macros instead
--
and google, dear, your auto completion sucks ass1 -
not sure if actual bad habit, or just a natural consequence of what i'm writing often being de-facto "exploratory code" so the "bad habit" is actually the right choice, or...
but very often when i finish a functionality and look at the first version of the code, and realize how bad it is, and how it blocks me to implement following features... rather than just fix/improve that code, i just want to nuke all of it and write it from scratch again, and "better this time", because it seems like much less work and effort than trying to gradually fix it "in-place".
it definitely feels like a bad habit though, because it often results in me deleting and implementing to completion the same thing 4 times in a row. -
Alright I gotta ask IDE or Text Editor for development... and you care to WHY? I haven't found any rant on this subject yet and I'm curious what you ranters use!
Personally I use an IDE and more specifically Intellj suite for development
RubyMine, PHPStorm, and Android Studio for all my dev work for debugging, refactoring, and code completion to name a few.7 -
Is there any way I can preview an app before completion. For example I have just written a code for border and I want to preview it, is there any way I can do that? I am using Java and Android ide
Thanks.14 -
Well editor? nvim
Vim that just works.
But actual IDE? Most certainly the JetBrains products. The very best code completion, code generation, error checker, etc... all that even in the open source Community Edition :) -
Growing list of asks to a team member that are unheeded:
1) Check in your code frequently
2) Stop the completion emails for your program
3) Stop using your personal UserID/Password to send said email
4) Create classes that do one thing
5) Reuse your database connections
6) Use DataTables and write to the database once and not a bunch of variables and write at the end of your crazy loop-if-else structures. -
devRanters!
Do any of you find that you can type the solution faster than GitHub Copilot recommends?
That's how you know you're senior 😏
Also, on a serious note, does it only support JavaScript / TypeScript? Didn't really take time to investigate.
I thought there was also a feature you could tell it what to code and it would try to write a solution. Haven't really seen how to do that yet.7 -
Does everyone else too run the code to check if it's working whenever you switch on your PC even after it's completion when it ran successfully last time too? :P6
-
When xcode wont stop whinging about your lack of updating a var since creation. Yes. Its currently looking immutable but will be updated in a short while when I get to that code!!!!! Hence the reason for var!
Everything
"Oh Lord, let there be var".
You c what I did there? 😜👊 -
Why in all fucks would you NOT preconfigure your language client BUT provide a shitload of highly biased default shortcuts just IN CASE some sorry soul took time to preconfigure one.
I'ma be totally honest here, Neovim has lost its way. Every single day I pick it up there's a fuckton of shitty new default bindings...
But that's not the worst of it
You see, they've cramming all sorts of shitty code in there. Like this one default commenting plugin... It does in 600 lines what my setup does in 50. Why? Because, while mine uses the lpeg lib maintainers decided to cram into the editor, the other does a fuckton of hacks so fucked that refactoring is impossible, impossível! Despicable.
Now, their C codebase... Ok, ok arena beats vanilla malloc, alright, kudos to that, BUT refactoring out that old fart of quasillions of legacy C? MADNESS! They should be focused on adding built-in auto completion??? Well-defined syntax highlighting conventions? A FUCKING FUZZY PICKER for fucksakes!! But, oh no, we've got better things to do like FUCKING THE USER IN THEIR ASSSSSSS
--
DIS-FUCKINGTRESSED here
FUUUUUUUUUCKKKKKKKKKKK6 -
Twas the moment while i was exposed to java on the commandline and windows editor and needed to grasp the shit to read input with bufferredReader and Inputstreamreader while my head was constantly spinning between the javadocs and the screen. In that moment my friend opened his eclipse and showed me code completion! And the fucking Screenreader class. I immediatly realized it was not only important to finish the assignment but also as fast and as lazy as possible!
-
I know what my e-mail address says... but I have to say, the integration of AI with the code completion in Xcode Version 16.2 beta 2 (16C5013f) is so good it is scary. It is like it is reading my mind. I'm getting nervous about getting an MRI "Sir do you have any metal in your skull?" Me: "Oh god, did they implant some shit for Xcode to read my damn mind... this is going to friggin hurt!"
But seriously, I'm not at all a Swift fan but I have to say that with this AI auto complete, it is like having a "yea, this is how you normally would do this, how about we do this here" helper in the Mac.
But since the Xcode windows are all these dumb ass file browsers instead of document windows, I'm going to maintain: Xcode (still) Sucks... but a little less with this shit-hot AI code completion!2 -
So how do you find motivation to finish a work project which is supposed to "go long"?
So, umm, this is weird, but i have been in this situation a few times and i am not sure if i deal with them correctly.
- the company proposes a brand new feature : a feature which never existed in the product before.
- they have high level directions (both business logics and technical) on how its supposed to be build
-they set vague but comfortable timelines (20-30days) to complete it
- they align me as the main dev for frontend, some x guy for backend , some y guy for parallel frontend (ios/web) and kinda forget about us.
- the business requirements are evolved/cleared as we go on making the product, the backend keeps on providing evolving apis which get stable over time.
- the business ppl shows that yeah there is no pressure and we won't mind extending this for release as other systems will be "obviously" taking time.
- our (the folks on new feature) feature is sidelined .nd we are rarely talked about until we reach those deadlines and at that time we are questioned.
I... am not a powerful performer in these situations. adding a new feature required solving some major problems again and again , while solving smaller problems too, so as the product finally takes shape . for eg:
1. i will start fast by adding all the possible screens, their abstract code, their navigation logic, their xmls etc
2. then based on designs, i will try creating designs a bit
3. then once the apis arrive, i start adding them and modify the logic to handle those.
4. meanwhile many smaller problems come up , like when sending an image from one screen to the previous screen, the thumbnail don't show up, so i spend 5+ hours ensuring that it works precisely . or how i could make 3 api calls in async and make the upload flow better.
5. this goes on for days, until and i and other people start to realise that my project is not upto the point of completion
i keep getting distracted from the original goal of making a working poc first and then fixing the nuances2 -
i thought whiteboarding turning into leetcode mediums or harder correctly in 20 minutes or less was bad
now codesignal is fucking us over, tried my first one without researching any of the code score shit
anybody have tips for gaming the system there? i heard claims that speed trumps correctness for their point system (e.g. faster but not passing for all test cases may score higher than slower but all test cases pass) additionally code cleanliness/readability isn't weighed as heavily as the other factors
and to do problems individually to completion further rather than spreading yourself out across multiple problems in an exam
wont deny im still a salty scrub at the end of the day -
Disclaimer: I love open source and I adore the owasp for what they do.
BUT owasp zap has to be the most overly complicated, badly documented tool in existence. As long as one stays within its most basic functions everything is fine, setting it up as a proxy and even issuing a root cert for our test devices worked wonderfully simple.
Then I made the mistake to try to actually do anything with the data we pulled and had to dive into the scripting console.
The documentation basically consists only of "This thing exists", it provides a msg object with no information what it contains or how it's structured, has no code completion and, here comes the kicker, if the script is run and has an error it gets flagged and can't be reenabled after the error is fixed. So I'm currently at forwarder48.groovy trying to simply store the request on a database for possible diagnostics.
So right now I already know that I'll spend most of my vacation next week trying to decipher the source, document it, fix that damn "flagged as error" bullshit and jump through a billion hoops trying to get a pull request through.2