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 - "break points"
-
Another story on the spirit of wk93. TL;DR I DOS'd the whole campus network for some beers.
In highschool teachers had this blackboard system (a sort of moodle) and we used to have really lazy teachers who only read the PowerPoint presentations and made us take notes. One day I was fed up with their bullshit and figured these lazy ass professors wouldn't "teach" crap as soon as there was no internet connection...so the race was on...
10 minutes before the bell rang a friend and I managed to break in into a computer lab, I booted up Kali and searched for the access points, 3 routers through the building all with CISCO OS.
I figured they had all the default configs, time was running out so I decided to Smurf the three access points with the lab's IP range, scheduled an automatic shutdown in 2 hours and blocked the PC. The bell rang and as predicted, no internet, no class, my friends and I used that free time to go to a bar (on a Monday afternoon).
Funny side note, since the 3 routers were down the whole network collapsed, no cameras, no access control, no faculty network or any network. We kept doing it and every time we did campus security would be desperately searching for someone with a black hoodie.6 -
Dev: I’m taking a vacation next week
Manager: Good you need a break! I’ve put together a list of tickets for you to action during vacation since you’ll mostly be free during that time
Dev: Do you know what vacation means?
Manager: Well I work during *my* vacation
Dev: You write non-answers to emails and interrupt devs with status questions that are easily answered by a single glance at the kanban board. Also, you’ve just assigned a month’s worth of storyboard points to me on my week long vacation. We’d get more work done if you didn’t “work” during your vacation.
Manager: Well it all needs to get done! It’s the only way we can catch up and get ahead of schedule.
Dev: Why do you exist again?15 -
When you are on location (football stadium in this case) and you realize that some part of the algorithm isn't working quite right.
We are building a webapp for a little bet-game for our local football team and today was the first live test. I fixed the way the points are calculated in the half-time break.
You can edit code on mobile on gitlab. Doesn't mean you should, but you could. And I did.26 -
2 hours, maybe 2.5.
No one works for more than that, it's not how brains work. Or bodies for that matter, you gotta pee eventually.
OK maybe I'm pedantic and shouldn't count breaks... But then where lies the threshold? A fifteen minute coffee break? An hour long lunch break?
Could we use scrum storypoints to brag then (I once finished 12 points in a day!) — not really, because they're not standardized units of work.
Lines of code then? Well, the dev who copy pastes Java classes would beat the guy adjusting a dense Python script, without necessarily doing more.
No, the only true measure is of course grams of amphetamine per week, and in that metric I win from everyone.
😂😅😶😣😓😟😖😧😵😰🚑16 -
Made a bad pun at work. Collegue:
What about I break this beer bottle *points at it*, stick it in your throat and put it up your ass sideways afterwards?
Me: 😅 I'll stop 😅
Sometimes my timing is bad :P13 -
This codebase reminds me of a large, rotting, barely-alive dromedary. Parts of it function quite well, but large swaths of it are necrotic, foul-smelling, and even rotted away. Were it healthy, it would still exude a terrible stench, and its temperament would easily match: If you managed to get near enough, it would spit and try to bite you.
Swaths of code are commented out -- entire classes simply don't exist anymore, and the ghosts of several-year-old methods still linger. Despite this, large and deprecated (yet uncommented) sections of the application depend on those undefined classes/methods. Navigating the codebase is akin to walking through a minefield: if you reference the wrong method on the wrong object... fatal exception. And being very new to this project, I have no idea what's live and what isn't.
The naming scheme doesn't help, either: it's impossible to know what's still functional without asking because nothing's marked. Instead, I've been working backwards from multiple points to try to find code paths between objects/events. I'm rarely successful.
Not only can I not tell what's live code and what's interactive death, the code itself is messy and awful. Don't get me wrong: it's solid. There's virtually no way to break it. But trying to understand it ... I feel like I'm looking at a huge, sprawling MC Escher landscape through a microscope. (No exaggeration: a magnifying glass would show a larger view that included paradoxes / dubious structures, and these are not readily apparent to me.)
It's also rife with bad practices. Terrible naming choices consisting of arbitrarily-placed acronyms, bad word choices, and simply inconsistent naming (hash vs hsh vs hs vs h). The indentation is a mix of spaces and tabs. There's magic numbers galore, and variable re-use -- not just local scope, but public methods on objects as well. I've also seen countless assignments within conditionals, and these are apparently intentional! The reasoning: to ensure the code only runs with non-falsey values. While that would indeed work, an early return/next is much clearer, and reduces indentation. It's just. reading through this makes me cringe or literally throw my hands up in frustration and exasperation.
Honestly though, I know why the code is so terrible, and I understand:
The architect/sole dev was new to coding -- I have 5-7 times his current experience -- and the project scope expanded significantly and extremely quickly, and also broke all of its foundation rules. Non-developers also dictated architecture, creating further mess. It's the stuff of nightmares. Looking at what he was able to accomplish, though, I'm impressed. Horrified at the details, but impressed with the whole.
This project is the epitome of "I wrote it quickly and just made it work."
Fortunately, he and I both agree that a rewrite is in order. but at 76k lines (without styling or configuration), it's quite the undertaking.
------
Amusing: after running the codebase through `wc`, it apparently sums to half the word count of "War and Peace"15 -
I'm such a fucking moron! I had a programing test at university today, there where two excercises and two hours time. Finished the first one within 20min, but couldn't crack the second one. As time went by, I got more and more nervous. My hands started shaking. I couldn't think straight. I should just have steped outside, ask for a bathroom break, whatever. But no, I wanted to solve it!
Went home after the timelimit. Sat down, wrote the same thing I had in my head, compile, test and would have gotten all the points. I was able to do in 20min when relaxed, what I wasn't able in 1h 40min.
Fuck me.5 -
Racism is still a thing in Germany...
At 11 am, I parked my car in to the right parking lane. It didn't cross any line. A woman in her 50s had the door to my side open and still didn't decide to close it, when I was parking.
Anyways, I got ready to get out of the car. All of the sudden, she knocked on my door. I did open the window.
[Short break: S=She and M=Me]
*Dialogue starts here*
S: How dare you park here?! Over there *points to the next parking slots next to her car* is enough place for your car.
M: I am allowed to park here. Plus, I am not crossing your lane. Aside from that, your door was open. Close the door first (before you fucking yell at me, you bitch - I didn't say this tho.).
S *completely ignores what I just said and focuses on my first phrase*: Of course, you are allowed to park here. But you are also allowed to go back to Turkey! *goes back to her car*
M *completely shocked and thinks about what I have been doing wrong and how Turkey is even related to this parking situation*: FUCK OFF!
*notes her license plate*
*finally gets out of the car. locks it. walks slowly in front of her car, when she just wants to drive away from the parking slot just to annoy the shit out of her with a big ass grin in my face waving at her*36 -
Once on my old job I had several ssh sessions and I was running some tests where I frequently restarted the application... Until I entered the restart command in the terminal of the production system and shutdown the whole application. - Still gives me the creeps today, was just lucky the customer was in a break and we could remotely restart it, so probably nobody even noticed.
Now today I run a "rm -rf *" on a folder that is supposed to be local, but after some time I get suspicious because it is taking too long.. Only to discover that the mount point of the remote resource points to my "local copy". Shit.
What is next? The "delete from ...;" without where clause? Fuck, aren't you supposed to get more experienced and cautious?4 -
"First remove the break points, and then commit the code".
He described it as if the breakpoints could stop time!! 😂5 -
Best part about the covid19 manufactured crisis?
Liquor stores deliver. Worst part about liquor stores delivering? Needing to use their shoddy websites.
I've been using a particular store (Total Wines) since they're cheaper than the rest and have better selection; it's quite literally a large warehouse made to look like a store.
Their website tries really hard to look professional, too, but it's just not. It took me two days to order, and not just from lack of time -- though from working 14 hour days, that's a factor.
Signing up was difficult. Your username is an email address, but you can't use comments because the server 500s, making the ajax call produce a wonderfully ambiguous error message. It also fades the page out like it's waiting on something, but that fade is on top of the error modal too. Similar error with the password field, though I don't remember how I triggered it.
Signing up also requires agreeing to subscribe to their newsletter. it's technically an opt-in, but not opting-in doesn't allow you to proceed. Same with opting-in to receiving a text notification when your order is ready for pickup -- you also opt-in to reciving SMS spam.
Another issue: After signing up, you start to navigate through the paginated product list. Every page change scrolls you to the exact middle of the next page. Not deliberatly; the UI loads first, and the browser gets as close as it can to your previous position -- which was below that as the pagination is at the bottom -- and then the products populate after. But regardless of why, there is no worse place to start because now you must scroll in both directions to view the products. If it stayed at the very bottom, it would at least mean you only need to scroll upwards to look at everything on the page. Minor, but increasingly irritating.
Also, they have like 198 pages of spirits alone because each size is unique entry. A 50ml, 350ml, 500ml, 750ml, 1000ml, and 1750ml bottle of e.g. Tito's vodka isn't one product, it's six. and they're sorted seemingly randomly. I think it's by available stock, looking back.
If you fancy a product, you can click on it for a detail page. Said detail page lists the various sizes in a dropdown, but they're not sorted correctly either, and changing sizes triggers a page reload, which leads to another problem:
if you navigate to more than a few pages within a 10 or so second window, the site accuses you of using browser automation. No captcha here, just a "click me for five seconds" button. However, it (usually) also triggers the check on every other tab you have open after its next nagivation.
That product page also randomly doesn't work. I haven't narrowed it down, but it will randomly decide to start failing, and won't stop failing for hours. It renders the page just fine, then immediately replaces it with a blank page. When it's failing, the only way to interact with the page is a perfectly-timed [esc], which can (and usually does) break all other page functionality, too. Absolutely great when you need to re-add everything from a stale copy of your signed-out cart living in another tab. More on that later. And don't forget to slow down to bypass the "browser automation" check, too!
Oh, and if you're using container tabs, make sure to open new tabs in the SAME container, as any request from the same IP without the login cookie will usually trigger that "browser automation" response, too.
The site also randomly signs you out, but allows you to continue amassing your cart. You'd think this is a good thing until you choose to sign in again... which empties your cart. It's like they don't want to make a sale at all.
The site also randomly forgets your name, replacing it with "null." My screen currently says "Hello, null". Hello, cruft!
It took me two days to order.
Mostly from lack of time, as i've been pulling 14 hour shifts lately trying to get everything done. but the sheer number of bugs certainly wasted most of what little time i had left. Now I definitely need a drink.
But maybe putting up with all of this is worthwhile because of their loyalty program? Apparently if you spend $500, you can take $5 off your next purchase! Yay! 1%! And your points expire! There are three levels; maybe it gets better. Level zero is for everyone; $0 requirement. There are also levels at $500 and $2500. That last one is seriously 5x more than the first paid level. and what does it earn you? A 'free' magazine subscription, 'free' classes (they're usually like $20-$50 iirc), and a 'free' grab bag (a $2.99 value!) twice per month. All for spending $2500. What a steal. It reminds me of Candy Crush's 3-star system where the first two stars are trivial, and the third is usually a difficult stretch goal. But here it's just thinly-veiled manipulation with no benefit.
I can tell they're employing some "smarketing" people with big ideas (read: stolen mistakes), but it's just such a fail.
The whole thing is a fail.8 -
Inspired by the comment I posted on another rant.
My uni decided to be one of those progressive tech schools that start people with Python. Mind you, I had prepared myself with studying as much as I could with math and programming by automating things and similar stuff in our computer when I was at my previous job, so I had a better idea as to what i could expect.
Introduction to computer science and programming with Python or some shit like that was the name of the class, and the instructor was a fat short ugly woman with a horrible attitude AND a phd in math, not comp sci and barely any industrial knowledge of the field.
She gave us the "a lot of you will fail" speech, which to me is code for "I suck and have no clue what I am doing"
One assignment involved, as per the requirements the use of switch cases. Now, unless someo knew came about, Python does not have swio cases. Me and a couple of less newbie like students tried to point out that switch cases were non existent and that her switch case example was in Javascript, not python, curly braces and everything. She told us to make it work.
We thought that she meant using a function with a dictionary and we pass the key and shit, a simple way of emulating the switch case.
NOPE she took points and insisted that she meant the example. We continuously pointed out that her example was in JS and that at the time Python did not have switch cases. The nasty woman laughed out and said that she didn't expect anyone to finish the assignment with full points.
Out of 100 points everyone got a 70. No problem. Wrote a detailed letter to the dean. Dean replied and talked to her (copied her in the email because fuck you bitch) and my grade was pulled up to full mark.
Every other class I had with her she did not question me. Which was only another class on some other shit I can't remember.
Teachers are what make or break a degree program. What make or break the experience, going to college is putting too much faith on people. If you ask me, trade certification, rigorous training is the future of computer science, or any field really. Rather than spending 4+ years studying a whoooole lotta shit for someone to focus on one field and never leave it.17 -
how to be a shitty client:
- have a legacy database where column names are misspelled and everything is nullable
- hire external help which instead of helping break the ui (bonus points for breaking the api too)
- demand a very much custom auth logic but decide to use aws cognito for shits and giggles
- demand 1hr daily meetings
- demand biometric auth with 0 knowledge of how biometric auth works (the previous devs just had a face id prompt which does nothing and retrieved email and password saved on the device???)
- message me at 2am because you don't understand how timezones work + demand a build while you're at it
- call me a "heretical pagan" because i took a day off on a holiday you don't celebrate (???)
i could go on but i think this is enough11 -
"I'm almost done, I'll just need to add tests!"
Booom! You did it, that was a nuke going off in my head.
No, you shouldn't just need to add tests. The tests should have been written from the get go! You most likely won't cover all the cases. You won't know if adding the tests will break your feature, as you had none, as you refactor your untested mess in order to make your code testable.
When reading your mess of a test case and the painful mocking process you went through, I silently cry out into the void: "Why oh why!? All of this suffering could have been avoided!"
Since most of the time, your mocking pain boils down to not understanding what your "unit" in your "unit test" should be.
So let it be said:
- If you want to build a parser for an XML file, then just write a function / class whose *only* purpose is: parse the XML file, return a value object. That's it. Nothing more, nothing less.
- If you want to build a parser for an XML file, it MUST NOT: download a zip, extract that zip, merge all those files to one big file, parse that big file, talk to some other random APIs as a side-effect, and then return a value object.
Because then you suddenly have to mock away a http service and deal with zip files in your test cases.
The http util of your programming language will most likely work. Your unzip library will most likely work. So just assume it working. There are valid use cases where you want to make sure you acutally send a request and get a response, yet I am talking unit test here only.
In the scope of a class, keep the public methods to a reasonable minimum. As for each public method you shall at least create one test case. If you ever have the feeling "I want to test that private method" replace that statement in your head with: "I should extract that functionality to a new class where that method public. I then can create a unit test case a for that." That new service then becomes a dependency in your current service. Problem solved.
Also, mocking away dependencies should a simple process. If your mocking process fills half the screen, your test setup is overly complicated and your class is doing too much.
That's why I currently dig functional programming so much. When you build pure functions without side effects, unit tests are easy to write. Yet you can apply pure functions to OOP as well (to a degree). Embrace immutability.
Sidenote:
It's really not helpful that a lot of developers don't understand the difference between unit, functional acceptance, integration testing. Then they wonder why they can't test something easily, write overly complex test cases, until someone points out to them: No, in the scope of unit tests, we don't need to test our persistance layer. We just assume that it works. We should only test our businsess logic. You know: "Assuming that I get that response from the database, I expect that to happen." You don't need a test db, make a real query against that, in order to test that. (That still is a valid thing to do. Yet not in the scope of unit tests.)rant developer unit test test testing fp oop writing tests get your shit together unit testing unit tests8 -
Yes yes yes
Let's spend countless hours writing painful spaghetti that generates a financial report, extend that spaghetti for specs, then not bother to check the amounts or status. or where it says the money went. Nope, checking non-unique names is totally good enough. We're so good at this. Ten points to the legendaries.
Let's also make the object factories not create the objects correctly, and make sure that report includes entries for orders that don't include any actual payments. Oh, their status? "Ready to send" of course! Let's send that totally valid $0.00 to nobody!
Oh, but Root. Root, root, root. You can't ADD payments to this. no no no. if you do, it'll break specs everywhere else that uses that factory! Shame on you for suggesting it.
Pssh, now you want to make a payment just for this report? Why would you do that? Our best devs have been working on this for years! What could you possibly know that they don't? No, they're perfect. Don't touch them. Just make them better, okay? No take, only throw!5 -
iPhones are ridiculously picky when it comes to finding a mate- um charger. And knowing why doesn't really make it any easier to understand why. If anything it baffles me more.
So, let's start with appliances that are not phones. Think Bluetooth headsets, keyboards, earbuds, whatever. Those are simple devices. They see 5V on the VCC line and 0V on ground, and they will charge at whatever current they are meant to. Usually it will not exceed 200mA, and the USB 2.0 spec allows for up to 500mA from any USB outlet. So that's perfectly reasonable to be done without any fuss whatsoever.
Phones on the other hand are smarter.. some might say too smart for their own good. In this case I will only cover Android phones, because while they are smarter than they perhaps should be, they are still reasonable.
So if you connect an Android phone to the same 5V VCC and 0V ground, while leaving the data lines floating, the phone will charge at 500mA. This is exactly to be within USB 2.0 spec, as mentioned earlier. Without the data lines, the phone has no way to tell whether it *can* pull more, without *actually* trying to pull more (potentially frying a charger that's not rated for it). Now in an Android phone you can tell it to pull more, in a fairly straightforward way. You just short the data lines together, and the phone will recognize this as a simple charger that it can pull 1A from. Note that shorting data lines is not a bad thing, we do it all the time. It is just another term for making a connection between 2 points. Android does this right. Also note that shorted data lines cannot be used to send data. They are inherently pulled to the same voltage level, probably 0V but not sure.
And then the iPhones come in, Thinking Different. The iPhones require you to pull the data lines to some very specific voltage levels. And of course it's terribly documented because iSheep just trying to use their Apple original white nugget charger overseas and shit like that. I do not know which voltage levels they are (please let me know!), but it is certainly not a regular short. Now you connect the iPhone to, say, a laptop or something to charge. An Android phone would just charge while keeping data transmission disabled (because they can be left floating or shorted). This is for security reasons mostly, preventing e.g. a malicious computer from messing with it. An iPhone needs to be unlocked to just charge the damn thing. I'm fairly sure that that's because the data lines need to be pulled up, which could in theory enable a malicious computer to still get some information in or out of it. USB data transmission works at at least 200mV difference between the data lines. It could be more than that. So you need to unlock it.
Apple, how about you just short your goddamn data lines too like everyone else? And while you're at it, get rid of this Lightning connector. I get it, micro USB was too hard for your users. I guess they are blind pigs after all. But USB-C solved all of that and more. The only difference I can think of is that the Lightning connector can be a single board with pads on either side on the connector, while in USB-C that could be at the socket end (socket being less common to be replaced). And at the end of the day, that really doesn't matter with all the other things that will break first.
Think Different. Think Retarded. Such tiny batteries and you can't even fucking charge them properly.6 -
Chrome, Firefox, and yes even you Opera, Falkon, Midori and Luakit. We need to talk, and all readers should grab a seat and prepare for some reality checks when their favorite web browsers are in this list.
I've tried literally all of them, in search for a lightweight (read: not ridiculously bloated) web browser. None of them fit the bill.
Yes Midori, you get a couple of bonus points for being the most lightweight. Luakit however.. as much as I like vim in my terminal, I do not want it in a graphical application. Not to mention that just like all the others you just use webkit2gtk, and therefore are just as bloated as all the others. Lightweight my ass! But programmable with Lua, woo! Not like Selenium, Chrome headless, ... does that for any browser. And that's it for the unique features as far as I'm concerned. One is slow, single-threaded and lightweight-ish (Midori) and another has vim keybindings in an application that shouldn't (Luakit).
Pretty much all of them use webkit2gtk as their engine, and pretty much all of them launch a separate process for each tab. People say this is more secure, but I have serious doubts about that. You're still running all these processes as the same user, and they all have full access to the X server they run under (this is also a criticism against user separation on a single X session in general). The only thing it protects against is a website crashing the browser, where only that tab and its process would go down. Which.. you know.. should a webpage even be able to do that?
But what annoys me the most is the sheer amount of memory that all of these take. With all due respect all of you browsers, I am not quite prepared to give 8 fucking gigabytes - half the memory in this whole box! - just for a dozen or so tabs. I shouldn't have to move my web browser to another lesser used 16GB box, just to prevent this one from going into fucking swap from a dozen tabs. And before someone has a go at the add-ons, there's 4 installed and that's it. None of them are even close to this complete and utter memory clusterfuck. It's the process separation. Each process consumes half a GB of memory, and there's around a dozen of them in a usual browsing session. THAT is the real problem. And I want to get rid of it.
Browsers are at their pinnacle of fucked up in my opinion, literally to the point where I'm seriously considering elinks. Being a sysadmin, I already live my daily life in terminals anyway. As such I also do have resources. But because of that I also associate every process with its cost to run it, in terms of resources required. Web browsers are easily at the top of the list.
I want to put 8GB into perspective. You can store nearly 2 entire DVD movies in that memory. However media players used to play them (such as SMPlayer) obviously don't do that. They use 60-80MB on average to play the whole movie. They also require far less processing power than YouTube in a web browser does, even when you download that exact same video with youtube-dl (either streamed within the media player or externally). That is what an application should be.
Let's talk a bit about these "complicated" websites as well. I hate to break it to you framework web devs, but you're a dime a dozen. The competition is high between web devs for that exact reason. And websites are not complicated. The document itself is plain old HTML, yes even if your framework converts to it in the background. That's the skeleton of your document, where I would draw a parallel with documents in office suites that are more or less written in XML. CSS.. oh yes, markup. Embolden that shit, yes please! And JavaScript.. oh yes, that pile of shit that's been designed in half a day, and has a framework called fucking isEven (which does exactly what it says on the tin, modulo 2 be damned). Fancy some macros in your text editor? Yes, same shit, different pile.
Imagine your text editor being as bloated as a web browser. Imagine it being prone to crashing tabs like a web browser. Imagine it being so ridiculously slow to get anything done in your productivity suite. But it's just the usual with web browsers, isn't it? Maybe Gopher wasn't such a bad idea after all... Oh and give me another update where I have to restart the browser when I commit the heinous act of opening another tab, just because you had to update your fucking CA certs again. Yes please!19 -
I am the manager of a customer service team of about 10-12 members. Most of the team members are right out of school and this is their first professional job and their ages range from 22-24. I am about 10 years older than all of my employees. We have a great team and great working relationships. They all do great work and we have established a great team culture.
Well, a couple of months ago, I noticed something odd that my team (and other employees in the building) started doing. They would see each other in the hallways or break room and say “quack quack” like a duck. I assumed this was an inside joke and thought nothing of it and wrote it off as playful silliness or thought I perhaps missed a moment in a recent movie or TV show to which the quacks were referring.
Fast forward a few months. I needed to do some printing and our printer is in a room that can be locked by anyone when it is in use (our team often has large volumes of printing they need to do and it helps to be able to sort things in there by yourself, as multiple people can get their pages mixed up and it turns into a mess). The door had been locked the entire day and this was around noon, and the manager I have the key to the door in case someone forgot to unlock it when they left. I walked in, and there were two of my employees on the couch in the copier room having sex. I immediately closed the door and left.
This was last week and as you can imagine things are very awkward between the three of us. I haven’t addressed the situation yet because of a few factors: This was during both of their lunch hours. They were not doing this on the clock (they had both clocked out, I immediately checked). We have an understanding that you can go or do anything on your lunch that you want, as long as you’re back after an hour. Also, as you mentioned in your answer last week to the person who overheard their coworker involved in “adult activities,” these people are adults and old enough to make their own choices.
But that’s not the end of the story. That same day, after my team had left, I was wrapping up and putting a meeting agenda on each of their desks for our meeting the next day. Out in broad daylight on the guys desk (one of the employees I had caught in the printing room) was a piece of paper at the top that said “Duck Club.” Underneath it, it had a list of locations of places in and around the office followed by “points.” 25 points – president’s desk, 10 points – car in the parking lot, 20 points – copier room, etc.
So here is my theory about what is going on (and I think I am right). This “Duck Club” is a club people at work where people get “points” for having sex in these locations around the office. I think that is also where the quacking comes into play. Perhaps this is some weird mating call between members to let them know they want to get some “points” with the other person, and if they quack back, they meet up somewhere to “score.” The two I caught in the copier room I have heard “quacking” before.
I know this is all extremely weird. I wasn’t even sure I wanted to write you because of how weird this seems (plus I was a little embarrassed). I have no idea what to do. As I mentioned above, they weren’t on the clock when this happened, they’re all adults, and technically I broke a rule by entering the copier room when it was locked, and would have never caught them if I had obeyed that rule. The only company rule I can think of that these two broke is using the copier room for other purposes, preventing someone else from using it.
I would love to know your opinion on this. I tend to want to sweep it under the rug because I’m kind of a shy person and would be extremely embarrassed to bring it up.21 -
Update: https://devrant.com/rants/5445368/...
My previous bosses were real awesome people. However, the current one is an intentional asshole.
He wants to review every piece of work. He thinks I am a retard who knows shit. He has no sense of feedback vs. humiliating criticism.
Fucker questions every single word.
For example, consider the following statement, "They are taking the Hobbits to Isengard."
He'd critical question every word like,
What do you mean by 'they'?
Why have you mentioned it?
Why does 'They' exists in English vocabulary?
Why cannot you try 'Your'?
What data points you have?
And after endless questioning, he'd repeat the same with next word. Making sure to break my spirit of working for him.
And let me add that his communication is saturated with heavy jargons which are difficult to understand. At times, I slow down to understand and absorb and he has a problem with that as well.
My past experience says that I learned a lot from strict managers.
But this fucker intentional criticises every aspect with zero to negative appreciation. All in the name of feedback.
I have gotten tons of compliments and good ratings in the past based on my communication and thought process. However, this fucker feels that my thought process is shit and I don't know how to communicate. Furthermore, he feels that I lack sense of ownership.
I really don't know what he saw in my resume or me to even hire me in the first place.
Given how he treats me and others, no wonder people are leaving. And if he fires me, good luck to him finding a sensible replacement who matches his expectations or puts up with his crap.3 -
For those keeping track of what inwas doing here: https://devrant.com/rants/1641742/...
Inhave been playing around woth fractals and making trees (although it wasnt 3 dementional) i have been taking time to learn things there regardless and had an attempt at making a landscape using Perlin noise procedurally generated by the computer
I am planning on releasing the code as soon as i figure out making these trees geberate at certain points of the land and firstly, make it branch in a 3 dementional space
Update of the land
Although i dont have the most time to so this and had to learn java in the process to move away from the limitations i had in the browser. It is a fun experiance and good break away from my actual job.
Ill see how it goes while working on this
✌7 -
Update on my Facebook and Booking.com interviews. I had them back to back today.
Even before I start, I accept and admit that I am a hypocrite. I hate Amazon yet order stuff from there. I hate Microsoft yet use their products. I hate Facebook yet went ahead to interview with them.
I fucking hate myself for compromising my ethics, values, and integrity. I had promised myself that even if I work for any major shit company, I'd never go with Facebook. Here I am after many years. Not an excuse, but I am doing it because I see it as an entry point into the UK. That's all.
Community's hate towards me is justified and I'd accept the discrimination from this community because this place is my digital home and you all are my family. Infact first thing I told mom was, dR boys are gonna disown me when they get to know about this.
Anyway, coming to the update part.
I had applied leave at work from last Friday. 4 days of leave earned me 10 days off (including weekends and 2 days of Diwali company holiday).
Last Thursday I got to know that Facebook has scheduled their interview today (Friday). I spent insane amount of time preparing. Approximately 8 hours everyday including weekend. I added nearly 40+ hours preparing for it in last 7 days, because I had to get in. Failure isn't an option now.
I sacrifice my family time, preparing for the interview.
I sacrifice Diwali break, sitting in front of the screen and studying.
I sacrifice my only vacation of 2021, doing mock interviews as late as 11.30 PM.
I sacrifice my free time and enjoyment, stressing over what could happen.
I was prepared like perfect for screening stage.
Interview 1: this guy comes and ask 'what is the best compliment you have got as a PM?' and 'Why do you want to quit the current company?'
He wasn't supposed to ask those as per Facebook's policy and interview stage.
Then he gave me a shit problem to solve and rejected my approach and wanted it his was. I tried to follow him and made sure I was able to convince with the reasoning but he kept pushing me back. He kept putting me down. Did not listen to me or what I had to convey or what was expected as an answer. He had certain output in his mind and wanted me to come up with it as an answer.
For the uninitiated: Facebook gives ton of preparation material and tells upfront the kind of questions they'll ask they just focus on few things. Moreover, in Product interviews, there isn't right or wrong answer.
Anyway, this guy started making funny expressions which put my morale down and I stood my ground with losing my cool. I managed to get all my answers right and the key points the look into a candidate. It went decent. Yet the interviewers attitude was something I did not like.
Interview 2: the lady was really kind and warm. Very accommodating and easy person to deal with. It went amazingly well.
I have two observations I want to share with you all.
1. I hate what Facebook does. Lizardberg is awful human being. But I absolutely liked HOW they are doing things, at least from an interview stand point. They even had mock sessions by their PMs and upfront told how to prepare and how to answer.
2. While it seems to be a 5 star experience, I found them to function mechanically. No small talk, no human connection (ironic to their mission), no conversational flow of the interview (again something that they kept saying a zillion times in all their material). They came, formally introduced themselves, and had a checklist kind of attitude, and left.
I now await for the feedback.
In the next hour, I had Booking.com first round.
Amazing people. Warm friendly experience. Treated me as a human. Heard me. Made me feel part of the conversation rather than someone just being judged.
It went 1000x better than Facebook.
I await the feedback from them as well.
I don't know what's gonna happen but one thing for sure, the kind of expectations Facebook set for their interviews, was nowhere close to the reality. It was awful.
180° was for Booking.com
Guess the saying stands true, expectations always lead to disappointment.
Finally I feel de-stressed and my Diwali vacation starts AFTER Diwali ended. Or rather just a regular weekend.
2021 has been terribly awful year for me. Hope this shitty year ends soon.36 -
So this just happened,
Me and my co-worker (we are junior developers) were working on the same bug, it was a post call throwing a server exception.
We had asked for help to debug this issue from a senior developer the day before, he was quite busy with his own tasks.
He is one those kinds who would keep working even if the entire bay is wasting their time, always keeping to himself, needless to say I haven't seen him smile.
Back to my story, he couldn't spare time yesterday so we tried to squash the bug ourselves thinking he might have forgotten we had called him.He then comes out of nowhere, he firsr checks the button bindings, params sent and the call being made.
He then went through the backend code strategically placing the break points, clicks and debugs a few times and then opens the console. BAM!!!!
" D' hell yo !!" Shows up in the console, not just once but multiple times. Turns out I forgot the logger I had placed in the catch block.
He turns to me in super slo-mo looks me in the eye and whispers "what the hell yo!" and kept quite for some time, meanwhile the sense of cringe was slowly creeping on me. That was when he let out a loud blurt and the entire cabin turned to us. Needless to say it was awkward.
His smile was creepy though :/ -
My lessons both come from my current side project (I will share it with you in a week or two, the website isn't finished yet):
1. Every project comes to the point where it hurts to continue. Keep pushing, the result is worth it.
2. You aren't as good as you thought you were when you started, but you'll be better than you ever were when you finish.
3. Sometimes, there's more points to a list than you'd expect.
4. One hour per day is easier than five hours a week.
How?
Well. I started out my project knowing some C#, but Jack shit about unity. I know most of what I might build will end up being shit I'm gonna regret, refactor and recycle later. But I don't give a fuck. Doing it is better than planning it.
It sometimes hurts to get rid of a carefully planned algorithm that took hours to build because it fails in practice. But it's the right thing to do.
Never plan too much. If I'd have planned this project out, I wouldn't even have started with what I'm good at: write code, break shit and experiment.
It's easier to progress slowly but steady. Look at some awesome games that have been worked on for ages while the public had their say (RimWorld, Project Zomboid, Dwarf Fortress...) as opposed to those that are developed behind closed doors and rushed to the market before Christmas or some other major event (Mafia 3, Fallout 76, Fallout 4 VR...). Progress slowly, deploy early, push often. And the one hour per day approach is a good way to do this. -
How do you debate the "it's more complex in my opinion" statement?
So, some months ago I was looking at some code which has stuff as 300 lines of code function(s) and I could feel the bad smell irl...
I analyze it a bit and there is a lot of stuff which is misplaced, repeated or unsafe.
I first re-arrange it and remove redundancy, then break it down in about five functions (plus a caller), all is now readable and assignIcon k(made-up name) only assigns an icon, it doesn't also send a rocket in space.
But then I put the code in review and the previous author of the code says that it's now unreadable, because s/he has to look as multiple functions. I counter by showing how s/he does not need to read 300 lines of code to find a bug, but approximately 60, and I point at how misleading having an `assignIcon` function which also sends rockets in space is.
The counter? "But it looks confusing to have smaller functions, revert it."
How would you debate that? I am shy and hate myself a lot, so I have issues debating good points, but I am really really sure a lot of bugs I encountered were due to stuff like this so I would like to be able to explain my point in a more efficient way, for future teams.12 -
When a dev leaves a project in the middle, and someone else has to continue their shit, that's the worst fucking thing ever!
3000+ lines of codes in just one class? Fuck!
I don't even know where to put my code, where to put debugger break points, where to... fuck fuck fuck!!! >_<4 -
Is there anything that brings more self-shame, then having to create break points by echoing out the current state of variables every second line or so in order to understand your bug?
Or is that just something you can't avoid sometimes...
I think it means there's something wrong on a high level with your code if you have to squeak out like that.
Yeah. squeaking sucks.4 -
Work on a Python mapping project, get everything right except changing color of points on the map. Take a long break on that project, come back and realize I made a capitalization error 😂😂
-
FUCKING SOURCETREE!!!!!!! HOW THE FUCK DO U MANAGE TO BREAK YOURSELF MORE AND MORE...
Got a new PC so had to reinstall and apparently there's a new version, new UI/UX.... works ok... fine... :(
Now after some autoupdates the Bitbucket URL isn't recognized and I need to get a new repo....
I copy the URL (sourcetree://...) from the button but then ST complains some stupid HTTPS SSL cert error..... FUCK!!!
Tried IE, doesn't recognize the URL....
Last resort... I look at the URL itself...
hm.... points to a *.git file
Ok lets use git shell on another repo and get the remote address...
ssh://git@....
FUCK U!!!!!!!!!!!!!!!!!! HAD TO MANUALLY REVERSE ENGINEER AN SSH URL BECAUSE U CANT WORK WITH URSELF...9 -
Well fuck. This laptop was nice, then the hinges decided to remove themselves from the mount points. Also a metal side rail mananaged break as well...
Anyone have good suggestions for laptops? Prefer machines with a distro of Linux on it, but not afraid to install8 -
Most of us have scary stories about professors that think that they know about what they are talking about when it comes to teaching comp sci subjects. Shit is so backwards in most parts of the world with teachers showing outdated or completely pointless tech.
A friend called me the other day asking for classic ASP help because it was being used in his web class. Another was asking me about flipping c cgi web scripting. Wtf are schools teaching? Having the drive to LEARN actuall useful topics that are relevant on the market is hard enough as it is...shouldn't schools help at least a little bit? I was lucky, we were thaught Java, Python, cpp, js, sql, html5, css3, php, ruby and we had classes for node (for those interested) and asp.net mvc. Those were RELEVANT and good classes and while some outdated tech was good the rest is just bullshit. Specially since most teachers have 0 market value as develpers...but hey!! Wtf do I know! Of course my word is shit against all them doctorate and master degrees.
Gimme a break. School can be great. But a lot of the leadership there is toxic af for our industry. And while I appreciate the effort in me being thaught modern languages (and thaught is a hard word since I already knew how to program way before going to school) i still remember a teacher taking points away from an assignment for not using switch statements in Python...despite my explaining that there was no such thing (you can go around it by using a lil technique using functions, its pretty cool..pero no mames)
Or what about the time I mentioned to a fellow student how he could use markup for having more control with his windows forms while the very same teacher contradicted me saying that shit was not possible. Or the guy at the school in which I work teaching intro to programming using fucking vba...fk man if you are going the BASIC route at least teach them b4j or something fuuuuck.
I had good teachers, but they were always cast asside by dptmnt heads as if they knew better. I just hate pendejo teachers I really do.
Chinguen a su madre, bola de babosos.rant remembering uni yes asshole gnu linux is a viable alternative i still love coding fuck bad teachers fk the system11 -
This developer has an media query break point for each style 912 break points. 304 desktop, 304 mobile, and 304 tablet break points. With 18000 line style sheet.6
-
Make someone create a shitload of tests for your shitty code, then don't give a shit when your commit break almost everything, finally; make the guy who wrote the tests figure your shit out.
Bonus points: Whine about something that's been broken for weeks "without you knowing" when the test suites have been saying exactly that since your commit.1 -
Agile Product Owner: How long do you think this task will take?
Me: Probably 13 points.
APO: That is too many can you break it down into separate tasks?
Me: Sure its probably an 8 and an 8. Since i need to work on them sequentially and one depends on the other, the second task will take longer if i need to make changes after the first one is merged.
~ Turned 104 (8 tasks * 13) points into 128 (16 tasks * 8 points) points.
A 13 represents a whole 2 week sprint.
An 8 represents a week and a half.
We cannot fit 2 8 point tasks in the same sprint, so now it takes 2 whole sprints to complete 2, 8 point tasks.
We have no smaller tickets so we don't work for the rest of the sprint.
Anyone else been here?5 -
So I got assigned to this project last week to help other developers to remove bugs from a android app. First bug I have to deal with: field that should only accept integers is accepting other characters and thus crashes the app.
Alright seems like a simple bug to get into the project and Xamarin. So I set some break points and find the bug: "uncaught FormatException on line 789 Convert.ToInt(string, v) .
OK then, implement some try-catch and add a warning message to the user.
let's try it out... alright, message works, close message and app crashes
-Tsc... dammit
search for the bug in code... "uncaught FormatException on line 899 Convert.ToInt(string, v)"
what the...
wait a minute, ~ Ctrl + F ~ - "Convert.ToInt"
17 matches on file
oh fuck me...2 -
Best and worse IDE feature for you.
Me :
IDE : VS2019
Best : Conditional break points (cf image)
Worst : Git branches management (For example : can’t delete multiple branches at the same time)14 -
The life of a normal person is like waking up every day with a zero on the scale of suffering. You did something good — here are -20 points to that scale. Something bad happened — well, here are +10 points. Being a bipolar person, my life is like beginning every day with +500 suffer points. Every day is a devastating uphill battle to just break even.
Why live then?
You can't win. If you have a healthy sleep schedule, do sports and eat healthy, it's still +500 every day. One mistake like fucking up your sleep schedule — boom, you now start at +700.
In Japan, a new breakthrough in psychiatry is happening as they were able to tie bipolar disorder to a HHV6 herpesvirus messing up the operation of Parkinje cells in human brain, unreachable to the immune system because of blood-brain barrier. A nasal spray treatment is proposed. If successful, bipolar disorder could be cured forever.
Until an actual nasal spray is released, I decided to wait because it's a huge bummer killing myself only some three years before this breakthrough.
But if their experiments will never come to fruition and my conventional therapy will not be successful, I will kill myself.
I don't want to live like this.6 -
I'm starting to realize that maybe the issue with my team is that they don't know how to break down complex problems into smaller parts that can be completed, tested one by one, allowing you to create save points.
To them it's either all or nothing... And once they're done, they cannot explain what they did other than it works..2 -
Visual Studio causes Covid!
Well, not really, but it surely disrupts life!
It is a damned shame that a product that promises so much is so flaky!
I have abandoned attempts to use it.
-loses form design
-fails to recognise break points
-changes target configuration on it’s own
-JUST PLAIN SUCKS!!!!
NOT USESBLE6 -
What a consultant's gotta do for his timesheet when homeworking:
1. Fill in Excel, send to self by mail (corporate bitlocker protected PC on proxy that doesnt allow local printer connections)
2. Go upstairs to secondary Windows PC (no Excel on main Linux laptop) and open mail
3. Send to printer, wait 10 minutes (old printer needs to 'warm up')
4. Sign timesheet and go back upstairs
5. Scan signed version, send mail to self.
6. Open personal mail on corporate laptop, send to manager. (can't send directly from personal mail)
7. Wait to get back signed timesheet from manager
8. Finally, send to own admin dept.
2 story points completed, time for a break.1 -
How to protect API endpoints from unauthorized usage by bots?
If the API end points are meant to be used by any incoming to CSR frontend user without prior registration?
So far, my the only idea is going from pure CSR React to something with partial SSR at least in Node.js, Django or any other backend framework. I would be able restricting some API endpoints usage to specific allowed server ip.
Next.js allows dynamically both things as well.
As alternative I have a guess to invent some scheme with temporally issued tokens... But all my scheme ideas I can break really easily so far.
Any options? If SSR is my only choice, what would you recommend as best option in already chosen Django and not decided fully front-end framework?
I have the most crazy idea to put some CSR frontend framework literally into my django backend and making initial SSR from it. The only thing its missing... my lack of skills how to use React, but perhaps I have enough time to get a hang of it.
SSRed frontend can be protected with captcha means at least.16 -
Working on a web API project in C#, our frontend is another company, the body gets to them but they claim that the json is incorrectly formatted... I'm sure that it isn't but whatever...
I keep digging around to see what can be done, a "helpful" colleague offers to help, only to start asking about everything from scratch and after frustrating and distracting me like... 10 fold, I leave him to play as he wants, then hard reset and move on...
fire postman and focus on the logs... nothing! database... nothing!
couple of minutes later, I look at that far small laptop screen to find out that he has drenched my code with break points and the IDE is blinking its tabs off over there on the screen I rarely look at!
Tell me again why do we work in open spaces?!!3 -
Do you ever have days where you get absolutely nothing done, because of a local environment problem. My xdebug would break on break points but once you stepped to the next breakpoint it would halt execution of the code... It worked fine yesterday!!!!! Arghhh1
-
I think that "agile development" paradigm is really bad for programmers when it is directed by incapable people... I mean: "move fast and break things" is not a good philosophy, it is only an excuse for doing incomplete, buggy and "documentless" features that only helps the PM "visibility" (look at all the things that I did, I've been releasing 1 version per week, we have included 3 new features... we are burning 25 scrum points per capita per week)... we have to stand against this stupid way of doing things... Scrum makes that all the responsability is on us, as developers, and PMs can wash their hands freely...2