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 - "why do i have to exist"
-
Good Morning!, its time for practiseSafeHex's most incompetent co-worker!
Todays contestant is a very special one.
*sitcom audience: WHY?*
Glad you asked, you see if you were to look at his linkedin profile, you would see a job title unlike any you've seen before.
*sitcom audience oooooooohhhhhh*
were not talking software developer, engineer, tech lead, designer, CTO, CEO or anything like that, No No our new entrant "G" surpasses all of those with the title ..... "Software extraordinaire".
*sitcom audience laughs hysterically*
I KNOW!, wtf does that even mean! as a previous dev-ranter pointed out does this mean he IS quality code? I'd say he's more like a trash can ... where his code belongs
*ba dum tsssss*
Ok ok, lets get on with the show, heres some reasons why "G" is on the show:
One of G's tasks was to build an analytics gathering library for iOS, similar to google analytics where you track pages and events (we couldn't use google's). G was SO good at this job he implemented 2 features we didn't even ask for:
- If the library was unable to load its config file (for any reason) it would throw an uncatchable system integrity error, crashing the app.
- If anything was passed into any of the functions that wasn't expected (null, empty array etc.) it would crash the app as it was "more efficient" to not do any sanity checks inside the library.
This caused a lot of issues as some of the data needed to come from the clients server. The day we launched the app, within the first 3 hours we had over 40k crash logs and a VERY angry client.
Now, what makes this story important is not the bugs themselves, come on how many times have we all done something stupid? No the issue here was G defended all of this as the right thing to do!
.. and no he wasn't stoned or drunk!
G claimed if he couldn't get the right settings / params he wouldn't be able to track the event and then our CEO wouldn't have our usage data. To which I replied:
"So your solution was to not give the client an app instead? ... which also doesn't give the CEO his data".
He got very angry and asked me "what would you do then?". I offered a solution something like why not have a default tag for "error" or "unknown" where if theres an issue, we send up whatever we have, plus the file name and store it somewhere else. I was told I was being ridiculous as it wasn't built to track anything like that and that would never work ... his solution? ... pull the library out of the app and forget it.
... once again giving everyone no data.
G later moved onto another cross-platform style project. Backend team were particularly unhappy as they got no spec of what needed to be done. All they knew was it was a single endpoint dealing with very complex model. There was no Java classes, super classes, abstract classes or even interfaces, just this huge chunk of mocked data. So myself and the lead sat down with him, and asked where the interfaces for the backend where, or designs / architecture for them etc.
His response, to this day frightens me ... not makes me angry, not bewilders me ... scares the living shit out of me that people like this exist in the world and have successful careers.
G: "hhhmmm, I know how to build an interface, but i've never understood them ... Like lets say I have an interface, what now? how does that help me in any way? I can't physically use it, does it not just use up time building it for no reason?"
us: "... ... how are the backend team suppose to understand the model, its types, integrate it into the other systems?"
G: "Can I not just tell them and they can write it down?"
**
I'll just pause here for a moment, as you'll likely need to read that again out of sheer disbelief
**
I've never seen someone die inside the way the lead did. He started a syllable and his face just dropped, eyes glazed over and he instantly lost all the will to live. He replied:
" wel ............... it doesn't matter ... its not important ... I have to go, good luck with the project"
*killed the screen share and left the room*
now I know you are all dying in suspense to know what happened to that project, I can drop the shocking bombshell that it was in fact cancelled. Thankfully only ~350 man hours were spent on it
... yep, not a typo.
G's crowning achievement however will go down in history. VERY long story short, backend got deployed to the server and EVERYTHING broke. Lead investigated, found mistakes and config issues on every second line, load balancer wasn't even starting up. When asked had this been tested before it was deployed:
G: "Yeah I tested it on my machine, it worked fine"
lead: "... and on the server?"
G: "no, my machine will do the same thing"
lead: "do you have a load balancer and multiple VM's?"
G: "no, but Java is Java"
... and with that its time to end todays episode. Will G be our most incompetent? ... maybe.
Tune in later for more practiceSafeHex's most incompetent co-worker!!!31 -
The spam denier
_____
An old phone conversation with a client:
Me : Hello
Client : My website and server are suspended? why is that?
Me : Your server sends spam messages.
Client : We do not send spam messages, we are on vacation, there is none in the office.
Me : Yes, but it is not necessarily you, according to our logs, your server sent spam messages in Chinese and Russian, so someone from Russia or China....etc.
Client : I do not believe you, we do not speak russian or chinese, how could we then write spam messages in those languages?
Me : I told you, maybe someone exploited some vulnerability in your website or server firewall. And if you want to activate your services, please check with your webmaster and sysadmin to secure your ....
Client: I tell you my son, because I am old and I have more life experience than you ... I am 60 years old and I tell you, spam does not exist, and YOU suspended my website and server, and created issues to sell me more of your solutions and services.
I won't check my server, I won't hire a webmaster or a sysadmin, AND YOU WILL ACTIVATE MY SERVER NOW !
(I suddenly realized that I am talking to a wall, so I switched to a robotic tone).
Me : Please resolve the issue to activate your services..
Client : YOU WILL ACTIVATE MY S...
Me : Please resolve the issue to activate your services...
Client : WHAT IS THIS SPAM STORY ANYWAY, I DO NOT BELIEVE YOU ...
Me : Please google that word and you will understand what is spam is...
Client : YOU ARE F**ING LIARS, SPAM DOES NOT EXIST... ACTIVATE MY WEBSITE N.... Beeeep !
I hang up.
Well, I thought about configuring an automatic response for this client, or a for-loop.
His voice was really unpleasant, as if he is a heavy smoker.7 -
Happened a few weeks ago but still awesome.
Me and a good friend have a website together but we don't monitor it too much.
He studied with me in the same class but went towards frontend/apps where I chose backend/servers/security. He knows how to do basic Linux stuff but that's about it.
We were at a party when he noticed that our site was offline. Walked over to me (because I manage the server) to notify me so I could look into it said I'd look into it (phone):
*visits site: nothing*
*online dig tool: got the server ip*
*remembered this one didn't have pubkey authentication - after three passwords attempts I'm in*
"service apache2 status"
*service doesn't exist*
*right, migrated this one from Apache to nginx....*
"history"
*ah, an nginx restart probably suffices...*
"service nginx restart"
BAM, site is reachable again.
*god damnit, lets encrypt cert expired...*
"history"
*sees command with certbot and our domain both in one*
"!892"
*20 seconds later: success message*
*service nginx reload*
BAM, site works securely again.
"Yo mate, check the site again"
Mate: 😶 w-w-what? *checks site and his watch* you started less than two minutes ago...?
Me: yeah..?
Mate: 😶 now this is why YOU manage our server and I don't 😐
His face was fucking gold. It wasn't that difficult for me (I do this daily) but to him, I was a God at that moment.
Awesome moment 😊25 -
"devRant has changed" "I'm so fed up with this site" "Its a bunch of hate and memes, it was so much better before"
A rebuttal.
devRant is approximately the same as it was when it was just a newborn. Remember the days of semicolon jokes being unironically funny?
Look at the top rants of all time, for fucks sake. #2 ever is:
"A different error message! Finally some progress!"
Posted three years ago. That's the second most upvoted rant in history (Remember, this was a "rant" because the joke/meme category didn't exist back then), it made it's way into the app store screenshots, and was a welcome post.
Now imagine that posted today. It would probably go over okay, in fairness, but it's certainly at risk of any number of pretentious pricks complaining about how this is "devRANT not 4chan" or how they had seen the joke before and it's a shitty repost.
And sure, the repost bullshit is fair. I'm not saying that all the reposts are good content. What I'm saying is devRant has always been full of reposts - they just weren't reposts in the early days. The quality of content is the same.
There's also the common misconception that your posts need to be directly related to tech to post on devRant. This is a myth propagated by 0 IQ heathens that don't read any further than the name of the application. Your posts can be anything that isn't prohibited, like porn, spam, and, importantly, politics (commonly overlooked rule)
"All the memes are just too much". Oh you poor fucking baby, let me pour you a healthy serving of pity juice. First of all, you can turn off the memes category, and while they will still find their way to your feed, the concentration will be much lower and it will once again be bearable for your pitiful, weak little soul. Do you seriously get annoyed that severely by shitty posts that you need to leave the app altogether, or do you just want the attention of being a "cool hipster that hates on xyz"?
"This place is just filled with hate! Why can't you just respect xyz technology, it isn't actually that bad!"
This is probably the most stupid fucking thing you could possibly ejaculate from your fingers into whatever device you are using to type. Welcome to devRant, we hate on shit. That's at our core. No, xyz technology ISN'T actually that bad, you're correct. But we're here to tear it apart because it probably has frustrated us in the past. I fucking hate JS because it was my first language and it confused the shit out of me. JS is a great language. But I still talk shit about it, and that's what we're here to do.
Like seriously, I know a lot of people post stuff they're proud of here, and then they're met with "Would be great if you didn't use xyz tech", and that hurts, but holy shit, this is devRant. If you're sensitive to criticism, or even just straight up being made fun of, don't post shit that you're proud of. You won't have a good time. It's just not what we do here.
Quick interlude before the conclusion, "My girlfriend dumped me after I named a class after her. She felt I treated her like an object." is also on the first page of all-time most popular posts.
In conclusion, devRant has not changed. Reposts have been a nuisance since day 0, and just because reposts look different these days doesn't mean the quality of content has decreased in any manner. The two main sources of your frustration are the volume of low-quality posts (Mind you, not the concentration of them, but the volume of them) and your own prejudices about the platform. You're looking back with rose-tinted glasses.
Here are some tips for a more enjoyable experience:
-Make sure you have the "Hide reposts" setting ENABLED in settings. Any posts marked as repost will be hidden in your feed, pulling down the concentration of low-quality posts.
-Keep to the algo sorting method. Obviously, algo is a bot, and there's still gonna be some shit content in there anyways, but if you're in recent, you are absolutely guaranteed to see low-quality posts. It's unfiltered.
-Keep in mind that what you consider a "quality" post is not what others consider a "quality" post. Just because you don't like memes doesn't mean memes are poor content. There are people here who have never seen the bobby tables comic. And they deserve the same experience we got when discovering dev humor.
-Don't be a prick. And if you cannot help yourself, leave. Ironically, you're making the site worse by complaining about how bad the site is. You can always come back if you aren't a prick anymore. And you can leave permanently if you choose as well.
-Downvote and move on. You're not doing anything but making yourself more aggravated by leaving a shitty comment about how shitty the shitty post is.
-Think critically. Obviously optional, and I know not many people like to use their brain when a phone is suspended between their hands, but if you want a better experience, remember to use your head and not to lose it.22 -
I have to let it out. It's been brewing for years now.
Why does MySQL still exist?
Really, WHY?!
It was lousy as hell 8 years ago, and since then it hasn't changed one bit. Why do people use it?
First off, it doesn't conform to standards, allowing you to aggregate without explicitly grouping, in which case you get god knows what type of shit in there, and then everybody asks why the numbers are so weird.
Second... it's $(CURRENT_YEAR) for fucks sake! This is the time of large data sets and complex requirements from those data sets. Just an hour through SO will show you dozens of poor people trying to do with MySQL what MySQL just can't do because it's stupid.
Recursion? 4 lines in any other large RDBMS, and tough luck in MySQL. So what next? Are you supposed to use Lemograph alongside MySQL just because you don't know that PostgreSQL is free and super fast?
Window functions to mix rows and do neat stuff? Naaah, who the hell needs that, right? Who needs to find the products ordered by the customer with the biggest order anyway? Oh you need that actually? Well you should write 3-4 queries, nest them in an incredibly fucked up way, summon a demon and feed it the first menstrual blood of your virgin daughter.
There used to be some excuses in the past "but but but, shared hosting only has MySQL". Which was wrong by the way. This was true only for big hosting names, and for people who didn't bother searching for alternatives. And now it's even better, since VPS and PaaS solutions are now available at prices lower than shared hosting, which give you better speed, performance and stability than shared hosting ever did.
"But but but Wordpress uses MySQL" - well then kill it! There are other platforms out there, that aren't just outrageously horrible on the inside and outside. Wordpress is crap, and work on it pays crap. Learn Laravel, Symfony, Zend, or even Drupal. You'll be able to create much more value than those shitty Wordpress sites that nobody ever visits or pay money on.
"But but but my client wants some static pages presented beside their online shop" - so why use Wordpress then? Static pages are static pages. Whip up a basic MVC set-up in literally any framework out there, avoid MySQL, include a basic ACL package for that framework, create a controller where you add a CKEditor to edit page content, and stick a nice template from themeforest for that page and be done with that shit! Save the mock-up for later use if you do that stuff often. Or if you're lazy to even do that, then take up Drupal.
But sure, this is going a bit over the scope. I actually don't care where you insert content for your few pages. It can be a JSON file for all I care. But if I catch you doing an e-commerce solution, or anything else than just text storage, on MySQL, I'll literally start re-assessing your ability to think rationally.11 -
It's maddening how few people working with the internet don't know anything about the protocols that make it work. Web work, especially, I spend far too much time explaining how status codes, methods, content-types etc work, how they're used and basic fundamental shit about how to do the job of someone building internet applications and consumable services.
The following has played out at more than one company:
App: "Hey api, I need some data"
API: "200 (plain text response message, content-type application/json, 'internal server error')"
App: *blows the fuck up
*msg service team*
Me: "Getting a 200 with a plaintext response containing an internal server exception"
Team: "Yeah, what's the problem?"
Me: "...200 means success, the message suggests 500. Either way, it should be one of the error codes. We use the status code to determine how the application processes the request. What do the logs say?"
Team: "Log says that the user wasn't signed in. Can you not read the response message and make a decision?"
Me: "That status for that is 401. And no, that would require us to know every message you have verbatim, in this case, it doesn't even deserialize and causes an exception because it's not actually json."
Team: "Why 401?"
Me: "It's the code for unauthorized. It tells us to redirect the user to the sign in experience"
Team: "We can't authorize until the user signs in"
Me: *angermatopoeia* "Just, trust me. If a user isn't logged in, return 401, if they don't have permissions you send 403"
Team: *googles SO* "Internet says we can use 500"
Me: "That's server error, it says something blew up with an unhandled exception on your end. You've already established it was an auth issue in the logs."
Team: "But there's an error, why doesn't that work?"
Me: "It's generic. It's like me messaging you and saying, "your service is broken". It doesn't give us any insight into what went wrong or *how* we should attempt to troubleshoot the error or where it occurred. You already know what's wrong, so just tell me with the status code."
Team: "But it's ok, right, 500? It's an error?"
Me: "It puts all the troubleshooting responsibility on your consumer to investigate the error at every level. A precise error code could potentially prevent us from bothering you at all."
Team: "How so?"
Me: "Send 401, we know that it's a login issue, 403, something is wrong with the request, 404 we're hitting an endpoint that doesn't exist, 503 we know that the service can't be reached for some reason, 504 means the service exists, but timed out at the gateway or service. In the worst case we're able to triage who needs to be involved to solve the issue, make sense?"
Team: "Oh, sounds cool, so how do we do that?"
Me: "That's down to your technology, your team will need to implement it. Most frameworks handle it out of the box for many cases."
Team: "Ah, ok. We'll send a 500, that sound easiest"
Me: *..l.. -__- ..l..* "Ok, let's get into the other 5 problems with this situation..."
Moral of the story: If this is you: learn the protocol you're utilizing, provide metadata, and stop treating your customers like shit.22 -
I'm getting ridiculously pissed off at Intel's Management Engine (etc.), yet again. I'm learning new terrifying things it does, and about more exploits. Anything this nefarious and overreaching and untouchable is evil by its very nature.
(tl;dr at the bottom.)
I also learned that -- as I suspected -- AMD has their own version of the bloody thing. Apparently theirs is a bit less scary than Intel's since you can ostensibly disable it, but i don't believe that because spy agencies exist and people are power-hungry and corrupt as hell when they get it.
For those who don't know what the IME is, it's hardware godmode. It's a black box running obfuscated code on a coprocessor that's built into Intel cpus (all Intell cpus from 2008 on). It runs code continuously, even when the system is in S3 mode or powered off. As long as the psu is supplying current, it's running. It has its own mac and IP address, transmits out-of-band (so the OS can't see its traffic), some chips can even communicate via 3g, and it can accept remote commands, too. It has complete and unfettered access to everything, completely invisible to the OS. It can turn your computer on or off, use all hardware, access and change all data in ram and storage, etc. And all of this is completely transparent: when the IME interrupts, the cpu stores its state, pauses, runs the SMM (system management mode) code, restores the state, and resumes normal operation. Its memory always returns 0xff when read by the os, and all writes fail. So everything about it is completely hidden from the OS, though the OS can trigger the IME/SMM to run various functions through interrupts, too. But this system is also required for the CPU to even function, so killing it bricks your CPU. Which, ofc, you can do via exploits. Or install ring-2 keyloggers. or do fucking anything else you want to.
tl;dr IME is a hardware godmode, and if someone compromises this (and there have been many exploits), their code runs at ring-2 permissions (above kernel (0), above hypervisor (-1)). They can do anything and everything on/to your system, completely invisibly, and can even install persistent malware that lives inside your bloody cpu. And guess who has keys for this? Go on, guess. you're probably right. Are they completely trustworthy? No? You're probably right again.
There is absolutely no reason for this sort of thing to exist, and its existence can only makes things worse. It enables spying of literally all kinds, it enables cpu-resident malware, bricking your physical cpu, reading/modifying anything anywhere, taking control of your hardware, etc. Literal godmode. and some of it cannot be patched, meaning more than a few exploits require replacing your cpu to protect against.
And why does this exist?
Ostensibly to allow sysadmins to remote-manage fleets of computers, which it does. But it allows fucking everything else, too. and keys to it exist. and people are absolutely not trustworthy. especially those in power -- who are most likely to have access to said keys.
The only reason this exists is because fucking power-hungry doucherockets exist.26 -
!dev
!!misery
I'm drunk, so it's time for some faux-emotional, blunt oversharing. and lots of profanity. It won't be pretty.
------
I'm miserable. I can't sleep at night. When I finally manage to, I sleep like crap. In the morning, early, I get woken up by my children screaming or pulling my hair or jumping on either the bed or me, or talking ad furore, or any number of other miserably unpleasant things that completely prevent sleep. So I'm tired every single day, which totally surprisingly makes focusing on work fucking difficult. Doubly so because the work is fucking uninteresting and the code is awful to read and difficult to understand because it's complicated and often poorly written. And extending it takes enormous mental effort I simply do not have to give. Oh! Guess what my job is?
To make matters worse, time to myself basically does not exist, ever. I wake up, I attend standup, I cook and eat breakfast, I work while fighting against endless distractions and interruptions, I cook and eat dinner, I work some more, and finally: I can go to bed and try to sleep. The next morning, I wake up and repeat this misery, ad nauseam.
Et ad nauseam? Nauseam est nunc.
It's not proper latin, but fuck you. it's good enough. and nobody speaks it anyway.
Ego sum miseriae. Is that good enough for you?
I can't find it in myself to care about anything. I've been doing whatever I can to feel a little more normal, but mostly I just feel numb. If I drink, it helps a little because I notice my misery a little less. That's a great solution right there: drink until I don't care anymore, and keep doing the same shit without even trying to make things better. Why? Because I fucking can't. I hate this house, I hate the lack of quiet, I hate this city, I hate the dust and the clutter, I hate this state, I hate this codebase, I don't like my coworkers, I hate that I can't get a fucking thing done without spending 6x longer than it should, I hate that I can't fucking think of a single thing I want to do, I hate that I can't ever enjoy anything, I hate that I'm beginning to hate myself, and I fucking hate everything else, too.
In short:
I'm not happy. I'm fucking miserable.
And no, I'm not posting this here for you to psychoanalyze me or suggest solutions. It's for me to vent. Fuck your opinions and fuck your advice and fuck you.29 -
I wrote a database migration to add a column to a table and populated that column upon record creation.
But the code is so freaking convoluted that it took me four days of clawing my eyes out to manage this.
BUT IT'S FINALLY DONE.
FREAKING YAY.
Why so long, you ask? Just how convoluted could this possibly be? Follow my lead ~
There's an API to create a gift. (Possibly more; I have no bloody clue.)
I needed the mobile dev contractor to tell me which APIs he uses because there are lots of unused ones, and no reasoning to their naming, nor comments telling me what they do.
This API takes the supplied gift params, cherry-picks a few bits of useful data out (by passing both hashes by reference to several methods), replaces a couple of them with lookups / class instances (more pass-by-reference nonsense). After all of this, it logs the resulting (and very different) mess, and happily declares it the original supplied params. Utterly useless for basically everything, and so very wrong.
It then uses this data to call GiftSale#create, which returns an instance of GiftSale (that's actually a Gift; more on that soon).
GiftSale inherits from Gift, and redefines three of its methods.
GiftSale#create performs a lot of validations / data massaging, some by reference, some not. It uses `super` to call Gift#create which actually maps to the constructor Gift#initialize.
Gift#initialize calls Gift#pre_init (passing the data by reference again), which does nothing and returns null. But remember: GiftSale inherits from Gift, meaning GiftSale#pre_init supersedes Gift#pre_init, so that one is called instead. GiftSale#pre_init returns a Stripe charge object upon success, or a Gift (and a log entry containing '500 Internal') upon failure. But this is irrelevant because the return value is never actually used. Pass by reference, remember? I didn't.
We're now back at Gift#initialize, Rails finally creates a Gift object using the args modified [mostly] in-place by all of the above.
Another step back and we're at GiftSale#create again. This method returns either the shiny new Gift object or an error string (???), and the API logic branches on its type. For further confusion: not all of the method's returns are explicit, and those implicit return values are nested three levels deep. (In Ruby, a method will return the last executed line's return value automatically, allowing e.g. `def add(a,b); a+b; end`)
So, to summarize: GiftSale#create jumps back and forth between Gift five times before finally creating a Gift instance, and each jump further modifies the supplied params in-place.
Also. There are no rescue/catch blocks, meaning any issue with any of the above results in a 500. (A real 500, not a fake 500 like last time. A real 500, with tragic consequences.)
If you're having trouble following the above... yep! That's why it took FOUR FREAKING DAYS! I had no tests, no documentation, no already-built way of testing the API, and no idea what data to send it. especially considering it requires data from Stripe. It also requires an active session token + user data, and I likewise had no login API tests, documentation, logging, no idea how to create a user ... fucking hell, it's a mess.)
Also, and quite confusingly:
There's a class for GiftSale, but there's no table for it.
Gift and GiftSale are completely interchangeable except for their #create methods.
So, why does GiftSale exist?
I have no bloody idea.
All it seems to do is make everything far more complicated than it needs to be.
Anyway. My total commit?
Six lines.
IN FOUR FUCKING DAYS!
AHSKJGHALSKHGLKAHDSGJKASGH.7 -
You can believe or not but it’s just one of those stories. It’s long and crazy and it probably happened.
A few years ago I was interviewed by this big insurance company. They asked me on linkedin and were interested. They didn’t specify who they were so I didn’t specify who I am either.
After they revealed who they are I was just curious how they fuck they want to spend those billions of dollars they claimed in their press notes about this fucking digital transformation everyone is talking about. The numbers were big.
I got into 3 or 4 phone/skype interviews without technical questions and I was invited to see them by person.
I know that it would be funny because they didn’t asked me for CV so they didn’t know anything about me and I was just more curious how far I can get without revealing myself.
They canceled interview at midnight and I was in the middle of Louis de Funès comedies marathon so I didn’t sleep whole night. I assumed they would just reschedule but then they phoned me at 8 am if I can come because they made mistake.
So at first talk I was just interviewed by some manager I knowed after 5 minutes he would be shitty as fuck and demand stupid things in no time because he is not technical. He was trying to explain me that they got so great people and they do everything so fast.
From my experience speed and programming are not the things that match. ( for reference of my thought see three virtues of a GREAT programmer )
So I just pissed them off by asking what they would do with me when I finish this transformation thingy next year. ( Probably get rid off and fire at some point were my thoughts )
Then I got this technical interview on newest gold color MacBook pro - pair programming ( they were showing off how much money they have all the time ).
The person asked me to transform json and get some data in javascript .
Really that was the thing and I was so bored and tired that I just asked in what ES standard I can code.
The problem was despite he told me I can do anything and they are using newest standards ( yeah right ) the “for of” loop didn’t worked and he even didn’t know that syntax existed. So I explained him it’s the newest syntax pointing mozilla page and that he need to adjust his configuration. Because we didn’t have time for that I just did it using var an function by writing bunch of code.
When he was asking me if I want to write some tests probably because my code looked ugly as fuck ( I didn’t sleep for more then 24 hours at that point and wanted to live the building as fast as I can) I told I finished and there is no time for tests because it’s so simple and dumb task. The code worked.
After showing me how awesome their office is ( yeah please I work from home so I don’t care ) I got into the talk with VP of engineering and he was the only person who asked me where is my CV because he didn’t know what to talk about. I just laughed at him and told him that I got here just by talking how awesome I am so we can talk about whatever he wants.
After quick talk about 4 different problems where I introduced 4 different languages and bunch of libraries just because I can and I worked with those he was mine.
He told me about this awesome stack they’re building with kubernetes and micro services and the shitty future where they want to put IOT into peoples ass to sell them insurance and suddenly I got awake and started to want that job but behind that all awesomeness there was just .NET bridge with stack of mainframes running COBOL that they want to get rid off and move company to the cloud.
They needed mostly people who would dump code to different technology stack and get rid of old stack ( and probably those old people ) and I was bored again because I work more in r&d field where you sometimes need to think about something that don’t exist and be creative.
I asked him why it would take so much time so he explained me how they would do the transformation by consolidating bunch of companies and how much money they would make by probably firing people that don’t know about it to this day.
I didn’t met any person working permanently there but only consultants from corporations and people hired in some 3rd party company created by this mother company.
They didn’t responded with any decision after me wasting so much time and they asked me for interview for another position year after.
I just explained HR person how they treat people and I don’t want to work there for any money.
If You reached this point it is the end and if it was entertaining thank YOU I did my best.
Have a nice day.5 -
It's enough. I have to quit my job.
December last year I've started working for a company doing finance. Since it was a serious-sounding field, I tought I'd be better off than with my previous employer. Which was kinda the family-agency where you can do pretty much anything you want without any real concequences, nor structures. I liked it, but the professionalism was missing.
Turns out, they do operate more professionally, but the intern mood and commitment is awful. They all pretty much bash on eachother. And the root cause of this and why it will stay like this is simply the Project Lead.
The plan was that I was positioned as glue between Design/UX and Backend to then make the best Frontend for the situation. Since that is somewhat new and has the most potential to get better. Beside, this is what the customer sees everyday.
After just two months, an retrospective and a hell lot of communication with co-workers, I've decided that there is no other way other than to leave.
I had a weekly productivity of 60h+ (work and private, sometimes up to 80h). I had no problems with that, I was happy to work, but since working in this company, my weekly productivity dropped to 25~30h. Not only can I not work for a whole proper work-week, this time still includes private projects. So in hindsight, I efficiently work less than 20h for my actual job.
The Product lead just wants feature on top of feature, our customers don't want to pay concepts, but also won't give us exact specifications on what they want.
Refactoring is forbidden since we get to many issues/bugs on a daily basis so we won't get time.
An re-design is forbidden because that would mean that all Screens have to be re-designed.
The product should be responsive, but none of the components feel finished on Desktop - don't talk about mobile, it doesn't exist.
The Designer next to me has to make 200+ Screens for Desktop and Mobile JUST so we can change the primary colors for an potential new customer, nothing more. Remember that we don't have responsiveness? Guess what, that should be purposely included on the Designs (and it looks awful).
I may hate PHP, but I can still work with it. But not here, this is worse then any ecommerce. I have to fix legacy backend code that has no test coverage. But I haven't touched php for 4 years, letalone wrote sql (I hate it). There should be no reason whatsoever to let me do this kind of work, as FRONTEND ARCHITECT.
After an (short) analysis of the Frontend, I conclude that it is required to be rewritten to 90%. There have been no performance checks for the Client/UI, therefor not only the components behave badly, but the whole system is slow as FUCK! Back in my days I wrote jQuery, but even that shit was faster than the architecuture of this React Multi-instance app. Nothing is shared, most of the AppState correlate to other instances.
The Backend. Oh boy. Not only do we use an shitty outated open-source project with tons of XSS possibillities as base, no we clone that shit and COPY OUR SOURCES ON TOP. But since these people also don't want to write SQL, they tought using Symfony as base on top of the base would be an good idea.
Generally speaking (and done right), this is true. but not then there will be no time and not properly checked. As I said I'm working on Legacy code. And the more I look into it, the more Bugs I find. Nothing too bad, but it's still a bad sign why the webservices are buggy in general. And therefor, the buggyness has to travel into the frontend.
And now the last goodies:
- Composer itself is commited to the repo (the fucking .phar!)
- Deployments never work and every release is done manually
- We commit an "_TRASH" folder
- There is an secret ongoing refactoring in the root of the Project called "_REFACTORING" (right, no branches)
- I cannot test locally, nor have just the Frontend locally connected to the Staging webservices
- I am required to upload my sources I write to an in-house server that get's shared with the other coworkers
- This is the only Linux server here and all of the permissions are fucked up
- We don't have versions, nor builds, we use the current Date as build number, but nothing simple to read, nonono. It's has to be an german Date, with only numbers and has always to end with "00"
- They take security "super serious" but disable the abillity to unlock your device with your fingerprint sensor ON PURPOSE
My brain hurts, maybe I'll post more on this shit fucking cuntfuck company. Sorry to be rude, but this triggers me sooo much!2 -
(!dev)
Fuck Twitter.
I get sucked in for 10 minutes through some news article, and my blood is boiling.
I think the platform does not even deserve to exist.
And I didn't think I would ever say that.
I used to be a staunch defender of the free & open internet, even with it's ugly and extreme sides, because I was convinced the good would outshine the evil.
I displayed the Pirate flag with pride on the mast outside of my house, I was intimately involved in the founding of their political party in my country. I was convinced of the power of the internet, I believed it would empower democracy and debate.
So why do simple tweets, even just the ones about technology, incite an endless stream of vile ultranationalist & misogynist hate?
How is it that those who are reasonable get drowned out?
That fucking character limit is a cancer.
The orator's wings are clipped. The richness of language is wilting before our eyes. All that remains are a bunch of caged chickens pecking every argument to death.
I will defend the right to free speech, even when it comes to the most disagreeable and controversial opinions.
But Twitter does not promote free speech. It's poison to free speech.
It's an endless torrent of non sequiturs, which constricts all reason and intellect. It replaces free speech by pretending to have equal value.
I really don't care if you are left or right, socialist or libertarian, globalist or nationalist.
You can argue to me that we should close all borders for immigrants, that Apple makes great products, that genocide has its pros, you could try to convince me that Heineken tastes acceptable (sorry AlexDeLarge), that Linux should be outlawed or that we should really try to bring this Eugenics thing back again.
Just be fucking rational -- and "Rationality implies the conformity of one's beliefs with one's reasons to believe"
You can NOT fit both your beliefs and their supporting reasons in 140 or even 280 characters.
So what's left is just your beliefs.
Stripped of all reason.
Repeat it often enough, keep spewing, keep throwing out incomplete arguments, and you'll train yourself to forego ratio in your convictions completely.
All social platforms should get a forced captcha for every spelling/grammar error, and a 1000 character minimum.
The world would be a slightly better place.6 -
I was recuited to do devops work for a client. The project started in late '14. Until mid '15 I was forced to just sit there and do nothing. And I mean nothing. The ops team needed my help but the project lead didn't allow that (endless discussions). Somewhere around the end of '15 I could start to work and quickly learned that I had to report to two leads that couldn't disagree more on what to do and how to do it. I also learned that the companies mentality is "Clean me but don't get me wet". So the ops team demands a lot but is really uncooperative with everything. So I am currently sitting between three grindstones and everything I do is worthless. Because nobody agrees with anybody and I cannot fulfill my job for which I have been hired: Make ops more efficient because they are drowning in manual work. My job is further complicated by the following facts: This company uses no standard whatsoever but their own. Thru this they have created a Rube-Goldberg-Machine. But they think their system is the greatest in the world and the only one that makes sense. Which makes automation pointless because it is not maintainable. They call it diversity and they say that it is the clear reason why automation is not for them even though they schedule meeting after meeting in which they discuss about how to automate things. But in general they do just block everything useful and sabotage my work. And behind my back they make me the reason for the fail. Every real decision is blocked anyway. Also the ops guys think they are the leetest in the world. And everything they invent is above and beyond. If you ask them why they have over 400 VLANs for example (in a company of unter a thousand employees) they stutter and stumble because they cannot explain their complicated shit. They also change their decisions like underwear. Another really "kewl" thing they just did: They hired a devops engineer and everybody loves him. During the interview he said that he has no prior experience with devops whatsoever and it will take him around six month to get started on the basics of devops. I could go on for hours here about the insanity of this company that in my opinion will cease to exist within the next 5 years, if you ask me.
Long story short I am getting out of there by the end of march and will be on sabbatical shortly after because I am burned out. And I mean burned out. Not like "Oh I am burned out". I mean really burned out, with health problems and everything. Another external guy got out here last month because of the same health conditions.5 -
Please. Hear me out.
I've been doing frontend for six years already. I've been a junior dev, then in was all up to the CTO. I've worked for very small companies. Also, for the very large ones. Then, for huge enterprises. And also for startups. I've been developing for IE5.5, just for fun. I've done all kinds of stuff — accessibility, responsive design (with or without breakpoints), web components, workers, PWA, I've used frameworks from Backbone to React. My favourite language is CSS, and you probably know it. The bottom line is, you name it — I did it.
And, I want to say that Safari is a very good browser.
It's very fast. Especially on M1 Macs. Yes, it lacks customization and flexibility of Firefox, but general people, not developers, like to use it. Also, Safari is very important — Apple is a huge opposing force to Google when it comes to web standards. When Google pushes their BS like banning ad blockers, Apple never moves an inch. If we lose Safari, you'll notice.
As for the Safari-specific bugs situation, well… To me, Safari serves as a very good indicator: if your website breaks in Safari, chances are you used some hacks that are no good. Safari is a good litmus test I use to find the parts of my code that could've been better.
The only Safari-specific BUG I encountered was a blurry black segment in linear gradients that go from opaque to transparent. So, instead of linear-gradient(#f00, transparent), just do linear-gradient(#f00f, #f000).
This is the ONLY bug I encountered. Every single time my website broke in Safari other than that, was for some ugly hack I used.
You don't have to love it. I don't even use it, my browser of choice is Firefox. But, I'm grateful to Safari, just because it exists. Why? Well, if Safari ceases to exist, Google will just leave both W3C and WhatWG, and declare they'll be doing things their way from now on. Obey or die.
Firefox alone is just not big enough. But, together with Safari, they oppose Google's tyranny in web standards game.
Google will declare the victory and will turn the web into an authoritarian dictatorship. No ad blockers will be allowed. You won't be able to block Google's trackers. Google already owns the internet, well, almost, and this will be their final, devastating victory.
But Safari is the atlas that keeps the web from destruction.22 -
Other: "You know the app you're going to develop for us?"
Me: "Yes."
Other: "Can you give me access to it so I can take some screenshots for writing the guidance?"
Me: "Err.. Well not really as it doesn't actually exist yet..."
Why do I have to deal with such people.3 -
WASM was a mistake. I just wanted to learn C++ and have fast code on the web. Everyone praised it. No one mentioned that it would double or quadruple my development time. That it would cause me to curse repeatedly at the screen until I wanted to harm myself.
The problem was never C++, which was a respectable if long-winded language. No no no. The problem was the lack of support for 'objects' or 'arrays' as parameters or return types. Anything of any complexity lives on one giant Float32Array which must surely bring a look of disgust from every programmer on this muddy rock. That is, one single array variable that you re-use for EVERYTHING.
Have a color? Throw it on the array. 10 floats in an object? Push it on the array - and split off the two bools via dependency injection (why do I have 3-4 line function parameter lists?!). Have an image with 1,000,000 floats? Drop it in the array. Want to return an array? Provide a malloc ptr into the code and write to it, then read from that location in JS after running the function, modifying the array as a side effect.
My- hahaha, my web worker has two images it's working with, calculations for all the planets, sun and moon in the solar system, and bunch of other calculations I wanted offloaded from the main thread... they all live in ONE GIANT ARRAY. LMFAO.If I want to find an element? I have to know exactly where to look or else, good luck finding it among the millions of numbers on that thing.
And of course, if you work with these, you put them in loops. Then you can have the joys of off-by-one errors that not only result in bad results in the returned array, but inexplicable errors in which code you haven't even touched suddenly has bad values. I've had entire functions suddenly explode with random errors because I accidentally overwrote the wrong section of that float array. Not like, the variable the function was using was wrong. No. WASM acted like the function didn't even exist and it didn't know why. Because, somehow, the function ALSO lived on that Float32Array.
And because you're using WASM to be fast, you're typically trying to overwrite things that do O(N) operations or more. NO ONE is going to use this return a + b. One off functions just aren't worth programming in WASM. Worst of all, debugging this is often a matter of writing print and console.log statements everywhere, to try and 'eat' the whole array at once to find out what portion got corrupted or is broke. Or comment out your code line by line to see what in forsaken 9 circles of coding hell caused your problem. It's like debugging blind in a strange and overgrown forest of code that you don't even recognize because most of it is there to satisfy the needs of WASM.
And because it takes so long to debug, it takes a massively long time to create things, and by the time you're done, the dependent package you're building for has 'moved on' and find you suddenly need to update a bunch of crap when you're not even finished. All of this, purely because of a horribly designed technology.
And do they have sympathy for you for forcing you to update all this stuff? No. They don't owe you sympathy, and god forbid they give you any. You are a developer and so it is your duty to suffer - for some kind of karma.
I wanted to love WASM, but screw that thing, it's horrible errors and most of all, the WASM heap32.7 -
Just came back from a new café (to the pedantic among us, yes I know it's a bar.. get over it).
And I met some Apple fanboy 🤭
So the guy kept on bragging about his shiny iPhone 6.. and I figured that I'd chime in. Due to my short-term memory being terrible, I'll be paraphrasing here.
M: me
S: iPhone usar _/\_
M: iPhone 6 ey..? I've heard about some devices in which the old ones are throttled down in a system update "to save the battery".
S: Yes, biweekly updates!! You can even delay them to tune them down to the time during which your device is charging and can commence its system update.
M (thinking): You've clearly missed the point sir.. but on Android, system updates don't need to be willfully delayed even. They (usually) won't commence unless your device is 80% and charging. OnePlus has been an exception to this though, probably under the assumption that their users are mostly power users that know what they're doing.
M: You do realize that given that your iPhone 6 is quite old already, Apple will very likely start throttling your device during a system update in the next few months, right.
S: What the hell dude.. look, look how smoothly it's been going for the last few years!!! Nothing wrong with that.
M: Just wait until your repair bill comes from those Geniuses 🤭
M: Sir, you do realize that Apple quotes €600 for battery repairs nowadays, right.
S: What the hell dude!!! I can buy a whole new phone for that much!!
M: Exactly!! That's exactly Apple's business tactic!!! They design their phones as such that the battery replacement (one of the most common repairs) requires you to replace not only the battery, but the whole chassis!!! And on the XS, the battery replacement is nothing short of atrocious!!!
M: Here, have a look at this: https://youtube.com/watch/...
*shows Louis' newest video about him switching to iPhone XS*
S: Yeah that's just bullshit. I bet you're showing me this on one of those crappy Samsungs.
M: No sir. I'm showing this on my Nexus 6P, that is tethered to my OnePlus 6T. Speaking of which, let me introduce you to the Nexus 6P's (one of the crappiest Android flagships to ever exist) repair, the battery replacement of which I've done myself.
(you can watch the iFixit video about it here: https://youtube.com/watch/...)
*explains heatgun, screwdriver, heatgun battery replacement of Nexus 6P and the time each step takes - more than an hour combined*
S: Yeah that's because it's one of those crappy Androids. That'd never happen to this shiny iPhone, look, I've got a $20 battery right here!!!
*shows battery*
M: Sir... That's a battery for a MacBook. A laptop battery.... 🤨
I love how willfully ignorant these Apple users are. To them, all that exists is Apple and Samsung (both of which I hate because lockdown). And they apparently don't even know what repair they have to look for when they'll need one.. maybe that's why those Genius Bars exist? 🤭
I'd love to see the guy's face when the Geniuses quote him the price for battery replacement when his planned obsolescence time comes 🤭14 -
You wanted to hear more about my "glorious" teacher. I deliver. So get a cup of tea, take a seat and prepare for insanity.
As I already told in a comment my programming teacher is one special snowflake who lives in his personal bubble. We have final exams in less than a month and he spents at least half a lesson talking about vanishing bees and missing plants from his garden. Other topics he likes to talk about (and tries to turn every freaking conversation into at least one of these):
1. Other students and their stupidity
2. Diesel scandal
3. His sick wife
4. "Why does noone read newspapers anymore?"
5. Why he can't teach Java but really really really wants to and everyone hates him and forces him to do C#.
Even if I try to interrupt him he'll go on until he thinks we gained some "common knowledge" - this is how he justifies these topics.
Everytime he introduced us to a new command he compared it to Java and sometimes he even falsely corrects code because he confuses them.
We are only 6 people including me (another story for another time) and he is not able to help everyone during a 90min lesson. He normally sticks with one person for at least one hour and just talks to them or even do their tasks. This is really annoying if you have a simple question. He won't answer you until he's finished whatever he's doing.
Most of the time he doesn't seem to understand what he's talking about/trying to teach us. He's muttering statements from our textbook to himself switching halfway through to another sentence while drawing not decipherable shit on the blackboard.
Another gem are his "guidelines" for classtests. We are allowed to use any command we know. Except the ones we learned not in class. And the ones he doesn't like. And the ones he doesn't want to exist. And of course not the ones which make you're life easier. So basically we are bound to use his favourite commands or we won't get a good grade. Example: use an array. List is not allowed. Never.
He has some weird fetish with arrays.
I once presented him perfectly fine code I wrote in my freetime and asked what some warnings meant. (Was because of different Visual studio versions as I learned later.) He scolded me for using things he didn't taught us yet and ranted about how I'm pressuring him into rushing these things now - I never wanted to show this to my classmates nor was this anything else than a project for fun and learning something new. (FYI the "new stuff" where classes and objects because i was tired of kilometers of spaghetti code). His rant went on a good 20minutes and - obviously - he didn't answer my question. I asked my fiance that evening and he explained it to me.
This should it be for this time. I'm sure I have more stories to tell for another time!
Thank you for reading. ^^5 -
Life as a homeless developer.
I'm a lil brainsick but homelessness makes you that way.
I started writing software as a hedge against an old injury i had from my teen years. I have a unique condition leaving me with limited use of my hand as such any jobs like cashier call center and they like are of limits to me, i can't hold change because my hands don't bend flat, and to much typing is excruciating. Therefore being adev should get the most bang for the buck that I have left. Ive been doing this for 12 years. Well it's all bullshit and unicorns. I can't get a job to save my life. All i get is calls from recruiters wanting a full stack retard. I'm an erlang developer for about 5 years, c# php no i can't do Photoshop or frontend gay as colors because it's a different skillet. Oh but trumpy says we're at the lowest unemployment ever, ya because we're all homeless and companies are still looking for unicorns, they don't exist just like the fake jobs which is the real fake news. In reality if a company wants you its because their dev left and you are to fix their broken shit, which never worked in the first place thus cannot be fixed besides I'm not a plumber. In my opinion many companies nowadays are run by liberal sjw children who don't value your time but want the product now, spoilt. Recruiters are the worst, gimme money because i touched your resume. I'd rather just kill myself than try to appease some fucking retarded children. Its so awesome to live in a tunnel while my skills entropy while i have 160 self published github repos, know many programming languages and be told your have no value. its those same children that dont understand the flow of money or value loyalty, claim we have all these jobs but no skillid employees, so they can bring in more visa overstayers, underpay them and claim record profits, the more you pay forieners my countries money the less there is to go around in the society leading to disenfranchised people like me, and you wonder why there's so many shootings in il. How long can i endure homelessness before i start becoming a criminal? Soon i will have no other option. You employers had a choice but I'm going out with a bang.25 -
God fucking dammit.
I got assigned to a WordPress project...
I AM NOT A WORDPRESS DEVELOPER!!!
Why do I have to deal with this giant pile of stinking shit?
I'm a php developer, I make applications, I don't write fucking wordpress plugins...
WHY DOES THIS EXIST, WHY DID WORDPRESS BECOME SUCCESSFUL WHY CAN'T I JUST DEV IN PIECE.
Dear wordpress developers,
Please suffocate on a big fat old cock.
Regards.10 -
Time to rant about JavaScript tutorials.
If you don't know the 'jQuery basic arithmetic' joke, Google it now. It'll make you laugh, promised.
In that manner i just remembered a JavaScript tutorial my fiancee tried to follow when she did an internship at the company i work for last year.
She was tasked to create a temperature interface for our server rack, which she wanted to do via an Arduino and a webserver aswell as an SQL database.
The Arduino part wasn't really a problem, but since she had no experience with js she very closely clinged to a chart visualisation tutorial.
All of that worked very well, but beeing the person i am i looked at the code and found something off.
The chart library had no dependencies to external libraries or any local files for any of them. Though the tutorial used a jQuery import.
So why did it use jQuery?
Well...
To load the chart initialization after the page has loaded.
So they pulled the entirety of jQuery in just to do what fucking window.addEventListener('DOMContentLoaded',function(){...}); could have done.
I wonder how many people who just want something to work did this shit. I hate it that so many tutorials do not adhere any kinds of standards, override behavior because they don't like it, even though it may have a very good reason to exist, pull entire libraries in for something vanilla <language> can do in 3 lines, etc.
Fuck.7 -
I think I want to quit my first applicantion developer job 6 months in because of just how bad the code and deployment and.. Just everything, is.
I'm a C#/.net developer. Currently I'm working on some asp.net and sql stuff for this company.
We have no code standards. Our project manager is somewhere between useless and determinental. Our clients are unreasonable (its the government, so im a bit stifled on what I can say.) and expect absurd things from us. We have 0 automated tests and before I arrived all our infrastructure wasn't correct to our documentation... And we barely had any documentation to begin with.
The code is another horror story. It's out sourced C# asp.net, js and SQL code.. And to very bad programmers in India, no offense to the good ones, I know you exist. Its all spagheti. And half of it isn't spelled correctly.
We have a single, massive constant class that probably has over 2000 constants, I don't care to count. Our SQL projects are a mess with tons of quick fix scripts to run pre and post publishing. Our folder structure makes no sense (We have root/js and root/js1 to make you cringe.) our javascript is majoritly on the asp.net pages themselves inline, so we don't even have minification most of the time.
It's... God awful. The result of a billion and one quick fixes that nobody documented. The configuration alone has to have the same value put multiple times. And now our senior developer is getting the outsourced department to work on moving every SINGLE NORMAL STRING INTO THE DATABASE. That's right. Rather then putting them into some local resource file or anything sane, our website will now be drawing every single standard string from the database. Our SENIOR DEVELOPER thinks this is a good idea. I don't need to go into detail about how slow this is. Want to do it on boot? Fine. But they do it every time the page loads. It's absurd.
Our sql database design is an absolute atrocity. You have to join several tables together just to get anything done. Half of our SP's are failing all the time because nobody really understands the design. Its gloriously awful its like.. The epitome of failed database designs.
But rather then taking a step back and dealing with all the issues, we keep adding new features and other ones get left in the dust. Hell, we don't even have complete browser support yet. There were things on the website that were still running SILVERLIGHT. In 2019. I don't even know how to feel about it.
I brought up our insane technical debt to our PM who told me that we don't have time to worry about things like technical debt. They also wouldn't spend the time to teach me anything, saying they would rather outsource everything then take the time to teach me. So i did. I learned a huge chunk of it myself.
But calling this a developer job was a sick, twisted joke. All our lives revolve around bugnet. Our work is our BN's. So every issue the client emails about becomes BN's. I haven't developed anything. All I've done is clean up others mess.
Except for the one time they did have me develop something. And I did it right and took my time. And then they told me it took too long, forced me to release before it was ready, even though I had never worked on what I was doing before. And it worked. I did it.
They then told me it likely wouldn't even be used anyway. I wasn't very happy at all.
I then discovered quickly the horrors of wanting to make changes on production. In order to make changes to it, we have to... Get this
Write a huge document explaining why. Not to our management. To the customer. The customer wants us to 'request' to fix our application.
I feel like I am literally against a wall. A huge massive wall. I can't get constent from my PM to fix the shitty code they have as a result of outsourcing. I can't make changes without the customer asking why I would work on something that doesn't add something new for them. And I can't ask for any sort of help, and half of the people I have to ask help from don't even speak english very well so it makes it double hard to understand anything.
But what can I do? If I leave my job it leaves a lasting stain on my record that I am unsure if I can shake off.
... Well, thats my tl;dr rant. Im a junior, so maybe idk what the hell im talking about.rant code application bad project management annoying as hell bad code c++ bad client bad design application development16 -
The fact that this week's rant topic exists is the exact reason I never do freelance work. It always ends in horror.
I don't believe good fullstack devs exist. A good junior will assess their talents/passions and specialize to become a senior. They'll keep checking the rest of the market from the corners of their eyes and start moving when necessary. But eventually, focus and specialization is a must.
If that's true for the field of development... why would I invest time in marketing, support, sales, PR, legal?
Maybe you can earn a bit more gross income in freelance work — but I see my employer as a service provider, I "hire" them so I don't have to manage phone calls, lose sleep over court cases, play product owner or worry about getting paid.9 -
Just now I realized that for some reason I can't mount SMB shares to E: and H: anymore.. why, you might ask? I have no idea. And troubleshooting Windows.. oh boy, if only it was as simple as it is on Linux!!
So, bimonthly reinstall I guess? Because long live good quality software that lasts. In a post-meritocracy age, I guess that software quality is a thing of the past. At least there's an option to reset now, so that I don't have to keep a USB stick around to store an installation image for this crap.
And yes Windows fanbois, I fucking know that you don't have this issue and that therefore it doesn't exist as far as you're concerned. Obviously it's user error and crappy hardware, like it always is.
And yes Linux fanbois, I know that I should install Linux on it. If it's that important to you, go ahead and install it! I'll give you network access to the machine and you can do whatever you want to make it run Linux. But you can take my word on this - I've tried everything I could (including every other distro, custom kernels, customized installer images, ..), and it doesn't want to boot any Linux distribution, no matter what. And no I'm not disposing of or selling this machine either.
Bottom line I guess is this: the OS is made for a user that's just got a C: drive, doesn't rely on stuff on network drives, has one display rather than 2 (proper HDMI monitor recognition? What's that?), and God forbid that they have more than 26 drives. I mean sure in the age of DOS and its predecessor CP/M, sure nobody would use more than 26 drives. Network shares weren't even a thing back then. And yes it's possible to do volume mounts, but it's unwieldy. So one monitor, 1 or 2 local drives, and let's make them just use Facebook a little bit and have them power off the machine every time they're done using it. Because keeping the machine stable for more than a few days? Why on Earth would you possibly want to do that?!!
Microsoft Windows. The OS built for average users but God forbid you depart from the standard road of average user usage. Do anything advanced, either you can't do it at all, you can do it but it's extremely unintuitive and good luck finding manuals for it, or you can do it but Windows will behave weirdly. Because why not!!!16 -
So one rant reminded me of a situation I whent through like 10 years ago...
I'm not a dev but I do small programs from time to time...
One time I was hired to pass a phone book list from paper to a ms Access 97 database...
On my old laptop I could only add 3 to 5 records cause MS access doesn't clean after itself and would crash...
So I made an app (in vb6) , to easily make records, was fast, light and well tabbed.
But now I needed a form to edit the last record when I made a mistake...
Then I wanted a form to check all the records I made.
Well that gave me an idea and presented the software to the client... A cheesy price was agreed for my first freelance sell...
After a month making it perfect and knowing the problems the client would had I made a admin form to merge all the databases and check for each record if it would exist.... I knew the client would have problems to merge hundreds of databases....
When it was done... The client told me he didn't need the software anymore.... So I gave it to a friend to use as an client dabatase software... It was perfect for him.
One month later the client called me because he couldn't merge the databases...
I told him I was already working in a company. That my software was ready to solve his problem, but I got mad and deleted everything...
He had to pay almost 20 times more for a software company to make the same software but worst... Mine would merge and check all the databases in a folder... Their's had to pick one by one and didn't check for duplicates... So he had to pay even more for another program to delete duplicates...
That's why I didn't follow programming as a freelance... Lots of regrets today...
Could be working at home, instead had a burn out this week cause of overwork...
Sorry for the long rant.2 -
I’m trying to add digit separators to a few amount fields. There’s actually three tickets to do this in various places, and I’m working on the last of them.
I had a nightmare debugging session earlier where literally everything would 404 unless I navigated through the site in a very roundabout way. I never did figure out the cause, but I found a viable workaround. Basically: the house doesn’t exist if you use the front door, but it’s fine if you go through the garden gate, around the back, and crawl in through the side window. After hours of debugging I eventually discovered that if I unlocked the front door with a different key, everything was fine… but nobody else has this problem?
Whatever.
Onto the problem at hand!
I’m trying to add digit separators to some values. I found a way to navigate to the page in question (more difficult than it sounds), and … I don’t know what view is rendering the page. Or what controller. Or how it generates its text.
The URL is encrypted, so I get no clues there. (Which was lead dev’s solution to having scrapeable IDs instead of just, you know, fixing them). The encryption also happens in middleware, so it’s a nightmare to work through. And it’s by the lead dev, so the code is fucking atrocious.
The view… could be one of many, and I don’t even know where they are. Or what layout. Or what partials go into building it.
All of the text on the page are “resources” — think named translations that support plus nested macros. I don’t know their names, and the bits of text I can search for are used fucking everywhere. “Confirmation number” (the most unique of them) turns up 79 matches. “Fee” showed up in 8310 places before my editor gave up looking. Really.
The table displaying the data, which is what I actually care about, isn’t built in JS or markup, but is likely a resource that goes through heavy processing. It gets generated in a controller somewhere (I don’t know the resource name so I can’t find it), and passed through several layers of “dynamic form” abstraction, eventually turned into markup, and rendered as a partial template. At least, that’s how it worked in the previous ticket. I found a resource that looks right, and there’s only the one. I found the nested macros it uses for the amount and total, and added the separators there… only to find that it doesn’t work.
Fucking dead end.
And i have absolutely nothing else to go on.
Page title? “Show”
URL? /~LiolV8N8KrIgaozEgLv93s…
Text? All from macros with unknown names. Can’t really search for it without considerable effort.
Table? Doesn’t work.
Text in the table? doesn’t turn up anything new.
Legal agreement? There are multiple, used in many places, generates them dynamically via (of course) resources, and even looking through the method usages, doesn’t narrow it down very much.
Just.
What the fuck?
Why does this need to be so fucking complicated?
And what genius decided “$100000.00” doesn’t need separators? Right, the lot of them because separators aren’t used ANYWHERE but in code I authored. Like, really? This is fintech. You’d think they would be ubiquitous.
And the sheer amount of abstraction?
Stupid stupid stupid stupid stupid.11 -
My manager thinks I am Superman! and he is so confident that can do any shit he wants me to do.
Yesterday he asked me to merge an ancient code hotfix (literally ancient) with latest branch of changes.
1. Hotfix is really old, most of the things are hardcoded, very specific to a stone age client.
2. Code documentation does not exist.
3. Developers of that code are probably dead.
4. Many Libraries which code uses are deprecated.
5. It's a legacy code, so no one has fucking idea what a particular clumsy block of code do, or what will happen if you remove it.
'if it runs don't touch it' policy by management.
Despite all this shit I successfully merged the the hotfix, refactored outdated code so as to run the application.
Showed this to my manager in full swag!
He was surprised at first, and asked me to show the code changes.
'Code review' was done by comparing files 😅
Manager: Dude, you have changed these lines, why? Explain.😧
Me: those lines won't work with new build, with new libs.☺️
Manager: then why can't you do old build with new changes?🙄
Me: umm.. wait... what???🤔
Manager: the code was working previously, it must be working even today without these changes.😡
Me: it was not working hence I made changes and now it's working fine see! ☺️
Manager: you have removed this, this and this!!! 😡
Me: but I also added that, that and that!😔
Manager: "don't touch it' if it works!"😡
Me: ... Idk what to say!
(In the back of my mind: "Don't touch it even it doesn't works!")😌8 -
TLDR: crappy api + idiot ex client combo rant // devam si duška
I saw a lot of people bitching about APIs that don't return proper response codes and other stuff..
Well let me tell you a story. I used to work on a project where we had to do something like booking, but better..crossbreed with the Off&Away bidding site (which btw we had to rip off the .js stuff and reverse engineer the whole timer thingy), using free versions of everything..even though money wasn't an issue (what our client said). Same client decided to go with transhotel because it was sooooo gooood... OK? Why did noone heard of them then?
Anyhow, the api was xml based.. we had to send some xml that was validated against a schema, we received another that was supposed to be validated againts another schema.. and so on and so on..
...
...
supposed..
The API docs were nonexistent.. What was there, was broken English or Spanish.. Even had some comments like Add This & that to chapter xy.. Of course that chapter didn't even exist yet. :( And the last documentation they had, was really really old..more than a year, with visible gaps, we got the validation schemas not even listed in the docs, let alone described properly.
Yaaay! And that was not everything.. besides wrong and missing data, the API itself caused the 500 server error whenever you were no longer authenticated.
Of course it didn't tell you that your session was dead.. Just pooof! Unhandled crap everywhere!
And the best part?! We handled that login after inspecting what the hell happened, but sent the notification to the company anyways.. We had a conf call, and sent numerous emails explaining to them what a 'try catch' is and how they should handle the not authenticated error <= BTW they should have had a handled xml response for that, we got the schema for it! But they didn't. Anyhow, after two agonizing days talking back and forth they at least set up the server to be available again after the horrified 500 error. Before, it even stopped responding until reset (don't ask me how they managed to do that).
Oh yeah, did I mention this was a worldwide renown company?! Where everybody spoke/wrote English?! Yup, they have more than 700 people there, of course they speak English! <= another one of my ex clients fabulous statements... making me wanna strangle him with his tie.. I told him I am not talking to them because no-one there understood/spoke English and it would be a waste of my time.. Guess who spent almost 3 hours to talk to someone who sounded like a stereotypical Indian support tech guy with a flue speaking Italian?! // no offence please for the referenced parties!!
So yeah, sadly I don't have SS of the fucked up documentation..and I cannot post more details (not sure if the NDA still holds even though they canceled the project).. Not that I care really.. not after I saw how the client would treat his customers..
Anywayz I found on the interwebz some proof that this shitty api existed..
picture + link: https://programmableweb.com/api/...
SubRant: the client was an idiot! Probably still is, but no longer my client..
Wanted to store the credit card info + cvc and owner info etc.. in our database.. for easier second payment, like on paypal (which he wanted me to totally customize the payment page of paypal, and if that wasn't possible to collect user data on our personalized payment page and then just send it over to paypal api, if possible in plaintext, he just didn't care as long as he got his personalized payment page) or sth.... I told the company owner that they are fucking retards if they think they can pull this off & that they will lose all their (potential) clients if they figure that out.. or god forbid someone hacked us and stole the data.. I think this shit is also against the law..
I think it goes without saying what happened next.. called him ignorant stupid fucktard to his face and told him I ain't doing that since our company didn't even had a certificate to store the last 4 numbers.. They heard my voice over the whole firm.. we had fish-tank like offices, so they could all see me yelling at the director..
Guess who got laid off due to not being needed anymore the next day?! It was the best day of my life..so far!! Never have I been happier to lose my job!!
P.S. all that crap + test + the whole backand for analysis, the whole crm + campaign emails etc.. the client wanted done in 6 months.. O.o
P.P.S. almost shat my pants when devRant notified my I cannot post and wanted to copy the message and then everything disappeard.. thank god I have written this in the n++ xDundefined venting big time issues no documentation idiot xml security api privacy ashole crappy client rant11 -
!Dev
A bit random but I'm just really anrgy
Why the fuck. Why do mosquitoes have to exist. Fucking go outside in certain places for 5 minutes and these spawns of Satan suck me dry.
I swear these things have all come through a portal straight from hell.
And then its gotta itch like fucking mad for the next days, driving me straight up insane.
I'll be glad when I get back to my place. Climate might be cold and raining a large part of the year but fuck that's so much better than fucking getting poked by these fuckers this much again.14 -
If you can be locked out of it remotely, you don't own it.
On May 3rd, 2019, the Microsoft-resembling extension signature system of Mozilla malfunctioned, which locked out all Firefox users out of their browsing extensions for that day, without an override option. Obviously, it is claimed to be "for our own protection". Pretext-o-meter over 9000!
BMW has locked heated seats, a physical interior feature of their vehicles, behind a subscription wall. This both means one has to routinely spend time and effort renewing it, and it can be terminated remotely. Even if BMW promises never to do it, it is a technical possibility. You are in effect a tenant in a car you paid for. Now imagine your BMW refused to drive unless you install a software update. You are one rage-quitting employee at BMW headquarters away from getting stuck on a side of a road. Then you're stuck in an expensive BMW while watching others in their decade-old VW Golf's driving past you. Or perhaps not, since other stuck BMWs would cause traffic jams.
Perhaps this horror scenario needs to happen once so people finally realize what it means if they can be locked out of their product whenever the vendor feels like it.
Some software becomes inaccessible and forces the user to update, even though they could work perfectly well. An example is the pre-installed Samsung QuickConnect app. It's a system app like the Wi-Fi (WLAN) and Bluetooth settings. There is a pop-up that reads "Update Quick connect", "A new version is available. Update now?"; when declining, the app closes. Updating requires having a Samsung account to access the Galaxy app store, and creating such requires providing personally identifiable details.
Imagine the Bluetooth and WiFi configuration locking out the user because an update is available, then ask for personal details. Ugh.
The WhatsApp messenger also routinely locks out users until they update. Perhaps messaging would cease to work due to API changes made by the service provider (Meta, inc.), however, that still does not excuse locking users out of their existing offline messages. Telegram does it the right way: it still lets the user access the messages.
"A retailer cannot decide that you were licensing your clothes and come knocking at your door to collect them. So, why is it that when a product is digital there is such a double standard? The money you spend on these products is no less real than the money you spend on clothes." – Android Authority ( https://androidauthority.com/digita... ).
A really bad scenario would be if your "smart" home refused to heat up in winter due to "a firmware update is available!" or "unable to verify your subscription". Then all you can do is hope that any "dumb" device like an oven heats up without asking itself whether it should or not. And if that is not available, one might have to fall back on a portable space heater, a hair dryer or a toaster. Sounds fun, huh? Not.
Cloud services (Google, Adobe Creative Cloud, etc.) can, by design, lock out the user, since they run on the computers of the service provider. However, remotely taking away things one paid for or has installed on ones own computer/smartphone violates a sacred consumer right.
This is yet another benefit of open-source software: someone with programming and compiling experience can free the code from locks.
I don't care for which "good purpose" these kill switches exist. The fact that something you paid for or installed locally on your device can be remotely disabled is dystopian and inexcuseable.16 -
I'm going on vacation next week, and all I need to do before then is finish up my three tickets. Two of them are done save a code review comment that amounts to combining two migrations -- 30 seconds of work. The other amounts to some research, then including some new images and passing it off to QA.
I finish the migrations, and run the fast migration script -- should take 10 minutes. I come back half an hour later, and it's sitting there, frozen. Whatever; I'll kill it and start it again. Failure: database doesn't exist. whatever, `mysql` `create database misery;` rerun. Frozen. FINE. I'll do the proper, longer script. Recreate the db, run the script.... STILL GODDAMN FREEZING.
WHATEVER.
Research time.
I switch branches, follow the code, and look for any reference to the images, asset directory, anything. There are none. I analyze the data we're sending to the third party (Apple); no references there either, yet they appear on-device. I scour the code for references for hours; none except for one ref in google-specific code. I grep every file in the entire codebase for any reference (another half hour) and find only that one ref. I give up. It works, somehow, and the how doesn't matter. I can just replace the images and all should be well. If it isn't, it will be super obvious during QA.
So... I'll just bug product for the new images, add them, and push. No need to run specs if all that's changed is some assets. I ask the lead product goon, and .... Slack shits the bed. The outage lasts for two hours and change.
Meanwhile, I'm still trying to run db migrations. shit keeps hanging.
Slack eventually comes back, and ... Mr. Product is long gone. fine, it's late, and I can't blame him for leaving for the night. I'll just do it tomorrow.
I make a drink. and another.
hard horchata is amazing. Sheelin white chocolate is amazing. Rum and Kahlua and milk is kind of amazing too. I'm on an alcoholic milk kick; sue me.
I randomly decide to switch branches and start the migration script again, because why not? I'm not doing anything else anyway. and while I'm at it, I randomly Slack again.
Hey, Product dude messaged me. He's totally confused as to what i want, and says "All I created was {exact thing i fucking asked for}". sfjaskfj. He asks for the current images so he can "noodle" on it and ofc realize that they're the same fucking things, and that all he needs to provide is the new "hero" banner. Just like I asked him for. whatever. I comply and send him the archive. he's offline for the night, and won't have the images "compiled" until tomorrow anyway. Back to drinking.
But before then, what about that migration I started? I check on it. it's fucking frozen. Because of course it fucking is.
I HAD FIFTEEN MINUTES OF FUCKING WORK TODAY, AND I WOULD BE DONE FOR NEARLY THREE FUCKING WEEKS.
UGH!6 -
I've got a rant-type question:
Why would you EVER use Google Chrome?
There are a million browsers in the world, you could've used Firefox, Opera, Vivaldi, Brave, Bad Wolf, Qute, st, Epiphany etc, but you chose to uss Google Chrome.
What would be the reason you would ever choose Google Chrome over any of the million browsers, out of which many of them get the job done much better than Chrome? Okay, I get it why you might use IE or Edge, cause you might be too lazy to install any other browser or you just want the performance benefits you get with Edge which totally, most definatelly, a very big plus point for Edge.
*"Chrome has a balanced-bloat out of all browsers"*
But how tf does that matter? That doesn't even help performance wise anyways.
I can't get over the fact that I have to see/hear about 'Chrome hogging RAM' EVERYWHERE. Like, why do you even care about the god damn browser? Why is it a standard over the million other browsers that exist? Why can't the general public be educated that browsers have choices (just like phones) and you don't have to spit crap over people who don't use Chrome.
It just drives me crazy of how many people hate Chrome, and still it's a 'default' browser.
I would quote Vivaldi (the company/browser):
'A browser should adapt to you, not the other way around.'
(Disclaimer: Rant of a former Firefox, qute, st, Opera, OperaGX, Edge, and ofcourse, Chrome user. Currently in deep love with Vivaldi.)
I'm done ranting. Have a nice day!
(My first post here, if I did something wrong, let me know! I'll make sure I don't do it again!)55 -
I don't know if I'm being pranked or not, but I work with my boss and he has the strangest way of doing things.
- Only use PHP
- Keep error_reporting off (for development), Site cannot function if they are on.
- 20,000 lines of functions in a single file, 50% of which was unused, mostly repeated code that could have been reduced massively.
- Zero Code Comments
- Inconsistent variable names, function names, file names -- I was literally project searching for months to find things.
- There is nothing close to a normalized SQL Database, column ID names can't even stay consistent.
- Every query is done with a mysqli wrapper to use legacy mysql functions.
- Most used function is to escape stirngs
- Type-hinting is too strict for the code.
- Most files packed with Inline CSS, JavaScript and PHP - we don't want to use an external file otherwise we'd have to open two of them.
- Do not use a package manger composer because he doesn't have it installed.. Though I told him it's easy on any platform and I'll explain it.
- He downloads a few composer packages he likes and drag/drop them into random folder.
- Uses $_GET to set values and pass them around like a message contianer.
- One file is 6000 lines which is a giant if statement with somewhere close to 7 levels deep of recursion.
- Never removes his old code that bloats things.
- Has functions from a decade ago he would like to save to use some day. Just regular, plain old, PHP functions.
- Always wants to build things from scratch, and re-using a lot of his code that is honestly a weird way of doing almost everything.
- Using CodeIntel, Mess Detectors, Error Detectors is not good or useful.
- Would not deploy to production through any tool I setup, though I was told to. Instead he wrote bash scripts that still make me nervous.
- Often tells me to make something modern/great (reinventing a wheel) and then ends up saying, "I think I'd do it this way... Referes to his code 5 years ago".
- Using isset() breaks things.
- Tens of thousands of undefined variables exist because arrays are creates like $this[][][] = 5;
- Understanding the naming of functions required me to write several documents.
- I had to use #region tags to find places in the code quicker since a router was about 2000 lines of if else statements.
- I used Todo Bookmark extensions in VSCode to mark and flag everything that's a bug.
- Gets upset if I add anything to .gitignore; I tried to tell him it ignores files we don't want, he is though it deleted them for a while.
- He would rather explain every line of code in a mammoth project that follows no human known patterns, includes files that overwrite global scope variables and wants has me do the documentation.
- Open to ideas but when I bring them up such as - This is what most standards suggest, here's a literal example of exactly what you want but easier - He will passively decide against it and end up working on tedious things not very necessary for project release dates.
- On another project I try to write code but he wants to go over every single nook and cranny and stay on the phone the entire day as I watch his screen and Im trying to code.
I would like us all to do well but I do not consider him a programmer but a script-whippersnapper. I find myself trying to to debate the most basic of things (you shouldnt 777 every file), and I need all kinds of evidence before he will do something about it. We need "security" and all kinds of buzz words but I'm scared to death of this code. After several months its a nice place to work but I am convinced I'm being pranked or my boss has very little idea what he's doing. I've worked in a lot of disasters but nothing like this.
We are building an API, I could use something open source to help with anything from validations, routing, ACL but he ends up reinventing the wheel. I have never worked so slow, hindered and baffled at how I am supposed to build anything - nothing is stable, tested, and rarely logical. I suggested many things but he would rather have small talk and reason his way into using things he made.
I could fhave this project 50% done i a Node API i two weeks, pretty fast in a PHP or Python one, but we for reasons I have no idea would rather go slow and literally "build a framework". Two knuckleheads are going to build a PHP REST framework and compete with tested, tried and true open source tools by tens of millions?
I just wanted to rant because this drives me crazy. I have so much stress my neck and shoulder seems like a nerve is pinched. I don't understand what any of this means. I've never met someone who was wrong about so many things but believed they were right. I just don't know what to say so often on call I just say, 'uhh..'. It's like nothing anyone or any authority says matters, I don't know why he asks anything he's going to do things one way, a hard way, only that he can decipher. He's an owner, he's not worried about job security.13 -
This is gonna be depressing. You have been warned.
I am getting sick of people, moreso than I usually would. It's getting to the point where I'm feeling like I want complete isolation from people. Why do people get pissed at me then not tell me what I did wrong? How the fuck am I supposed to fix it?
One of my friends, S, has a lot of issues, and I've been friends with her for many years. I try to help her as much as I can because I actually care, but she rarely responds to any texts and disappears for days at a time. Then she comes back and says I worry too much and plays it off like it was nothing. Wtf?!
I give everyone hugs. If you want a hug, you'll get one from me no questions asked. I do this because I'm actually incredibly depressed and the hugs help me feel less lonely. I'm getting tired of caring so much for everyone else and having nobody actually care about me. S says that I care so much BECAUSE I don't want anyone else to feel that way, but it hurts like hell when I'm the only one who cares.
I don't care what people think about me in a sense that if they have a problem, fuck off. I do, however care that nobody seems to actually CARE. I HATE THIS SHIT. I'm getting to that point where I don't want to die, I just don't want to exist like this. Fuck everything at this point. Nobody ever responds to texts, they get pissed for no reason, just fuck it.9 -
Not the worst, but probably the only one I can sort of explain & not get into trouble for NDA breach..
Umm.. here it goes.. wrong id returned from db procedure, tried to do something on db with that id and got exception that the id doesn't exist. Instead of checking why the procedure returns nonexistent id, he just wrapped everything in try catch without any logs.. & of course, didn't tell anyone about this.. o.0
I know, I know, code review could have prevented this, but holy fuck..
Guy's cv had more experience than I have now, so at the time, I didn't think I'd have to check every line of code he wrote, especially not for shit like this.3 -
Sometime this year(what is left of it) or the next I will be promoted to the senior developer in charge of two schools.....
I already thought that the level of work that me and the current senior do is way too fucking much for two people. Can't really fathom all of it just being me without seeing a substantial increase in salary(there is one in place for it...but shit man I know myself and even then I am going to bitch about it repeatedly)
What sucks the most is that I can't wing it or just not give a fuck(my preferred technique) since I really like my department, my coworkers and specially my manager.
Its her fault. It really is. She is just so likeable and I really can't imagine not giving her anything other than my 100 .
And before everyone states that it should be 100 from the get go. I am not particularly fond of giving my all for a company/institution. Never.
The reason is that I have been fucked with way more times than I can count and normally feel that regardless of how much of a total badass I can be I will never see the full compensation of it. It has happened on every other job. So instead of working for the company I work for my team. If I don't like my team I don't give a fuck.
I am a good worker, was an excellent soldier and I am an even better engineer. But there is always this feeling that I am being taken advantage of that I just can't shake off everywhere that I am working at.
Even now, the reason why the lead is leaving is because of how he was fucked over during the reclassification process. It was a slap to him in the face. Now this glorious institution will lose someone that is really amazing all because they take shit for granted.
Everyone is a number, an id. As irreplaceable as we are they treated him as someone that would just take shit and be fine with it.
And trust me, where I am at, we ARE irreplaceable, this ain't cali where you flip a stone and you get 100 node/php devs. This is 0 man ground where devs are fucking wizards that no one knows exist.
Oh well.3 -
Anything I (am able to) build myself.
Also, things that are reasonably standardized. So you probably won't see me using a commercial NAS (needing a web browser to navigate and up-/download my files, say what?) nor would I use something like Mega, despite being encrypted. I don't like lock-in into certain clients to speak some proprietary "secure protocol". Same reason why I don't use ProtonMail or that other one.. Tutanota. As a service, use the standards that already exist, implement those well and then come offer it to me.
But yeah. Self-hosted DNS, email (modified iRedMail), Samba file server, a blog where I have unlimited editing capabilities (God I miss that feature here on devRant), ... Don't trust the machines nor the services you don't truly own, or at least make an informed decision about them. That is not to say that any compute task should be kept local such as search engines or AI or whatever that's best suited for centralized use.. but ideally, I do most of my computing locally, in a standardized way, and in a way that I completely control. Most commercial cloud services unfortunately do not offer that.
Edit: Except mail servers. Fuck mail servers. Nastiest things I've ever built, to the point where I'd argue that it was wrong to ever make email in the first place. Such a broken clusterfuck of protocols, add-ons (SPF, DKIM, DMARC etc), reputation to maintain... Fuck mail servers. Bloody soulsuckers those are. If you don't do system administration for a living, by all means do use the likes of ProtonMail and Tutanota, their security features are nonstandard but at least they (claim to) actually respect your privacy.2 -
Last Monday I bought an iPhone as a little music player, and just to see how iOS works or doesn't work.. which arguments against Apple are valid, which aren't etc. And at a price point of €60 for a secondhand SE I figured, why not. And needless to say I've jailbroken it shortly after.
Initially setting up the iPhone when coming from fairly unrestricted Android ended up being quite a chore. I just wanted to use this thing as a music player, so how would you do it..?
Well you first have to set up the phone, iCloud account and whatnot, yada yada... Asks for an email address and flat out rejects your email address if it's got "apple" in it, catch-all email servers be damned I guess. So I chose ishit at my domain instead, much better. Address information for billing.. just bullshit that, give it some nulls. Phone number.. well I guess I could just give it a secondary SIM card's number.
So now the phone has been set up, more or less. To get music on it was quite a maze solving experience in its own right. There's some stuff about it on the Debian and Arch Wikis but it's fairly outdated. From the iPhone itself you can install VLC and use its app directory, which I'll get back to later. Then from e.g. Safari, download any music file.. which it downloads to iCloud.. Think Different I guess. Go to your iCloud and pull it into the iPhone for real this time. Now you can share the file to your VLC app, at which point it initializes a database for that particular app.
The databases / app storage can be considered equivalent to the /data directories for applications in Android, minus /sdcard. There is little to no shared storage between apps, most stuff works through sharing from one app to another.
Now you can connect the iPhone to your computer and see a mount point for your pictures, and one for your documents. In that documents mount point, there are directories for each app, which you can just drag files into. For some reason the AFC protocol just hangs up when you try to delete files from your computer however... Think Different?
Anyway, the music has been put on it. Such features, what a nugget! It's less bad than I thought, but still pretty fucked up.
At that point I was fairly dejected and that didn't get better with an update from iOS 14.1 to iOS 14.3. Turns out that Apple in its nannying galore now turns down the volume to 50% every half an hour or so, "for hearing safety" and "EU regulations" that don't exist. Saying that I was fuming and wanting to smack this piece of shit into the wall would be an understatement. And even among the iSheep, I found very few people that thought this is fine. Though despite all that, there were still some. I have no idea what it would take to make those people finally reconsider.. maybe Tim Cook himself shoving an iPhone up their ass, or maybe they'd be honored that Tim Cook noticed them even then... But I digress.
And then, then it really started to take off because I finally ended up jailbreaking the thing. Many people think that it's only third-party apps, but that is far from true. It is equivalent to rooting, and you do get access to a Unix root account by doing it. The way you do it is usually a bootkit, which in a desktop's ring model would be a negative ring. The access level is extremely high.
So you can root it, great. What use is that in a locked down system where there's nothing available..? Aha, that's where the next thing comes in, 2 actually. Cydia has an OpenSSH server in it, and it just binds to port 22 and supports all of OpenSSH's known goodness. All of it, I'm using ed25519 keys and a CA to log into my phone! Fuck yea boi, what a nugget! This is better than Android even! And it doesn't end there.. there's a second thing it has up its sleeve. This thing has an apt package manager in it, which is easily equivalent to what Termux offers, at the system level! You can install not just common CLI applications, but even graphical apps from Cydia over the network!
Without a jailbreak, I would say that iOS is pretty fucking terrible and if you care about modding, you shouldn't use it. But jailbroken, fufu.. this thing trades many blows with Android in the modding scene. I've said it before, but what a nugget!8 -
Hey everyone, cozyplanes here with another quick excel prank i thought of.
It is called TEEST, and the technique behind is simple, but interesting. Recommend taking a look, and pranking with your friends.
The following is the README of TEEST (Text in Excel Every Single Time) in Github.
You can check the simple project here ( https://github.com/cozyplanes/teest )
Disclaimer: Do not use or modify neither the program or the source code to make software violating the law.
### How do I use it?
1. Head to https://github.com/cozyplanes/teest and download the latest release `EXE` file.
1. Windows may warn you with the missing signature. The file is a DEBUG file, so there isn't a publisher signature. You can proceed downloading anyway since it has been virus checked by the developer.
2. Type the message you want to display in the textbox.
3. Click `Save text` button.
5. To check the file, click `Cancel` button in the opened popup dialog.
### What happens?
When an MS Excel file (`.xlsx`) has been opened, by using TEEST, two files gets opened.
1. The original file user opened
2. Excel file named `message.txt` with the custom message you have written.
`message.txt` excel file will open every single time a person opens a excel file.
*In some older versions of Excel, the message may overlap with the user opened file.*
### Why does this happen?
When MS Excel program is executed, it is programmed to check the files in the following 2 folders.
- `C:\Program Files\Microsoft Office\Office[versionnumber]\XLSTART`
- `C:\Users\%username%\AppData\Roaming\Microsoft\Excel\XLSTART`
In normal conditions, there is no file in those folders (or the folders doesn't exist at all) but when you use TEEST and click `Save text` button, it saves `message.txt` file in the folders above. From MS Excel is executed again, it will find out there is a file in the folders above, so it will show those text files in Excel.
### Where is this technique used?
There should be a lot of software using this trick, but it is widely known for ransomwares such as `GandCrab` and `TeslaCrypt` displaying decryption methods in MS Excel by this trick.
### How can I disable it?
1. Open TEEST again.
2. Click `Save text` button and click `Cancel` in the following popup.
3. Delete `message.txt` file in the opened explorer.
### LICENSE
This software is under the MIT License. Refer to the `LICENSE` file for more information.
### Contact
<cozyplanes@tuta.io>
Spam/Ads not allowed. Please only send questions or concerns about the software. It may take up to 48 hours to get a reply.13 -
So fed up of existing.
I am not saying that I am suicidal, but if a truck was accelerating towards me, I would not bother to move.
Even though I consider myself decently successful in life in terms of career, friendship, and to some extent, family. I strongly feel that I am in a very wrong environment.
I have zero trust, safety, love, and nurturing care from my parents and others around me.
I lack physical privacy, psychological safety, and emotional void.
My hypothesis is that if I was in a better environment with slightly lesser responsibilities and needs better met, I could have achieved wonders. With that, who wouldn't?
Why do we exist? Just to suffer?28 -
Everyone and their dog is making a game, so why can't I?
1. open world (check)
2. taking inspiration from metro and fallout (check)
3. on a map roughly the size of the u.s. (check)
So I thought what I'd do is pretend to be one of those deaf mutes. While also pretending to be a programmer. Sometimes you make believe
so hard that it comes true apparently.
For the main map I thought I'd automate laying down the base map before hand tweaking it. It's been a bit of a slog. Roughly 1 pixel per mile. (okay, 1973 by 1067). The u.s. is 3.1 million miles, this would work out to 2.1 million miles instead. Eh.
Wrote the script to filter out all the ocean pixels, based on the elevation map, and output the difference. Still had to edit around the shoreline but it sped things up a lot. Just attached the elevation map, because the actual one is an ugly cluster of death magenta to represent the ocean.
Consequence of filtering is, the shoreline is messy and not entirely representative of the u.s.
The preprocessing step also added a lot of in-land 'lakes' that don't exist in some areas, like death valley. Already expected that.
But the plus side is I now have map layers for both elevation and ecology biomes. Aligning them close enough so that the heightmap wasn't displaced, and didn't cut off the shoreline in the ecology layer (at export), was a royal pain, and as super finicky. But thankfully thats done.
Next step is to go through the ecology map, copy each key color, and write down the biome id, courtesy of the 2017 ecoregions project.
From there, I write down the primary landscape features (water, plants, trees, terrain roughness, etc), anything easy to convey.
Main thing I'm interested in is tree types, because those, as tiles, convey a lot more information about the hex terrain than anything else.
Once the biomes are marked, and the tree types are written, the next step is to assign a tile to each tree type, and each density level of mountains (flat, hills, mountains, snowcapped peaks, etc).
The reference ids, colors, and numbers on the map will simplify the process.
After that, I'll write an exporter with python, and dump to csv or another format.
Next steps are laying out the instances in the level editor, that'll act as the tiles in question.
Theres a few naive approaches:
Spawn all the relevant instances at startup, and load the corresponding tiles.
Or setup chunks of instances, enough to cover the camera, and a buffer surrounding the camera. As the camera moves, reconfigure the instances to match the streamed in tile data.
Instances here make sense, because if theres any simulation going on (and I'd like there to be), they can detect in event code, when they are in the invisible buffer around the camera but not yet visible, and be activated by the camera, or deactive themselves after leaving the camera and buffer's area.
The alternative is to let a global controller stream the data in, as a series of tile IDs, corresponding to the various tile sprites, and code global interaction like tile picking into a single event, which seems unwieldy and not at all manageable. I can see it turning into a giant switch case already.
So instances it is.
Actually, if I do 16^2 pixel chunks, it only works out to 124x68 chunks in all. A few thousand, mostly inactive chunks is pretty trivial, and simplifies spawning and serializing/deserializing.
All of this doesn't account for
* putting lakes back in that aren't present
* lots of islands and parts of shores that would typically have bays and parts that jut out, need reworked.
* great lakes need refinement and corrections
* elevation key map too blocky. Need a higher resolution one while reducing color count
This can be solved by introducing some noise into the elevations, varying say, within one standard div.
* mountains will still require refinement to individual state geography. Thats for later on
* shoreline is too smooth, and needs to be less straight-line and less blocky. less corners.
* rivers need added, not just large ones but smaller ones too
* available tree assets need to be matched, as best and fully as possible, to types of trees represented in biome data, so that even if I don't have an exact match, I can still place *something* thats native or looks close enough to what you would expect in a given biome.
Ponderosa pines vs white pines for example.
This also doesn't account for 1. major and minor roads, 2. artificial and natural attractions, 3. other major features people in any given state are familiar with. 4. named places, 5. infrastructure, 6. cities and buildings and towns.
Also I'm pretty sure I cut off part of florida.
Woops, sorry everglades.
Guess I'll just make it a death-zone from nuclear fallout.
Take that gators!5 -
TL:DR
Why do so shitty "API"s exist that are even harder to write than proper ones? D:
Trying to hack my venilation at home.
This API is so horrible D:
The API is only based on POST requests no matter if you want to write values or get values and the response only contains XML with cryptic values like:
<?xml version="1.0" encoding="UTF-8"?>
<PARAMETER>
<LANG>de</LANG>
<ID>v01306</ID>
<VA>00011100000000000000000010000001</VA>
<ID>v00024</ID>
<VA>0</VA>
<ID>v00033</ID>
<VA>2</VA>
<ID>v00037</ID>
<VA>0</VA>
Also there are multiple API routes like
POST /data/werte1.xml
POST /data/werte2.xml
POST /data/werte3.xml
POST /data/werte4.xml
And actually the real API route is only given in the request body and not in the path.
Why is this so shitty? D:<
Btw in terms of security this is also top notch. It just globally saves if one computer sends the login password.
I mean why even ask for a password then? D:
That made me end up with a cronjob to send a login request so I don't have to login on any device.
PS:
You see, great piece of German engineering.3 -
dev, ~boring
This is either a shower thought or a sober weed thought, not really sure which, but I've given some serious consideration to "team composition" and "working condition" as a facet of employment, particularly in regard to how they translate into hiring decisions and team composition.
I've put together a number of teams over the years, and in almost every case I've had to abide by an assemblage of pre-defined contexts that dictated the terms of the team working arrangement:
1. a team structure dictated to me
2. a working temporality scheme dictated to me
3. a geographic region in which I was allowed to hire
4. a headcount, position tuple I was required to abide by
I've come to regard these structures as weaknesses. It's a bit like the project management triangle in which you choose 1-2 from a list of inadequate options. Sometimes this is grounded in business reality, but more often than not it's because the people surrounding the decisions thrive on risk mitigation frameworks that become trickle down failure as they impose themselves on all aspects of the business regardless of compatibility.
At the moment, I'm in another startup that I have significantly more control over and again have found my partners discussing the imposition of structure and framework around how, where, why, who and what work people do before contact with any action. My mind is screaming at me to pull the cord, as much as I hate the expression. This stems from a single thought:
"Hierarchy and structure should arise from an understanding of a problem domain"
As engineers we develop processes based on logic; it's our job, it's what we do. Logic operates on data derived from from experiments, so in the absence of the real we perform thought experiments that attempt to reveal some fundamental fact we can use to make a determination.
In this instance we can ask ourselves the question, "what works?" The question can have a number contexts: people, effort required, time, pay, need, skills, regulation, schedule. These things in isolation all have a relative importance ( a weight ), and they can relatively expose limits of mutual exclusivity (pay > budget, skills < need, schedule < (people * time/effort)). The pre-imposed frameworks in that light are just generic attempts to abstract away those concerns based on pre-existing knowledge. There's a chance they're fine, and just generally misunderstood or misapplied; there's also a chance they're insufficient in the face of change.
Fictional entities like the "A Team," comprise a group of humans whose skills are mutually compatible, and achieve synergy by random chance. Since real life doesn't work on movie/comic book logic, it's easy to dismiss the seed of possibility there, that an organic structure can naturally evolve to function beyond its basic parts due to a natural compatibility that wasn't necessarily statistically quantifiable (par-entropic).
I'm definitely not proposing that, nor do I subscribe to the 10x ninja founders are ideal theory. Moreso, this line of reasoning leads me to the thought that team composition can be grown organically based on an acceptance of a few observed truths about shipping products:
1. demand is constant
2. skills can either be bought or developed
3. the requirement for skills grows linearly
4. hierarchy limits the potential for flexibility
5. a team's technically proficiency over time should lead to a non-linear relationship relationship between headcount and growth
Given that, I can devise a heuristic, organic framework for growing a team:
- Don't impose reporting structure before it has value (you don't have to flatten a hierarchy that doesn't exist)
- crush silos before they arise
- Identify needed skills based on objectives
- base salary projections on need, not available capital
- Hire to fill skills gap, be open to training since you have to pay for it either way
- Timelines should always account for skills gap and training efforts
- Assume churn will happen based on team dynamics
- Where someone is doesn't matter so long as it's legal. Time zones are only a problem if you make them one.
- Understand that the needs of a team are relative to a given project, so cookie cutter team composition and project management won't work in software
- Accept that failure is always a risk
- operate with the assumption that teams that are skilled, empowered and motivated are more likely to succeed.
- Culture fit is a per team thing, if the team hates each other they won't work well no matter how much time and money you throw at it
Last thing isn't derived from the train of thought, just things I feel are true:
- Training and headcount is an investment that grows linearly over time, but can have exponential value. Retain people, not services.
- "you build it, you run it" will result in happier customers, faster pivoting. Don't adopt an application maintenance strategy
/rant2 -
Right, that's fucking it. Enough. I'm all for learning new technologies, frameworks, and development protocols, but my time on this earth is limited and at the end of the day if I'm having to spend DAYS AND FUCKING DAYS just scouring through obscure forum posts because the documentation is shit and just hitting ONE FUCKING PROBLEM AFTER ANOTHER then there comes a point at which the time investment simply isn't worth it. I HATE throwing in the towel because some FUCKING CUNT code problem has got the better of me, but fucking sense must prevail here.
Laravel fucking Mix. Do any any of you use this shit on Windows? Because I take my fucking hat off to you. I'm done with it.
Oh, so your server uses 'public_html' instead of 'public' does it? Well, of course you can just set
mix.setPublicPath('public_html'); then can't you?
No, you can't. Why? Because fuck you, that's why. Not only do you have to hard-code your fucking public directory into each specified path, additionally you have to set
mix.setPublicPath('./');
Why? Because fuck you, that's why. It took me the best part of two days to discover that little nugget of information, buried at the bottom of some obscure corner of the internet in a random github issue thread. Fuck off.
Onto next problem. Another 5 hours invested to extract some patchy solution that I'm not at all happy with.
Rinse, repeat.
Make it work with BrowserSync by wrapping your assets like so:
<link rel="stylesheet" href="{{ mix('/build/css/main.css') }}">
Oh oh oh but "The Mix manifest does not exist"... despite a fresh install of Laravel 5.6 and all relevant node modules installed... follow some other random Github thread with a back and forth of time-consuming suggestions for avenues of experimentation, with no clear solution.
Er no, fuck off. I'm going back to Grunt and maybe I'll try Webpack/Mix in another year or two when there's actually some clear answers, but as it stands this a wild goose chase into a fucking black-hole and I've got better things to do with my precious time. Go die.5 -
I am so much stunned i cannot form a sentence on what to say. Lost 3 days trying to fix a bug on why socket.io was connecting to backend TWICE per user. I cannot fucking comprehend this. Backend works fine because via postman it doesnt connect twice. Everything works fine. 72 fucking hours waste d of my life just to find out i had to change
<React.StrictMode>
<App />
</React.StrictMode>
Into
<App />
When i tell you my jaw fucking dropped it fucking did. And it does not drop often or that easily for me. What the FUCK is react strict mode???? FUCK react. I fucking hate this piece of garbage framework. I even like nextjs better. React💩💩💩💩💩💩💩💩💩💩motberfucker WHY is strict mode fucking my code what use does it have who gives a shit why does it have anything to do with websocket connection FUCK react 💩💩💩💩💩💩💩💩💩 how does this piece of camel turd have anything to do with duplicate connection 💩💩💩💩MFKKCER this garbage doesnt exist in my beautiful angular or nextjs PLS why this cancer has to be so headaching i knew I'll get FUCKED if i dont go over a detailed course learning react from scratch. Now im suffering. Learning this garbage the hard way FUCK off4 -
Was just reading some of the OpenVPN scripts to renew a certificate where I forgot to source the vars file first (apparently OpenVPN stores those in a separate file that you always have to source first, and I tend to forget it sometimes).
Reading the revoke-full script that OpenVPN provides, it's just bash so I can read it no problem. But traversing through it and trying to understand it... Horrible! There's a test file in $RT named keys/revoke-test.pem. It's not used anywhere in OpenVPN for anything useful as far as I'm aware. The script however - the script that's running on a production server! - attempts to remove this file. It doesn't exist. Test files do (or at least should) not exist in production. They're not supposed to be there.
It exports empty variables. Some of them are set by the sourced vars file, some aren't. Not entirely sure why it's exporting variables as empty when they're uninitialized, or why it doesn't just unset the ones that are initialized.
And finally it goes ahead and revokes the key file that I'm actually concerned about through regular OpenSSL and verifies it.
Not to mention that the lack of the sourced vars file, which admittedly I should think about in the current status quo, if it *always* needs to be sourced anyway... Why doesn't the script do that itself then? One less thing to go wrong. But hey, proper design?
Gore. I don't have any other words for it.
And before anyone tells me that I should go and fix it if I'm so worried about it. Remember, I am not a developer. That's the job of the developers that made this in the first place.10 -
sales-managers: How long do you need to implement feature X ?
software-dev: Hmmm, that's nothing we have in our default-packages ... could be nasty, because it won't work without feature Y, which also does not exist in the current version 3 of our system.
I need to investigate this issue.
... 2 days later:
software-dev: This is really a nasty problem - to make X work, we've to reimplement Y for our system version 3, but this won't work with feature Z.
If we do this, it may take several weeks.
sales-manager: we need to go live in 2 months.
software-dev: might work.
------
1 week before go-live:
sales-manager: The customer saw us testing feature X. He does not like it. Could we just do it in ... blabla ... this way?
software-dev: This would work out of the box with feature Z, yes - we've to remove feature Y and X for that. But be warned - this might work next week without testing only.
sales-mamanger: do it now!
day of go live:
The customer tried the new feature X - it won't work.
software-dev: But it's not there, was removed, instead he has to use feature Z.
...
sales-guy comes back: He does not like it.
software-dev: why not? its working!
sales-guy: Yes, but he still wants it to work like feature X as he ordered.
software-dev: according to the specs, its exactly what he ordered. look at that: (showing the general specifications of project, showing feature Z).
...
sales-guy: The customer did not review this new document since last week.... Its still feature X
...
dev: really? why? I sent that version to you the day, he said, he doesn't like feature X, and you said I've to change that just urgently.
sales-guy: Please switch back to the version with X of last week. - could you. please ?
me: This won't work, because the other colleagues already finished their stuff on that currently running system - we'll lose all the optimations we've done to make this and other stuff work.
----- FAIL ------- NEVER DO ANYTHING WITHOUT SIGNATURE OF THE CUSTOMER !!!
One week onsite and rescheduled go-live is just so-what expensive.
Today (some weeks later) ... I saw someone else sitting in sales-guys office.1 -
Working on a team to take functionality from the latest version of an old executable and put it into a new web-based app.
Coworker: I can't get the results to match so I'll just change the options I'm using in the original program until they match.
Me: That's not how this works. That's not how any of this works. Same options on both source and new app, and you should get identical results. Otherwise, there is a defect.
I walk over to look at what CW set up.
M: "Why do you have this box ticked? That option doesn't even exist in the new version."
CW: I don't know. It was there?
M: (trying not to lose my cool, sets up options the way they are supposed to be) This is actually a pretty simple program. It just queries the DB, so we have to make sure the queries and results are the same.
CW: (runs it) Still doesn't match.
M: What version of the source app are you using? Make sure it's the latest.
CW: I can't tell. There is no help/about menu.
At this point, I kinda want to quit and live in a cave.
M: You don't need that. Check the executable in Windows Explorer.
CW: What do you mean?
At this point, I'm sure I look like Anger from Inside Out. I show them how to do it (right click file, properties, etc), wondering how they got this far in their career without knowing how to do the simplest things.
M: (surprised and irritated) This... isn't the current version. It's two versions old.
CW: Well, I couldn't get the newest version to return the results that matched the test cases, so I used the version that did...
M: You can't do th... Why wou... How is that acc... (turns around and walks out to tell the manager he hired a moron)2 -
Been working on a new project for the last couple of weeks. New client with a big name, probably lots of money for the company I work for, plus a nice bonus for myself.
But our technical referent....... Goddammit. PhD in computer science, and he probably. approved our project outline. 3 days in development, the basic features of the applications are there for him to see (yay. Agile.), and guess what? We need to change the user roles hierarchy we had agreed on. Oh, and that shouldn't be treated as extra development, it's obviously a bug! Also, these features he never talked about and never have been in the project? That's also a bug! That thing I couldn't start working on before yesterday because I was still waiting the specs from him? It should've been ready a week ago, it's a bug that it's not there! Also, he notes how he could've developes it within 40 minutes and offered to sens us the code to implement directly in our application, or he may even do so himself.... Ah, I forgot to say, he has no idea on what language we are developing the app. He said he didn't care many times so far.
But the best part? Yesterday he signales an outstanding bug: some data has been changed without anyone interacting. It was a bug! And it was costing them moneeeeey (on a dev server)! Ok, let's dig in, it may really be a bug this time, I did update the code and... Wait, what? Someone actually did update a new file? ...Oh my Anubis. HE did replace the file a few minutes before and tried to make it look like a bug! ..May as well double check. So, 15 minutes later I answer to his e-mail, saying that 4 files have been compromised by a user account with admin privileges (not mentioning I knee it was him)... And 3 minutes later he answered me. It was a message full of anger, saying (oh Lord) it was a bug! If a user can upload a new file, it's the application's fault for not blocking him (except, users ARE supposed to upload files, and admins have been requestes to be able to circumvent any kind of restriction)! Then he added how lucky I was, becausw "the issue resolved itself and the data was back, and we shouldn't waste any more yime.on thos". Let's check the logs again.... It'a true! HE UPLOADED THE ORIGINAL FILES BACK! He... He has no idea that logs do exist? A fucking PhD in computer science? He still believes no one knows it was him....... But... Why did he do that? It couldn't have been a mistake. Was he trying to troll me? Or... Or is he really that dense?
I was laughing my ass of there. But there's more! He actually phones my boss (who knew what had happened) to insult me! And to threaten not dwell on that issue anymore because "it's making them lose money". We were both speechless....
There's no way he's a PhD. Yet it's a legit piece of paper the one he has. Funny thing is, he actually manages to launch a couple of sort-of-nationally-popular webservices, and takes every opportunity to remember us how he built them from scratch and so he know what he's saying... But digging through google, you can easily find how he actually outsurced the development to Chinese companies while he "watched over their work" until he bought the code
Wait... Big ego, a decent amount of money... I'm starting to guess how he got his PhD. I also get why he's a "freelance consultant" and none of the place he worked for ever hired him again (couldn't even cover his own tracks)....
But I can't get his definition of "bug".
If it doesn't work as intended, it's a bug (ok)
If something he never communicated is not implemented, it's a bug (what.)
If development has been slowed because he failed to provide specs, it's a bug (uh?)
If he changes his own mind and wants to change a process, it's a bug it doesn't already work that way (ffs.)
If he doesn't understand or like something, it's a bug (i hopw he dies by sonic diarrhoea)
I'm just glad my boss isn't falling for him... If anything, we have enough info to accuse him of sabotage and delaying my work....
Ah, right. He also didn't get how to publish our application we needes access to the server he wantes us to deploy it on. Also, he doesn't understand why we have acces to the app's database and admin users created on the webapp don't. These are bugs (seriously his own words). Outstanding ones.
Just..... Ffs.
Also, sorry for the typos.5 -
Weeks ago, a change went into production. For some reason, we can't implement our own changes or create new databases in production, we have to have a whole different department do it. This would be great except for one thing:
THEY CAN'T THINK FOR THEMSELVES. I've had to tell them how to run scripts I wrote. I've had to tell them how to fix problems that arise.
Back to that script ran three weeks ago or so. It didn't add permissions to allow me, the system and application developer to see the stored procedure, much less run it. Application can't run it. Thankfully the application works without it.
Fast forward to tonight. My change that I'm attempting to implement is the creation of the stored procedure, because nothing could see it, I assumed it didn't exist... reasonable, right? Database folks tells me it exists. They then tell me they can't give me nor the application permissions because it doesn't ask for it in the change plan.
Excuse me.... WHAT FUCKING WORLD DOES IT MAKE SENSE TO CREATE SOMETHING AND HIDE IT FROM THE CREATOR LET ALONE THE APPLICATION SO IT CAN'T USE IT?! FUCKING THINK. WHY WOULD I WASTE MY FUCKING TIME TO TALK TO YOU OFFSHORE PIECES OF SHIT AT 10PM WHEN I'D RATHER PLAY VIDEO GAMES.
I'm so fucking done with enterprises. Someone with reasonable job security at a startup, please hire me. You will probably pay me more fucking money than this company does anyway.
Now on to my second change of the night. Thankfully I don't have to rely on anyone outside of me... so I won't be wasting my fucking time. -
I really hate PHP frameworks.
I also often write my own frameworks but propriety. I have two decades experience doing without frameworks, writing frameworks and using frameworks.
Virtually every PHP framework I've ever used has causes more headaches than if I had simply written the code.
Let me give you an example. I want a tinyint in my database.
> Unknown column type "tinyint" requested.
Oh, doctrine doesn't support it and wont fix. Doctrine is a library that takes a perfectly good feature rich powerful enough database system and nerfs it to the capabilities of mysql 1.0.0 for portability and because the devs don't actually have the time to create a full ORM library. Sadly it's also the defacto for certain filthy disgusting frameworks whose name I shan't speak.
So I add my own type class. Annoying but what can you do.
I have to try to use it and to do so I have to register it in two places like this (pseudo)...
Types::add(Tinyint::class);
Doctrine::add(Tinyint::class);
Seems simply enough so I run it and see...
> Type tinyint already exists.
So I assume it's doing some magic loading it based on the directory and commend out the Type::add line to see.
> Type to be overwritten tinyint does not exist.
Are you fucking kidding me?
At this point I figure out it must be running twice. It's booting twice. Do I get a stack trace by default from a CLI command? Of course not because who would ever need that?
I take a quick look at parent::boot(). HttpKernel is the standard for Cli Commands?
I notice it has state, uses a protected booted property but I'm curious why it tries to boot so many times. I assume it's user error.
After some fiddling around I get a stack trace but only one boot. How is it possible?
It's not user error, the program flow of the framework is just sub par and it just calls boot all over the place.
I use the state variable and I have to do it in a weird way...
> $booted = $this->booted;parent::boot();if (!$booted) {doStuffOnceThatDependsOnParentBootage();}
A bit awkward but not life and death. I could probably just return but believe or not the parent is doing some crap if already booted. A common ugly practice but one that works is to usually call doSomething and have something only work around the state.
The thing is, doctrine does use TINYINT for bool and it gets all super confused now running commands like updates. It keeps trying to push changes when nothing changed. I'm building my own schema differential system for another project and it doesn't have these problems out of the box. It's not clever enough to handle ambiguous reverse mappings when single types are defined and it should be possible to match the right one or heck both are fine in this case. I'd expect ambiguity to be a problem with reverse engineer, not compare schema to an exact schema.
This is numpty country. Changing TINYINT UNSIGNED to TINYINT UNSIGNED. IT can't even compare two before and after strings.
There's a few other boots I could use but who cares. The internet seems to want to use that boot function. There's also init stages missing. Believe it or not there's a shutdown and reboot for the kernel. It might not be obvious but the Type::add line wants to go not in the boot method but in the top level scope along with the class definition. The top level scope is run only once.
I think people using OOP frameworks forget that there's a scope outside of the object in PHP. It's not ideal but does the trick given the functionality is confined to static only. The register command appears to have it's own check and noop or simply overwrite if the command is issued twice making things more confusing as it was working with register type before to merely alias a type to an existing type so that it could detect it from SQL when reverse engineering.
I start to wonder if I should just use columnDefinition.
It's this. Constantly on a daily basis using these pretentious stuck up frameworks and libraries.
It's not just the palava which in this case is relatively mild compared to some of the headaches that arise. It's that if you use a framework you expect basic things out of the box like oh I don't know support for the byte/char/tinyint/int8 type and a differential command that's able to compare two strings to see if they're different.
Some people might say you're using it wrong. There is such a thing as a learning curve and this one goes down, learning all the things it can't do. It's cripplesauce.12 -
I turned down another women who was absolutely, 100% flirting with me, because, from what I can gather, she was trying to get out of a relationship with her current boyfriend, a military veteran.
I outright ignored her and then when that failed, I made our work relationship 100% about that, work.
Even though I'm friendly with everyone else.
I'm an absolute shit, aren't I? I feel genuinely bad.
I'm not sure if I did it out of a misplaced sense of honor for a dude who obviously has some ptsd, or because I don't feel like I'm able to connect with anyone anymore.
I feel like I'm alone in this world. Not, like, sexually or anything, but more like I don't want to burden anyone with the shit I'm going through. Like a man on a mission on a sinking ship, and it would be wrong to let anyone else on board.
Like a one-man shit-show, all singing, all dancing, driven to one end, with one purpose. And it'd be wrong to let anyone get attached, or invite anyone else in.
Fuck I got so many irons in the fire. I have an ARG in the works, a full game, a social platform that the code and marketing plan is laid out and I'm saving money for, two more games already planned, plus spending an in-ordinate amount of time with my father and sister and mother as they deal with the loss of my sister, plus volunteering to help the homeless, plus working, plus studying.
I barely sleep.
It's just me. I'm like a cruise missile heading to one destination, to some final destination, I just don't know what. And I don't let anyone in, because then they might see how fucking crazy I am, and how crazy my life is, and how crazy my goals are. Thats not a humblebrag. Thats more of a "wholly shit, I'm so in over my head, I'm fucking drowning" type thing. But I'm not giving up, I'm just going deeper.
And it feels like drowning but somehow I'm okay with it. Like I've passed the crux of loneliness, and settled for going for it all, alone, shooting out of orbit, and saying "fuck it all' to everything and everyone. They say "if you got everything you wanted, everything you wished for, you'd wish you hadn't, which is why god isn't a genie". And lately I've been thinking god doesn't exist, or doesn't care, because he's left it all up to me, and I've fucked it up good and proper, and am on my way to either nothing, or everything I've ever wanted.
Is this what happiness feels like? Or suicide?
I don't know. I mean I really don't. I don't want to die. I think I could stop existing and be okay with it. Having achieved at least a modicum of understanding the universe, at least accomplished something small but meaningful.
Or maybe I'm delusional, driven mad with the full comprehension of human floundering against a meandering existence.
I don't fucking know.
I feel like I'm spinning my wheels, so much, that even two weeks feels like a fucking eternity. I don't sleep anymore. When I do, I escape into my dreams, where I can fly, or float, and the people in my dreams tell me I'm living in the matrix and I believe them..in my dreams. Feel it even.
And when I wake up, the feeling persists. Leaves me in wonderland, for hours after waking.
And I have visions, of going homeless, like some buddha, all the time, and then I say "wake up J, you're fucking crazy! You want to go be some couch surfing homeless bum living off other's good graces? get the fuck outa here! While others suffer, schlep it at whatever job they work, day in day out, toil. In this economy? In this inflation? What a dishonest way of thinking. What a dishonest way of dreaming."
And yet I daydream. Because its the only escape there is from all the world has become.
And I bring joy to others, earnestly, vicariously, because its the closest joy I can feel, when I've become numb.
It is this quasi-permanent sense of alienation that permeates my whole world, a sort of invisible force field that separates me from others, even as I reach out to understand them, to comfort them, to smooth the corners off their world, so that they don't become like I have, something not entirely human, but...other.
Often when we meditate, long and hard enough,
at the center that emerges, at the center of ourselves, we find an abyss, a whole universe, devoid of anything, a perfect silence, mirroring back the cosmos, and other people. Observing, silent, irreducible, implacable.
Sometimes I feel like I don't exist. Sometimes I think others don't exist.
Very often I feel like nothing is real. And that I am playing some sort of game. Not like a video game per se, but that there is a bigger pattern, a hidden pattern to it all, just out of reach, and I'm reaching for it but understanding eludes me.
Not that the universe has made me for some special purpose, but merely that the universe observes me specifically, for no special purpose, other than that it can, whatever trivialities may impede or push forward my life.
As if the universe were bored.24 -
i hate this fucking life so much why do i have to fucking exist WHAT IS THE FUCIJG POINT OF DOING SOMETHING YOU HATE WITH PASSION DOIMG AND NOT DOING WHAT U WANT TO BE DOING I DO NOT UNDERSTA D THIS LIFE
THIS existence/life is the Biggest BITCH i have ever fucking met FUCK YOU
CANNOT BE SUCCESSFUL DOING SOMETHING YOU HATE.
there was a philosopher who said "this life is pain and the only purpose of living is to reduce this pain as much as possible in order to be more happy" WHAT THE FCUK THAT IS MORE DEPRESSING THAN HAVING A FKIG CANCER
WHY DONT I JUST GET SOME INCURABLE DISEASE INSTEAD OF LIVING? OR GET HIT BY A CAR?
WhAT
I AM SO FUCKING NOT IN THE MOOD FOR ANYTHING
WHAT
as i was writing this rant by coming back from ffffffftffffffffffFFFfFFFfFFFFCKING college i went into a bus and there was a woman in front of me with an english text on the back of her shirt saying "she believed she could so she did. she designed a life she loved." WHAT
YO WHAT
THIS WAS PUT IN FRONT OF MY FACE AT RANDOM SPONTANEOUSLY
DID GOD JUST GIVE ME A FKIG SIGN OR SOMETHING?? "MY LIFE SUCKS RIGHT NOW BUT I CAN TURN IT INTO THE LIFE I LOVE" IS THAT WHAT A HIGHER SPIRITUAL BEING IS TRYING TO TELL ME RIGHT NOW???
WHAT IS THIS
HOW DO I FEEL RIGJT NOW
I DONT GET IT
MHhhhhhhhhhhhhhhh hh9 -
i often do tech support in chat rooms in my free time (because i like spreading good will,) so here's a tech horror story
"""
"hey, can you help me fix something?"
sure?
"so i dug my old XP machine out of my closet and replaced the bad Ethernet card with a different one and when i plug in the ethernet cable the PC bluescreens."
# oboi
did you install the drivers? Sounds like it needs drivers
"no"
then install them
"no"
why not?
"it doesn't need any"
why do you say that?
"it said \"This device is set up and ready to use.\" in the balloon in the corner"
it has generic drivers to deal with devices before the real drivers can be found
"shouldn't they work?"
some devices need the extra support provided by the intended drivers, so the generic ones cause issues in those cases
"ok, well, where do I find them?"
do you have a model number?
"yes, it's " # scrubbed for... privacy? i dunno
gimme a few minutes
<insert 45 minutes of aggressive Googling for (str(DEVICE_MODEL_NUMBER) + " xp drivers")>
alright i have the drivers, go here:
# again, removed for... idk.
"they don't work"
# oh here we go
why not?
"These drivers are not compatible with your system architecture."
what version of XP are you using?
"XP Pro"
x86 or x64?
"x64"
# fucking...
ok so this is gonna get real complicated real fast: use x86 XP or I can't help you, none exist for x64 XP.
"oh ok"
<User left the IRC channel.>
"""4 -
[rant]
From the bottom of my heart I swear the thing that frustrates me the most in this industry is over complicating simple things. Making simple ideas overly convoluted makes me cry.
I mean why have a dedicated Windows server, that you login to via Windows Remote desktop, just to edit a Word document in a bespoke program that is running running Microsoft Word inside it anyway. Why not just just Word? Why spend a year developing such a system for a problem that simply doesn'y exist.
I asked what benefit this has over me just editing a Word file myself on my laptop. In short, their answer was none.
The other apparent benefit to the system was the ability to jump to specific parts of the document. Well after showing them how to do a table of contents, they saw no need for their existing system.
I'm amazed sometimes how simple ides get discussed to death, unnecessary mammoth systems get built, that ultimately solve a problem that does not exist.
[/rant]3 -
Yet another day at my company, Im rewriting some old code for client (rewriting old, php 4 system for vindications managment) and you know the moment when you are focused and someone comes to you to absolutely ruin your focus. Fine, whatever. Oh, for fuck sake. Again dev is doing as support becouse one moron with second can't login into zimbra admin panel and add fucking mailbox. I show them exacly how they login, remind them they are admins too, slowly show them, so you click "manage" than you click that gear icon and than you click "new", fill in email address and password. As simple as 1-2-3. Okay, fuck it, time to go for a cig. I just finish up few lines and stand, grab my vape and start walking towards door. In door I find my buddy with 2 random people. He told me that they are interns and that I should show them some basics and stuff around that. Oh god, fuck my life. If anything, Im definitely very bad teacher, mainly becouse I often have problems with saying what I mean in the way that somebody actually understans and knows what I am trying to say. Whatever. Fuck it all. I grab two of our old laptops that nobody used in like a year or so, and first thing I quickly figure out, is that one day for some what the fuck reason I dont even dont bothered to remember I installed Arch on both while I dont usually use Arch. I just needed it for some specific reason. Whatever. So I guess I will need to upgrade fucking system. Our network isn't really great so that was like... hour or so. In the meantime I figured what they know about coding in general etc, and holly shit. One of them (there was boy and girl), girl, apparently never ever in her life even touched code. Well... fuck. Why am I wasting my time? Becouse there was some programme or some shit like that... Someone could tell me before so I could mentally prepare.. fuck it. whatever. So while laptops are doing their pacman thing, I sit with them and slowly start to explain based on my machine some really basic concepts. Second guy actually had some expirience, he knew how to make some really really basic logic and stuff, so he had another world of problems, becouse it was PHP and, as we all know, everyone hates PHP, and... yeah.. You can probably imagine his approach. Yes, you get user input in super global array. I really wanted to say "Now shut the fuck up and write that fucking $_POST".
hour or so passed, I was close to giving up to not let my anger rise (im not really good teacher... I mentioned it. I suck at teaching others) but luckly machines upgraded. He wanted to use visual studio code, she didnt care too much, so I installed phpstorm in trial mode. whatever. Since that's linux and they were not comfortable with that, I walked them through installing LAMP stack, and when finally it started to look like LAMP stack, I requested them to google how to install xdebug, becouse xdebug is very usefull and googling skill is your best weapon on that field. I go for cig, come back and what I see boiled me a little bit. The girl was stuck looking at github page randomly looking through xdebug source code and idk... hoping for miracle (she admited she thought there will be instructions somewhere) and the guy was in good place, xdebug has a place to paste your phpinfo() for custom instructions. But it didn't work for him, he claims that wizzard told him it cant help him.. hmm intresting, you are sure you pasted in phpinfo? yes, he is sure. Okay, show me.
Again mindblown how someone can have problems with reading.
so his phpinfo() looked like that:
```<?php
phpinfo();```
I highlighted on the page the words "output of phpinfo". He somehow didn't see it or something. He didnt know, he thought that he needs to put in phpinfo so he did. OMG.
Finally, I figured out I can workaround my intern problem, and I just briefly shown them php.net, how documentation looks, said to allways google in english, if he uses tutorial to read whole fucking thing, not just some parts of it, and left them with simple task, that took them whole day and at which they ultimately failed.
To make 3 buttons labeled "1" "2" "3" and if someone presses one of them, remember in session that they pressed it and disallow pressing other ones.
Never fucking again interns. Especially those who randomly without apparent reason almost literally just spawn in front of you and here, its your fucking problem now.
Fuck it, I have some time to get back to my stuff. Time is running so lets not waste it.
After around 15 minutes my one of my superiors comes in and asks me if I can go on meeting with him and other superior. My buddy goes with us, and next 3 hours I was basically explaining that you cannot do some things (ie. know XYZ happened without any source of information) in code, and I can't listen for callbacks from ABC becouse it wont send anyc cuz in their fucking brilliant idea ABC can't even know that this script would even exist, not to mention it wants callbacks.
Sometimes I hate my job.4 -
Yeah, handouts create lazy people I'm not impressed with
You want something in life, then why don't you go and get it?
Actions speak louder than words do, it's pretty quiet, isn't it?
Look at the world we live in, defined by comment sections
Surround yourself with people that challenge how you think
Not people that nod their head and act like they agree
Those people will cut you open just to watch you bleed
Always be yourself, not the person that you pretend to be, no!
These people gon' tell you that you will never make it
Then when you do, they gon' say they knew you were goin' places
That's just how it works, next thing you know you'll be overrated
Hearing people say they miss the "old you, " it's crazy, ain't it?
And perfect people don't exist, so don't pretend to be one
I don't need pats on the back from people for my achievements
When I die I wanna know that I lived for a reason
Anyone can take your life, but not what you believe in, no
Just remember this
Yeah, don't take opinions from people that won't listen to yours
If money's where you find happiness, you'll always be poor
If you don't like the job you have, then what do you do it for?
The cure to pain isn't something you buy at liquor stores, nah
The real you is not defined by the size of your office
The real you is who you are when ain't nobody watchin'
You spend your whole life worried about what's in your wallet
For what? That money won't show up in your coffin, woo!
Yeah, anger's a liar, he ain't got no respect
I fell in love with my pain and I slept with my regrets
Happiness saw it happen, maybe that's why she up and left
Joy called me a cheater, said she ain't coming back
I've always had a problem with relationships
But that's what happens when you see the world through a broken lens
Mistakes can make you grow, that doesn't mean you're friends
Who you are is up to you, don't leave it up to them, no
Just remember this
Yeah, they say you got into music, you signed up to be hated
That's kinda weird cause I don't remember signing my name up
Coming from people that give advice but never take none
I like my privacy, but, lately, I feel it's invaded
I heard that life's too short, don't let it pass you by
We waste a lot of time crying over wasted time
It's not about what people think, it's how you feel inside
My biggest failures in life are knowing I never tried, woo!
I look at the world from a different angle
People change, even Satan used to be an angel
Think twice before you're bitin' on the hand that made you
Don't believe what you believe just 'cause that's how they raised you
Think your own thoughts, don't let them do it for you
Say you want a drink, don't wait for people to pour it on you
Cut out the liars, stay close to the people you know are loyal
Grab your own glass and fill it, don't let your fear destroy you, woo!2 -
Is the CS field creating terms for the sake of creating terms?
Someone mentioned a "closure" in another post. I instinctively knew what they meant by that based upon the code I saw. I had heard the term thrown around before, but it had not yet connected in my mind. I wondered why I had not been exposed enough to care.
So I thought: What does C++ have as far as closures?
I found that C++ has lambdas. Those are definitions for function objects. They do not exist at runtime. But a closure does. The analog is you have classes. They are definitions and do not exist at runtime. But instances of classes do. So at runtime the instance is what you are working with. This is the same as lambdas vs closures in C++. The closure is the runtime counterpart. Why a separate term for what essentially is an instance? Is it because it captures data and code? As far as I know the closure is all data that gets passed around that calls a function. So it is essentially an instance of a lambda.
Another term: memoization. I have yet to see this added to any dictionary in online tools like a browser. Is the term so specific that nobody cares to add it? I mean these are tools programmers use all the time.
My guess is these terms originated a long time ago and I have just not been exposed to the contexts for these terms enough. It just seems like I feel like I have been in the field a long time. But a lot of terms seem alien to me. I also have never seen these terms used at work. Many of the devs I work with actively avoid CS specific terms to not confuse our electrical coworkers. My background started in electrical. So maybe I just didn't do enough CS in college.6 -
!rant
So I have bought a new laptop and this time instead of straight up booting linux I had an idea of giving micro$oft a try, so I have decided to use only their services for 2 weeks.
To be honest, I really did not expect windows to use do much cpu and hdd during updates and background tasks, but after a day it was ok and windows feels snappier than during my last encounrer (maybe cause the new hw?).
I was even so dedicated that I started to use cortana and I have to tell, that she is dumb as fuck, since she fails to understand even the basic tasks and if u want something advanced, she refers to the next update. But boy, tell her to open Visual Studio and she asks if you want VS Code or Visual Studio, which seems great. But my response was 'Code' then she insisted that I said Coke. Im like OK, Im not native english speaker, lets try Visual Studio Code, where she told me that there is no such thing and Spelling VS - Code ended me in bing search for Unesco :/
I really want to like Cortana, she has nice name, nice history, but she is like that A girl from class, who looks gorgeous, has great voice, but then u reallise that she just eats a book before exam and after that she is that dumb basic hoe.
I also gave a shot to Bing and Edge. Bing is something between Google and DuckDuckGo, since it gives you a liiitle less results from search history, yet if you want to find something in different language its even possible to tell you that what are you trying to find does not exist.
But I have to tell, that I like Edge and I mean it. Like... Its fast and has some good features, like pushing all your open tavs away, so you can open them Later. It also does not have that stupid ass feature that lets you control tab from left to right, not by chronological order, so you wont end up in infinity loop of 2 tabs. And even if people make fun of M$ trying to convince you to use Edge by being too aggresive. God go on edge and try to use some Google Service(You still dont use chrome?!).
I also tried to play with .Net core and I have to tell that against java they are a bit further. I liked some small features, but what I just simply loved was rhe fucking documentation. You basically dont need google, sincw they give you examples and explain in a human way.
What I didnt quite get was the 'big' Visual Studio. Tje dark theme to me feels strange(personal and irrelevant). Why the hell I do need to press 2 shortcuts to duplicate line?! Why is it so hard to find a plugin to give me back my coloured brackets and why the fuck it takes like a second to Cut one line of code on a damn i7?!
Visual studio Code was something different. It shows how dark theme should be done, the plugin market is full of stuff and the damn shortcuts are not made for octopi. So I have to recommend it ^^.
I even gave a shot to word and office as a whole and fuck I never knew that there are so many templates. It really made my life easier, since all you need to do is find the right one in the app, instead of browsing templates online, where half of them are for another version of your text editor.
Android Launcher was fast, had a clever widget of notes and the sync was pretty handy to be honest so I liked that one as well.
What made me furious was using the CLI. Godfucking damn what the fuck is ipconfig?! :/
Last thing what made me superbhappy was using stuff without wine and all of the addional shit. Especially using stuff like Afinity Designer and having good looking apps in general. I mean Open source has great tools l sometimes with better functionality. But I found out, that what is pleasure to look at, is pleasure to work with.
To Summarize a bit.
It wasnt that bad as I expected. I see where they are heading with building yet another ecosystem of It just works and that they are aiming at professionals once again.
So I would rate it 6/10, would be 7 if that shit was Posix compatible.
I know that for Balmer is a special place in hell... But with that new CEO, Microsoft at the end may make it to purgatory..5 -
What just happened?
I had my annual review meeting with my bosses and everything was going well and I was doing a great job and I was working so independently and they were happy I used my training budget efficiently, great attendance and I have good standing at the customer, although I'm the only representative there. BUT... BUT... BUT... there will be no chance of a raise this year, because the company is not doing quite well currently (OK, I can understand that part) and also because I didn't do anything for business development, didn't bring new projects or anything.
I'm a developer, your typical slightly introverted geek. I'm not doing sales. That's not my job. That's not me. That's a part of why I'm not a contractor. I had this before in another job, and those expectations which seem to always only come out during those evaluations, were part of the reason why I left.
Fuck this for putting me in this situation again.
I'm really wanting to start looking for an in-house job at some production company again. Do these jobs still exist? Those consulting companies seem to expect things from me I can't and won't deliver.1 -
So, it's been a while since I've been working on my current project and I've never had the "luck" to touch the legacy project wrote in PHP, until this week when I got my first issue.
And damn, this goddamn issue. It was a bug, a very strange bug, that only happens in production and that nobody has any idea what was happening, so yeah, I didn't have anyone to ask and I got less time than usual ( because Thanksgiving ).
And thus, I have no starting point, no previous knowledge on PHP and less time! I expected a very fun week 😀 and it was beyond my expectations.
First I tried to understand what might be causing the issue, but there wasn't any real clue to star with, so no choice, time to read the flow on the code and see what are they're doing and using ( 1k line files, yay, legacy ). Luckily I got some clues, we're using a cookie and a php session variable for the session, ok, let's star with the session variable. Where it's that been initialize ? Well, spoiler alert, I shouldn't start with that, because my search end up in the login method of the API that set a that variable and for some reason in the front end app it was always false and that lead me to think that some of the new backend functions were failing, but after checking the logs I got no luck.
Ok, maybe the cookie it's the issue, I should try open the previous website on the brow...redirect to new project login, What? Why ? I ask around and it's a new feature push on Monday, ok I got Chrome Dev tools I can see which value of the cookie it's been set and THERE IT WAS it has a wrong domain! After 2 days ( I resume a lot of my pain ) I got what I've been looking for, so now I should be able to fix the bug. Then where is the cookie initialized ? In the first file the server hits whenever you tried to enter any page of the app, ok, I found the method, but it's using a function that process the domain and sets it correctly? wtf ? Then how in heaven do I get the incorrect domain ? Hello? Ok, relax, you still have one more day to fix this, let's take it easy.
Then, at the end of the Wednesday, nope I still have no clue how this is happening. I talked with the Devops guy and he explain me how this redirection happens and with what it depends on, I followed the PHP code through and nothing, everything should works fine, sigh. Ok I still have 2 days, because I'm not from US and I'm not in US, so I still have time, but the Sprint is messed up already, so whatever I'm gonna had done this bug anyhow.
Thursday ! I got sick, yay, what else could happen this week. Somehow I managed to work a little and star thinking in what external issue could affect the processing, maybe the redirection was bringing a wrong direction, let's talk with the Devops guy again, and he answer me that the redirection it was being made by PHP code, IN A FILE THAT DOESN'T EXIST IN THE REPOSITORY, amazing, it's just amazing. Then he explained me why this file might be missing and how it's the deployment of this app ( btw the Devops guy it's really cool and I will invite him a beer ) . After that I checked the file and I see a random session_star in the first line of the code, without any configuration, eureka ! There was the cause and I only need to ask someone If that line it's necessary anymore, but oh they're on holiday, damn, well I'll wait till Monday to ask them. But once and for all that bug was done for ! 🎉
What do I learn ? PHP and that I don't want any more tickets of PHP 😆. -
I actually do have something to rant about!
The people I've decided to work with... are complete and utter fools. They don't want to keep updated with new practices and merely talk about awesome stuff... Let me elaborate.
The first person is someone I spent really many hours just writing with, I've helped him build on his personal project, which has now become our project (which I've done most of the work on now). He keeps writing about things that aren't fucking relevant for the current task - furthermore, he completely refuses to use any type of collaboration software in order to keep an eye on tasks we want to, and already have completed. He likes Git but doesn't provide helpful git messages, sometimes even stuff like 'forgot this'.. never any freaking description of what's actually been done! Not even after agreeing it should be done, he just doesn't understand what a helpful message is apparently.
I might be a bit special regarding wanting to follow practices, but how the fuck do you make any amount of money by being so ignorant!? He was a WP 'developer' a while ago, and has since changed to JS and are using a framework which he doesn't understand - he can't even remember what the documentation states.
So why do I 'work' with him? He knows a lot of phrases he's read in books, blogs, and the likes. That makes him really inspirational and positive and he really wants to become successful(like me!). But over the last few months, I've realized how bad he is at programming - he doesn't know basic programming concepts and have a hard time applying any sort of knowledge to his programming. If it's not pre-built, he can't use it, not even if the documentation has specific examples. He barely grasps the concept of binding data to a variable. He wouldn't know how to access it again though, it's just for the sake of binding it to some existing functionality.
The other guy really likes his old style. He hired me to maintain some application. Which has turned out to be a hell of several small tasks he needs to be finished or reworked - with no clear definition of the task. Most of the time, he'll do some initial changes, show the changes to me, vaguely explain what they do (not what he's trying to achieve) and first THEN ask me to do these changes, most often in some files that don't exist (he uses the wrong filenames so I have to guess/ask where the changes need to be made).
To top it all off, old syntax is used and don't get me started on the spaces+tabs for indenting lines... Because I've already added a great ESLint+Prettier conf and everything should be nicely formatted according to pre-defined rules.
But he won't take the time to install some plugins in his editor and I'm left with sometimes buggy, badly formatted code (the code I have to make changes with!) - that's while he several times have agreed that I can do what I want and that he even questions his own ways when looking at my changes which he calls by-the-book.
So why the motherfucking fuck do I keep working with him?
Well, he keeps paying so that's really nice - I haven't been able to properly execute the bigger tasks(which pays more) though, due to a lack of information or some badly written code I couldn't quite figure out how works (at a glance).
He also keeps talking about these new projects he wants to make.. he even has these freaking papers with descriptions and data-structures and we converse really good about these new awesome projects. He also likes cryptocurrencies(which is an interest of mine he has inflamed quite a bit) and lastly, he seems like a genuinely nice guy who I'd like to spend some time with even besides coding and work.
So now I stand here - stuck with people that make me feel like a demi-god or something because I use a git style-guide and ESLint+Prettier with the Airbnb style-guide.
What should I do? I'd really like some remote work and have a desperate need for money... So much so, that I might even have to pick up a fulltime job, in order to save my sorry ass - all because I like speaking with people who just like the thought of programming...
I'm actually quite lonely with my thoughts and they are the two only people I've had some sort of relationship with - who has an invested interest in programming/dev... I really like that, despite having to follow their thoughts as they surely can't follow mine.
Please be my friend or give me some paid work lol.
Also, I've been moving the last couple weeks - those weeks has been the most stressful of my life and have not contributed to my overall wellbeing and relations with people... It's good to be back at the computer again and be reading some devRant though!1 -
This story happened to everyone, and i am sure that if i search, i will find dozens of similar stories, but the different here is, i tried, i really tried, in a hundred different ways to achieve my goal !
When you are stuck on a problem, let's say, that you have a program, project, website ... and need to achieve something technically weird (or hard) and need some help to save you time on experimentations. The first thing a lot of people do is : Google.com && put search dorks.
But, at a moment, google gets "dirty", you use it so often that he always think to know better then you what you are looking for.
It reminds of "Ted", the movie (for thows who know it) where they asked : "Hey ! Why does google always suggest us to look for black dicks ??"
It is exactly what happened to me, i got results who doesn't have anything to do with what i was looking for !
You can give it a try now : type "semantic web RDF to RDB"
You won't find anything, except results related to : NOSQL DBs, which is totally annoying.
Something else, i once google swift to get some updates, what results did i got ? Taylor Swift ... (musician)
I often get 2 or 3 results from google, which made me thinking that i somewhat reached the end of internet, or that people are so dumb that i will have spend hours trying to figure my solutions, but, before doing that, other solutions had to be tested.
1- TOR : Google tracks his users and uses its algos and bullshits to return results as close as possible to the user's demand (big fail ...) so how about moving to a different country ? DL TOR browser, open, setup, go to US, open google (got us version YAY !) enter my keywords, and, nothing, still nothing, more results for sure, but nothing related to what i was looking for.
2- VM
Pop a VM, launch TOR, use Hidden mode, delet all cookies and stuff (it is a new VM but who knows).
Use keywords (now in UK). Here they are !! my results !!! i finally found some decent results about my keywords !
But, i have the required knowledge to do this kind of stuff, but how about people who rely heavily on google ? they can't change country, clear everything, trick google to think you are a new user, they have almost biased and flawed results. I tried duckduckgo (i love them) but they are not that efficient.
Google says not to anything evil, but they ARE EVIL, miss guiding people, suggesting corrections who have nothing to do with the keywords, or results totally unrelated in any way to the keywords while results exist in other countries ???
Ever since, i don't pay attention to google at all, and started thinking that google's algos are manipulating people, i don't know if it is done on purpose or not, but the result is the same, people have biased results based on their country, on their tag, on their ID, and the recent keywords.
During that period i was cursing google every funcking day, and i am still doing it, too much trackers, too much manipulation, i will end-up enclosing myself in darknet.4 -
I can't help it sounding bitter..
If you work some amount of time in tech it's unavoidable that you automatically pick up skills that help you to deal with a lot of shit. Some stuff you pick up is useful beyond those problems that shouldn't even exist in the first place but lots of things you pick up over time are about fixing or at least somehow dealing or enduring stuff that shouldn't be like that in the first place.
Fine. Let's be honest, it's just reality that this is quite helpful.
But why are there, especially in the frontend, so many devs, that confuse this with progress or actual advancement in their craft. It's not. It's something that's probably useful but you get that for free once you manage to somehow get into the industry. Those skills accumulate over time, no matter what, as long as you manage to somehow constantly keep a job.
But improving in the craft you chose isn't about somehow being able to deal with things despite everything. That's fine but I feel like the huge costs of keeping things going despite some all the atrocities that arose form not even considering there could be anything to improve on as soon as your code runs. If you receive critic in a code review, the first thing coming back is some lame excuse or even a counter attack, when you just should say thank you and if you don't agree at all, maybe you need to invest more time to understand and if there's some critic that's actually not useful or base don wrong assumptions, still keep in mind it's coming from somebody that invested time to read your code gather some thoughts about it and write them down for you review. So be aware of the investment behind every review of your code.
Especially for the frontend getting something to run is a incredibly low bar and not at all where you can tell yourself you did code.
Some hard truth from frontend developer to frontend developer:
Everybody with two months of experience is able to build mostly anything expected on the job. No matter if junior or senior.
So why aren't you looking for ways to find where your code is isn't as good as it could be.
Whatever money you earn on top of your junior colleagues should make you feel obligated to understand that you need to invest time and the necessary humbleness and awareness of your own weaknesses or knowledge gaps.
Looking at code, that compiles, runs and even provides the complete functionality of the user story and still feeling the needs do be stuff you don't know how to do it at the moment.
I feel like we've gotten to a point, where there are so few skilled developer, that have worked at a place that told them certain things matter a lot Whatever makes a Senior a Senior is to a big part about the questions you ask yourself about the code you wrote if if's running without any problems at all.
It's quite easy to implement whatever functionality for everybody across all experience levels but one of your most important responsibilities. Wherever you are considered/payed above junior level, the work that makes you a senior is about learning where you have been wrong looking back at your code matters (like everything).
Sorry but I just didn't finde a way to write this down in a more positive and optimistic manner.
And while it might be easy to think I'm just enjoying to attack (former) colleaues thing that makes me sad the most is that this is not only about us, it's also about the countless juniors, that struggle to get a food in the door.
To me it's not about talent nor do I believe that people wouldn't be able to change.
Sometimes I'm incredibly disappointed in many frontend colleagues. It's not about your skill or anything. It's a matter of having the right attitude.
It's about Looking for things you need to work in (in your code). And investing time while always staying humble enough to learn and iterate on things. It's about looking at you
Ar code and looking for things you didn't solve properly.
Never forget, whenever there's a job listing that's fording those crazy amount of work experience in years, or somebody giving up after repeatedly getting rejected it might also be on the code you write and the attitude that 's keeping you looking for things that show how awesome you are instead of investing work into understanding where you lack certain skills, invest into getting to know about the things you currently don't know yet.
If you, like me, work in a European country and gathered some years of industry experience in your CV you will be payed a good amount of money compared to many hard working professions in other industries. And don't forget, you're also getting payed significantly more than the colleagues that just started at their first job.
No reason to feel guilty but maybe you should feel like forcing yourself to look for whatever aspect of your work is the weakest.
There's so many colleagues, especially in the frontend that just suck while they could be better just by gaining awareness that there code isn't perfect.6 -
So, I work as a sysadmin junior (6 months and going), and in the past few months, I learned what my boss warned me about - Devs don't understand us admins, and we don't understand the devs.
We have this huge client who is about to migrate to our company (We do mostly server managment/Housing/Renting), and I am so gald I don't have to work on the migration myself!
Just hearing what the company devs say makes me facepalm: No, it won't work. It cannot work on just 3 machines (They use like... 20 in total), no, we won't get rid of our docker swarm, that's essential (Doing the absolute minimum in their infrastructure, just a fancy buzzword to lure people on. Though they've spent like 2 years developing the app that uses it, so they my not want to give it up).
I kid you not, once, they replied to an email that contained the phrase "To be afraid of/worried about" something during the migration, that something could break, not work, be unstable. 7 times.
Might not sound as bad, but it was a rather short mail, and when they're so afraid of everything, its kinda hard to cooperate with them.
My colleague literally spent this entire week mapping out /their/ infrastructure, because they were unable to provide us with the description themselves.
And as a cherry on top, they sent us a "graph" of relationships of all the parts of their infrastructure that was this jumbled mess of rectangles and arrows. Oh, and half of all the machines were not even in the graph at all! Stating that "We also have all this, but I really don't know how to ilustracte the interactions anymore"
Why do companies like that exist? If you build an infrastructure yourself, shouldn't at least someone know exactly how it works?1 -
A bit longer rant, somehow triggered by the end of this rant:
https://devrant.com/rants/7145365/...
The discussion revolved around strpos returning false or a positive integer.
Instead of an Option or a Exception.
I said I'm a sucker for exception, but I'm also a sucker for typing.
Which is something most languages lack - except the lower level ones like C / C++.
I always loved languages which have unsigned and signed types.
There, I said it... :) I know that signed / unsigned is controversial, Google immediately leads to blog entries screaming bloody murder because unsigned can overflow – or underflow, if someone tries to use a -1on an unsigned integer.
Note that my love is only meant for numeric types, unsigned / signed char is ... a whole can of insanity on its own.
https://phoronix.com/news/...
If you wanna know more.
Back to the strpos problem, now with my secret love exposed:
strpos works on a single string, where a string is a sequence of chars starting with 0.
0 is a positive integer.
In case the needle (char that should be looked up in the string) cannot be found in the haystack (the string), PHP returns "false".
This leads to the necessity of explicitly checking the type as "0" (beginning of string, a string position)... So strpos !== false.
PHP interprets 0 as false, any other integer value is true.
In the discussion, the suggestion came up to return -1 if a value could not be found – which some languages do, for example Scala.
Now I said I have a love for unsigned & signed integers vs. just signed integers...
Can you guess why the -1 bothers me very much?
Because it's a value that's illogical.
A search in a sequence that is indexed by 0 can only have 0 or more elements, not less than zero elements.
-1 refers to a position in the sequence that *cannot* exist.
Which is - of course - the reason -1 was chosen as a return value for false, but it still annoys me.
An unsigned integer with an exception would be my love as a return value, mostly because an unsigned integer represents the return value *best*. After all, the sequence can only return a value of 0 ... X.
*sigh*
Yes, I know I'm weird.
I'm also missing unsigned in Postgres, which was more or less not implemented because it's not in the SQL standard...
*sob*30 -
I do not understand why you guys complains about Stackoverflow or even Arch linux forum. (There's a plenty of rant about those topic)
Those are just amazing, and of course, they will send you to the doc or downvote if you don't even do your job properly. I mean docs, google, other answer, wiki, tutorial, idk. There a plenty of resources where you actually can understand where's your problem. If after this you still don't have your answer, then ok ask it to the community because that why they exist.
But they aren't here just for repeating the answer that already exist and create double post, etc. Stackoverflow is one of the best source when you search on google because it's actually moderated nicely and guys won't hesitate to downvote you.
So if you got downvoted (Like I got sometime) then just think why was yours question/answer bad instead of just being angry against the community.
Ps: It's my first rant, but I was reading you guys since 1 year.3 -
Sometimes I ask myself how former IT people can become "Bosses"
Boss: We need to validate all links on our site
Me:Okay, let's vrab the response codes and some variations of under construction and we should be done.
Boss: No that only tests negatives, we need to test if the website content still matches.
Me: How?
Boss: Hmm... Just test if some keywords exist.
Me: So you want me to add a bunch of keywords for +-150 links? What about the maintenance?
Boss: Well, those sites basically never change.
Me: Then why do that?
Boss: Well, for when they change.
Now I can search through 150 mostly legal stuffy pages to find usefull keywords only to get a bunch of wrong negatives because the fucking semantics have changed...
+I have to type all that shit. Primarily, I have to type.3 -
The SIM card saga goes on:
To verify yourself, you need to go to some postal office and show them your ID and stuff. Not that this is complicated or anything (well actually, it is. Welcome to 2018 in Germany. We use more papers than potheads for the simplest shit), but you need to have a valid ID. Valid as in NOT EXPIRED. What the fuck. Why does my ID expire. Do I stop existing 3 years after getting it? What does it mean if it is, why is it culpable to have your ID expired. And who gets charged for having none, I mean obviously my ID doesn't identify me anymore?
What the hell man. I don't exist for 6 months now. Am I law free as not identifiable entity or how does it work?
And now the real question:
We got something called Bafög in Germany. Basically you get a bit money while studying. (I still work tho, I don't get really much from it.)
To apply for it, you need some tax number, which seemingly can be seen as a proof of my existence and my identity.
Why is this enough, why don't I need a valid ID there?
Germany is weird man. On the one hand government is all social and you get help if you need it but on the other hand you need to sacrifice 17 virigins to apply for said help..2 -
!dev
There are no right answers in parenting, but there are sure as hell wrong ones and if the fucking backfire effect is too much to keep you from realizing that half of your stupid fucking decisions are delusional at best then you should probably start rethinking some things. I fucking hate dealing with other people fucking up and being stupid and I know I'm going to have to keep dealing with it in one form or another but god why I'm so done with this I just fucking don't want to deal with anyone anymore I don't want to deal with myself anymore
I dunno I don't have anyone to rant to so I can't like be specific here because it's public af but you know typing this makes me feel a little better but I still just don't want to deal with this shit anymore I don't even know what I do want to do there's like nothing the positive feedback is going away and I don't know what to fucking do with myself and I don't know how to change anything I can't fucking fix anything I mean I can fix my shitty code but I'm never getting anywhere with that and whenever I want to fix anything that's actually important I just fuck up regardless of how hard I try I just don't want to fucking try anymore I don't know if I'll actually hit post but I have to put this somewhere so probably but ugh I don't even fucking ugh literally all of my problems are so fucking dumb and small and elementary but I CAN'T FUCKING DO ANYTHING I keep ranting about these fucked up people I have to deal with and yeah they fucking suck and sometimes I wish they didn't exist but I know I'm just as if not more of an idiot and everyone would probably be better off if I didn't exist but wait no that would have happened but you guys don't get to know about that because it's specific and putting that here would fuck shit up but someone else could so that so much better and I don't know everyone who interacts with me is just hurting themselves like fuck why do some friends like blades better than me maybe because I'm even less caring and even more damaging than a stupid fucking inanimate sharp piece of metal god fucking ugh okay I can't focus on anything why is this even okay side rant why are atheists so fucking hated like yes maybe some can't understand their motives for like doing things but nobody can really understand each other's like religious people all use god or gods in their own way why do you have to think of people who have zero gods as opposed to your nonzero as less human than you there's so much wrong with that okay that side rant is over but this whole thing is a side rant so cool fuck my life lol uuh I don't know I don't want to stop typing I don't know why though I guess I just actually I have no fucking idea I'm just here doing this I should be like fucking asleep I'm passing the fuck out after this ugh okay okay okay okay okay okay okay umm I really want to quote a certain person that I really hate right now and dissect them and prove every single fucking stupid argument they make wrong but I feel like that would not be good since this is so public but I swear I hate this and you know what if you're thinking that yes I AM A FUCKING WHINY BITCH DEAL WITH IT I'M WHINING YOU DENSE FUCKER YOU DON'T HAVE TO POINT IT OUT AND FEEL SMUG IT'S BETTER TO VENT HERE THAN A LOT OF OTHER WAYS SO JUST SHUT THE FUCK UP OKAY ACTUALLY FUCK IT CALL ME OUT ON IT I NEED SOMETHING TO TAKE THIS OUT ON GOD AAAAAAH okay uuh yeah that's fun I'm a fuck up okay okay so you ask "how can you be a fuck up you're so young her der" okay being young generally is a disadvantage because you haven't had opportunity but boy have I and I sure fucked every single one of those up so yeah fun stuff you know woo haha mmkay I wish I had friends online this late because then I could like rant to a person and shit I mean this community is people but not people I know and it's not really back and forth as much and ugh okay right uuh yeah good um ugh I used to be able to get this shit out by doing something I'm good at but now I'm shit at everything and I can't motivate myself and it's all just bottled up and there's so much shit and nothing works and fuck there's probably a simple solution to everything I'm facing but I'm such a dense piece of shit that I can't find any of those stupid fucking ugh okay now I'm looking at my stupid hands typing ugh I hate the things right back up here uuh uuh I have 500 charas left lets fucking go I don't want to stop I mean I do want to stop but like by that I mean I just want to not exist I do want to keep typing here because it's the only thing distracting me but yeah uuh right um some people were like wtf happened with your stalking thing and this isn't where I should put it but fuck it whatever some weird guy just logged on for 10 mins to take a screenshot of the time being 2:22:22 and logged off and boom the school year ended uuh yeah kay right fuck I have to end it now
Aaaah okay uuh right bye I'm really sorry if you actually read that whole thing4 -
I hate when programming books have shit code examples.
Just came across these, in a single example app in a Go book:
- inconsistent casing of names
- ignoring go doc conventions about how comments should look like
- failing to provide comments beyond captain obvious level ones
- some essential functionality delegated to a "utils" file, and they should not be there (the whole file should not exist in such a small project. If you already dump your code into a "utils" here, what will you do in a large project?)
- arbitrary project structure. Why are some things dumped in package main, while others are separated out?
- why is db connection string hardcoded, yet the IP and port for the app to listen on is configurable from a json file?
- why does the data access code contain random functions that format dates for templates? If anything, these should really be in "utils".
- failing to use gofmt
These are just at a first glance. Seriously man, wft!
I wanted to check what topics could be useful from the book, but I guess this one is a stinker. It's just a shame that beginners will work through stuff like this and think this is the way it should be done.3 -
That feeling when you realize that the REST API you were trying to consume apparently does not provide a query flag to get for a more detailed response making you think you'll need to fetch one list of items and then fire almost 1,000 requests really does not compare to that feeling when a colleague points out that the REST API in question does in fact support the flag AFTER you implemented the roundabout way.
FUCKING HELL!
I just didn't realize that I could click on GET and POST blocks for the metronome API documentation opening up a frigging pop-up. (See screenshot.)
Why couldn't the information have been more upfront? Only a cursor change on hovering the area could make one thing to click there.
Oh how I blame their lack of a user interface for my blindness.
I thought that it was just a basic documentation that only told you which endpoints exist and expects you to learn by trial of fire. So I searched the interwebs and on their support forum I found an old issue making me think that my round-about way was the way to go m(
Even worse, on the support forum I cannot even leave a comment warning the poor souls comming after me that they should not do the roundabout way as that issue has been long closed.
If you want to see it yourself: https://dcos.github.io/metronome/... -
So basically I joined this new android dev job 3 months ago. I did android dev for 2.5 years and then had a gap of 1.5 years where I did game development so Im comming back into android dev as "junior" however Im tryharding to prove myself and reach mid level as fast as I can.
I had it planned like this from the beginning: original plan was to do really good during probation period so I could ask for a raise (which I did). Now while Im waiting for answer (which will take 2-3 weeks) I need to keep the show going so I am sacrificing evenings to accomplish goals. I ham going to these teambuildings, I am volunteering in this job fair event and Im joining bars with the not-so-social devs 1-2 times a week just to "fit in" and be noticed. After getting a raise I plan to take it down a notch and somehow relax....
During the usual work week I rely on stimulants (coffee/cigarettes/concerta) to get me through the days and then I use xanax or alcohol to relax. Worst part is that I am totally drained exhausted after long working week. I dont want to go out with my girlfriend. My libido is at its lowest and we do it maybe max 2 times a week and it feels like a chore to me. It feels like I exist only for this job and only to please everyone around me and it drains me out completely.
I feel like I am burned out. I wish I could just quit this job and run away somwhere warm for 6 months to chill alone and take it easy and recover but I cant. Im stuck in a trap. I have to pay off mortgage, I have to pay off bills. I am approaching 30's soon and I became fat and balding, I want to loose weight, I wanna get a hair transplant to at least enjoy my 30's properly. Im only 28 but I already have a lot of grey hair just because of immense ammounts of stress I have to deal daily because of my ADHD and anxiety. Also my gf is kinda dissapointed that I havent proposed her in 3 years of our relationship. I feel so much pressure and obligations to the point where I feel that theres no point in living if I just exist for the needs of others. I cant imagine getting married and having a child now - life is already complicated chaotic mess as it is.
I dont't know why I throw myself 150% at projects and hyperfocus so much to the point where it becomes my priority in life? Am I compensating for my lack of executive functions by throwing lots of effort and care in hopes that I will be validated? How to learn to take it easy instead of always thinking that what Im doing is not enough?
It's not even the problem of this job. Its just me. I had my own company for 2 years and I was dealing with same burnout problems...3 -
a lion in captivity forgets to hunt. a man loosing everyday forget about winning.
I am feeling so sad and worthless right now. Like, so worthless that if I am walking down the street tomorrow and if some car hits me and i die, i wouldn't mind.
I find it questionable about what I am living for? why am i selling myself in front of keyboard till 12 am every day to earn some bucks when all this money is being / will be used to give happiness to a bunch of people that don't give 2 shits about me.
why can't i get some love? why can't i get some respect? i feel like a disabled 5 year old boy trapped in an abled 25 year old body. I can feel my legs, but I don't have the permission to use them. its like i am tied by ropes. and this rope has been on me for so long, that i can feel my legs, but i can also feel that those are having cuts so deep that i won't be able to use them even once the rope is taken out.
being a single child, loneliness has always been my shadow at home. and The middle class poor income, fighting parents, sickness and lack of culture ensured that loneliness remained my friend in school, college and other areas too.
the only goal of becoming an ideal son has shadowed every other thing in life. I can't drink, i can't go outside after 10pm, I can't take a jobbin different city. I can't fucking have female friends or think about relatiion-shits with people. i can't drive the car that was bought by my salary money. the list goes on and on.. i think every Indian (girls more than boys ig) have gone through at least 1 such restrictions at some point of their life. but me? a GUY in his fucking 25 , is going through ALL OF THEM, from day 1.
Plus i haven't started to discuss the weird eccentricities that i have to deal with, which are not so common. we follow a special religion where they have lots of philosophy and additional rules ( like no onion garlic mushroom in foods, mediation + pray for 1 hour twice a day ,... etc)
But i didn't complain, until now. I got sadder and sadder with time, but I cooperated. Whome else to live for , if not for the folks who made you in their womb amd sack? yeah I will fucking stay celibate until you find some willing "cultured" girl from your "religion" and arrange a lifelong existence. yes, i will fucking keep paying the car emis and see it in the parking lot everyday , while traveling via a metro. yes i will stay in your house in front of you all the times and never learn to exist independently coz fuck maturity. yes i will be a static atm machine waiting to die as you please.
but i am still not your ideal son? I say one little thing, and you start shouting at me for being selfish? why is religious superstition and those crime storemies so much deep into your head that you folks are micro managing and criticising every single thing in my life?
why is there a need for repetitive arguments, fights and shouting before evry action? why can't we just be happy for once!
I am shattered looking for happiness. I can't live like this anymore. There are no more than 2 people in my life that i care about and if those 2 are always having an upside down , angered face the what is the point of waking up every day?
wish i could just leave them. But can they live without me? or even can i live without them? and no , not talking about emotionally. I am very strong at the emotional side and i can throw word daggers to even 10+ years of companionships and ruin them. this will be just another long term relationship that i will sour.
BUT I CAN'T LITERALLY LIVE WITHOUT THEM. i am a useless guy who don't have any social intelligence outside his computer screen. i don't know how to live alone, and exist, or what my goals will be. I never saw a future without thinking about securing their future first, and them being in my future at all times.
aagh fuck. another painful night to survive and exist until i rise again to live like a corpse coz i can't do anything about it6 -
https://appleinsider.com/articles/...
Tl;Dr This guy thinks apple is poised to switch the Macs to a custom arm based chip over x86! He's now on my idiot list.
I paraphrase:
"They've made a custom GPU", great! That's as helpful as "The iPad is a computer now", and guess what Arm Mali GPUs exist! Just because they made their own GPU doesn't make it suitable for desktop graphics (or ML)!
"They released compilation tools right when they released their new platform, so developers could compile for it right away", who would be an idiot not too...
"Because Android apps run in so many platforms, it's not optimized for any. But apple can optimize their apps for a sepesific users device", what!? What did I miss? What do you optimize? Sure, you can optimize this, you can optimize that... But the reason why IOS software is "optimized", and runs better/smoother (only on the newest devices of course) is because it's a closed loop, proprietary system (quality control), and because they happen to have done a better job writing some of their code (yes Android desperately needs optimization in numerous places...).
I could go on... "WinTel's market share has lowly plataued", "tHeY iNtRoDuCeD a FiElD pRoGrAmMaBlE aRrAy"
For apple to switch Macs to arm would be a horrible idea, face it: arm is slower than x86, and was never meant to be faster, it was meant to be for mobile usage, a good power to Wh ratio favoring the Wh side.
Stupid idiot.19 -
I need some advice to avoid stressing myself out. I'm in a situation where I feel stuck between a rock and a hard place at work, and it feels like there's no one to turn to. This is a long one, because context is needed.
I've been working on a fairly big CMS based website for a few years that's turned into multiple solutions that I'm more or less responsible for. During that time I've been optimizing the code base with proper design patterns, setting up continuous delivery, updating packaging etc. because I care that the next developer can quickly grasp what's going on, should they take over the project in the future. During that time I've been accused of over-engineering, which to an extent is true. It's something I've gotten a lot better at over the years, but I'm only human and error prone, so sometimes that's just how it is.
Anyways, after a few years of working on the project I get a new colleague that's going to help me on my CMS projects. It doesn't take long for me to realize that their code style is a mess. Inconsistent line breaks and naming conventions, really god awful anti-pattern code. There's no attempt to mimic the code style I've been using throughout the project, it's just complete chaos. The code "works", although it's not something I'd call production code. But they're new and learning, so I just sort of deal with it and remain patient, pointing out where they could optimize their code, teaching them basic object oriented design patterns like... just using freaking objects once in a while.
Fast forward a few years until now. They've learned nothing. Every time I read their code it's the same mess it's always been.
Concrete example: a part of the project uses Vue to render some common components in the frontend. Looking through the code, there is currently *no* attempt to include any air between functions, or any part of the code for that matter. Everything gets transpiled and minified so there's absolutely NO REASON to "compress" the code like this. Furthermore, they have often directly manipulated the DOM from the JavaScript code rather than rendering the component based on the model state. Completely rendering the use of Vue pointless.
And this is just the frontend part of the code. The backend is often orders of magnitude worse. They will - COMPLETELY RANDOMLY - sometimes leave in 5-10 lines of whitespace for no discernable reason. It frustrates me to no end. I keep asking them to verify their staged changes before every commit, but nothing changes. They also blatantly copy/paste bits of my code to other components without thinking about what they do. So I'll have this random bit of backend code that injects 3-5 dependencies there's simply no reason for and aren't being used. When I ask why they put them there I simply get a “I don't know, I just did it like you did it”.
I simply cannot trust this person to write production code, and the more I let them take over things, the more the technical debt we accumulate. I have talked to my boss about this, and things have improved, but nowhere near where I need it to be.
On the other side of this are my project manager and my boss. They, of course, both want me to implement solutions with low estimates, and as fast and simply as possible. Which would be fine if I wasn't the only person fighting against this technical debt on my team. Add in the fact that specs are oftentimes VERY implicit, so I'm stuck guessing what we actually need and having to constantly ask if this or that feature should exist.
And then, out of nowhere, I get assigned a another project after some colleague quits, during a time I’m already overbooked. The project is very complex and I'm expected to give estimates on tasks that would take me several hours just to research.
I'm super stressed and have no one I can turn to for help, hence this post. I haven't put the people in this post in the best light, but they're honestly good people that I genuinely like. I just want to write good code, but it's like I have to fight for my right to do it.1 -
https://devrant.com/rants/2388734/...
Opengenus talks about how his honesty bit him in his ass and I'd like to expound further on the topic.
You have to remember, honesty is rarely rewarded.
My motto is LLAMF, a powerful tool for success.
Like a buddhist mantra, I chant it every morning as I'm getting out of bed.
If you look around you'll see this wherever you turn your head. On the news? People lying like a mothafuka for their job. People selling something on tv? Billboard? internet? Lying like a mothafuka. People in fancy suits with fancy pieces of cloth tied around their neck to tell you who the master holding their dog leash is? "I did not kill that hooker", "We have to sign the law to know whats in it", "These ratfuck starving terrorhobos huddled inside a cave out in buttfuck nowhere, saudi arabia? They made a nuclear bomb!". Lying..like a mothafuka.
And all of them have careers, or jobs, or some cause, or principles they 'believe' in. Or nation they 'serve'. Or any other justification, any other *excuse*. But really thats all it is.
In this great big universe, you didn't exist for billions, possibly trillions of years, and now you do, for a brief span, and then afterward, you'll cease to exist (maybe, who knows what happens after death?), for more billions or trillions of years.
Put on that scale, no utterance out of your mouth *can* or *will* ever really truly matter. at all.
I say, go nuts for donuts.
Did you know I was almost a billionaire? TRUE STORY.
Did you know I once told a guy in a turtle neck sweater about this great new idea for portable phones. His name was steve jobs. TRUE STORY.
Did you know I cowrote a canticle for leibowitz? TRUE STORY.
Did you know I'm a mothafuking time traveler? TRUE STORY.
Napoleon said "Imagination Rules The World". Of course he also said a bunch of other things, mostly (all) in french. I don't speak french. But why live in ordinary reality when countless others do? Why not live in a world all your own making, and let people believe whatever the hell you tell them? Why not be the most interesting person in the room? Or the most obnoxious, but hey, at least no one can say you didn't try!
Lie to me. You know I love it when you do.
My favorite lie I tell to *myself*, every morning. Like zen. "I'm gonna do something great one day."
And it keeps me going, keeps me high.
Whats your favorite kinda lie?4 -
So, I just (few hours ago)made a new variable that's either brilliant or innately flawed... not sure yet. It's an oddly unique var...
__bs__
So far I only made it in python and windows env (i script like the methodology of css).
I bet you're wondering how I've defined __bs__ and the practicality of it.
__bs__ is derived from a calculated level of bullshit that annoys me to tolerate, maintain, etc. as well as things that tend to throw nonsensical errors, py crap like changing my strings to ints at seemingly random times/events/cosmic alignments/etc or other things that have a history of pulling some bs, for known or unknown reasons.
How/why did this come about now?
Well I was updating some symlinks and scripts(ps1 and bat) cuz my hdd is so close to death I'm wondering if hdd ghosts exist as it's somehow still working (even ostream could tell it should be dead, by the sound alone).
A nonsense bug with powershell allowing itself to start/run custom ps1scripts with the originating command coming from a specific batch script, which worked fine before and nothing directly connected to it has changed.
I got annoyed so took an ironic break from it to work on python crap. Python has an innately high level of bs so i did need to add some extra calculations when defining if a py script or function is actually __bs__ or just py.
The current flavour of py bs was the datetime* module... making all of my scripts using datetime have matching import statements to avoid more bs.
I've kept a log of general bs per project/use case. It's more like a warning list... like when ive spent hours debugging something by it's traceback, meticulous... to eventually find out it had absolutely nothing to do with the exception listed. Also logged aliases i created, things that break or go boom if used in certain ways, packages that ive edited, etc.
The issue with my previous logging is that it's a log... id need to read it before doing anything, no matter how quick/simple it should be, or im bound to get annoyed with... bs.
So far i have it set to alert if __bs__ is above a certain int when i open something to edit. I can also check __bs__ fot what's causing the bs. I plan to turn it into a warning and recording system for how much bs i deal with and have historical data of personal performance vs bs tolerance. There's a few other applications i think ill want to use it for, assume it's not bs itself.
*in case you prefer sanity and haven't dealt with py and datetime enough, here's the jist:
If you were to search any major forum like StackOverflow for datetime use in py, youd find things like datetime.datetime.now() and datetime.now() both used, to get the same returned value. You'll also find tons of posts for help and trying to report 'bugs', way more than average. This is because the datetime package has a name conflict... with itself. It may have been a bug several years ago, but it beeb explicitly defined as intentional since.2 -
I'm fucking tired of my computer having random
2 seconds latency on any basic action and being slow as fuck regardless of powerful processor, ssd and 32GB RAM. Music via bluetooth is basically unusable since every few seconds the music stops for a 0.2s then plays again. I installed this system (opensuse tumbleweed) in February this year and it's just sad that I have reinstall again (any ideas for distro) ?
I made a dummy mistake of buying a CPU without internal graphics and this resulted in having to buy a GPU. So I got myself Nvidia(another mistake) since i though i would be using CUDA on the university. Turnes out CUDA cannot be installed for some retarded reason.
With Nvidia GPU the screens on my two monitors are swapping every time I use a hdmi switch to use other computer. On AMD GPU this problem does not exist. AMD GPU pro drivers are impossible to install. Computers barely fucking work, change my mind. Shit is breaking all the time. Everything is so half assed.
The music player that i use sometimes swaps ui with whatever was below it like for example the desktop background and i need to kill the process and start again to use the program. WTF.
Bluetooth seems to hate me. I check the bluetooth connected devices on my computer, it says headphones connected. BULLSHIT. The headphones are fucking turned OFF. How the fuck can they be connected you dumbass motherfucker computer. So I turn on the headphones. And I cannot connect them since the system thinks that they are already connected. So I have to unpair them and pair them again. WTF. Who fucking invents this bullshit?
Let's say i have headphones connected to the computer. I want to connect them to phone. I click connect from the phone settings. Nothing happens. Bullshit non telling error "could not connect". So I have to unpair from computer to pair to phone. Which takes fucking minutes, because reasons. VERY fucking convenient technology.
The stupid bluetooth headphones have a loud EARRAPE voice when turning them on "POWER ON!!! PAIRING", "CONNECTED", "DISCONNECT". Loudness of this cannot be modified. The 3 navigation buttons are fucking unrecognizable so i always take few seconds to make sure i click the correct button.
Fucking keyboard sometimes forgets that I remapped esc key to caps lock and then both keys don't work so i need to reconnect the keyboard cable. At least it's not fucking bluetooth.
The only reason why hdmi switches exist is because monitor's navigation menus have terrible ui and/or infrared activated, non-mechanical buttons.
Imagine the world where monitors have a button for each of it's inputs. I click hdmi button it switches it's input to hdmi. I click display port button - it switches to display port. But nooo, you have to go through the OSD menu.
My ~ directory has hundred of files that I never put there. Doesn't feel like home, more like a crackhead crib.
My other laptop (also tumbleweed) I click on hibernate option and it shuts down. WTF. Or sometimes I open the lid and screen is black and when i click keyboard nothing happens so i have to hold power button and restart.
We've been having computers for 20 + years and they still are slow, unreliable and barely working.
Is there a cure? I'm starting to think the reason why everything is working so shitty and unreliable, is because the foundations are rotten. The systems that we use are built with c, ridden with cryptic abbreviated code, undefined behavior and security vulnerabilities. The more I've written c programs the more convinced I am, that we should have abandoned it for something better long ago. Why haven't we? And honestly what would be better? Everything fucking sucks. The rust seems to be light in the tunnel but I don't know if this is only hype or is it really better. I'm sure it can't be worse than c or c++. Either we do something with the foundations or we're doomed.22 -
So, the PowerQuery type system appears to be a Joke.
For those you that aren't familiar with PowerQuery, it's the ETL language that is used in PowerBI, and some other parts of the MS PowerPlatform. It was formerly known as the M Language.
The language has a type system, that includes records (think hashes) and tables, which are, for practical purposes, a list of records.
The wonderful M language specification document states that:
"Any value that is a record conforms to the intrinsic type record, which does not place any restrictions on the field names or values within a record value. A record-type value is used to restrict the set of valid names as well as the types of values that are permitted to be associated with those names."
Except that the restriction is only to the set of valid names, and the language interpreter doesn't throw an error when I place a number into a text field, but also doesn't do any sort of implicit conversion. This is all hunky-dory, until you then try to load the data into the Tabular Model that underlies the query engine, which does expect the values to be of the type that is specified, and it throws an error.
But PowerBI, in its infinite wisdom, doesn't actually *record* the error, it merely tells you the error exists, and tells you to go back to the query editor to list the errors thrown up by the powerquery engine. Which, as previously stated, doesn't throw up an error for this instance.
So I've spent all afternoon trying to work out why my queries aren't loading, because I have an error that doesn't exist. fml.
[You can follow this issue on the communtiy feedback site here: https://community.powerbi.com/t5/... ] -
Dear frontend dev,
if you can't check whether a variable is defined or not, why do i have to change the back end to accept urlparam='undefined' as valid and replace it with your default value in my backend? Why are you afraid of 40X's? You should be interested in the bugs of your code.
It feels awful to have a middleware in place catching all errors and replacing them with empty 200 responses 😭. All of this because you don't fucking ensure your variables exist before use.3 -
rant.author != this
Christ people. This is just sh*t.
The conflict I get is due to stupid new gcc header file crap. But what
makes me upset is that the crap is for completely bogus reasons.
This is the old code in net/ipv6/ip6_output.c:
mtu -= hlen + sizeof(struct frag_hdr);
and this is the new "improved" code that uses fancy stuff that wants
magical built-in compiler support and has silly wrapper functions for
when it doesn't exist:
if (overflow_usub(mtu, hlen + sizeof(struct frag_hdr), &mtu) ||
mtu <= 7)
goto fail_toobig;
and anybody who thinks that the above is
(a) legible
(b) efficient (even with the magical compiler support)
(c) particularly safe
is just incompetent and out to lunch.
The above code is sh*t, and it generates shit code. It looks bad, and
there's no reason for it.
The code could *easily* have been done with just a single and
understandable conditional, and the compiler would actually have
generated better code, and the code would look better and more
understandable. Why is this not
if (mtu < hlen + sizeof(struct frag_hdr) + 8)
goto fail_toobig;
mtu -= hlen + sizeof(struct frag_hdr);
which is the same number of lines, doesn't use crazy helper functions
that nobody knows what they do, and is much more obvious what it
actually does.
I guarantee that the second more obvious version is easier to read and
understand. Does anybody really want to dispute this?
Really. Give me *one* reason why it was written in that idiotic way
with two different conditionals, and a shiny new nonstandard function
that wants particular compiler support to generate even half-way sane
code, and even then generates worse code? A shiny function that we
have never ever needed anywhere else, and that is just
compiler-masturbation.
And yes, you still could have overflow issues if the whole "hlen +
xyz" expression overflows, but quite frankly, the "overflow_usub()"
code had that too. So if you worry about that, then you damn well
didn't do the right thing to begin with.
So I really see no reason for this kind of complete idiotic crap.
Tell me why. Because I'm not pulling this kind of completely insane
stuff that generates conflicts at rc7 time, and that seems to have
absolutely no reason for being anm idiotic unreadable mess.
The code seems *designed* to use that new "overflow_usub()" code. It
seems to be an excuse to use that function.
And it's a f*cking bad excuse for that braindamage.
I'm sorry, but we don't add idiotic new interfaces like this for
idiotic new code like that.
Yes, yes, if this had stayed inside the network layer I would never
have noticed. But since I *did* notice, I really don't want to pull
this. In fact, I want to make it clear to *everybody* that code like
this is completely unacceptable. Anybody who thinks that code like
this is "safe" and "secure" because it uses fancy overflow detection
functions is so far out to lunch that it's not even funny. All this
kind of crap does is to make the code a unreadable mess with code that
no sane person will ever really understand what it actually does.
Get rid of it. And I don't *ever* want to see that shit again. -
!rant
Someone posted a link to a 30-day-security-challenge here on devRant some time ago and I just thought well, why not try to migrate away from the big companies - I've been using OneDrive as my only cloudstorage since the time when it was called SkyDrive and I've been hosting my Emails at outlook (via Live Custom Domains, a service that does not even exist anymore) for about 8 years now. Since I've always been lazy and since exchange activesync is a great feature if you have multiple calendars and want to sync them and your contacts to several devices I never tried to switch but now I am half done with migrating my data to my own nextcloud installation and my emails to my own mail server - since I don't want to loose the exchange functionality I am also setting up Z-Push and oh boy, this thing is bitching around but my webmail is already nicely integrated into nextcloud, IMAP / SMTP is up, configured and secured (still have to mess around with spamassassin as this email adress is floating around the web for about 10 years now). The only things to do is to get Z-Push work with STARTTLS and the card/caldav backend running and then the basic setup should be done.
I am just wondering if someone could hand me over a guide on how to sign / encrypt emails (GPG?) -
// Religion
"This life is intelligently designed"
Lemme critically analyze and explain why this life is fucking dumb as shit, whether it was designed by an intelligent Celestial Being (God) or not, the design is fucking STUPID
⚠️ 1. SLEEPING
Why do we have to waste 1/3 of our already very short lives on sleeping? That doesnt make any fucking sense. Sleeping is a waste of time. So many things could have been done if sleeping didnt exist.
✅ How i would solve this problem:
- not require any fucking sleep and still able to function perfectly fine.
⚠️ 2. EATING
Why? Who gives a shit? Why do i have to eat to live? How about not waste time on that shit and just live anyways?
✅ How i would solve this problem:
- not require to fucking eat and still function perfectly fine.
⚠️ 3. DRINKING
No one gives a shit. Why do i have to drink to live. What if i cant find water to drink. Its stupid
✅ How i would solve this problem:
- not having to be forced to drink water and still able to live fine.
⚠️ 4. SHITTING
Its fucking stupid and disgusting. Why do i have to shit through my asshole after eating? I just shit out everything i fought for to eat! Thats ridiculous and STUPID DESIGN.
✅ How i would solve this problem:
- embed toxic chemicals within the organism so the food that was eaten gets dissolved by ACID ☣️ within stomach. Same way how snakes have acid, they never shit, snakes just swallow and acid eats up whatever they ate. This same bullshit can be applied for pissing so I'll skip stupid design issue #5.16