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 - "not reverse"
-
So I got the job. Here's a story, never let anyone stop you from accomplishing your dreams!
It all started in 2010. Windows just crashed unrecoverably for the 3rd time in two years. Back then I wasn't good with computers yet so we got our tech guy to look at it and he said: "either pay for a windows license again (we nearly spend 1K on licenses already) or try another operating system which is free: Ubuntu. If you don't like it anyways, we can always switch back to Windows!"
Oh well, fair enough, not much to lose, right! So we went with Ubuntu. Within about 2 hours I could find everything. From the software installer to OpenOffice, browsers, email things and so on. Also I already got the basics of the Linux terminal (bash in this case) like ls, cd, mkdir and a few more.
My parents found it very easy to work with as well so we decided to stick with it.
I already started to experiment with some html/css code because the thought of being able to write my own websites was awesome! Within about a week or so I figured out a simple html site.
Then I started to experiment more and more.
After about a year of trial and error (repeat about 1000+ times) I finally got my first Apache server setup on a VirtualBox running Ubuntu server. Damn, it felt awesome to see my own shit working!
From that moment on I continued to try everything I could with Linux because I found the principle that I basically could do everything I wanted (possible with software solutions) without any limitations (like with Windows/Mac) very fucking awesome. I owned the fucking system.
Then, after some years, I got my first shared hosting plan! It was awesome to see my own (with subdomain) website online, functioning very well!
I started to learn stuff like FTP, SSH and so on.
Went on with trial and error for a while and then the thought occured to me: what if I'd have a little server ONLINE which I could use myself to experiment around?
First rented VPS was there! Couldn't get enough of it and kept experimenting with server thingies, linux in general aaand so on.
Started learning about rsa key based login, firewalls (iptables), brute force prevention (fail2ban), vhosts (apache2 still), SSL (damn this was an interesting one, how the fuck do you do this yourself?!), PHP and many other things.
Then, after a while, the thought came to mind: what if I'd have a dedicated server!?!?!?!
I ordered my first fucking dedicated server. Damn, this was awesome! Already knew some stuff about defending myself from brute force bots and so on so it went pretty well.
Finally made the jump to NginX and CentOS!
Made multiple VPS's for shitloads of purposes and just to learn. Started working with reverse proxies (nginx), proxy servers, SSL for everything (because fuck basic http WITHOUT SSL), vhosts and so on.
Started with simple, one screen linux setup with ubuntu 10.04.
Running a five monitor setup now with many distro's, running about 20 servers with proxies/nginx/apache2/multiple db engines, as much security as I can integrate and this fucking passion just got me my first Linux job!
It's not just an operating system for me, it's a way of life. And with that I don't just mean the operating system, but also the idea behind it :).20 -
Client: I want you to reverse engineer this piece of software!!
*posts some link to an exe on altervista along with some unrelated crap*
Oh and "I PAY"! (Because you can't even take that for granted anymore these days.)
Me: Alright, I'll look into it but I'm not a reverse engineering expert so don't expect too much.
*Closes Facebook*
Client, day after: Hey have you looked into it already? Have you finished it already?! HEY, RESPOND ALREADY!!!
Me (thinking): YEAH AFTER 1 DAY AND NO PAYMENT DETAILS WHATSOEVER, I INSTANTLY DROPPED EVERYTHING JUST TO PLEASE YOU, FILTHY RAT SACK!! You fucking wish, motherfucker. Down to lowest priority you go! And if I don't feel like doing it, how about I just drop your request and tell you to suck my fleshy snek, HOW ABOUT THAT HUH? Fucking piece of shit 😤12 -
I go to unlock my car, but the button I usually use is gone. Instead now it unlocks by long-pressing the car handle.
Ok, got it.
Then my ignition isn't there? Oh, it's in the middle of the steering wheel now? Ok.. but it doesn't work? Oh I have to sign in with Google or Facebook, alright...
Wait, where's my odometer? Oh this is "card" view, and I guess I want "compact" view, huh. Is there a dark theme? Guess not.
Why can't I shift? Oh the stick is a hamburger button now, weird. Um, and reverse is in a sub-menu? That's going to get annoying.
Alright just need to look in the mirror to see if.. wtf? You call this "responsive" or something? I can't see out that tiny window.
I'm very disappointed in all this, I wonder if I can roll back. Oh WHERE ARE THE BRAKES OH GOD
UX DESIGNERS
HAVE
FUCKING
KILLED ME
WHY DID WE TRUST THEM AND THEIR GODFORSAKEN UPDATES10 -
Does anyone else have that one guy or gal you work with that's ALWAYS the one to find the weirdest, inexplicable bugs possible? Yup. That's me. Here's some fun examples.
*Unplugs monitor from laptop, causing kernel panic*
*Mouse moves in reverse when inside canvas*
*Program fails to compile, yet compiler blames a syntax error that doesn't exist*
*malloc on the first line of a program causes a segfault*
And for how the conversation usually goes
Me: "[coworker], mind taking a look at this?"
Coworker: "Sure.This better not be another one of 'your bugs'. ... ... ... Well, if you need me I'll be at my desk."
Me: "So you know what's causing it?"
Coworker: "Nope. I've accepted that you're cursed and you should do the same."8 -
We're using a ticket system at work that a local company wrote specifically for IT-support companies. It's missing so many (to us) essential features that they flat out ignored the feature requests for. I started dissecting their front-end code to find ways to get the site to do what we want and find a lot of ugly code.
Stuff like if(!confirm("blablabla") == false) and whole JavaScript libraries just to perform one task in one page that are loaded on every page you visit, complaining in the js console that they are loaded in the wrong order. It also uses a websocket on a completely arbitrary port making it impossible to work with it if you are on a restricted wifi. They flat out lie about their customers not wanting an offline app even though their communications platform on which they got asked this question once again got swarmed with big customers disagreeing as the mobile perofrmance and design of the mobile webpage is just atrocious.
So i dig farther and farthee adding all the features we want into a userscript with a beat little 'custom namespace' i make pretty good progress until i find a site that does asynchronous loading of its subpages all of a sudden. They never do that anywhere else. Injecting code into the overcomolicated jQuery mess that they call code is impossible to me, so i track changes via a mutationObserver (awesome stuff for userscripts, never heard of it before) and get that running too.
The userscript got such a volume of functions in such a short time that my boss even used it to demonstrate to them what we want and asked them why they couldn't do it in a reasonable timeframe.
All in all I'm pretty proud if the script, but i hate that software companies that write such a mess of code in different coding styles all over the place even get a foot into the door.
And that's just the code part: They very veeeery often just break stuff in updates that then require multiple hotfixes throughout the day after we complain about it. These errors even go so far to break functionality completely or just throw 500s in our face. It really gives you the impression that they are not testing that thing at all.
And the worst: They actively encourage their trainees to write as much code as possible to get paid more than their contract says, so of course they just break stuff all the time to write as much as possible.
Where did i get that information you ask? They state it on ther fucking career page!
We also have reverse proxy in front of that page that manages the HTTPS encryption and Let's Encrypt renewal. Guess what: They internally check if the certificate on the machine is valid and the system refuses to work if it isn't. How do you upload a certificate to the system you asked? You don't! You have to mail it to them for them to SSH into the system and install it manually. When will that be possible you ask? SOON™.
At least after a while i got them to just disable the 'feature'.
While we are at 'features' (sorry for the bad structure): They have this genius 'smart redirect' feature that is supposed to throw you right back where you were once you're done editing something. Brilliant idea, how do they do it? Using a callback libk like everyone else? Noooo. A serverside database entry that only gets correctly updated half of the time. So while multitasking in multiple tabs because the performance of that thing almost forces you to makes it a whole lot worse you are not protected from it if you don't. Example: you did work on ticket A and save that. You get redirected to ticket B you worked on this morning even though its fucking 5 o' clock in the evening. So of course you get confused over wherever you selected the right ticket to begin with. So you have to check that almost everytime.
Alright, rant over.
Let's see if i beed to make another one after their big 'all feature requests on hold, UI redesign, everything will be fixed and much better'-update.5 -
Where do I even start?
Personal projects?
So many. Shouldn't count.
Unpaid game dev intern?
Unpaid game dev volunteer?
Both worthwhile, if stressful. Shouldn't count either.
Freelancing where clients refused to pay?
That's happened a few times. One of them paid me in product instead of cash (WonderSoil, a company that [apparently still] makes and sells some expanding super potting soil thing). The product turned out to be defective and killed all of the plants I used it on. I'd have preferred getting stiffed instead. Their "factory" (small, almost tiny) was quite cool. The owner was a bitch. Probably still is.
Companies that have screwed me out of pay?
So many. I still curse their names at least once a month. I've been screwed out of about $13k now, maybe more. I've lost track.
I have two stories in particular that really piss me off.
The first: I was working at a large robotics company, and mostly enjoyed my job, though the drive was awful. The pay wasn't high either, but I still enjoyed the work. Schedule was nice, too: 28 hours (four 7-hour days) per week. Regardless, I got a job offer for double my salary, same schedule, and the drive was 11 minutes instead of 40. I took it. My new boss ended up tricking me into being a contractor -- refused to give me a W2, no contracts, etc. Later, he also increased my hours to 40 with no pay increase. He also took forever to pay (weeks to months), and eventually refused to pay me to my face, in front of my cowokers. Asshole still owes me about $5k. Should owe me the the difference in taxes, too (w2 vs 1099) since he lied about it and forced me into it when it was too late to back out.
I talked to the BBB, the labor board, legal council, the IRS (because he was actively evading taxes), the fire inspector (because he installed doors taht locked if the power went out, installed the exit buttons on the fucking ceiling, and later disconnected all of said exit buttons). Nobody gave a single shit. Asshole completely got away with everything. Including several shady as hell things I can't list here because they're too easy to find.
The second one:
The economy was shit, and I was out of a job. I had been looking for quite awhile, and an ex-coworker (who had worked at google, interestingly) suggested I work for this new startup. It was a "reverse search engine," meaning it aggregated news and articles and whatnot, and used machine learning to figure out what its users are interested in, and provided them with exactly that. It would also help with scheduling, reminders of birthdays, mesh peoples' friends' travel plans and life events, etc. (You and a friend are going on vacation to the same place, and your mutual friend there is having a birthday! You should go to ___ special event that's going on while you're all there! Here's a coupon.) It was pretty cool. The owner was not. He delayed my payments a few times, and screwed me over on pay a few more times, despite promising me many times that he was "not one of those people." He ended up paying me less than fucking minimum wage. Fake, smiling, backstabbing asshole.
The first one still pisses me off more, though, because of all the shit I went through trying to get my missing back pay, and how he conned me every chance he got. And how he yelled at me and told me, to my face, that he wasn't ever going to pay me. Fucking goddamn hell I hate that guy.8 -
Actual rant time. And oh boy, is it pissy.
If you've read my posts, you've caught glimpses of this struggle. And it's come to quite a head.
First off, let it be known that WINDOWS Boot Manager ate GRUB, not the other way around. Windows was the instigator here. And when I reinstalled GRUB, Windows threw a tantrum and won't boot anymore. I went through every obvious fix, everything tech support would ever think of, before I called them. I just got this laptop this week, so it must be in warranty, right? Wrong. The reseller only accepts it unopened, and the manufacturer only covers hardware issues. I found this after screaming past a pretty idiotic 'customer representative' ("Thank you for answering basic questions. Thank you for your patience. Thank you for repeating obvious information I didn't catch the first three times you said it. Thank you for letting me follow my script." For real. Are you tech support, or emotional support? You sound like a middle school counselor.) to an xkcd-shibboleth type 'advanced support'. All of this only to be told, "No, you can't fix it yourself, because we won't give you the license key YOU already bought with the computer." And we already know there's no way Microsoft is going to swoop in and save the day. It's their product that's so faulty in the first place. (Debian is perfectly fine.)
So I found a hidden partition with a single file called 'Image' and I'm currently researching how to reverse-engineer WIM and SWM files to basically replicate Dell's manufacturing process because they won't take it back even to do a simple factory reset and send it right back.
What the fuck, Dell.
As for you, Microsoft, you're going to make it so difficult to use your shit product that I have to choose between an arduous, dangerous, and likely illegal process to reclaim what I ALREADY BOUGHT, or just _not use_ a license key? (Which, there's no penalty for that.) Why am I going so far out of my way to legitimize myself to you, when you're probably selling backdoors and private data of mine anyway? Why do I owe you anything?
Oh, right. Because I couldn't get Fallout 3 to run in Wine. Because the game industry follows money, not common sense. Because you marketed upon idiocy and cheapness and won a global share.
Fuck you. Fuck everything. Gah.
VS Code is pretty good, though.20 -
Backend internship interview
They: Can you reverse the given string without using pointers? (C++)
Me: Yeah, sure
*Then I start explaining how I am gonna approach the problem and such*
They: Ok, we understand that you can do it, now can you write a front-end that has a couple of routes. Also, these routes should have some sort of list views because we want you to print information **attention** that you are going to parse from Amazon inside those list views.
Me: *dumbfounded and trying to explain that am not a front-end developer*
They: But we still want you to do this.3 -
My first hack... Back at the days when phones had disks to dial a number. I was a kid of cause, I'm not that old. I used to like to call my grans. Once, when I supposed to go to sleep already, I've found out that there is phone socket in my room (the one connected to the copper wire, that is where the word "phone line" came from).
It took me about a half of an hour to detach handset from the toy phone and about two ours to reverse engineer dialing protocol (you just need to disconnect the line sequentially corresponding number if times).
And after that I've heard my granny's voice. I was literally overwhelmed that it worked.6 -
Me talking to a recruiter (even though I am not looking for a job)
Me: If I walk into an interview, and they ask me to reverse a binary tree for a frontend Reac or Vue position or something along those lines, I will end the call and/or walk away from it.
Him: I get similar feelings from other programmers, I don't quite understand why the notion is as common
Me: Because it is fucking useless, it servers no purpose to a dev to know about that when building frontends with react, I link my github profile, for which they can find advanced backend-frontend related projects, compiler and interpreter projects, plus the title I currently have at my workplace and a bunch of other shit, I am not interviewing for a teaching position at an institute, but an actual place of work, for which if they want to know about DS and A they can review my profile which has a repo of DS and A in about 5 different languages including plain C++. I do not need to be offended by such notions since they server no purpose on the frontend, and neither do other devs. If anything it should be a casual conversation during the interview, not a basis for employment.
Recruiter: .........thank you for explaining this to me, I am sure I can bring it up to the agencies doing the reviews and interviews. Are you still interested?
Me: Are they going to give me a coding assignment for a project or a bs question like what I mentioned?
Him: I don't know
Me: then I am not interested12 -
Hello, I just want to let you know I'm working on a 15 year old product and it is currently in production.
It uses Angular.js and one of the earliest versions of React.js. I cannot use ES6, we don't have Babel, no JSX syntax, no CSS preprocessor. No webpack.
I must support browser since IE6 with an ES3 syntax. (luckily I got some some polyfills for an ES5 syntax)
When I build a component I have to call React.createClass and React.createElement.
The render() function is basically a nested pile of React.createElement.
There is no documentation for this product, no tests, no anything.
I had to reverse engineer it in order to understand how it works.
The code base uses mixed programming styles and naming conventions, plus thousands of little js files.
Oh and obviously no hot reload, every time I make a change I have to restart everything.
Please, send help.
I'm in danger.
Sincerely,
An underpaid developer
....
I'm not crying, you are crying...19 -
No, MD5 hash is not a safe way to store our users' passwords. I don't care if its been written in the past and still works. I've demonstrated how easy it is to reverse engineer and rainbow attack. I've told you your own password for the site! Now please let me fix it before someone else forces you to. We're too busy with other projects right now? Oh, ok then, I'll just be quiet and ignore our poor security. Whilst I'm busy getting on with my other work, could you figure out what we're gonna do with the tatters of our client's business (in which our company owns a stake) in the aftermath of the attack?7
-
The client requested an ability to create reports in the app I had been working on. It was completed to their specification and they were happy with it for about a week.
Then, they asked me to redo the report, changing various components around so I told them it can be done, but is time consuming because they're essentially asking for a completely different report.
Now, they never even looked at the code before and the extent of their coding knowledge is excel formulas. Their repond to me was "it's easy, just reverse the loop."
I simply did not know how to respond. "Just reverse the loop." ...I mean it's so simple, just reverse the loop... It doesn't matter that I've spent a good amount of time on this already, or that the client have never seen the code, doesn't understand coding, doesn't care about programming, none of that matter. ...just...reverse...the...loop...6 -
School has default router username and password. And it's not just a shitty tp-link router. It runs linux.
Made a simple reverse shell and I have a fully functional linux computer. Not really a hack, but it's sad.
Soon to get to the school server!3 -
The education system is a fucking joke. How do you get through all the required courses and get to the capstone course where your one goal is to build a simple prototype of a project(like a simple website) for a real world client and not know HTML or CSS when you spent a whole fuckboy semester on a class dedicated to HTML, css, JavaScript and the teacher gave you the PHP. Not only that but you can't even figure out how to use a simple google search to look up the documentation on any of these topics or even the easy to follow tutorials littering the internet on how to use Bootstrap which is what we're fucking using to make it faster to develop the core logic of our app but all you fucking want to do is take shortcuts and create a PowerPoint presentation in google slides and make an easy project look like shit and make me and yourselves look like shit. But don't fucking worry, I'll code the whole thing in a fucking night because you didn't do your part of taking care of just the front end and planned for your incompetence and lack of questions or help. I know you're busy looking for a job for after you graduate but you can't even answer a simple programming question. Let me give you the solution on how to reverse a string, cuz you don't remember c# but it literally takes 30 seconds to google the solution that is everywhere. My project team is why no one takes a degree from this university seriously.9
-
In the begining of time, when The Company was small and The Data could fit in some fucking excel sheets, Those Who Came Before implemented some java tool to issue invoices, notify customers and clear received payments.
Then came the Time Of The Great Expanse, when The Company grew to unthinkable levels. Headcount increased with each passing day, and The Data shows that everything was going great!
But when the future seemed bright, came The Stall-Out. The days when The Company could not expand as fast as it did before. And Those Who Came Before left, abandoning their Undocumented Java Tool to its own luck.
Those who came after knew nothing of the inner workings of the Undocumented Java Tool. They knew only that the magical Jar would take a couple fucking excel spreadsheets and spit out reports and send emails like magic.
And those were The Dark Days.
In the darkness, The Data grew to be a monster. Soon a fucking excel spreadsheet could not hold The Data contained any longer. Those Who Came After, fearing the wrath of The Undocumented Java Tool, dared not mess with its code. Instead, they fucking cut away the lowest volume transactions from the fucking input spreadsheet, and left the company to report the unbilled invoices as "surprise losses". Fucking script kiddies, were Those Who Came After.
Then, at The Darkest of Days (literally, Dec 21st), marched into the project The Six Witchers, who fear not the Demon of Refactoring.
This story is still unfolding. Will The Six Witchers manage to unravel the mysteries of The Undocumented Java Tool? Will they be able to reverse engineer the fucking black box, and scale it's magic into a modern application?
Will they decrease revenue forecasting error by at least 2% in a single strike?
Only the future will tell.16 -
Dropping out of college because it was useless, and getting a job in the industry while continuing to teach myself.
That way I was paid to learn instead of the reverse — and I learned newer and actually useful things. I also saved time to boot.
I might not have a masters degree, but that doesn’t matter, either. Experience is always better than a comparable amount of education.
Honestly, none of the good devs I have worked with held masters degrees. To a one, they were all self-taught.7 -
Tech support for Friend...
Again...
Ok...
A friend ran down the hallway to my Appartement, I opened the door for him and asked him "What The Fuck... Is wrong with you?!" He was just coughing like...
My... Laptop.... Is... Slow...
When he then eventually came to the point where he could Breath normally again I asked him to login into his by then super with shitty software bloated PC... It was a mess... A Desktop full of Shit... only Shit... I
then opened Chrome and Task Manager...
and holy shit... EVERYTHING! Literally ANYTHING was under 100% Load... Yet his shitty Fans werent spinning up... Shutdown the Laptop and opened it... not to my surprise it was full of Dust... I cleaned it and booted it again... still 100% Load... I couldnt do shit without being bombarded with porn and Hentai Ads... So... I asked him "Did you make any backups to this machine?" He was like.. "*Really long explenation* No *Really long Explenation*"
Great... i thought to myself... Then I said to him his PC was so trash that i only could Reset it to 0... He was like DO ANYTHING YOU CAN LITERALLY ANYTHING!
I then explained him, Resetting this PC Means literally 0 A Fresh start, nothing of your data will be there literally nothing...
He again Was like DO IT!
So I did... When it was done i showed him the result... He FREAKED OUT LIKE THE WORLD WAS GOING TO FUCKING END, HE SCREAMED AT ME WHAT THE HELL HAVE YOU DONE? REVERSE IT! REVERSE IT NOW!
I Then said to him, I reset it to 0, I said this would happen...
He then took his now perfectly running Laptop and Ran away...
tl;dr
Tech support for friend, Reset PC to 0, Freaked out AF...3 -
I've found and fixed any kind of "bad bug" I can think of over my career from allowing negative financial transfers to weird platform specific behaviour, here are a few of the more interesting ones that come to mind...
#1 - Most expensive lesson learned
Almost 10 years ago (while learning to code) I wrote a loyalty card system that ended up going national. Fast forward 2 years and by some miracle the system still worked and had services running on 500+ POS servers in large retail stores uploading thousands of transactions each second - due to this increased traffic to stay ahead of any trouble we decided to add a loadbalancer to our backend.
This was simply a matter of re-assigning the IP and would cause 10-15 minutes of downtime (for the first time ever), we made the switch and everything seemed perfect. Too perfect...
After 10 minutes every phone in the office started going beserk - calls where coming in about store servers irreparably crashing all over the country taking all the tills offline and forcing them to close doors midday. It was bad and we couldn't conceive how it could possibly be us or our software to blame.
Turns out we made the local service write any web service errors to a log file upon failure for debugging purposes before retrying - a perfectly sensible thing to do if I hadn't forgotten to check the size of or clear the log file. In about 15 minutes of downtime each stores error log proceeded to grow and consume every available byte of HD space before crashing windows.
#2 - Hardest to find
This was a true "Nessie" bug.. We had a single codebase powering a few hundred sites. Every now and then at some point the web server would spontaneously die and vommit a bunch of sql statements and sensitive data back to the user causing huge concern but I could never remotely replicate the behaviour - until 4 years later it happened to one of our support staff and I could pull out their network & session info.
Turns out years back when the server was first setup each domain was added as an individual "Site" on IIS but shared the same root directory and hence the same session path. It would have remained unnoticed if we had not grown but as our traffic increased ever so often 2 users of different sites would end up sharing a session id causing the server to promptly implode on itself.
#3 - Most elegant fix
Same bastard IIS server as #2. Codebase was the most unsecure unstable travesty I've ever worked with - sql injection vuns in EVERY URL, sql statements stored in COOKIES... this thing was irreparably fucked up but had to stay online until it could be replaced. Basically every other day it got hit by bots ended up sending bluepill spam or mining shitcoin and I would simply delete the instance and recreate it in a semi un-compromised state which was an acceptable solution for the business for uptime... until we we're DDOS'ed for 5 days straight.
My hands were tied and there was no way to mitigate it except for stopping individual sites as they came under attack and starting them after it subsided... (for some reason they seemed to be targeting by domain instead of ip). After 3 days of doing this manually I was given the go ahead to use any resources necessary to make it stop and especially since it was IIS6 I had no fucking clue where to start.
So I stuck to what I knew and deployed a $5 vm running an Nginx reverse proxy with heavy caching and rate limiting linked to a custom fail2ban plugin in in front of the insecure server. The attacks died instantly, the server sped up 10x and was never compromised by bots again (presumably since they got back a linux user agent). To this day I marvel at this miracle $5 fix.1 -
Just thought I'd share my current project: Taking an old ISA sound card I got off eBay and wiring it up to an Arduino to control its OPL3 synth from a MIDI keyboard. I have it mostly working now.
No intention to play audio samples, so I've not bothered with any of the DMA stuff - just MIDI (MPU-401 UART) and OPL3.
It has involved learning the pinout of the ISA bus connectors, figuring out which ones are actually used for this card, ignoring the standards a little (hello, amplifier chip that is wired up to the +12V line but which still happily works at +5V...)
Most of the wires going to it are for each bit of the 16-bit address and 8-bit data. Using a couple of shift registers for the address, and a universal shift register for the data. Wrote some fairly primitive ISA bus read/write code, but it was really slow. Eventually found out about SPI and re-wrote the code to use that and it became very fast. Had trouble with some timings, fixed those.
The card is an ISA Plug and Play card, meaning before I could use it I had to tell it what resources to use. Linux driver code and some reverse-engineering of the official Windows/DOS drivers got me past this stage.
Wired up IRQ 5 to an Arduino interrupt to deal with incoming MIDI data, with a routine that buffers it. Ran into trouble with the interrupt happening during I/O and needing to do some I/O inside the handler and had to set a flag to decide whether to disable/re-enable interrupts during I/O.
It looks like total chaos, but the various wires going across the breadboard are mainly to make it easier to deal with the 16-bit address and 8-bit data lines. The LEDs were initially used to check what addresses/data were being sent, but now only one of them is connected and indicates when the interrupt handler is executing.
There's still a lot to do after that though - MIDI and OPL3 are two completely different things so I had to write some code to manage the different "channels" of the OPL3 chip. I have it playing multiple notes at the same time but need to make it able to control the various settings over MIDI. Eventually I might add some physical controls to it and get a PCB made.
The fun part is, I only vaguely know what I'm doing with the electronics side of this. I didn't know what a "shift register" was before this project, nor anything about the workings of the ISA bus. I knew a bit about MIDI (both the protocol and generally how the MPU-401 UART works) along with the operation of a sound card from a driver/software perspective, but everything else is pretty new to me.
As a useful little extra, I made some "fake" components that I can build the software against on a PC, to run some tests before uploading it to the Arduino (mostly just prints out the addresses it is going to try and write to).46 -
!!oracle
I'm trying to install a minecraft modpack to play with a friend, and I'm super psyced about it. According to the modpack instructions, the first step is to download the java8 jre. Not sure if I actually need it or not, but it can download while I'm doing everything else, so I dutifully go to the download page and find the appropriate version. The download link does point to the file, but redirects to a login page instead. Apparently I need an oracle account to download anything on their site. stupid.
So I make an account. It requires my life story, or at least full name and address and phone number. stupid. So my name is now "fuck off" and I live in Hell, Michigan. My email is also "gofuckyourself" because I'm feeling spiteful. Also, for some reason every character takes about 3/4ths of a second to type, so it's very slow going. Passwords also cannot contain spaces, which makes me think they're doing some stupid "security" shenanigans like custom reversible encryption with some 5th grade math. or they're just stupid. Whatever, I make the stupid account.
Afterwards, I try to log in, but apparently my browser-saved credentials are wrong? I try a few more times, try enabling all of the javascripts, etc. No beans. Okay, maybe I can't use it until I verify the email? That actually makes some sense. Fine, I go check the throwaway inbox. No verification email. It's been like five minutes, but it's oracle so they probably just failed at it like everything else, so I try to have them resend the email. I find the resend link, and try it. Every time I enter my email address, though, it either gives me a validation error or a server error. I try a few mores times, and give up. I try to log in again; no dice. Giving up, I go do something else for awhile.
On a whim later, I check for the verification email again. Apparently it just takes bloody forever, but it did show up. Except instead of the first name "Fuck" I entered, I'm now "Andrew", apparently. okay.... whatever. I click the verify button anyway, and to my surprise it actually works, and says that I'm now allowed to use my account. Yay!
So, I go back to the login page (from the download link) and enter my credentials. A new error appears! I cannot use redirects, apparently, and "must type in the page address I want to visit manually." huh? okay, i go to the page directly, and see the same bloody error because of course i do because oracle fucking sucks. So I close the page, go back to the download list, click the link, wait for the login page redirect (which is so totally not allowed, apparently, except it works and manual navigation does not. yay backwards!), and try to log in.
Instead of being presented with an error because of the redirect, it lets me (try to) log in. But despite using prefilled creds (and also copy/pasting), it tells me they're invalid. I open a new tab container, clear the cache (just to be thorough), and repeat the above steps. This time it redirects me to a single signon server page (their concept of oauth), and presents me with a system error telling me to contact "the Administrator." -.- Any second attempts, refreshes, etc. just display the same error.
Further attempts to log in from the download page fail with the same invalid credentials error as before.
Fucking oracle and their reverse Midas touch.10 -
Had 2 days of vacation. Theoretically (plus weekend, plus 2 days) 6 days.
Worked today… At Saturday.
Some administrators forgot to properly check bandwidth limitations....
*rolls eyes*
We had a major version upgrade of some server software at Monday.
Guess why I got called...
Of course it MUST be the software upgrade.
It couldn't be the new hardware that was setup 2 weeks ago and on which a lot of "important" VMs were migrated.
*eyes roll inside till only white is visible*
The even more annoying thing is that it wasn't that hard to figure out.
Looking at monitoring, we had spikes on 20 Gbit/s (roughly 2.x Gigabyte/sec - Ethernet) connection of some server at roughly 1.9 plus Gigabyte/sec.
IO latency spikes that made the graph look like a heartbeat EKG with severe tachycardia...
*additionally to white eyes starts cursing in reverse latin*
Incompetent admin answer: Booboo that can only be your fault - the developers must investigate.
Me (just a tad more polite): Meep Meep mother fucker, get your shit together. If the software would eat that much, the network would be a niece chunk of charcoal. Plus the time (sending instead of links to monitoring pictures… guess the lazy fucktard who's brain is a vacuum didn't even bother to check it)...
NOTICE SOMETHING?!
Incompetent admin: It starts at the same time. Always.
After wasting roughly another hour of time discussing with him, I just hanged up the video call.
Called someone I knew from the admin department and turns out that - drumrolls please - the incompetent admin was someone who got recruited 3 months ago…
*turning into antichrist*
I then had a not so polite discussion about how the only competent people could take days off (all except incompetent admin were on vacation) and the seemingly incompetent fresh recruit - who by the way NEVER mentioned this - was the only one left of the admin department. Which would be bad alone, but no - he even got the 24/7 emergency support role for the whole weekend.
Sometimes this company and HR especially notoriously drive me insane...
Guess next week there will be some HR barbecue.
But yeah. After a lot of raging around we nailed it down to the traffic of backups and could fix it.
Roughly 4 hours of analysis, communication, raging and hatred.
Just one hour implementing shit.
*goozfraba*11 -
Programming Languages are Like Cars:
Assembler: A formula I race car. Very fast but difficult to drive and maintain.
FORTRAN II: A Model T Ford. Once it was the king of the road.
FORTRAN IV: A Model A Ford.
FORTRAN 77: a six-cylinder Ford Fairlane with standard transmission and no seat belts.
COBOL: A delivery van. It's bulky and ugly but it does the work.
BASIC: A second-hand Rambler with a rebuilt engine and patched upholstery. Your dad bought it for you to learn to drive. You'll ditch it as soon as you can afford a new one.
PL/I: A Cadillac convertible with automatic transmission, a two-tone paint job, white-wall tires, chrome exhaust pipes, and fuzzy dice hanging in the windshield.
C++: A black Firebird, the all macho car. Comes with optional seatbelt (lint) and optional fuzz buster (escape to assembler).
ALGOL 60: An Austin Mini. Boy that's a small car.
ALGOL 68: An Aston Martin. An impressive car but not just anyone can drive it.
Pascal: A Volkswagon Beetle. It's small but sturdy. Was once popular with intellectual types.
liSP: An electric car. It's simple but slow. Seat belts are not available.
PROLOG/LUCID: Prototype concept cars.
FORTH: A go-cart.
LOGO: A kiddie's replica of a Rolls Royce. Comes with a real engine and a working horn.
APL: A double-decker bus. It takes rows and columns of passengers to the same place all at the same time but it drives only in reverse and is instrumented in Greek.
Ada: An army-green Mercedes-Benz staff car. Power steering, power brakes, and automatic transmission are standard. No other colors or options are available. If it's good enough for generals, it's good enough for you.
Java: All-terrain very slow vehicle.10 -
Staring at cursed blinking cursors.
Repairing work of worst thinking workers
Reverse merges or it'll murder the servers, it nurtures despair
Amateur managers, dimwitted savages interrupt all of us janitors
Cleaning up damages, spills and experiments using skills in embarrassment
Explicit foulness, in a minute it's straight to the bowels with weapons of limitless vowels
A bittersweet hateful machete, eviscerates stateful spaghetti
The slow disease flowing from keys knowing it's going to please
The growing unease, no one agrees, there's no guarantees with your useless degrees
Need more drugs, keyboard's crawling with bugs, falling as I chug
A bottle of cognac gotta love all the hacks, no poise for code that lacks
All the noise, gotta relax, before I destroy the syntax.
Excuse me for not making sense.
Too gloomy, aching and tense.10 -
It has been bugging the shit out of me lately... the sheer number of shit-tier "programmers" that have been climbing out of the woodwork the last few years.
I'm not trying to come across as elitist or "holier than thou", but it's getting ridiculous and annoying. Even on here, you have people who "only do frontend development" or some other lame ass shit-stain of an excuse.
When I first started learning programming (PHP was my first language), it wasn't because I wanted to be a programmer. I used to be a member (my account is still there, in fact) of "HackThisSite", back when I was about 12 years old. After hanging out long enough, I got the hint that the best hackers are, in essence, programmers.
Want to learn how to do SQL injection? Learn SQL - write a program that uses an SQL database, and ask yourself how you would exploit your own software.
Want to reverse engineer the network protocol of some proprietary software? Learn TCP/IP - write a TCP/IP packet filter.
Back then, a programmer and a hacker were very much one in the same. Nowadays, some kid can download Python, write a "hello, world" program and they're halfway to freelancing or whatever.
It's rare to find a programmer - a REAL programmer, one who knows how the systems he develops for better than the back of his hand.
These days, I find people want the instant gratification that these simpler languages provide. You don't need to understand how virtual memory works, hell many people don't even really understand C/C++ pointers - and that's BASIC SHIT right there.
Put another way, would you want to take your car to a brake mechanic that doesn't understand how brakes work? I sure as hell wouldn't.
Watching these "programmers" out there who don't have a fucking clue how the code they write does what it does, is like watching a grown man walk around with a kid's toolbox full or plastic toys calling himself a mechanic. (I like cars, ok?!)
*sigh*
Python, AngularJS, Bootstrap, etc. They're all tools and they have their merits. But god fucking dammit, they're not the ONLY damn tools that matter. Stop making excuses *not* to learn something, Mr."IOnlyDoFrontEnd".
Coding ain't Lego's, fuckers.36 -
Okay, so I'm in rage mode right now :/
Last week a client of mine absolutely insisted on removing the "irritating delete popups" as they phrased it, against my advice.
In short, when deleting a record, I had a sexy "swal" confirmation appear (see https://limonte.github.io/sweetaler...) with some key data from the record, that prompted the user to confirm the action.
The client has now emailed me with the subject "URGENT, please read ASAP!!!". The email says his staff has deleted lots of records incorrectly.
*** face palm ***.
This is EXACTLY why we include delete confirmation prompts.
As I've used Laravel with soft deletes (luckily for my client) it shouldn't be a huge issue to reverse around 400 deleted records. However, I'm charging my client for half a days work out of principal.
Perfect example of my client not listening to me :(5 -
I've optimised so many things in my time I can't remember most of them.
Most recently, something had to be the equivalent off `"literal" LIKE column` with a million rows to compare. It would take around a second average each literal to lookup for a service that needs to be high load and low latency. This isn't an easy case to optimise, many people would consider it impossible.
It took my a couple of hours to reverse engineer the data and implement a few hundred line implementation that would look it up in 1ms average with the worst possible case being very rare and not too distant from this.
In another case there was a lookup of arbitrary time spans that most people would not bother to cache because the input parameters are too short lived and variable to make a difference. I replaced the 50000+ line application acting as a middle man between the application and database with 500 lines of code that did the look up faster and was able to implement a reasonable caching strategy. This dropped resource consumption by a minimum of factor of ten at least. Misses were cheaper and it was able to cache most cases. It also involved modifying the client library in C to stop it unnecessarily wrapping primitives in objects to the high level language which was causing it to consume excessive amounts of memory when processing huge data streams.
Another system would download a huge data set for every point of sale constantly, then parse and apply it. It had to reflect changes quickly but would download the whole dataset each time containing hundreds of thousands of rows. I whipped up a system so that a single server (barring redundancy) would download it in a loop, parse it using C which was much faster than the traditional interpreted language, then use a custom data differential format, TCP data streaming protocol, binary serialisation and LZMA compression to pipe it down to points of sale. This protocol also used versioning for catchup and differential combination for additional reduction in size. It went from being 30 seconds to a few minutes behind to using able to keep up to with in a second of changes. It was also using so much bandwidth that it would reach the limit on ADSL connections then get throttled. I looked at the traffic stats after and it dropped from dozens of terabytes a month to around a gigabyte or so a month for several hundred machines. The drop in the graphs you'd think all the machines had been turned off as that's what it looked like. It could now happily run over GPRS or 56K.
I was working on a project with a lot of data and noticed these huge tables and horrible queries. The tables were all the results of queries. Someone wrote terrible SQL then to optimise it ran it in the background with all possible variable values then store the results of joins and aggregates into new tables. On top of those tables they wrote more SQL. I wrote some new queries and query generation that wiped out thousands of lines of code immediately and operated on the original tables taking things down from 30GB and rapidly climbing to a couple GB.
Another time a piece of mathematics had to generate all possible permutations and the existing solution was factorial. I worked out how to optimise it to run n*n which believe it or not made the world of difference. Went from hardly handling anything to handling anything thrown at it. It was nice trying to get people to "freeze the system now".
I build my own frontend systems (admittedly rushed) that do what angular/react/vue aim for but with higher (maximum) performance including an in memory data base to back the UI that had layered event driven indexes and could handle referential integrity (overlay on the database only revealing items with valid integrity) or reordering and reposition events very rapidly using a custom AVL tree. You could layer indexes over it (data inheritance) that could be partial and dynamic.
So many times have I optimised things on automatic just cleaning up code normally. Hundreds, thousands of optimisations. It's what makes my clock tick.4 -
Okay guys, this is it!
Today was my final day at my current employer. I am on vacation next week, and will return to my previous employer on January the 2nd.
So I am going back to full time C/C++ coding on Linux. My machines will, once again, all have Gentoo Linux on them, while the servers run Debian. (Or Devuan if I can help it.)
----------------------------------------------------------------
So what have I learned in my 15 months stint as a C++ Qt5 developer on Windows 10 using Visual Studio 2017?
1. VS2017 is the best ever.
Although I am a Linux guy, I have owned all Visual C++/Studio versions since Visual C++ 6 (1999) - if only to use for cross-platform projects in a Windows VM.
2. I love Qt5, even on Windows!
And QtDesigner is a far better tool than I thought. On Linux I rarely had to design GUIs, so I was happily surprised.
3. GUI apps are always inferior to CLI.
Whenever a collegue of mine and me had worked on the same parts in the same libraries, and hit the inevitable merge conflict resolving session, we played a game: Who would push first? Him, with TortoiseGit and BeyondCompare? Or me, with MinTTY and kdiff3?
Surprise! I always won! 😁
4. Only shortly into Application Development for Windows with Visual Studio, I started to miss the fun it is to code on Linux for Linux.
No matter how much I like VS2017, I really miss Code::Blocks!
5. Big software suites (2,792 files) are interesting, but I prefer libraries and frameworks to work on.
----------------------------------------------------------------
For future reference, I'll answer a possible question I may have in the future about Windows 10: What did I use to mod/pimp it?
1. 7+ Taskbar Tweaker
https://rammichael.com/7-taskbar-tw...
2. AeroGlass
http://www.glass8.eu/
3. Classic Start (Now: Open-Shell-Menu)
https://github.com/Open-Shell/...
4. f.lux
https://justgetflux.com/
5. ImDisk
https://sourceforge.net/projects/...
6. Kate
Enhanced text editor I like a lot more than notepad++. Aaaand it has a "vim-mode". 👍
https://kate-editor.org/
7. kdiff3
Three way diff viewer, that can resolve most merge conflicts on its own. Its keyboard shortcuts (ctrl-1|2|3 ; ctrl-PgDn) let you fly through your files.
http://kdiff3.sourceforge.net/
8. Link Shell Extensions
Support hard links, symbolic links, junctions and much more right from the explorer via right-click-menu.
http://schinagl.priv.at/nt/...
9. Rainmeter
Neither as beautiful as Conky, nor as easy to configure or flexible. But it does its job.
https://www.rainmeter.net/
10 WinAeroTweaker
https://winaero.com/comment.php/...
Of course this wasn't everything. I also pimped Visual Studio quite heavily. Sam question from my future self: What did I do?
1 AStyle Extension
https://marketplace.visualstudio.com/...
2 Better Comments
Simple patche to make different comment styles look different. Like obsolete ones being showed striked through, or important ones in bold red and such stuff.
https://marketplace.visualstudio.com/...
3 CodeMaid
Open Source AddOn to clean up source code. Supports C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript.
http://www.codemaid.net/
4 Atomineer Pro Documentation
Alright, it is commercial. But there is not another tool that can keep doxygen style comments updated. Without this, you have to do it by hand.
https://www.atomineerutils.com/
5 Highlight all occurrences of selected word++
Select a word, and all similar get highlighted. VS could do this on its own, but is restricted to keywords.
https://marketplace.visualstudio.com/...
6 Hot Commands for Visual Studio
https://marketplace.visualstudio.com/...
7 Viasfora
This ingenious invention colorizes brackets (aka "Rainbow brackets") and makes their inner space visible on demand. Very useful if you have to deal with complex flows.
https://viasfora.com/
8 VSColorOutput
Come on! 2018 and Visual Studio still outputs monochromatically?
http://mike-ward.net/vscoloroutput/
That's it, folks.
----------------------------------------------------------------
No matter how much fun it will be to do full time Linux C/C++ coding, and reverse engineering of WORM file systems and proprietary containers and databases, the thing I am most looking forward to is quite mundane: I can do what the fuck I want!
Being stuck in a project? No problem, any of my own projects is just a 'git clone' away. (Or fetch/pull more likely... 😜)
Here I am leaving a place where gitlab.com, github.com and sourceforge.net are blocked.
But I will also miss my collegues here. I know it.
Well, part of the game I guess?7 -
EEEEEEEEEEEE Some fAcking languages!! Actually barfs while using this trashdump!
The gist: new job, position required adv C# knowledge (like f yea, one of my fav languages), we are working with RPA (using software robots to automate stuff), and we are using some new robot still in beta phase, but robot has its own prog lang.
The problem:
- this language is kind of like ASM (i think so, I'm venting here, it's ASM OK), with syntax that burns your eyes
- no function return values, but I can live with that, at least they have some sort of functions
- emojies for identifiers (like php's $var, but they only aim for shitty features so you use a heart.. ♥var)
- only jump and jumpif for control flow
- no foopin variable scopes at all (if you run multiple scripts at the same time they even share variables *pukes*)
- weird alt characters everywhere. define strings with regular quotes? nah let's be [some mental illness] and use prime quotes (‴ U+2034), and like ⟦ ⟧ for array indexing, but only sometimes!
- super slow interpreter, ex a regular loop to count to 10 (using jumps because yea no actual loops) takes more than 20 seconds to execute, approx 700ms to run 1 code row.
- it supports c# snippets (defined with these stupid characters: ⊂ ⊃) and I guess that's the only c# I get to write with this job :^}
- on top of that, outdated documentation, because yea it's beta, but so crappin tedious with this trail n error to check how every feature works
The question: why in the living fartfaces yolk would you even make a new language when it's so easy nowadays to embed compilers!?! the robot is apparently made in c#, so it should be no funcking problem at all to add a damn lua compiler or something. having a tcp api would even be easier got dammit!!! And what in the world made our company think this robot was a plausible choice?! Did they do a full fubbing analysis of the different software robots out there and accidentally sorted by ease of use in reverse order?? 'cause that's the only explanation i can imagine
Frillin stupid shitpile of a language!!! AAAAAHHH
see the attached screenshot of production code we've developed at the company for reference.
Disclaimer: I do not stand responsible for any eventual headaches or gauged eyes caused by the named image.
(for those interested, the robot is G1ANT.Robot, https://beta.g1ant.com/)4 -
Do you know when you think "Oh that doesn't look too hard. I bet I can do it in no time"?
That is how I felt when I saw the DIY 3D printer kit Anet A8. It's only 150€ on gearbest so that is pretty cheap.
The reviews said it takes about 3 - 4 hours to build and I though "Ok I am a computer specialist and engineer so 3h sounds reasonable".
When I bought it from gearbest the first problems started: 5 days after the estimated shipping date the packet was still not on its way. After I fucked the support up, it finally arrived 3 weeks after the estimated date.
When I took the first look, everything seemed to be fine except for some small scratches but for that price that is not a problem.
So I started to build the printer at about 14:00 and even if some random sites in the manual were in Chinese I felt confident to get it done in a view hours.
And then it started to get really fucked. The first problem was that 2 screws were unusable and I had to use my own screws instead. The next problem was that the manual was just in the wrong fucking order at some points and I had to reverse multiple steps to get it right.
But the most fucked up thing: There should have been 2 threaded rods with a length of 345mm but the rods had a length of 310mm which was nowhere listed in the parts list. So I had to go buy some aluminium rods to fill the gap temporary so that I can at least go on with the build before getting a replacement. And I could go on and on and with the problems but the point is, it is now 19:30 which is about 5.5 hours after I started and I am still not fucking done with this.
So what have I learned?
Cheap Chinese hardware is good, but only as long as you don't have to assemble that shit yourself.2 -
So, a few years ago I was working at a small state government department. After we has suffered a major development infrastructure outage (another story), I was so outspoken about what a shitty job the infrastructure vendor was doing, the IT Director put me in charge of managing the environment and the vendor, even though I was actually a software architect.
Anyway, a year later, we get a new project manager, and she decides that she needs to bring in a new team of contract developers because she doesn't trust us incumbents.
They develop a new application, but won't use our test team, insisting that their "BA" can do the testing themselves.
Finally it goes into production.
And crashes on Day 1. And keeps crashing.
Its the infrastructure goes out the cry from her office, do something about it!
I check the logs, can find nothing wrong, just this application keeps crashing.
I and another dev ask for the source code so that we can see if we can help find their bug, but we are told in no uncertain terms that there is no bug, they don't need any help, and we must focus on fixing the hardware issue.
After a couple of days of this, she called a meeting, all the PMs, the whole of the other project team, and me and my mate. And she starts laying into us about how we are letting them all down.
We insist that they have a bug, they insist that they can't have a bug because "it's been tested".
This ends up in a shouting match when my mate lost his cool with her.
So, we went back to our desks, got the exe and the pdb files (yes, they had published debug info to production), and reverse engineered it back to C# source, and then started looking through it.
Around midnight, we spotted the bug.
We took it to them the next morning, and it was like "Oh". When we asked how they could have tested it, they said, ah, well, we didn't actually test that function as we didn't think it would be used much....
What happened after that?
Not a happy ending. Six months later the IT Director retires and she gets shoed in as the new IT Director and then starts a bullying campaign against the two of us until we quit.5 -
I am much too tired to go into details, probably because I left the office at 11:15pm, but I finally finished a feature. It doesn't even sound like a particularly large or complicated feature. It sounds like a simple, 1-2 day feature until you look at it closely.
It took me an entire fucking week. and all the while I was coaching a junior dev who had just picked up Rails and was building something very similar.
It's the model, controller, and UI for creating a parent object along with 0-n child objects, with default children suggestions, a fancy ui including the ability to dynamically add/remove children via buttons. and have the entire happy family save nicely and atomically on the backend. Plus a detailed-but-simple listing for non-technicals including some absolutely nontrivial css acrobatics.
After getting about 90% of everything built and working and beautiful, I learned that Rails does quite a bit of this for you, through `accepts_nested_params_for :collection`. But that requires very specific form input namespacing, and building that out correctly is flipping difficult. It's not like I could find good examples anywhere, either. I looked for hours. I finally found a rails tutorial vide linked from a comment on a SO answer from five years ago, and mashed its oversimplified and dated examples with the newer documentation, and worked around the issues that of course arose from that disasterous paring.
like.
I needed to store a template of the child object markup somewhere, yeah? The video had me trying to store all of the markup in a `data-fields=" "` attrib. wth? I tried storing it as a string and injecting it into javascript, but that didn't work either. parsing errors! yay! good job, you two.
So I ended up storing the markup (rendered from a rails partial) in an html comment of all things, and pulling the markup out of the comment and gsubbing its IDs on document load. This has the annoying effect of preventing me from using html comments in that partial (not that i really use them anyway, but.)
Just.
Every step of the way on building this was another mountain climb.
* singular vs plural naming and routing, and named routes. and dealing with issues arising from existing incorrect pluralization.
* reverse polymorphic relation (child -> x parent)
* The testing suite is incompatible with the new rails6. There is no fix. None. I checked. Nope. Not happening.
* Rails6 randomly and constantly crashes and/or caches random things (including arbitrary code changes) in development mode (and only development mode) when working with multiple databases.
* nested form builders
* styling a fucking checkbox
* Making that checkbox (rather, its label and container div) into a sexy animated slider
* passing data and locals to and between partials
* misleading documentation
* building the partials to be self-contained and reusable
* coercing form builders into namespacing nested html inputs the way Rails expects
* input namespacing redux, now with nested form builders too!
* Figuring out how to generate markup for an empty child when I'm no longer rendering the children myself
* Figuring out where the fuck to put the blank child template markup so it's accessible, has the right namespacing, and is not submitted with everything else
* Figuring out how the fuck to read an html comment with JS
* nested strong params
* nested strong params
* nested fucking strong params
* caching parsed children's data on parent when the whole thing is bloody atomic.
* Converting datetimes from/to milliseconds on save/load
* CSS and bootstrap collisions
* CSS and bootstrap stupidity
* Reinventing the entire multi-child / nested params / atomic creating/updating/deleting feature on my own before discovering Rails can do that for you.
Just.
I am so glad it's working.
I don't even feel relieved. I just feel exhausted.
But it's done.
finally.
and it's done well. It's all self-contained and reusable, it's easy to read, has separate styling and reusable partials, etc. It's a two line copy/paste drop-in for any other model that needs it. Two lines and it just works, and even tells you if you screwed up.
I'm incredibly proud of everything that went into this.
But mostly I'm just incredibly tired.
Time for some well-deserved sleep.7 -
Adobe is predatory. I bought a subscription to Adobe Premier four months ago. After using it a little, I found Davinci Resolve (it's free) and decided it was just as capable for my needs. Upon trying to cancel Adobe, it offered me 3 more months at a good price and I thought, well, maybe I could still use it for some other things. But that didn't turn out to be true or necessary. I went to cancel today at the end of the 3 months and it said I would have to pay $94 for cancelation. I guess the fine print was too fine for my 49-year-old eyes or I wouldn't have signed up for that 3-month extension. I got on live chat with their AI, figured out how to get a real person, and began negotiating. They tried to sell me a lower cancelation fee. No. I don't want any fee. They tried to sell me other products at a lower price. I didn't need any other products. Finally, I used a little reverse psychology and said "Fine, I'll keep it. You win, I guess. Just tell me when I can cancel something I'm not using and won't be using and without being punished with a fee."
Apparently, that unlocked something in the Indian guy's call flow script and he offered to waive the fee. Just needed a moment to converse with his manager and get approval. That's 20 minutes of my life and billable time I'll never get back.7 -
So... remember my first rants about my network at my last ship?
https://devrant.com/rants/2076759/...
https://devrant.com/rants/2076890/...
https://devrant.com/rants/2077084/...
Well... I had to visit them for an unrelated matter and found out that they are to pass general inspection the next week. Among the inspectors is a member of the cyber defence team. I took a quick look at the network, finding the things I'd expect:
- No updates passed to the server or installed since I left
- No antivirus updates since I left
- All certificates were expired
- Most services were shut down or unused
- All security policies were shut down
- Passwords (without expiration now) were written on post-it and stuck on screens
- ... and more!
I told the XO (the same idiot that complained about them CONSTANTLY) and he just shrugged me off and told me to """fix""" it. In one fucking afternoon.
I. SHIT. YOU. NOT.
The new admin there is a low ranking person who hasn't the faintest idea of how this works, and isn't willing to learn, either. They just dumped the duty on him, and he seems not to care. The cyber security inspector is going to have a field day. Or get grey hairs.
I told the XO that I needed at least a week to get them into working order (I have to re-set up my virtual Windows 2012 R2 server, download 2 years' worth of updates, repair 2 years of neglect etc.). The answer was what I expected:
"You know computers, you can do your magic and get it done in an afternoon."
Thank god I got transferred and don't have to answer to that idiot any more. Now, popcorn time, as I watch the fireworks.
Yes, I am a vengeful guy. I have told them, twice now, of what would happen. They didn't listen. At least now, with an official report on their heads, they just might.3 -
The 5 stages of project management:
1 - the Mission:
Receive a project
2 - the Vision:
Over confidence and optimistic time estimation. Tell people how quick you can finish it.
3 - the Climax:
Adding unnecessary features. Try to be innovative. Think different. Feeling like a Rockstar.
4 - the Bargain:
Does not aware deadline is not far away. Reverse all unnecessary or impractical moomshot features. A bit stressed
5 - the Embarrassment:
Unpredicted obstacles or incidents. Late delivery or fail. Feel like a loser.1 -
Might be nothing for others, but I finally published my Vue website with the following setup:
1. Vue inside docker
2. Nodejs API inside docker
3. MongoDB inside docker
4. Nginx as reverse proxy
5. Let's Encrypt
6. NO I WILL NOT SHARE THE LINK, don't want to be hacked lol and it is for personal use only.
But I'd love to thank devRant members who have helped me reach this point, two months ago I was a complete noob in Vue and a beginner in NodeJs services, now I have my own todo website customized for my needs.
Thank you :)26 -
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 -
First rant goes here...
Had an interview for post of android dev at a start-up(please note: they specified they need a full-time android dev for their team, junior role, even freshers would do). Not a single question asked from android- architecture, apps, libraries, not even anything from my resume. They thought that any person who can 'reverse a linked list on paper' can work with them, but not a dev who has a year's experience in android development.
At the end, after asking me about a dozen (quite simple) DS questions, they said they can't provide the opportunity to a fresher, and I can join as an intern for 3-6 months and 'work my way up'.
WHY THE FUCK YOU SAID YOU NEED A FULL-TIME ANDROID DEV WITHOUT MUCH EXPERIENCE? AND WHY DIDN'T YOU ASK ME RELEVANT QUESTIONS?3 -
There is a company providing a very speciffic service. And it has a core application for that svc, supported by a core app team.
That company also has other services, which are derivations of the core one. So every svc depends on core.
Now that we're clear on that... I was working in a team of one of the subservices. We very strongly depended on core. In fact, our svc was useless if integration w/ core broke down.
The core team had an annoying habbit. They refused to version their webservices and they LOVED to push api updates w/o any warnings. Our prod, test, other envs used to fail bcz of core api changes quite often. Mgmt, IT head was aware of the problem and customers' complaints as well.
So as a result, once core api changes we're all in a panic mode: all prior priorities are lowered and revival of prod is to be our main focus. Core api is not docummented, the changes are not clear, so we have to reverse engineer the shit out of it. We manage to patch our prod up w/ hotfixes, but now we have tech debt. While working on the debt, core api changed again, in test env. Mgmt pushes debt back and reallocates us to hotfix test. Hotfix is 80% done when another core api breaks. Now mgmt asks us to drop wtv we're working on and fix that new break. By the time we're to deploy the hotfix, another api breaks in another env. The mgmt..... You get the picture :)
2 years go by, nothing has changed so far.6 -
This happened with one of our senior profs during the first year of my college. I wouldn't call him a dev if my life depended on calling him a dev but regardless, I narrate the story here.
We were "taught" C++ by some really dumb professors during our first year of college and it was mandatory that everyone cleared the subject regardless of what field of engineering the students chose. Having already done 2 years of C++, it was quite a breeze for me. But during the final lab exam, one of my friends requested my help in solving the quite tough question (for those beginners). Thinking the exam and teaching was unfair, I stupidly wrote the answer on a piece of paper and passed it to him. One of our teachers, who had seen him ask me, was lying low waiting to catch me in the act and she swooped in and busted our asses kicking us out of the exam hall and sending us to the HoDs office like some prize from her war against academic corruption.
In the end, I failed the exam for cheating and had to redo (not only the exam but the entire lab course).
When I returned to college during the summer vacations to redo the course, I first met the antagonist of our story. Having a huge head that looked like a deformed watermelon and an ego the size of a building, he assaulted us first with a verbal diarrhoea of his achievements as a CS professor. I quickly realised that I was in a class of people who had failed to grasp how to make a program that printed "Hello World". To make things shorter, every question the prof gave us, I managed to solve in a mere matter of minutes, several better than his own solutions. Not having expected a student who knew his shit, he was determined to play me down. He hurled tougher question at me and I knocked them over his enormous head piercing his ego. He asked me such questions as how to reverse 1000 and get 0001 and wasn't satisfied with the several ways I gave because none of it were what he had in mind (which turned out to be storing them in a fucking array and printing them in reverse. That's printing not reversing you dung beetle). I kept my calm throughout but on the day of the final exam, he set quite a tough paper for a class of people who had already failed once. To his utter shock and dismay, I aced that too and I produced flawless code. This man who has an MTech from one of the most reputed colleges of my country then proceeded to tell me that he had to cut my marks because I had used more than one function when the question had asked for one function ( it never said only one). I lost my shit and pointed out that since I was the programmer, it was my wish how I coded. I also explained to him how repeating code is a bad practice and one should use functions to reduce redundancy and keep the code clean. Nevertheless, he lost his shit and he threatened me with consequences as apparently "I didn't know who I was messing with". I handed over the paper and stormed out of the class (though he called me back and tried to argue more with me. I apologized for losing my shit and left when he was done talking). I ended up getting a 'C'. Totally worth it.4 -
I've never used Windows in my day-to-day life. No kidding.
When I got my father's first computer, I used an old distribution called BBC Linux. I didn't have any computer knowledge, it was my first contact with a computer, so I went to a friend's house and asked for a CD to install on my computer. I don't know if this friend ended up making a "gotcha" and thought I'd give up, but I just read the manuals and fell in love. That was year 2000.
Then I used Conectiva Linux, then I went to Red Hat 9, then Slackware, then in 2007 I started using Solaris. And I stayed on Solaris (Solaris 10, Solaris Nevada and OpenSolaris) until 2011.
In 2011 I bought a Mac. I stayed at Apple until 2020, when I couldn't stand Apple forcing me to buy new computers (I still don't understand how a 2011 iMac, i5 (4 Hyper Thread cores) with 16GB of RAM, 1TB SSD only runs up to High Sierra).
Then I bought a Dell. It came with Windows 10, the first thing I did was install WSL2. I could not stand it, the system is bad, sorry. I installed OpenSuse and have been using it for two years.
It's just that every day someone tells me "how can you use this"? "There is no alternative to Windows, do you want to be different?"
I know that my story was the reverse of the "mainstream", so I'm going to talk about my vision of Windows, that in my brain it is actually the "alternative".
- Having a file explorer without "tabs" in 2022 is unthinkable for me.
- I love terminal. And the Windows terminal is very limited. "ps ... | awk ... | xargs ..." is a must for me. "find ./ -name '...' -exec ..."... these things on Windows are totally "different" and have the "powershell way" while all other operating systems keep the same form. And cygwin is not an option. As Wine for serious work is also not.
- Dragging a file into the terminal, and having it write its path, is so natural, that when Windows didn't do it, I was dismayed.
- I've always used StarOffice, OpenOffice and now LibreOffice. All the people in my story received my documents and reports as a PDF and no one complained. Until a coworker saw me editing in LibreOffice and said "oh I want it in word format". As long as he didn't know, everything was fine, right?
- Windows is paid. And is there advertising? I don't understand. And I refuse. If you want to display advertising, then excuse me. I have no problem paying, I'm not an opensource shiite. It's just that paying and not working bothers me much more than an opensource that I can fix or expect a fix knowing the good will of the people involved.
- Hyper-V is a joke. QEMU/KVM is better, and Bhyve on FreeBSD which is a very young project, is already a million times better than Hyper-V.
- Developing in C/C++ for Windows is only possible in two ways: Either you've always lived in Windows and your brain is conditioned, or you compile with MSYS2 (CLang or GCC).
- There is no significant evolution of the windows desktop since 95.
- Multiple workspace support with multiple monitors, not ready. It's another joke.
- REGEDIT does not need any comment.
- The system loses performance over time. I still don't know how Windows achieves this.
- I've seen people complain about desktop fragmentation on Unix and Linux. Many DEs end up leaving applications with different themes (like running a Qt application in Gnome and GTK in KDE), but to be quite honest, the lack of Windows standard bothered me much more. Even Microsoft's own software is completely different: Control Panel, Calculator, Paint and Office, To-Do, and Settings, have horrible style differences and look-and-feel fragmentation.
- Dark mode has not been implemented. It's another joke. Many applications are white while everything else is dark. Sorry, even on Linux which is a mess, this has been resolved. And well resolved.
- NTFS? Serious?
- C:, D:.. It doesn't convince me since DOS.
- Bloatware.
- News "biased" in the search bar is a lack of respect for those who use the computer to work.
And that. For me, Windows is the alternative operating system. I can't take Windows seriously, for me it's an experimental one like Haiku or ReactOS. It's good to play.
About market share, it doesn't convince me to use it. But convinces me to sell. I've always developed applications to run on Windows. And when I need it, I turn on a VM to compile the project. But in everyday life? Impractical.15 -
The dev.to code of conduct is irritating.
Direct quote:
We pledge to prioritize marginalized people’s safety over privileged people’s comfort. We will not act on complaints regarding:
- ‘Reverse’ -isms, including ‘reverse racism,’ ‘reverse sexism,’ and ‘cisphobia’
...what?12 -
So... I've got a confession to make.
I'm no longer a Dev. After the disaster that was my last commercial gig, I went and got a sec Ops role... And I love it. It's just technical problem solving and explaining all the way.
Don't get me wrong, I still love to code. But that's exactly the thing. As a commercial developer employed by corporations, I spent close to 80 % of my time not coding, but in useless meetings, or trying to figure out just what my colleagues thought was "common sense", reverse engineering their work and documenting how to get it running, etc. Basically, fixing shit for braindead academics with next to no real world experience.
Now, when I code, I get to do it on my own terms, with my own stack and as much comments and docs as I want to have. I own my time, and the only ones that are allowed to interrupt me is the local fire department.
I can do what I'm fucking passionate about and leave the rest for the useless people.4 -
Not quite a rant, but if you came here for a cool way to reverse strings in python then I've got you covered:
backwardsString = string[::-1]
Don't know why you come to devRANT for tips on python string reversal but hey
I thought it was cool at the time ::)))3 -
Am I the only one who doesn't understand apple card? Like really, it's just the worst pitch ever!
"Apple card. Made by apple. Not a bank" that's a REAL ad I saw today. Why would you trust APPLE more than an FDIC insured bank with decades or (in some select cases) CENTURIES of experience in finance?
"No more card numbers and CVV"
Cool. I get it. Card numbers get leaked and stolen. But that's why banks insure cards and reverse fradulant transactions. How an I'm supposed to use it on Amazon?! I'm sure they have an answer. Like maybe one time use generated cards. But they haven't advertised it yet, and that's a problem!
Why do they think people want this!? And even more so, because I've seen some people are excited: WHY DO PEOPLE WANT THIS?! why is apple trying to make everything?!15 -
So I have to fix this motherfucking insane regex with over 1k chars in it ...
This fucking shit is not maintainable and there are no comments or any other sort of documentation.
And this bullshit was not build via code so that bastard wasted weeks of time to develop that shitty expression by hand on a online regex tester website.
So I have 3 options:
1. Reverse engineer everything and waste my precious time
2. Delete that shit, analyze the input and write the regex via code instead of creating it by hand
3. Look for that "super duper clever" dev and break his legs.
I think option 3 suits me best.
And for you dear reader, if you are regexphile, enjoy this gigantc regex with >16k chars:
http://madore.org/~david/weblog/...7 -
Fuck this day!
Like really fuck it!
I have one of the most terrible crunch-time i ever experienced.
I’v been working 12+ hours every day with an ever-changing project timeline.
It started simple, we made a timeline, it was risky even then but it was realistic, we started working immideatly, everything looked good then a few days in BOOM! Actually our project management completely forgot client B’s projects soo we need to do that too with the same fucking deadline!!! (About 10x more work in waay less time)
Then this morning i got an email from the graphics team that we need to document our design process RIGHT FUCKING NOW! Because management wants documentations, in the middle of a fucking crunch-time.
Today it almost got physical with my project manager, i told him that he is not a programmer, i dont fucking care about his shit, just fuck off and let me work because we won’t be ready based on his unrealistic bs.
I feel like completely fucked over, like we were told 2 days before deadline that the whole company and people’s jobs depends on us now because if we wont finish this clients won’t pay.
WE ARE TWO PROGRAMMERS for studio of 10-12 people!!!
Soo i’w been thinking about getting the fuck out of here ASAP, i got an offer from a pretty big international gamedev company just what i needed, i already did their test before all of this, i passed A+.
We scheduled a skype interview for today. I had completely no time to prepare or chill off, just got out of the office, got into a starbucks and i’m interviewing. No time to even check my mic or internet, the call was so shit i could not hear anything, they neither because the plaza was loud af. Meanwhile im nervous about work, about the interview, about can they hear me at all because of the noise. I fucked it up. BIG time! I was so done i could not reverse a fucking string in c++ or explain what is a signed int!!!
Needless to say they said no.
Need time to think about it or realize what happened? Nice dreams. Back to the office and continue working.
I can’t do this anymore. My girlfriend came for me and took me home at 10pm but all i could do was stare at the floor on the subway. I don’t want people to lose their jobs but i just phisically can’t do this anymore.
Meanwhile any time i talk to my project manager about being tired he says like “hshshsbsb i have 60 hours in the last 4 days i got the worst part, i would be grateful in your place..” like fuck off dude, i dont give fuck about how you feel about this. This is not okay for me, you did this to the project, your fucking job is to manage it! I have one day off before going back to this, i have completely no idea what to do now...
[ps: this is not Nemesys. They did not let me work on my own stuff because i would be a competitor, so i left.]5 -
Taking a for-giggles training on reverse engineering... It's theory. Basic level theory. Posted 6 months ago.
"someone might want to reverse engineer Microsoft Word in order to change its code so that it could be run on a Mac."
Are we ignoring how old Word has had Mac support????
Or "To prevent circumvention, some programs require as part of the terms of use that you do not attempt to reverse engineer their code." like this will stop someone who wants to circumvent having to pay from acting illegally, because we all totally read EULAs and T&Cs...
Whyyyyyy4 -
A few days ago Aruba Cloud terminated my VPS's without notice (shortly after my previous rant about email spam). The reason behind it is rather mundane - while slightly tipsy I wanted to send some traffic back to those Chinese smtp-shop assholes.
Around half an hour later I found that e1.nixmagic.com had lost its network link. I logged into the admin panel at Aruba and connected to the recovery console. In the kernel log there was a mention of the main network link being unresponsive. Apparently Aruba Cloud's automated systems had cut it off.
Shortly afterwards I got an email about the suspension, requested that I get back to them within 72 hours.. despite the email being from a noreply address. Big brain right there.
Now one server wasn't yet a reason to consider this a major outage. I did have 3 edge nodes, all of which had equal duties and importance in the network. However an hour later I found that Aruba had also shut down the other 2 instances, despite those doing nothing wrong. Another hour later I found my account limited, unable to login to the admin panel. Oh and did I mention that for anything in that admin panel, you have to login to the customer area first? And that the account ID used to login there is more secure than the password? Yeah their password security is that good. Normally my passwords would be 64 random characters.. not there.
So with all my servers now gone, I immediately considered it an emergency. Aruba's employees had already left the office, and wouldn't get back to me until the next day (on-call be damned I guess?). So I had to immediately pull an all-nighter and deploy new servers elsewhere and move my DNS records to those ASAP. For that I chose Hetzner.
Now at Hetzner I was actually very pleasantly surprised at just how clean the interface was, how it puts the project front and center in everything, and just tells you "this is what this is and what it does", nothing else. Despite being a sysadmin myself, I find the hosting part of it insignificant. The project - the application that is to be hosted - that's what's important. Administration of a datacenter on the other hand is background stuff. Aruba's interface is very cluttered, on Hetzner it's super clean. Night and day difference.
Oh and the specs are better for the same price, the password security is actually decent, and the servers are already up despite me not having paid for anything yet. That's incredible if you ask me.. they actually trust a new customer to pay the bills afterwards. How about you Aruba Cloud? Oh yeah.. too much to ask for right. Even the network isn't something you can trust a long-time customer of yours with.
So everything has been set up again now, and there are some things I would like to stress about hosting providers.
You don't own the hardware. While you do have root access, you don't have hardware access at all. Remember that therefore you can't store anything on it that you can't afford to lose, have stolen, or otherwise compromised. This is something I kept in mind when I made my servers. The edge nodes do nothing but reverse proxying the services from my LXC containers at home. Therefore the edge nodes could go down, while the worker nodes still kept running. All that was necessary was a new set of reverse proxies. On the other hand, if e.g. my Gitea server were to be hosted directly on those VPS's, losing that would've been devastating. All my configs, projects, mirrors and shit are hosted there.
Also remember that your hosting provider can terminate you at any time, for any reason. Server redundancy is not enough. If you can afford multiple redundant servers, get them at different hosting providers. I've looked at Aruba Cloud's Terms of Use and this is indeed something they were legally allowed to do. Any reason, any time, no notice. They covered all their bases. Make sure you do too, and hope that you'll never need it.
Oh, right - this is a rant - Aruba Cloud you are a bunch of assholes. Kindly take a 1Gbps DDoS attack up your ass in exchange for that termination without notice, will you?5 -
I wrote a Blender plugin that uses vector math, matrices, calculus, trigonometry, and likely other types of math. There's recursion, filesystem access, image processing, interface logic, and on and on.
And worst of all - other people are expected to use it, so there's added pressure to do a good job.
Oh, the hours I spent trying to figure out why the imported geometry looked like an exploded mess. Fumbling around with mathematics I didn't fully understand was exhausting. Finding help was impossible at times because I didn't have the vocabulary to even describe the problems I was having. And getting it to complete an import before the heat death of the universe was not easy.
Every time I made progress and thought I was done, I would discover a bug that other importers didn't have, leaving me to sift through languages that definitely aren't Python to see if I could reverse engineer the logic they used.
I almost gave up a few times, but didn't.
Now I have something that, while not used by many people, works very well, is very efficient, and doubles as a palette cleanser when I need to do something for fun or for a challenge. Plus I learned a lot along the way.4 -
My biggest regret is the same as my best decision ever made.
The company I work for specializes in performing integrations and migrations that are supposed to be near impossible.
This means a documented api is a rare sight. We are generally happy if there even IS an (internal) api. Frequently we resort to front-end scraping, custom server side extensions and reverse-engineered clients.
When you’re in the correct mindset it’s an extreme rush to fix issues that cannot be fixed and help clients who have lost most hope. However, if your personal life is rough at the moment or you are not in a perfect mental state for a while it can be a really tough job.
Been here for 3+ years and counting. Love and hate have rarely been so close to each other. -
Good question, what wasn't bad about 2020?
As far as good things go.. well, COVID-19 actually. Back in February the lockdown began in Belgium, and while many people got bored out of their minds, I actually became a lot more productive. So many projects started back then, and I got a lot better at programming because of it. Now I can confidently write most bash stuff without ever looking anything up. And the code is maintainable, on account of putting everything into functions. You can literally navigate the code just by looking at it. On older code I always had issues with that.
I'm very glad that essential travel even back then wasn't really restricted. Because my bank is retarded about online banking, I have to go to the bank every so often to check my balance. At the time I tended to do that late in the evening, when nobody else was outside and I had the entire town to myself. That was one of the travels considered essential. So I kept doing it and made that my biweekly walk. I really enjoyed that. Gets your mind off things.
Bad things would be the utter stupidity that the general public had shown me during that pandemic. Burning down 5G antennas and not even getting the right ones, toilet paper, 5G death beams in street lamps?! They even sent death threats to telco workers over sensationalist bullshit from what IIRC was just a random Twitch streamer. Those people should just fucking kill themselves, choke yourselves in that pile of toilet paper you got yourself and then called yourself financially challenged. You braindead fucking retards!
Another dev-related thing is the normalization of SJW terminology. Now even "blind playthrough" gets your ass banned on Twitch. I saw a tweet about a Twitch employee (I think) proudly saying that they implemented it. Most upvoted comment on it was from a blind person, asking why they did this and not made the Twitch app more friendly to use for blind users. They too thought this was bullshit. Yet it still got added in, and more and more people are starting to think that "this is fine". Hell even that "this is necessary".
What annoys me the most is that this mostly comes from the US, where around that time they laid their knee on George Floyd, and didn't fix their legal system at all. As a European it baffles me since we have many immigrants here (the Drumpf even called Belgium a hellhole over it) and we just don't give a shit about whether or not they are "truly Belgian". We just let them live their daily lives like everyone else. Imagine just not giving a shit. Imagine not bothering them, not with racism, not with reverse racism, not with anything. Just let them do their thing and that's it. Yet despite Belgium being one of the most inclusive countries in the fucking world, I still got called a racist many times for asking.. why did you implement this? Why this, and not tackling the problem at its actual and pretty fucking obvious core?
So all in all I can only hope that 2021 will get a little bit better. But that's the same thing I said in 2019, and it didn't quite come true.11 -
Okay. So my dumbass boss took this project that had a steep timeline. I told him straight up, it won't work because we won't make the timeline. If we do this, I will be the one bending over backwards to deliver. I don't like to promise and fail. I got the oh don't worry let's just try. If we don't make it that's fine. Unfortunately that's not how I work. I refuse to deliberately fail. So I say okay and we begin. I suggested open source is the fastest way to deliver bit the fucked up part is, I am the only senior dev in the team. I will be expected to reverse engineer the open source app to connect our own deployment parameters. Use tech I have never used before. Connect frontend and backend. Handle dns bullshit. I have literally been working on Vibes and coffee for the past two weeks because ofcourse I ran into so many issues. Now I have an extension for Monday and I hate to fail. So I am not sleeping or resting just working on a fucking java app I didnt build and I am expected to make it work seemlessly on our production environment. I made some progress. Deployed frontend, deployed backend. Forgot to connect production dB so I decided to go with azure database for mysql driver since we have credits on azure. Now my java app is pissing itself over ssl handshake. I generate my keystore and add it and now java socket just times out. I want to pummel somebody or a punching bag that looks like my boss.15
-
The problem being a dev at a big company (around 1000 devs) with huge codebase (I mean huge, tens of thousands of modules, if not millions) is that, as many hands touch the code of a project and deadlines are always short, not everyone care about changing the documentation afterwards.
This translates to double the work everytime you need to fix a bug or something as you have to quickly reverse engineer the modules to understand it - the documentation often reflects an old version and it messes things up much more than it helps you out.4 -
"There's more to it"
This is something that has been bugging me for a long time now, so <rant>.
Yesterday in one of my chats in Telegram I had a question from someone wanting to make their laptop completely bulletproof privacy respecting, yada yada.. down to the MAC address being randomized. Now I am a networking guy.. or at least I like to think I am.
So I told him, routers must block any MAC addresses from leaking out. So the MAC address is only relevant inside of the network you're in. IPv6 changes this and there is network discovery involved with fandroids and cryphones where WiFi remains turned on as you leave the house (price of convenience amirite?) - but I'll get back to that later.
Now for a laptop MAC address randomization isn't exactly relevant yet I'd say.. at least in something other than Windows where your privacy is right out the window anyway. MAC randomization while Nadella does the whole assfuck, sign me up! /s
So let's assume Linux. No MAC randomization, not necessary, privacy respecting nonetheless. MAC addresses do not leak outside of the network in traditional IPv4 networking. So what would you be worried about inside the network? A hacker inside Starbucks? This is the question I asked him, and argued that if you don't trust the network (and with a public hotspot I personally don't) you shouldn't connect to it in the first place. And since I recall MAC randomization being discussed on the ISC's dhcp-users mailing list a few months ago (http://isc-dhcp-users.2343191.n4.nabble.com/...), I linked that in as well. These are the hardcore networking guys, on the forum of one of the granddaddies of the internet. They make BIND which pretty much everyone uses. It's the de facto standard DNS server out there.
The reply to all of this was simply to the "don't connect to it if you don't trust it" - I guess that's all the privacy nut could argue with. And here we get to the topic of this rant. The almighty rebuttal "there's more to it than that!1! HTTPS doesn't require trust anymore!1!"
... An encrypted connection to a website meaning that you could connect to just about any hostile network. Are you fucking retarded? Ever heard of SSL stripping? Yeah HSTS solves that but only a handful of websites use it and it doesn't scale up properly, since it's pretty much a hardcoded list in web browsers. And you know what? Yes "there's more to it"! There's more to networking than just web browsing. There's 65 THOUSAND ports available on both TCP and UDP, and there you go narrow your understanding of networking to just 2 of them - 80 and 443. Yes there's a lot more to it. But not exactly the kind of thing you're arguing about.
Enjoy your cheap-ass Xiaomeme phone where the "phone" part means phoning home to China, and raging about the Google apps on there. Then try to solve problems that aren't actually problems and pretty vital network components, just because it's an identifier.
</rant>
P.S. I do care a lot about privacy. My web and mail servers for example do not know where my visitors are coming from. All they see is some reverse proxies that they think is the whole internet. So yes I care about my own and others' privacy. But you know.. I'm old-fashioned. I like to solve problems with actual solutions.11 -
So before the Age of JavaScript, when programming was trying to be an engineering discipline, I felt like we were getting close to figuring out what worked and what didn't. We had rules of thumb (more general than Patterns) and code smells.
Then JavaScript came in and no one had time to think about "engineering" anymore. I'm fine with MVP and small iterations, but the disdain I see for making code clean and extendable and improvable is baffling (and annoying). First-time coders might never have had to fix someone else's code, but two weeks in a chair should have fixed that.
It's not that understanding code is so hard (although it can be); understanding the _intent_ is hard. This MVP is great, but when no one had time to document what is actually supposed to happen, programmers have to reverse-engineer the *design*.4 -
Since we're limiting this to things on my desk I can't do any more deep cuts out of my calculator collection, but this one is still somewhat interesting.
The HP 32S was my friend throughout university, it replaced the 15c I used before which does not live on my desk. The notable thing about the 32s is the fact it's an RPN calculator. RPN calculators are the best way to have friends never ask to borrow your calculator. The exchange will start by them asking to use it, you saying sure, and them handing it back a few minutes later without saying a word.
There's two kinds of people in this world. People who go "wtf" in an interview when asked to create a calculator program using a stack, and people who were oddballs and for whatever reason used reverse polish notation devices.
For those not familiar, rather than entering values into the calculator in "10+10" fashion, you instead provide it a compositional set of values until an operation is provided (10,10,+) at which point it executes. The why is, this type of operation allows the calculator to more naturally process operations, and eliminates the need for parenthesis which makes the operations less error prone in practice and easier to track.
The 32s had a 4 year run before being replaced by the 32SII. In the same way using a Curta will give you a significant understanding of how radix computations and floating points work. Using an HP 32s (or any of its predecessors) will do the same for algebraic functions, because you had to program them yourself using a basic label address system that also had subroutine support.
Kids who grew up with graphing calculators don't know how good you had it 😋4 -
When you try your best but you don't succeed
When you get what you want but not what you need
When you feel so tired but you can't sleep
Stuck in reverse
...
I am currently facing a client from hell. I don't even wanna write down the shits she is giving us. This lyrics are just prefect for my scenario.6 -
Most memorable co-worker was a daft idiot.
this was 10 years ago - I was working as a junior in my very first job, fresh out of uni, for a very small startup. It was me, and the 3 founders, for a very long time. Then this old (45, from my perspective then..) dev was hired.
This guy had no idea how to do the job. no common sense. the code confused him. the founders confused him. I was focusing on my work - and was unable to help him much with his. His only saving grace? He was a nice guy. Really nice.
But why was he so memorable, out of all the people I ever worked with? simple. He had a short term memory problem. Could not, even if he really tried, remember what he did yesterday.... when I asked him what his issue was, he decribed his life is like a car going in reverse in a heavy fog. "I can only see a short distance backwards, with no idea where I'm going".
Startup was sold to a big company. I became a teamlead/architect. He? someone decided he should be a PM. -
You know how my 'about' here says I create features from bugs?!? Well if you didn't before, now you do.. :P
Anyhow, today the most bizzare thing happened.. Customer played 'reverse uno card' on me..
Meaning?!
They reported a feature missing on uat env, when in fact I fixed a bug they have on prod..
Not sure how I should feel about this, but it sure made my day! (: I just hope they will not open a bug report for this missing bug..4 -
TL;DR Dear boss, firstly, you always get someone to review anything important done by a fucking intern.
Secondly, you do not give access to your fucking client's production server to an intern.
Thirdly, you don't ask your fucking intern to test the intern's work that has not been reviewed by anyone directly on your client's fucking production server.
Last week, the boss and one of the lead devs (the only guy with some serious knowledge about systems and networking) decided to give me (an intern who barely has any work experience) the task of fixing or finding an alternate solution to allowing their support team access to their client machines. Currently they used a reverse SSH tunnel and an intermediary VH but for some reason, that was very unreliable in terms of availability. I suggested using OpenVPN and explained how it would work. Seemed to be a far better idea and they accepted. After several days of working through documentations and guides and everything, I figured out how OpenVPN works and managed to deploy a TEST server and successfully test remote access using two VMs. On seeing my tests, the boss told me that he wanted to test it on the client network. I agreed. Today he comes to me and he tells me to prepare testing for tomorrow and that the client technician is going to give me access to one of their boxes. And then he adds, "It's a working prod server. We'll see if we can make it work on that" and left. I gaped at him for a while and asked another dev guy in the room if what I heard was right. He confirmed. Turns out, the lead dev and the boss's son (who also works here) had had a huge argument since morning on the same issue and finally the dev guy had washed it off his hands and declared that if anything goes wrong from testing it on production, it's entirely the boss's own fault. That's when the boss stepped in and approached me. I ran back to his office and began to explain why prod servers don't top the list of things you can fuck around with. But he simply silenced me saying, "What can go wrong?" and added, "You shouldn't stay still. You should keep moving". Okay, like firstly what the fuck and secondly, what the fuck?.
Even though OpenVPN client is not the scariest thing to install, tomorrow's going to be fun.4 -
Not a co-worker but a personal friend, I am still developing with the dude. He is absolutely AMAZING when it comes to reverse engineering he knows much more than me in this area of computer science. Actually one of my first friends who actually geeks out over this shit.10
-
Why Gmail. Why the fuck do your search parameters, especially your date filters, not work anywhere near as expected.
You make me have to query and test, query and test, just, randomly fucking guessing because, fuck it, right?
With a good 10 second refresh time. I love twiddling my thumbs and pulling my hair out.
after:2018/11/1 should produce emails from Nov 1st onward.
Not, TODAY ONLY, if no other parameters are
specified.
If there's a from: parameter, now we want to do after Nov 1st, right?
And also, don't show me how to sort in reverse order, either. Not without a complete rewrite of my class there, which clearly I'm too lazy to do right now.
Fuck the Gmail Api, responsible for weeks of wasted dev time... or more aptly put, "fuck devs using our gmail api" says the maniacal, sociopath devils that created it
fuckers.1 -
So I've created this account specifically for this rant. I usually just browse anonymously.
I've recently been hired in a big company that is one of the biggest Microsoft users in the world and my essentially revolves on making it easier for our collaborators to work with SharePoint (and other ms software)
Never in my life have I hit that much of a roadblock. So for the past week I've been trying to integrate what Ms calls webparts. And to modify the default webparts Ms provides you need to their properties (or Metadata). Except here's the big problem these are NOT documented anywhere (unless I failed to find it, if you do know where it is documented please HMU), so I've found myself trying to reverse engineer the js scripts that are served with SharePoint to figure out what the webpart properties are called and what type of data they are! I've been going through endless github repos using the CSOM nuget package (it's the library everyone uses to interact with SharePoint) and I finally found out about this other library called PnP which is a wrapper around CSOM that makes it easier to use. That wrapper has a way for me to load existing page and look at the properties of existing webparts. So here I thought it was the end of my suffering and I could finally get an idea of what it should be. Turns out this method doesn't work because one of the dependencies it has has had breaking changes and they still updated it even though it breaks their code! So for the past two days I've been trying random combinations of key values with different data types and json serialization methods.
Oh and yeah I've also looked at all the http calls via the chrome network tab, the metadata is not served as an individual file but is computed by Ms servers when they're serving you their html files.
So uh yeah run from CSOM if you can..3 -
my mom thinks designing something with photoshop or illustrator is easy asf, like after 15-20 mins its done. yeah, sure if u want it to not look as good as it can be when you do it 2 or 3 hours. when i design, i dedicate time for it cause believe it or not, when it comes to that, i want everything to be perfect. up to the last 2 object being perfectly aligned to one another.
she wants me to design something for her and be finished in a few minutes and i rejected her because i still have loads of stuff to do. i wouldnt go to university at 9am just to do them if they weren't that important. and now i look like im the bad kid who doesnt wanna help her mom out ughhh irritating asf, its like reverse psychology.
==> I NEED A STRESSBALL RN <==6 -
I'M A SENIOR DEVELOPER NOT A BUSINESS ANALYST...
IF YOU GIVE ME SOME CRAPPY LEGACY CODE THAT SOMEONE RANDOMLY DECIDED TO USE, THE ONLY WAY I CAN UNDERSTAND IT IS BY RUNNING IT AND REVERSE ENGINEERING THE "BUSINESS LOGIC".
ADD THAT WITH BAD INPUTS... THE ONLY THING YOUR DOING IS WASTING MY TIME..
JUST BURN THE WHOLE THING AND GIVE ME THE REQUIREMENTS OF WHAT YOU ACTUALLY WANT....
It feels like I've been fucking a pig all week...
Oh and now my team agrees and will look to get the actual requirements from the business...
This feels like a hallow victory.... As that was the first thing I told them to do.... -
After I cured my depression with Vortioxetine which was prescribed to me because of pure luck, I can notice that something has changed.
I can't tell if I like or don't like something anymore. It doesn't matter now which food to eat, what music to listen to, I just can't see the difference. I dropped all my side projects, quit my job and got another, much easier one. I don't see the big picture of things anymore. I also lost my ability to reverse-engineer problematic outcomes and find solutions.
I used to be an architect but now I can't design anything, I just forgot how to do what I could do without thinking. I forgot Lisp and Clojure, functional programming is too hard for me now. I just don't understand it.
My iq also significantly dropped.
Summarizing all that, and also remembering that liking or not liking something implies that you have a personality, I can only see one reason – I probably don't have a personality anymore.
Here's a summary of my experiences from when I was depressed:
depression makes you dumb
you struggle with simplest tasks
you only eat and go to the bathroom because sometimes your basic instincts win
depression takes your power of will – the most valuable thing you have
society doesn't understand and shames you
you can't think
you can't focus
you can't study
you need money but you can't make it
you don't have that save space inside your thoughts anymore
you don't have dreams
your sleep schedule is fucked
every night there's a nightmare and you can't wake up
you can't cry
they prescribe you one neuroleptic after another and they only makes it worse, turning you into a vegetable
you feel nothing but shame and irrational infinite guilt10 -
So I just used Google analytics data from my sites to reverse stalk someone who google stalked me today. I got a whole bunch of information including their mobile model, their city and bunch of other data to confirm they did actually stalk me and understand their psychology.
Backstory: I had deactivated my instagram a couple of weeks ago account without any notice. It was the best decision I made this year. I feel more focused and found myself with plenty of time which otherwise I would have spend on lusting over those sexy ig girls.
Thought nobody would even notice or care. But apparently this one girl, my 2020 covid long distance lover whom I haven't talked to in over 8 months noticed it and decided to Google me.
She spent over 25 mins on my main site and also somehow managed to discover my dead travel blog from Google. I was thinking that I did a good job with the pseudonym I used for the travel blog. Apparently that's not the case!
She must've then proceeded to my linkedin account listed on the site and then sent me a connection request. That was then the notification popped up in my phone earlier today and made me feel butterflies in my stomach. I hadn't felt those butterfly feeling ever since I figured out that we can't be together or possibly even meet for once in real life.
I was curious how she found my linkedin and why sent me the request. We are not even in a related work field, same country. I never thought I'd be thinking more than 5 secs over a linkedin connection request.
That's what lead me to check out the Google analytics data to find the chronology of the events that lead to this connection request.
Anyways, it warmed my heart to learn that she still remembers me after all these months and that she bothered to Google me. Maybe she worried if I blocked her in ig? Or maybe she wondered if I lost my life in the recent covid wave?..
I wanted her to think that I was dead by not responding to the linkedin connection request. But it is possible that she checked out my GitHub profile and found my recent activities.
It fucking sucks knowing that I might never meet her in real life. If we meet, I worry it will lead us to doing things that might hurt others.
I guess at least I can die knowing that there was some truth in our love and someone cared about me and that it was not some illusion I felt..
Maybe the least I can do for her is to just accept that connection request.10 -
It is 4 am now.
There it is. My obsession to destroy electronical things got me once again lol. I found a Canon printer last month and put it in my room to gather more electronical parts (for future arduino projects).
I am quite impressed about what makes Canon printers so different from Epson printers.
Canon really makes it fucking hard to open the inside of the printer.
Epson printers were way easier to open. A big plus for Epson.
Canon printers have weird design. Everything somehow sticks inside of something else with no room inside the printer. Like spaghetti.
Wherelse Epson printers have a plenty of room inside with a better design. No need to waste alot of time to reverse engineer it (figuring every single cable, motor, and what else not out). A plus for Epson here.
Now... what might have impressed me alot?
Take a look at the attached picture. The power on button(design), the display (it is usually soldered on Epson printers) and the "door servant" as I call the part with the blue cables. The "door servant" pushes the stick down when it has electricity.
I never found these like this in Epson printers.3 -
I have found the best game for learning ever XD
I have recently heared about io.netgarage.org and tried to solve several it's levels, and I find this game awsome
It is the best to learn reverse engineering)) it is just like an Impossible quiz, where you have to smash the stack to get to the next level))
I have wasted much time for that, but it is worth it))
((Not an advertisment))7 -
Someone created a 0-followers private Twitter account and posted something to try out the new views count feature.
It raked dozens of views in a couple hours.
HOW?!?
Source: https://twitter.com/briggityboppity...
It looks like a funny data reverse-engineering exercise, so let's try and figure out what is going on.
Hypothesis 1) it is the OP's own views.
Reasonable, but unlikely if what OP says about not checking it for hours is true.
H2) It's some background job in OP's device that is refreshing OP's own latest tweets, so even without human interaction technically H1 is true. It would be some really shoddy engineering to count eye-less page views, but that's also what managers would demand.
H3) it's some internal Twitter automated function like back up, replication, indexing and word count.
See H2, it would be even dumber to count that as page views.
H4) it's some internal human reviewing for a keyword that could be associated with porn (in this case, "butts"). Really? dozens of humans to review a no-impact single post? They would have to employ hundreds of thousands of reviewers.
H5) it's some page-loading shit, like thousands of similar tweets get stored in the same index hash page and end up counting as a view in all of them every time someone loads the index page. It would be like counting every hit in the namenode as a hit in every data asset in it's Hadoop partition, or every hit in a storage block as a hit in each of it's files.
Duuuumb and kinda like H3.
H6) page views are just a fraud to scam investors. Maybe it's a "most Blockchain transactions are fake" situation, maybe it's a "views get more engagement if you don't think a lot about it" situation, maybe it's a "we don't use the metric system to count page views" situation.
All of them are very dumb.
Other hypothesis or opinions?10 -
We use a third party paid company to produce a service and give ongoing support for it, which all our revenue streams depend upon. They are shit and their service is shit. Here's how my conversation about testing went today.
Me: 'hey X wrote an integration test project for the service. It shows the service is broken 50% of the time. We should give their team access to it and have them run it as part of CI'
Colleague: 'They are too shit to setup CI'
PM: 'we are stuck with them so there is no point. It is what it is'
Boss: just ignores me. Not even a reply.
Some days later
Head of QA: 'Hey Dev and QA are broken'
Me: 'because their service is broken. I made so and so suggestion before but it was rejected. We will just have to accept Dev and QA are broken 50% of the time'
Head of QA: 'no we cant'
Me: 'ok so we should setup the tests to run by giving them access'
Head of QA: 'No we shouldn't. The tests can only be used by us and if they break it tells us so we can act on it, or choose not to'
Me: 'We would not want to act immediately on all our revenue streams breaking? Yes we can reverse engineer their client and fix errors as they occur, or we could just have them run the tests and a team our company pays for can stop adding breaking changes to their own API every other day. Right now it has been broken for 2 weeks.'
Head of QA: 'in an ideal world we would have an internal team so you're wrong'
Me: :)
I really don't understand how they can come to such a conclusion. Am I missing something or am I surrounded by total fucking idiots?2 -
I came up with what I considered to be a brilliant approach to a festering internal knowledge management problem using a third-party SaaS. I rolled it out and it was very popular. Weeks later, after my profile had become the "linchpin" by which hundreds of other employees had joined the service, I was told that a female employee (yes, gender is important to this story) had produced a proposal for a more in-house solution that used a different company's software and that I would be on the team to roll it out. I thought it was a great idea and I deferred to her on pretty much everything.
Months after that I was accused, by several other female managers, of trying to take over the whole leadership of the project just because of one minor suggestion I had proposed. One day, after a lengthy interrogation about their take on my emails on the matter (lacking only the bright, hot spotlight in my eyes) I was booted off the project and the woman who had proposed the project was promoted. She then proceeded to lord it over on me and treat me like crap.
This type of thing was a general pattern within the company that amounted to a form of a reverse discrimination "policy" (unwritten). The effect was that the ratio of men to women in upper management was not equal but completely flipped. Way more women than men had upper management positions and higher pay.
In their eyes, the ends (women broke through the glass ceiling) justified the means (discrimination and bullying) which I guess is good and "equal", again in their eyes, in terms of the overall perception modern feminism has about men needing a comeuppance.
But in the context of HR's stated policy on equality, meaning 1:1 men and women in position of power and pay and a non-threatening work environment for all, which we all (men and women) were forced to sign every year, it was an utter fail as far as the math and intimidation went.2 -
I've been inspired by cpg grey (I think that's the name), mainly his 10 tips on how to be miserable, to write a blog or some kind of post explaining the 8 things you need to do if you hate your coworkers and want your codebase to go to shit.
So it'll be like a anti-SOLID, anti-pattern type of blog promoting every code smell imaginable
I feel like 8 tips to fuck up your codebase (php perhaps) might he more memorable than actual helpful advise. I'm sure that this has been done before, but I was wondering:
Do you think this would be effective? Would it help people understand why not to do the 8 tips? Does this reverse psychology work?3 -
With the billions of dollars Google has, they can't even build a proper file manager for their Android operating system.
The pre-installed file manager on Android OS, codenamed "DocumentsUI", is functionally crippled and lacks the most basic functionality.
First of all, there is no range selection or A-to-B selection of items. If many items need to be selected, each item has to be tapped individually. Meanwhile, ES File Manager had A-to-B selection since at least 2012, back when Android OS was an operating system of freedom, before Android OS got cucked.
As any low-tier mobile app, the file manager by Google also lacks a draggable scroll bar, so long lists have to be scrolled through manually. Even the file manager of Windows Mobile 6.5 Professional has a draggable scroll bar! And Windows Mobile 6.5 Professional was released in 2009! Samsung "My Files" had a draggable scroll bar in 2013 but it was later unexplainably removed.
Its search feature can only search the entire storage, not an individual folder, and lacks filters such as date and file type.
Obviously, as in any terrible Android file manager, after items are selected for copying and moving, tapping "Copy to..." or "Move to..." navigates back to the initial directory rather than staying in the current directory. The user is forced to navigate all the way to the folder with the selected files if the intention was moving files to a sub folder. Any Android file manager that does this automatically qualifies as a low-tier file manager.
The file manager by Google even lacks a "details" feature which shows information such as the exact file size and name and the total size and file count of a folder. Some file managers such as the one by MediaTek are unable to show the details for multiple selected items, which is somewhat forgivable, but the Google file manager does not have a "details" feature to begin with.
Files are always sorted alphabetically after each start. The Google file manager does not memorize if the user selects sorting "by size" or "by last modified". As one might expect, it indeed lacks reverse sorting.
Of course, there is no "open with" feature where the application can be selected manually, and there is no ability to create new blank files, and it lacks tabbed browsing, and does not show the number of files inside folders in list view. ES File Manager (before it became adware in ~2016) has all of these features.
Last but not least, there has been a bug where cancelling a file move operation deletes the source folder without it having been transferred. Presumably it has been patched by now, however, a bug where tapping "cancel" leads to data loss is inexcuseable. It shows the app has not even been properly tested, let alone properly created.
http://archive.today/2020.10.27-160...
Google could have hired a college student who could have built something better than the scrapyard-worthy "file manager" they have built.
But granted, at least Google's ever-so-terrible file manager does not limit file names to fifty (50) characters like Samsung's TouchWiz file manager, also known as "My Files", did until at least 2016. There is no way to know what went through the head of the programmer who implemented this pointless limitation. Google's file manager also correctly handles file name conflicts by renaming the new files.
Microsoft built a better file manager for their operating system decades earlier than what Google threw together. Microsoft spent more of their money building a proper file manager.6 -
Just wanted to code some better public transportation route calculator (better ux) and found out that the pt company offers an API.
EVERY FUCKING REQUEST HAS TO BE SENT AGAINST THE SAME FUCKING ENDPOINT IN A POST REQUEST WITH THE ORIGINAL REQUEST AS FUCKING XML IN THE FUCKING BODY. At least they offer xsd files... BUT THATS NO FUCKING HELP. At least not that much of a help. AND THE DOCUMENTATION DOES NOT STATE A SINGLE FUCKING EXAMPLE OF HOW TO USE THAT FUCKING ENDPOINT. I FOUND THIS OUT BY SENDING RANDOM REQUESTS TO THE ENDPOINT TRYING TO REVERSE ENGINEER THE EXISTING FUCKING FRONTEND AND NOW I NOTICED THAT 80% OF THE FUCKING DOCUMENTED FEATURES ARE DISABLED BECAUSE: NOT FUCKING SUPPORTED!!!
MAAAN WHY DO YOU DO THIS.
Alternatively I'd use the GTFS files they provide but THEY ARE FUCKING INCOMPLETE AND DONT STICK TO THE EXISTING STANDARD GOOGLE DEFINED... They also offer a different propietary format... BUT THATS FUCKING UNDOCUMENTED AND FUCKING INCOMPLETE... -
I need to vent or I'm going to fucking explode like a car filled with bombs in motherfucking Iraq...
A couple of months ago I inherited a project in development from our team leader who was the sole developer on it and he was the one who designed every single thing in it.
I was told the project is clean, follows design patterns, and over all the code is readable and easy.
Those were all fucking lies.
See throughout the period he was working on it, I saw some of the code as it was going through some pull requests. I remember asking the dev why he doesn't comment his code? His response was the most fucking condescending shit I've ever heard: "My code is self-documenting"...
Now that I have full control over the code base I realize that he over engineered the shit out of it. If you can think of a software design pattern, it is fucking there. I'm basically looking at what amounts to a personal space given to that dev to experiment with all kind of shit.
Shit is way too over engineered that I'm not only struggling to understand what the hell is going on or how the data flows from the database to the UI and in reverse, I'm now asked to finish the remaining part and release it in 8 weeks.
Everything is done in the most complicated way possible and with no benefits added at all.
Never in my career have I ever had to drag my sorry ass out of bed to work because I always woke up excited to go to work... well except for the last 2 weeks. This project is now taking a mental toll and is borderline driving me crazy.
Oh, did i tell you that since he was the only dev with no accountability whatsoever, we DO NOT EVEN KNOW WHAT IS LEFT TO BE IMPLEMENTED?
The Project Manager is clueless.. the tickets board is not a source of truth because tickets set to resolved or complete were actually not even close to complete. FUCK THIS SHIT.
For the last week I've been working on 1 single fucking task. JUST 1. The whole code base is a mine field. Everything is done in the most complicated way and it is impossible for me to do anything without either breaking shit ton of other features (Loosely coupled my ass) or getting into fights with all the fucking libraries he decided to use and abuse.
1 whole week and I can't even get the task done. Everyday I have to tell the project manager, face to face, that I'm still struggling with this or that. It's true, but i think the project manager now thinks i am incompetent or just lazy and making excuses.
Maybe I'm not smart enough to understand the what and why behind every decision he made with this code. But I'm sick to my stomach now thinking that I have to deal with this tomorrow again.
I don't know if I'll make the deadline. But I'm really worried that when this is released, I'll be the one maintaining that nightmare of a code base.
From now on, if i hear a fucking developer say their code is "self-documenting" I will shove my dick + a dragon dildo + an entire razor gaming keyboard up their ass while I shoot their fucking knees off.
oh... and there are just a couple of pages of documentation... AND THEY ARE NOT COMPLETE.2 -
You know the configuration sucks if it's a one file, 10 K lines nginx reverse proxy configuration.
But what really really really sucks....
If the person who wrote it was a google craptastic copy pasta ninja.
For fucks sake, if you don't know what you are doing, just stop.
I've had this in so many rants, it's terrifying how many devs seem to be completely unaware of what they're doing Oo
This time, fuckwad ignored the basic principle of NGINX configuration: set the HTTP version for the proxy.
It's by default HTTP 1.0 - as HTTP 1.1 requires a Host Header _which you must set if not already present_.
The fuckwad had all kinds of scary optimizations enabled. Literally a bukkaka (not a typo) of <way too high value> and <too obscure configuration value that cannot apply here>.
But the most trivial thing, enabling HTTP 1.1 and keepalive. Nope.
Not in it.
It's funny how fast NGINX can be without the bukkaka of configuration values but HTTP keepalive enabled.
*me sits in the silent corner of the plushy pink room with soft walls*1 -
A software had been developed over a decade ago. With critical design problems, it grew slower and buggier over time.
As a simple change in any area could create new bugs in other parts, gradually the developers team decided not to change the software any more, instead for fixing bugs or adding features, every time a new software should be developed which monitors the main software, and tries to change its output from outside! For example, look into the outputs and inputs, and whenever there's this number in the output considering this sequence of inputs, change the output to this instead.
As all the patchwork is done from outside, auxiliary software are very huge. They have to have parts to save and monitor inputs and outputs and algorithms to communicate with the main software and its clients.
As this architecture becomes more and more complex, company negotiates with users to convince them to change their habits a bit. Like instead of receiving an email with latest notifications, download a csv every day from a url which gives them their notifications! Because it is then easier for developers to build.
As the project grows, company hires more and more developers to work on this gigantic project. Suddenly, some day, there comes a young talented developer who realizes if the company develops the software from scratch, it could become 100 times smaller as there will be no patchwork, no monitoring of the outputs and inputs and no reverse engineering to figure out why the system behaves like this to change its behavior and finally, no arrangement with users to download weird csv files as there will be a fresh new code base using latest design patterns and a modern UI.
Managers but, are unaware of technical jargon and have no time to listen to a curious kid! They look into the list of payrolls and say, replacing something we spent millions of man hours to build, is IMPOSSIBLE! Get back to your work or find another job!
Most people decide to remain silence and therefore the madness continues with no resistance. That's why when you buy a ticket from a public transport system you see long delays and various unexpected behavior. That's why when you are waiting to receive an SMS from your bank you might end up requesting a letter by post instead!
Yet there are some rebel developers who stand and fight! They finally get expelled from the famous powerful system down to the streets. They are free to open their startups and develop their dream system. They do. But government (as the only client most of the time), would look into the budget spending and says: How can we replace an annually billion dollar project without a toy built by a bunch of kids? And the madness continues.... Boeings crash, space programs stagnate and banks take forever to process risks and react. This is our world.3 -
If you think you found a solution, think twice.
If the implementation is taking too long (too many changes in different functions and classes to fix a single bug) there may be a better solution, it's never too late to reverse the changes and start again, it's not a shame, in the worst case you will reimplement the same solution, but better, in the best you'll find an easier and better one.
Don't run, even if there's a deadline.
It's much worse having to deal with negative feedbacks later. -
Had to do a change tonight - not once but twice my server secure login account was locked. And server security don't answer their pages. I couldn't even reverse my changes if my changes break something else.
My account has not been locked in over a year but happens twice in a 90 minute window. What are the chances? -
Company had problematic client projects that each client has a bucket load of change requests. Company doesn't know how to say "No" to them. Company can't afford to pay the subvendors for the changes and the subvendors aren't willing to do them for free.
I went in, reverse engineer the shit out of each application, database, system, documented my own findings, changed according to each client request. This involves editing tables in MSSQL, rerouting PHP files, adding field and validations in C#, passing parameters in VB to Crystal Report, and managed every change request into my own personalize ticket system (that the company does not have).
Saved the company, everyone was grateful. A couple of months later, the company hasn't paid my salary on time, I left like a boss.
They're in shit again and need my help. Haha! -
Fucking java library publishing. It's a nightmare. You have to fucking own a domain to publish a shit onto jcenter/bintray/whatever. You have to own the domain, that your lib's package name is. And you MUST verify it, otherwise you won't publish anything. Or you can shit allover your lib with package name like com.github.dumbcoder.mycoollib.
You must to create a ticket for some shitheads that are going to verify your shit for two weeks. They gonna ask you for source.jar, docs.jar and whatever shit.jar they need.
What THE fuck? Who was the asshole that decided name packages in reverse domain name? No FUCKING more ecosystem has such a bullshit. In .net you just make a lib, create a free nuget account, fill some basic info and boom! you have .net package published. Same for npm and rust for example.
Because the fucking package name should be just for structure not for a some dick to own it. Namespace is name-fucking-space.
FUCK JAVA.7 -
Learning C and just wrote a function to reverse chars in a char array (ex. "Hello" -> "olleH") but the array did not change.
It took me way to long to realize: I forgot to divide the length variable by two. So it reversed the array back everytime...6 -
To be honest I forgot completely about the ducks and was kind of disappointed to see them, don't understand me wrong, its a great addition to the shop (especially to support devrant more when buying them and I will probably do too) and trogus (wow it's pronounced t-rogus) deserves a lot of respect for going through the very hard process of developing it, getting somebody to do a decent quality result etc. but I was hoping for the new site that got hyped up some time ago or some update to the app that fixes design issues on phones that have 2k resolution and no statusbar and more. ("just open a github issue" - I don't have one right now and it didn't get much attention anyway, since I am in the niche of people with those kind of setups, most people it seems have phones that can even barely run the app lol). The login still pops up each time you visit the site (basically just click it away, but it's rather annoying to have it pop up), it's nowhere near to the original app (although the native app is written in some sort of wrapper anyway?) - especially what comes to options, customizing, deactivating things, posting into categories (newest feature), getting notifications etc
There is some community builds that try to recreate a better desktop experience, but sadly fail to do so (sorry to devrantron and others, but what the fuck were you thinking when you rounded only the top right and left corner?) - since they always have something that is just thrown out to "be there" or design fails (which devrant just lacks and looks good across the board), that makes me rather cautious if that program doesn't send my credentials to some african prince. ("just look at the sourcecode", yes I have better things to do, thanks)
I could just create my own build, having to reverse engineer the whole website and app (granted, most of it are just api calls), but I simply lack the time (so I understand why my mentioned problems aren't getting really any attention or can't be implemented that fast, yet still its somewhat bugging)
I have listened to the Q&A and I know you guys are working full time at for example adobe (amazing that you both have time to be putting it towards devrant), so its not as much of a rant, just wanted to get out my disappointment about the event I felt personally. Still nice to have seen you and talk with the community a bit (although the time I feel was picked more towards your US audience rather than EU?).3 -
With a recent HAProxy update on our reverse proxy VM I decided to enable http/2, disable TLS 1.0 and drop support for non forward-secrecy ciphers.
Tested our sites in Chrome and Firefox, all was well, went to bed.
Next morning a medium-critical havock went loose. Our ERP system couldn't create tickets in our ticket system anymore, the ticket systems Outlook AddIn refused to connect, the mobile app we use to access our anti-spam appliance wouldn't connect although our internal blackboard app still connected over the same load balancer without any issues.
So i declared a 10min maintenance window and disabled HTTP/2, thinking that this was the culprit.
Nope. No dice.
Okay, i thought, enable TLS 1.0 again.
Suddenly the ticket system related stuff starts to work again.
So since both the ERP system and the AddIn run on .NET i dug through the .NET documentation and found out that for some fucking reason even in the newest .NET framework version (4.7.2) you have to explicitly enable TLS 1.1 and 1.2 or else you just get a 'socket reset' error. Why the fuck?!
Okay, now that i had the ticket system out of the way i enabled HTTP/2 and verified that everything still works.
It did, nice.
The anti-spam appliance app still did not work however, so i enabled one non-pfs cipher in the OpenSSL config and tested the app.
Behold, it worked.
I'm currently creating a ticket with them asking politely why the fuck their app has pfs-ciphers disabled.
And I thought disabling DEPRECEATED tech wouldn't be an issue... Wrong... -
Hacking company product with reverse engineering ang bytecode instrumentation.
The project I had to write integration test for was really not meant/written for testing. I ended up bytecode instrumenting an internal library to intercept the needed states and results. -
Okay this is 3.30 AM . Just woke up from bad geeky dreams. My heart is pounding so fast that I could nose bleed and I can't sleep as I am remembering I had the same dream last night.
Dream was about : me being astronaut. Everything was usual. From rocket launch to be in space. Scary part was my ship in orbit of moon.
Seeing dead land from that height chocked me. Imagine you are looking out of the window and all you see a big grey land and pitch black in background. Realising there is no one out there was spooky.
The scary part was I launched some satellite but crash on surface. It was scary seeing something going smaller every time. Crashing on deserted land was one plus on adding fear.
Then my ship leave the orbit (from the reverse shock of that satellite dittachment ) and it flow away in the vastness of space......
Away from the moon and away from the earth in long loneliness.
I wish I could erase this from my memory but I am not gonna watch space exploration video anymore.
I got to say, landing on moon is one thing but being out there knowing one accident and you will be forever there. You need balls to be on such missions.4 -
Managed to derive an inverse to karatsuba's multiplication method, converting it into a factorization technique.
Offers a really elegant reason for why non-trivial semiprimes (square free products) are square free.
For a demonstration of karatsubas method, check out:
https://getpocket.com/explore/item/...
Now for the reverse, like I said something elegant emerges.
So we can start by taking the largest digit in our product. Lets say our product is 697.
We find all the digits that produce 6 when summed, along with their order.
thats (1,5), (5,1), (2,4), (4,2), and (3,3)
That means for one of our factors, its largest digit can ONLY be 1, 5, 2, 4, or 3.
Lets take karatsubas method at step f (in the link) and reverse it. Instead of subtracting, we're adding.
If we assume (3,3)
Then we take our middle digit of our product p, in this case the middle digit of 697. is 9, and we munge it with 3.
Then we add our remaining 3, and our remaining unit digit, to get 3+39+7 = 49.
Now, because karatsuba's method ONLY deals with multiplication in single digits, we only need to consider *at most* two digit products.
And interestingly, the only factors of 49 are 7.
49 is a square!
And the only sums that produce 7, are (2,5), (5,2), (3,4), and (4,3)
These would be the possible digits of the factors of 697 if we initially chose (3,3) as our starting point for calculating karatsubas inverse f step.
But you see, 25 can't be a factor of p=697, because 25 is a square, and ends in a 5, so its clearly not prime. 52 can't be either because it ends in 2, likewise 34 ending in 4.
Only 43 could be our possible factor of p.
And we *only* get one factor because our starting point has two of the same digit. Which would mean p would have to equal 43 (a prime) or 1. And because p DOESNT (it equals 697), we can therefore say (3,3) is the wrong starting point, as are ALL starting points that share only one digit, or end in a square.
Ergo we can say the products of non-squares, are specifically non-prime precisely because if they *were* prime, their only factors would HAVE to be themselves, and 1.
For an even BETTER explanation go try karatsuba's method with any prime as the first factor, and 1 as the second factor (just multiply the tens column by zero). And you can see why the inverse, where you might try a starting point that has two matching digits (like 3,3), would obviously fail, because the values it produces could only have two factors; some prime thats not our product, or the value one, which is also not our product.
It's elegant almost to the level of a tautology. -
I am trying to reverse engineer a fingernail hardening device for rapid hardware prototyping (becoming some kind of hardware developer I guess)
Since it is a fucking mess (all cables are black) they've chosen a weird construct to operate microcontroller on 240Vac (seems to be possible and made in very low energy consuming devices) i do not find any datasheet for one of the used products. It would help a lot but no. And messing around with high voltage is no fun.
I'm unsure if this fits as a dev rant since most/all I've read so far are software-related.9 -
The license for assets on epics new asset store is insane:
For any Content licensed to you under a Standard License, you may not:
i. attempt to reverse engineer, decompile, translate, disassemble, or derive source code or data from the Content;
HOW IN GODS NAME AM I SUPPOSED TO USE ASSETS I BOUGHT WHEN I CAN'T EVEN DERIVE FUCKING DATA FROM THEM???? Like how in hell am I supposed to load textures and meshes when the only thing I'm allowed to do is to maybe look at them
They DO know graphics cards can do sweet fuck all with a JPG texture, right? Like I /genuinely/ have to translate that thing into a proper format for it to have any use11 -
When my manager, blatantly miscommunicated several things to me a couple of years ago, and scapegoated me by saying a comment I NEVER once heard said about me, in any context ever, "you communicate badly-- you need to communicate better", I took it seriously.
Fast forward, two years later. I'm doing wonderful at my job, yet I cannot get over that incident. I thought about it some more. Why did she say that to me? Why did she address it to me after her mistake? Why was she not aware of the real reason I missed the meeting?
Out of all useful bits of knowledge I gathered over the years, it's kinda comical that psychology came in the most handy at the workplace. There's very little to be gained from trying to psychoanalyze strangers, friends, and family... but it's almost saved my life at the job.
You see, if I attack an approach even in the most formal tones, or even worse, defend my approach, there's nothing coming from that. The situation now becomes my situation. When I become "aware" of the truth of the situation I become able to control the situation, not just myself. That way, you're not in a fisticuff fight with your boss, and you are not left defeated by the situation. Exercising control of the situation in such a manner that they are left defeated by the situation, not by you directly, is the only way you can win as an employee.
Any other way, you'll get under-appreciated, underpaid, overworked, overlooked, etc.
So, my boss at the time, was defeated by the situation of her being a bad leader; and instead of clarifying those feelings to me or ignoring them entirely... she validated her false self using her real emotions.
You can only reverse that, by developing fake emotions, to display a real self.
They can't blame you, and when they feel self-defeated, they cannot pretend it was you who caused it (bringing it back to a sane level of reality). They might rage if they're childish but it will not cause a single hair in your body to twitch because you did not "respond to their email" or "throw someone under the bus for their convenience", the situation did, they beat themselves by attacking you while the situation came down on them.
If I had to explain I would say that the situation is controlled by creating a mirror of the employee that follows their orders perfectly. That employee won't feel defensive: they already do everything right. The employee is crafted by becoming aware of the teams impacted in the situation and their true intent and creating "the situation", "the owner".
"The owner" reflects to people from the perspective of the situation and not from your own. This way you can't make a wrong move and are not emotionally involved with yourself.
It enables you to emotionally notice others. It also makes you safe, because you have the situation-mirror that's really doing the battling. The situation-mirror eventually creates a situation where the other person starts attacking reality (the situation) instead of attacking you.
Now, it's up to you whether you want to use that as a way to cooperate with your boss to beat this new reality, or as a way to gain coherence on your reality outside of your boss. I have noticed most people tend to realize this somewhere along the line and retreat and stop fighting, and quit their jobs.
I've been doing this in a corporate environment for a couple of weeks. I have already become greatly stressed and subjugated by the company for which my company works for. 20 of them sit here every day and devalue everything. Yet.... They're completely incompetent, spoilt, lazy and worst of all, they control how the software is being created. There isn't a single person on their side responsible for their requests to make sense and work with each other. So you can imagine how much blame they need to assign to us devs. They don't know what they want but want something anyway and then they'll see if that's what they want but everything under the tightest deadline possible. They're all clients and they all escalate to the board of directors any bad word directed at them. So you can imagine the narcissism that develops in that environment.
I have made them argue with reality and self-defeat numerous times. They have now started to back off and are being more polite and courteous. They have also not escalated anything anymore. Just as I was faking "happy" while I felt intimidated by them. I have not committed a single angry act and yet they are not feeling superior anymore. The reality of the situation is that we need to make a software and if you make them battle this instead of battling you, they can't beat you.6 -
Fucking Power Apps and Automate/Flow:
You want to make an app?, great!
- Easy UI and editor, you can make a decent app in a day
- Best data integration in MS space bar none, connect to anything under the planet no problem.
- Deployment on mobile and desktop instantly and at scale, you better believe it.
- Wanna take from sharepoint, manipulate the data and throw it at XRM, we gothcu.
- Source control? FUCK YOU FOR ASKING GO DIE IN A FIRE.
- Proper permission system, Yep, based on O365 and azure AD
- Just let me get the source code please?: BURN IN HELL MOTHERFUCKER
- Integrated AI, indeed we have it. And chatbot frameworks on top of it, no problem at all
- ...
As a tool it is aimed at non technical people, not by making it beginner friendly, but by making it developer hostile. And whenever you hit a wierd quirk in the editor you wish you could just go edit the source code (WHICH YOU CAN TOTALLY SEE SNIPPETS OF), but you are never allowed to touch it.
I am so very tempted to make a version control layer on top of it myself, scraping it via scripts and doing the reverse on upload, but it will be janky as fuck.1 -
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 -
Wasted a day as Shitlock Holmes with the build chain.
It would not reproduce the firmware hexfile that had been checked in. Reverse engineering that along with the mapfile to find out the cause, it was a const string that was guarded by an ifdef from another file that was auto-generated as prebuild step via a script that fetched some version control info.
Or, it would have been if the installation instructions had been correct and someone had described that no spaces in the absolute path name of the project are allowed. Otherwise, that shit just failed silently.
I then had to reverse engineer the intended workflow from the commit history in the version control to figure out that the last dev obviously hadn't quite understood the project specific workflow and how the version control interacts with these build scripts.
At least, I finally did get a matching hexfile.1 -
Seniority sucks sometimes.
Today I took the time to figure out the API for a shipping website.
I was super proud of this and figured that this could be useful for our application but the guy who has been there for 5+ years was like "no we have used an API for a previous client and caused the application to slow down by 1.2 seconds."
Of course in my mind I'm like, "but what was the API that you used? When I use it, it's running and returning in milliseconds. Surely you're not doing it right."
Of course because of his seniority I'm not going to say that.
It just sucks a lot because I spent a lot of time reverse engineering the API. It would have been nice to have been noticed for that work.5 -
When you are trying to reverse engineering context free grammar rules from given sentences......
Not possible. Worst assignment yet.2 -
Not really hacking, but every time I work from home(a couple times a week), in lieu of using my company's VPN, I connect to the company network with an SSH reverse tunnel. To make this possible, I wrote a port knocker that runs in a tmux session on a server inside the network. It tries to connect to a high-numbered port on my home machine, and if successful it opens the reverse tunnel. At home, I manually run a script that opens that port and informs me when the reverse tunnel is established.
Then I open an SSH socks5 proxy and use that in my Firefox dev edition, which I use entirely for work.
This is actually much easier than using the actual VPN. -
Honestly I don’t remember any particular one cause every interview is such a traumatic experience.
People on interviews are almost all the same, they just try to prove their superiority over you and break you.
I totally understand why, it’s because they think they understand what IT is about and in fact they understand shit, that’s why also most of computer systems are shit, cause of shitty people doing it who don’t understand how computer work, they can just copy paste stuff and do beautiful talks about how cool they are and how awesome their company is.
At the end ( at the edge ) it doesn’t matter if you know tech stack or not, if you have gazillion years of experience or you just started. It only matters if you can solve problems and how good and fast you can do it.
But well do your reverse tree in 15 minutes. I’d rather be talking about philosophy during the interview. -
One day I helped another teacher with setting up his backend with the currently running Nginx reverse-proxy, peace of cake right?
Then I found out the only person with ssh access was not available, OK then just reset the root password and we're ready to go.
After going through that we vim'd into authorized_keys with the web cli, added his pub key and tried to ssh, no luck. While verifying the key we found out that the web cli had not parsed the key properly and basically fucked up the file entirely.
After some back and forth and trying everything we became grumpy, different browsers didn't help either and even caps lock was inverted for some reason. Eventually I executed plan B and vim'd into the ssh daemon's settings to enable root login and activate password authentication. After all that we could finally use ssh to setup the server.
What an adventure that was 😅3 -
I sometimes sit back in awe at what, no matter how much I try not to see it, is clearly a global effort to create the most FUCKED up dev experience, documentation, intionally reverse-orienteed poop-scooping, small-business-opressing, homicidal-maniac-causing sorry excuse for claiming to be a company founded on "Don't Be Evil' that the Goog Monstor has turned out to be. WE MUST REPLACE THEM OR THE WEB WILL NOT BE FREE, even worse - everything in the world will be just like their horrible emails.1
-
I've been meaning to sign up on dev.to for a while now.
Finally started the sign up process. They require you to agree to follow their code of conduct which states that they will prioritize empowering the marginalized communities and in order to do that they will *not* act on complaints of reverse-isms. Reverse (sexism | racism), cisphobia, etc.
Am I the only one who thinks that this is wrong? I'm all for empowering people, tolerance and not getting trolled but outrightly rejecting complaints on topics that seem politically incorrect sounds superfluous to me. Am I interpreting something wrong? (I hope I am because in general I find the community to be nice and positive)3 -
Is there any documentation on what is public API or not?
@dfox or is reverse engineering the calls allowed?17 -
So my previous job primarily involved angular. Went out to find a new exciting job, and somehow, I ended up being this dude. The reverse hipster. I'm not even mad.9
-
Ok, so: I have a macbook for work. And for the most part, I love it. Its a good looking device that has a fast cpu, enough ram to run stuff locally for testing, even multiple services / environments at the same time without getting overly sluggish.
And, the best thing: It isn't Windows. I have a good, working shell (zsh), so I can use all the command line tooling I could wish for, I have a somewhat working package manager and everything.
But there are just some little things I really can't wrap my head around. And since everything is so locked in by Apple, there are no sensible ways to fix those things without having a bunch of extra programs / services running all the time, introducing overhead, configuration for things I neither want nor need, and so on.
First of all, why the hell did you think the normal way of typing "@" on a german iso keyboard is the key combination for closing the currently focused application? I am a daily user of macos for over 2 years now, and I still keep quitting applications regularly, almost every day.
Or, scroll direction: I use a mouse (g pro wireless) and not just the touchpad, but when I am in a meeting or something (or when I take my macbook with me to configure a switch that isn't accessible over the network), I don't want to take the mouse with me, the touchpad is pretty good, it is big, precise and everything. But for some dumb reason, they decided to reverse the scroll direction for the mouse by default, so if you change that to use the mouse like a normal person, it also changes the scroll direction for the touchpad. And, the worst part is: there doesn't seem to be ANY easy way to separate those two settings, or to automatically set the scroll direction when a mouse is connected.
So every time I use my laptop somewhere else, wich also happens regularly, the scroll directions is wrong, which means I have to go into the settings, change it, then change it back when I am at my desk again.
It just doesn't make any sense, stop trying to "know what our customers want", and please, dear Mr. Tim Apple, give your customers the freedom to know for themselves what they want.
Thanks for listening to my TED Talk.8 -
I got a REALLY nice compliment from my dev team today. But first, the setup...
Tuesday night, I pushed some changes before I left that totally borked the build today when my team pulled changes (this is an off-shore team, so we more or less work opposite hours). Fortunately, my team dealt with it easy enough since (a) it was pretty obvious what happened, and (b) my commit message had enough information to help them know for sure, and they just reverted one file and were good to go for the day (they didn't fix the problem, left that for me to do, which is proper).
It was an absolutely stupid, careless mistake: I somehow copied the contents of a JS file into a JSP and pushed it. Just a simple case of too many tabs open at once and too many interruptions while I'm trying to code (which is typical most days, unfortunately, but this day it had an impact other than just slowing me down).
But, those are the reasons it happened, they aren't excuses. It was carelessness, plain and simple.
So, once I fixed it, I sent a note to the team explaining it. It basically said "Look, that was a dumb, careless mistake on my part, my bad, sorry for the inconvenience, it's fixed now."
I had a message waiting for me in my inbox this morning that said how I'm an inspiration because despite all my knowledge and experience, despite being a long-time lead, they (a) appreciate the fact that I'm human and still make mistakes, and (b) I stand up and take responsibility when it happens and then do what's necessary to reverse the mistake.
That made my day :)
To me, it's just the right way to be (I credit my parents 100%), never occurs to me to do otherwise, but the truth is not everyone can say the same. Some people are insecure and play the CYA game right away, every time. Some people act like they never make mistakes in the first place.
I don't care if you're an experienced dev or a junior, always take responsibility for your actions, especially your mistakes. Don't try and bullshit your way out of them. Sure, it's fine to explain why it happened if there were factors beyond your control, but at the end of the day, own up to them, apologize where necessary, and then put in the effort to make it right. Most people have no problem with people who make mistakes every so often - everyone does, whether everyone admits to it or not - but those who try and shirk responsibility don't last long in this or any endeavor (you know, putting aside the professional bullshitters who build their careers around it... that's not most people, thankfully).10 -
Development: we need Nginx installed on *insert server list*
Me: ok, let me get in tough with the platform team.
Platform team: This should be installed in the userspace, Unix teams don't support this.
And here I am, trying to get a reverse proxy running on servers on which I do not have sudo rights.
Since it doesn't work, it's my fault, both sides block the door.
I installed it locally on a virtual machine, but the compiled or installed code doesn't work once copied.
The joy of being an "application engineer". This job title means nothing!9 -
I'm developing an app for a not so mobilefriendly website.
I do not coorporate with the webmaster, yet, so I need to sort of reverse engineer my way around everything (basically just one feature.. xD).
It's a website for people who likes to fish, and they *have* to submit their catches. So, when people submit their catches via the form and click "Submit", the URL they are sent to goes like
http://url.tld/submit_catch.asp/...
I can't figure out if that is a POST request, or what it is.
Somehow, I need to submit a catch from the Android App, and all I currently got is that URL.
What do I need to look into to solve my issue here? Any help appreciated :)22 -
So I was reverse proxying this new Social network app's API and saw an interesting endpoint
It was a websocket relaying what each live user's doing every 2.5s, to power the "xyz typing" under a post, or a simple online/idle.
The app's "live posts" ie most-recently created posts was also powered by it since they knew each user's state (instead of a periodic API call)
The performance is good even tho it's a new company + enough users
but now im curious how prevelant state-management is using such websockets .-.
if not taxing, i might move any API call which ive to ping every 15s or less to a live WS4 -
Today I spent 9 hours trying to resolve an issue with .net core integration testing a project with soap services created using a third party soap library since .net core doesn't support soap anymore. And WCF is before my time.
The tests run in-process so that we can override services like the database, file storage, basically io settings but not code.
This morning I write the first test by creating a connected service reference to generate a service client. That way I don't need to worry about generating soap messages and keeping them in sync with the code.
I sent my first request and... Can't find endpoint.
3 hours later I learn via fiddler that a real request is being made. It's not using the virtual in-process server and http client, it's sending an actual network request that fiddler picks up, and of course that needs a real server accepting requests... Which I don't have.
So I start on MSDN. Please God help me. Nope. Nothing. Makes sense since soap is dead on .net core.
Now what? Nothing on the internet because above. Nothing in the third party soap library. Nothing. At this point I question of I have hit my wall as a developer.
Another 4 hours later I have reverse engineered the Microsoft code on GitHub and figured out that I am fucked. It's so hard to understand.
2 more hours later I have figured out a solution. It's pure filth..I hide it away in another tooling project and move all the filth to internal classes :D the equivalent of tidying your room as a kid by shoving it all under the bed. But fuck it.
My soap tests now use the correct http client with the virtual server. I am a magician.4 -
When your bug fix corrects an issue that is a year old and customers freak out because they do not not how the feature is actually suppose to work. Management: you should of wrote a test to detect the reverse effects of your bug correction. I told them what the effects would be and to have customer support on stand by with the corrective actions to take if they were concerned.1
-
The importance of not using static salt / IVs.
I've been working on a project that encrypts files using a user-provided password as key. This is done on the local machine which presents some challenges which aren't present on a hosted environment. I can't generate random salt / IVs and store them securely in my database. There's no secure way to store them - they would always end up on the client machine in plain text.
A naive approach would be to use static data as salt and IV. This is horrendously harmful to your security for the reason of rainbow tables.
If your encryption system is deterministic in the sense that encrypting / hashing the same string results in the same output each time, you can just compile a massive data set of input -> output and search it in no time flat, making it trivial to reverse engineer whatever password the user input so long as it's in the table.
For this reason, the IVs and salt are paramount. Because even if you generate and store the IVs and salt on the user's computer in plaintext, it doesn't reveal your key, but *does* make sure that your hashing / encryption isn't able to be looked up in a table1 -
Long post, TLDR: Given a large team building large enterprise apps with many parts (mini-projects/processes), how do you reduce the bus-factor and the # of Brent's (Phoenix Project)?
# The detailed version #
We have a lot of people making changes, building in new processes to support new flows or changes in the requirements and data.
But we also have to support these except when it gets into Production there is little information to quickly understand:
- how it works
- what it does/supposed to do
- what the inputs and dependencies are
So often times, if there's an issue, I have to reverse engineer whatever logic I can find out of a huge mess.
I guess the saying goes: the only people that know how it works is whoever wrote it and God.
I'm a senior dev but i spend a lot of time digging thru source code and PROD issues to figure out why ... is broken and how to maybe fix it.
I think in Agile there's supposed to be artifacts during development but never seen em.
Personally whenever i work on a new project, I write down notes and create design diagrams so i can confirm things and have easy to use references while working.
I don't think anyone else does that. And afterwards, I don't have anywhere to put it/share it. There is no central repo for this stuff other than our Wiki but for the most part, is like a dumping ground. You have to dig for information and hoping there's something useful.
And when people leave, information is lost forever and well... we hire a lot of monkeys... so again I feel a lot of times i m trying to recover information from a corrupted hard drive...
The only way real information is transferred is thru word of mouth, special knowledge transfer sessions.
Ideally I would like anything that goes into PROD to have design docs as well as usage instructions in order for anyone to be able to quickly pick it up as needed but I'm not sure if that's realistic.
Even unit tests don't seem to help much as they just test specific functions but don't give much detail about how a whole process is supposed to work.9 -
I hate programmatic auto layout. It's such a mess! Simple shit like cells that can easily be defined in a .nib become spaghetti coded messes that violate every good programming practice ever. Want to recreate the same style of cell again? Good luck reverse engineering the hieroglyphics your teammate wrote when creating the layout by hand. Never mind a whole bunch of useless shit is done in code that could easily be defined via runtime attributes through the storyboard. But why learn a new approach? Cause job security. Or because for some reason Interface Builder tools are seen as "too hard" or "not scalable" to use.. fuck me.2
-
Thank you, mobile development. /s
Tried to create a default Navigation Drawer activity on Android Studio, result:
- Compilation erros out of nowhere
- R. couldn't compile even after cleaning and rebuilding the project
- Couldn't reverse the damage because I didn't save it before doing it (who would imagine a custom activity would do this)
- Lost 2 hours of work
I'm just not that desperate because I have the project on Github, but I'll have to make all the changes over again and it will take sometime before remembering everything. -
Android devs, what are your thoughts about the naming conventions google tries to enforce on us, especially with the xmls?
I opened a new project after months of leaving android dev, and thought of trying the basic activity template with name 'myActivity'
On clicking it, a ton of files got created : myActivity, myActivityFragment ,... And in xml the reverse naming notation : activity_my, fragment_my, content_my,...
This naming is uncomfortable .in a large project, activities usually acts as complete modules in which different tasks are handled : logins getting checked, data being cached, database being accessed and much more...
So if my activity 'abc' has a content fragment and a toolbar whose design is in another xml, shouldnt the 3 of them be named like:
abc_activity.xml
abc_activity_fragment.xml
abc_activity_toolbar.xml
And not
activity_abc.xml
fragment_abc.xml
toolbar_abc.xml
??
At the very least , it would look nice since the components that are displayed together will have their files together. And i don't know much about testing, but i believe it would be helpful there too5 -
After getting fed up of “being productive” I fooled around on GitHub and had a look at the Stuxnet virus source code which was obtained using a decompiler. Experts who reverse-engineered it found out that it was written in “object-oriented C.” While C is not an object oriented language, anything you can do with classes you can do with structs, static functions, pointers & function pointers. You can see this coding style in the Linux kernel, CPython interpreter and many other places. That was the first indication that a government agency or defence industry was responsible. Amazing stuff !6
-
Reverse number(logic)
------
First Approach :=
void reverseMethod(int n)
{
String str="";
int temp=0;
while(n>0)
{
temp=n%10;
n=n/10;
str=str+""+temp;
}
System.out.println(str);
}
-----
Second Approach :=
void reverseMethod(int n)
{
int temp=0;
int rev=0;
while(n>0)
{
temp=n%10;
n=n/10;
rev=rev*10+temp;
}
System.out.println(rev);
}
-----
why the fuck second one is recommended??
In first, at least we do not required to remember that formula.9 -
I’ve been looking for a job recently since I am a student and starting my career.
I have a bunch of experience and I like to think I have pretty broad knowledge of programming concepts (web dev, ML, AI, software development).
I see these job postings for jobs that I know I am qualified for.
- I got my research published (which is related to the jobs I’ve been applying for)
- I have great grades
- I have a clear track record of doing well in teams (life long athlete)
- I am a complete geek for new tech and libraries so I always learn them super fast
- I have side projects that aren’t just shit I’ve done in school
- my past jobs show that I am an efficient worker who has real experience
However, I always fucking fail the coding challenges.
I’m never asked questions like “how to reverse a linked list”, just obscure questions that I don’t know how to study for.
What the fuck am I supposed to do? It’s not even like I get close to the answers. I usually get a couple test cases and then fail the rest of them, or I can’t figure out a solution to solve them.
This is all really disheartening and I fucking hate it I absolutely fucking hate it and when I am trying to hire people in the future, I’m never going to make them do coding challenges bc they’re fucking stupid3 -
A friend just asked his colleagues why IntelliJ can't do reverse debugging and was told that it's impossible. It's not impossible, gdb does it, pdb does it. Probably other debuggers do it too.
Why do many devs believe that if they haven't heard of something, it doesn't exist?1 -
bad APIs lead me to leaving comments like this
```
// we do not know how many pages their may be.
// im thinking of space invaders here, reverse direction and increase speed!
// only we are just adding one and creating an infinite loop that is only infinite until it isn't```1 -
6 hours of work before I actually wrote a line of code today. Reverse engineering stuff is interesting but not always fun
-
So you guys know how universities can sometimes have TERRIBLE old software that hasn't been updated for years, and sometimes you want to do a specific process over and over again so you end up automating it, now, we've built a tool that automates downloading projects from the University Moodle website, and we would like to publish it for other students to use.
Problem.
The University is using SSO.
And so far we've made the application to work by observing the network connections over the Android app version in order to extract the cookie session, now imagine that we publish this little tool, and tell people to do those exact steps, of course it's impractical and misses the whole point of the tool itself for being easy to use.
So, where can I read more about SSO, how can I figure out what the University uses? And if I had to reverse engineer this, where should I start? (It goes over 4 pages and I'm not able to capture those requests to even figure out what's going on)
In short is there a guide where you take a university SSO service and build on top of it? I couldn't find anything that is helpful. -
How I hate all those people who think VisualStudio Code is Open Source. It's not! Read the f*cking license!
https://code.visualstudio.com/licen...
In fact, you aren't even allowed to inspect its network traffic. Not to mention reverse engineering. That's nowhere near OpenSource.
You sure can download the source code, licensed as MIT, but building it won't give you the same piece of software.
Don't believe in everything someone tells you. Use your brain and check the facts.12 -
Holy shit trying to learn flex-box and only when I turn on reverse-row does everything fall out of its containing boxes. Then I find out that because I'm not hardcore enough to roll my own CSS scaffolding and therefore using material design lite that it is also trying to use flex box plus a few floats here and there......
... First real need to rant, glad I had this outlet3 -
Why you should use sketchware and not use it at the same time regarding: encryption
sketchware the app is known to build apps by dragging elements to the screen then coding them with blocks or even write your code with the built in ide but there is one thing every developer fears. ah yes. the reverse engineers (or modders)
random guy [rates: X]: sketchware encryption is trash! are you serious?! string fog?! class rename?! i decrypted this whole app with the software i made >:D
sketchware dev wrote back to random guy: string fog isn't working because you decrypted sir! there is nothing we can do sir but email to our email and we will get back to you in a few and fix the problem
i have to say this is why i stick to android studio too many skids decrypt the C++ files or the mod menu just to edit stuff :) i also build some games im learning android studio game development but at the time lets have fun and mod other peoples games1 -
So, the story starts with me getting a job. Full-time job for the first time in my 21 years old life. After short conversation about how amazing this company is, after countless lies and stood questions they decided to hire me. I had to get come on Monday a week later with everything prepared.
So of course I did that and got to my workplace on designated time. Turned out nobody was expecting me, nothing was prepared for a new programmer and everyone seemed angry at me for no apparent reason.
After long talk with my new boss I got some less than 100$ pc with CPU that couldn't handle virtualization and expected me to work on software that needed extensive use of virtual machine.
PC is of course filled with all kinds of spying software that uses most of the resources. IT teams only job is to check if programmers are working their assess off for at least 8 hours a day.
I've filled a ticket about granting me access to Debian machine on the mainframe so I could work. No response for two weeks. I've lost hope already.
I have to work on open space with more than 30 engineers. Screams, phone calls, alarms, all at once, all the time. My colleagues seem to not care and I can't understand how.
I was tasked with rewriting major application because old developer did some half assed piece of burning shit. It took him more than one year, I'm finishing it in less than two weeks.
Of course nobody except for me is preparing any kinds of documentation. I had to reverse-engineer whole API for alarm system.
Salary is less than a junior programmer should earn.
But I'm stuck here for at least a year because nobody's here wants a guy whose only experience is as a freelancer. -
#Suphle Rant 3: Road to PHP8, Flow travails
Some primer: Flows is a feature that causes the framework to bypass handling the request now but read it from cache. This cache entry is meant to be populated without warming, based on the preceding request. It's sort of like prefetching but done on the back end
While building Suphle, I made some notes on some chapters about caveats and gotchas I may forget while documenting. One such note was that when users make the Flow request, the framework will attempt to determine who user is, using authentication mechanism defined on the first module (of the modular monolith)
Now, I got to this point during documentation and started wondering whether it's impossible for the originating request to have used a different authentication mechanism, which would result in an empty entry for returning user. I *think* it's possible cuz I've got something else called "route mirroring", where web based routes can be converted to API routes. They'll then return JSON, get served under defined API path, use JWT, all automatically. But I just couldn't connect the dots for the life of me, regarding how any of this could impact authentication on the Flow request
While trying to figure out how to write the test for this or whether it was even necessary (since I had no use case), it struck me that since Flow requests are not triggered by an actual user, any code attempting to read authenticated user will see nothing!
I HATE it when I realize there's ambiguity or an oversight, after the amount of attention and suffering devoted. This, along with a chain of personal troubles set off despondency for a couple of days. No appetite for food or talk. Grudgingly refactored in this update over some days. Wrote some tests, not all passed. More pain. May have to convert them to unit tests
For clarity, my expectation is, I built this. Nothing should be impossible for me
Surprisingly, I caught a somewhat lucky break –an ex colleague referred me to the 1st gig I'm getting in 1+ year. It's about writing a plugin for some obscure forum software. I'm not too excited cuz it's poorly documented and I'll have to do a lot of groping, they use arrays instead of objects etc. There's no guarantee I'll find how to implement all client's requirements
While brooding last night, surfing the PHP subreddit, stumbled on a post about using Rector to downgrade a codebase. I've always been interested in the reverse but didn't have any incentive to fret over it. Randomly googled and saw a post promising a codebase can be upgraded with 3 commands in 5 minutes to PHP 8. Piqued my interest around 12:something AM. Stayed up all night upgrading it, replacing PHPSTAN with Psalm, initializing the guy's project, merging Flow auth with master etc. I think it may have taken 5 minutes without the challenge of getting local dev environment to PHP 8
My mood is much lighter than it was, although the battle is not won yet –image tests are failing. For some weird reason, PHP8 can't read generated test images. Hope I can ride on that newfound lease on life to study the forum and get the features working
I have some other rant but this is already a lot to digest in one sitting. See you in rant #4 -
Anyone had the reverse of the classic, I've got a programmer that compiled on two of my VMs but not the third
They're each clones of an original. What, since when was this a thing?1 -
I think I've asked this before. Just cropped up again cuz I'm pushed to do some stuff in nextjs
I Wonder how much longer before js framework devs realise they've been reverse engineering the browser this whole time, that the current browser spec was outdated since the dawn of Web fidelity and real time applications
I wonder whether there are some guys who have seen this and are already cooking in the background. The browser still treats the Internet like front end and back end, whereas with the way apps are going (eg deprecation of the front/back end roles), it seems apparent the browser needs to scale up by fading whatever js is now
I'm seeing "use server", which was one of php's infamous atrocities back in the day (lack of separation of concerns, everything in index.php). It's shocking how those who ridicule that language let this fly, but that's probably a separate thread. Point is, a bunch of these stuff done by front end frameworks seem like boilerplate but the syntax is far different from what I remember javaScript to be. I only vaguely recollect and understand what I'm reading
Why not merge all the cryptic syntaxes struggling to achieve bare minimal expectations, into advanced markup language controlled by dom attributes? Overhaul and Rethink client - server communication to fit modern standard. Someone needs to step out of the box and take a good look at the rat race. I find our lives would be made much simpler if api integration into client side behaviour wasn't a separate thing altogether
You have all these funny hoops and precarious bridges to cross. The reality is what we're fighting to overcome is the manner the architecture is setup. We need a Google/meta/amazon/apple to step in with a new browser since it's not a weekend gig and might need their reach to catch on with mainstream users. Sadly, they're the same guys rolling out new js frameworks2 -
I‘ve now my first smart home device. It is only a power outlet, but the story behind it is a bit special.
Because Apple trapped me in there ecosystem I wanted to have a HomeKit compatible outlet. The problem with that: Either to expensive or to big. So my ne mission: Connect a non HomeKit device to HomeKit, but without a too expensive proprietary gateway/bridge.
After a bit of googling I found a software called "Homebridge", build to run on a Raspberry Pi. Fortunately I had one old RasbPi 1 B. So I installed a new Raspbian and installed Homebridge. I forgot how slow it was.
Then I bought a cheap (but good) ZigBee outlet and a ZigBee USB Dongle. With a plugin for Homebridge it was very easy to connect the ZigBee Dongle.
Then I tried to connect the outlet, but the log said "Unrecognized device". After a bit of research I found out that the outlet is not supported by the homebridge-zigbee plugin. As a software engineer I tried to find a solution for it, so I reverse engineered the device recognition (very easy because Homebridge is a node application). After a while I managed to add the configuration for the outlet to the plugin.
And see, it became light.2 -
Am I missing something with VMs? Every time I set one up (either linux guest on win10 host or the reverse), what I get is so slow and laggy that I can barely use it. I always give my VMs about 70% of my ram and at least 4 cpu cores, but still, it ends up being as slow as my grandma's 10 year old laptop.
On the other hand, I've seen people on youtube editing fucking videos in their VMs and the performance was so good that you couldn't even tell if its a vm or not.
This happens both on my desktop (8th gen i7, 16GB ram and ssd) and on my laptop (same cpu, 8GB ram, nvme).
Is virtualbox not good enough, are my devices not powerful enough or am I just too stupid?17 -
!rant
Looking for some guidance on a final year college research project:
I was going to look into hacking drones/toy helicopters/those Fitbit watch things or whatnot, but I'm not sure if it would go down well! Some technologies I'm looking to explore through this project include reverse engineering, machine learning and container technologies (docker, rkt) if that helps?
Am I along the right lines or should I take a different approach with different topics? If so, an update on what's "hot" or upcoming at the moment would be helpful.
Cheers!2 -
Sometimes being a developer really sucks. I adopted a heavily customized OXID shop which introduced an ingame currency beside the fiat currency.
It was done by introducing $iPriceChannel and replacing the $dPrice float value with a multidimensional array across all components, controllers and models.
Wait ... not 100% of the code has been "adapted" yet but it's sufficient to get it working at the first glance.
The reality is: The shop has many subtle bugs and piles up huge (error) log files.
Every time when a bug was found,
and every time the shop maintainer is unlocking an OXID feature which hasn't been used yet, I have to fix it.
It's even extra hard to fix issues sometimes because the shop is embed in a game by utilizing a content-aware reverse proxy. My possibilities to navigate through the shop directly is limited because some of the AJAX/CSS/HTML elements doesn't work without loading this game.1 -
Nix vs. Win
Dual boot vs. virtualization (VirtBox vs Xen)
(TLDR at the end)
- gaming laptop ("when you student but gamer")
- "Nix nono like gaming laptops"
- currently dual boot Win10/Debian
- Debian almost breaking apart
- only xfce because nVidia
- intel-virtual-output^2
- Atheros drivers sometimes freeze whole sys
- MiXeD SoUrCeS
- **Stretch Buster Kali enters the chat**
As you can see after 2 years I have come to the point of redoing everything, wanted to ask any tips on how to setup win and any nix enviroment, win just to play some games and sometimes to reverse win specific CTFs.
Main plan was to have my lovely debian as the only system and run win10 in virtualbox - problem: windows don't like virtuals(?) and it's probably going to be unusable for games.
Also running Kali as separate virtual (why the hell I didn't do that in first place ?)
Xen is the other interesting way but I am not experienced with hypervisors.
TLDR: Would running Win10 as virtual in or alongside(hypervisor) Debian be better/same as having them separated - dual booting?12 -
Ok just wanna share things that got me stuck for hours on my recent project and their solution. I hope it’s gonna help someone.
To start with, when I was implementing svg to png, i set an image object’s source with a data url. Normally this is going to trigger the onload hook. However for some fucked up reason it never triggered. The solution is to use setAttribute function and then the hook will be triggered.
Second, you can get rounded triangle by setting stroke width and set stroke linejoin and line cap as round. But remember, if stroke width is 6, then it’s 3 inside and 3 outside.
Third, if you have a rotation of svg element, and later on you want to manually compute the rotated point’s position, it’s most likely some vanilla code is not going to work. You see, when you rotate for x degree, it is actually rotating -x degree. I’m not sure if it’s a bug of my code, but it’s there.
And now the worst thing: if you look up how transform on svg is performed, stackoverflow is going to tell you it’s by order. But that’s somehow not true for my project. If I do set transform to do translation then rotation, the order it was applied is actually reversed. It’s rotation first then translation, like ffs why? Who the fuck said it was in order? It’s clearly in reverse fucking order.
Ok last thing, you can scale svg around it’s center, but absolutely don’t do that because it’s gonna fuck up tanslation and rotation applied to this svg. If you need to scale, translate it first then scale it will be better.
Anyway just some things i encountered. I’m gonna stay away from svg for at least two months now1 -
Im going to shove their soapy WordPress plugin up their ass sideways.
Just had to reverse engineer a WordPress plugin communicating with a SOAP API.
Why? Because the stupid fucking retard company thinks "we do not support custom integrations at this time, only plugins for certain CMS and some external providers" IS IN ANY WAY AN OK THING? IT IS NOT.
And i am feeling ashamed for having purchased a WordPress plugin (100 bucks) just for reversing it. My server even has to Report to them as wordpress to get access.
So fucking typical for swiss companies
Edit: also, they state they DO support custom integrations on their main website :/ -
What's the general process and toolset for reverse engineering a C++ DLL? I've never done this, but I may get a gig and I'm not about to reject it just because I don't know how to do the work.7
-
So I've been helping with recruitment at work for a lead developer. Our first stage is pretty standard for all levels and it essentially a technical interview because CVs are useless really. We're a C# house so we have questions on framework internals such as how the dictionary class is implemented, locking and thread synchronization techniques. Then some pen and paper coding excercises, like reverse array.
I'm not a big fan of these and I think they are too constrained to detail implementations and not about concepts.
So I ask what stuff do you do at your company to get an idea of some ones competency?1 -
For f*cks sake, why can't I just remember certain pages I visited some time ago? It drives me nuts! Am I getting older or what? I am just in my thirties, what the heck should I expect from myself in a few years? I'll sure be a drooling old man as soon as I get 40. Dammit!
This time it was some JSON API for reverse lookups of phone numbers, it was a blue-ish site and you could take a test drive just by entering a number, and it told you the name and some details of the caller. And it was cool, and not for free, but still cool.
NO IT WAS NEITHER NUMVERIFY NOR TWILIO. Does it ring a bell? No?13 -
Incoming phone call from an unknown number. I am busy coding, the number is not in my contacts, and there is no caller ID. Callers could leave a message on my voice box, but most don't. Callers could send me an email or a short message, but most don't. When I google their number, there is either no entry at all, or one of those generic reverse phone book sites called something like "look who's calling" telling me that it's a German number of an unknown ower. I don't get it.
If making outbound cold calls is your profession, why won't you use any of those free trust-building options? Are those people getting paid just for typing numbers into their keyboard and listening to the ring tone?2 -
Russians Engineer a Brilliant Slot Machine Cheat
...But as the “pseudo” in the name suggests, the numbers aren’t truly random. Because human beings create them using coded instructions, PRNGs can’t help but be a bit deterministic. (A true random number generator must be rooted in a phenomenon that is not manmade, such as radioactive decay.) PRNGs take an initial number, known as a seed, and then mash it together with various hidden and shifting inputs—the time from a machine’s internal clock, for example—in order to produce a result that appears impossible to forecast. But if hackers can identify the various ingredients in that mathematical stew, they can potentially predict a PRNG’s output. That process of reverse engineering becomes much easier, of course, when a hacker has physical access to a slot machine’s innards...
https://wired.com/2017/02/...1 -
I'm doing the recommended math tasks. Since I can't trust the prof's solutions (he does errors here and there), I watch YouTube videos, Khan Academy videos, compare the results of the prof with the results of online step calculators such as wolfram alpha and find new rules I've never heard of before.
The prof doesn't really comment every step about why he's doing what. He just provides the solution and I have to reverse engineer from his solution up to the original state of the equation. Repeating the same procedure for the online calculator results as well.
I have to say that "Oh, boy, did I learn so many valuable things..." Stuff that I should have learned when I was at least doing my A levels (Abitur).
It is as if I am opening the gates to a new world. Not even exaggerating. Ok, maybe a bit. Ok, maybe a bit more, but no bit more than that.9 -
I was watching an Ancient Aliens episode called "Beyond Roswell". The show described the idea of some of our tech being seeded slowly by introducing alien technology to specific companies. They suggested that computing technology has advanced very fast and introducing this tech could be part of that.
At first I was kinda pissed about this. I have read about the creation of the first transistor back in the 40s or 50s. WWII really advanced our need for computing devices such as what Turing built. Then I realized a lot of the explosion of computer tech did occur after key ET events. This kind of made me wonder how much is "us" and how much is ET tech. I also realized it can take a lot of effort to understand something really advanced. So reverse engineering can take a LOT of effort to figure these things out. Being seeded by external tech does not take away from humans at all.
A parallel to this is a programmer that learns how to use a C++ compiler. They could go their whole career without ever understanding how the compiler itself is doing its job. I find myself wanting to learn how compilers work and started down this path. I look at the simple grammar I have learned to parse. Then I look at the C++ grammar and think "How can I ever learn to do that?" So I see us viewing potentially advanced things and wondering how the heck can we ever learn to do that. The common reaction when faced with such tech would be disbelief and in some cases ridiculing the messenger. When I was a kid the idea of sending a picture over a phone was laughable. Now this is common and expected. It was literally a scifi concept when I was a kid.
So, back to the alien tech. I am now thinking it would be cool to be working with alien technology through computing. This is like scifi stuff now! So what if what we have was not all invented here (Earth). If anything this will prepare us programmers to get jobs working for alien corporations writing ship level programs and brain interfaces. Think of it as intergalactic resume building. 😉 -
You know in time all that will be left of them is maybe the idea that they were all whores and maybe people will feel sorry for them long after their dead
And that would be good because it would encourage a sense of humanity in future generations which being the exact opposite of what they want would be part of the sweet revenge
I think that splitting them off from the group that does all this creepy shit would also be a nice alteration to history
It would allow the young to despise the one while not falling victim to the propaganda they use to try to humanize themselves to cause other people grief and trauma down the road and would not allow them to falsely portray all people stuck in their line of work as the same kind of garbage trash that has no other use
Wouldn't that be lovely ? All the mind numbing buildup of chomo trash you people constructed torn down meaning lost and the ambiguous nature of much of it portrayed as it was portrayed as ordinary sex games and the like and adventures being left behind to delight people you'd all victimize in future generations ? All your wasted fucked up lives reduced to zero. Just like you all forced on so many others ?
Reverse pronouns if this isn't making sense since everyone knows you people speak English but just act like retards.
In time the world will heal
End of story
The perfect formula for screwing over younger straighter more innocent and good natured if lusty and angry people will no longer work and your fucked up abuses will disappear and noone will remember any of your names just like you creatures tried by stealing everything decent people created and passing it off as your own. And your dumb code will be as nonsensical then as it is now
Glorious
At least in the long run there is that as this evil is purely self destructive8 -
Reverse engineering with IDA, be like:
Ow that makes sense, lets jmp there, nope thats not... aaah this must be the subroutine I was lookig for, nope thats not it, repeat. -
Another company another offer downplayed from role I wanted. tbh probably implies I'm def not to that level yet haha but the feedback seemed to have negatives when I believe I gave examples to imply the reverse. Either way another offer refused I guess. Got a good raise which makes things better I guess.