Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "interrupts"
Sit down before you read this.
So I interviewed a guy for a "Support Engineer" internship position.
Me and the team lead sit down and are waiting for him to enter, but apparently he's actually making a coffee in the kitchen.
This isn't exactly a strike since the receptionist told him that he can go get a drink, and we did too. It's just always expected for him to get a glass of water, not waste 3 minutes brewing a coffee.
In any case he comes in, puts the coffee on the table, then his phone, then his wallet, then his keys and then sits on our side of the table.
I ask him to sit in front of us so we can see him. He takes a minute to pack and tranfer himself to the other side of the table. He again places all of the objects on the table.
We begin, team lead tells him about the company. Then I ask him whether he got any questions regarding the job, the team or the company . For the next 15 minutes he bombards us with mostly irrelevant and sometimes inappropriate questions, like:
0: Can I choose my own nickname when getting an email address?
1: Does the entire department get same salaries?
2: Are there yoga classes on Sundays only or every morning?
3: Will I get a car?
4: Does the firm support workspace equality? How many chicks are in the team?
5: I want the newest grey Mac.
And then.. Then the questions turn into demands:
6: I need a high salary (asks for 2.5 more than the job pays. Which is still a lot).
I ask him why would he get that at his first job in the industry (remind you, this is an internship and we are a relatively high paying company).
He says he's getting paid more at his current job.
His CV lists no current job and only indicates that he just finished studying.
He says that he's working at his parent's business...
Next he says that he is very talented and has to be promoted very quickly and that we need to teach him a lot and finance his courses.
At this point me and the team lead were barely holding our laughs.
The team lead asks him about his English (English is not our native language).
He replies "It's good, trust me".
Team lead invites him for an English conversation. Team lead acts like a customer with a broken internet and the guy is there to troubleshoot. (btw that's not job related, just a simple scenario)
TL: "Hello, my name is Andrew, I'm calli..."
Guy: *interrupts* "Yes, yes, hi! Hi! What do you want?"
TL: "Well, if you let me fi..."
Guy: "Ok! Talk!"
TL: "...inish... My internet is not working."
Guy: "Ok, *mimics tuning a V engine or cooking a soup* I fixed! *points at TL* now you say 'yes you fixed'".
Important to note that his English was horrible. Disregarding the accent he just genuinely does not know the language well.
Then he continiues with "See? Good English. Told you no need to check!".
After about half a minute of choking on out silent laughter I ask him how much Python experience he has (job lists a requirement of at least 1 year).
He replies "I'm very good at object oriented functional programming".
I ask again "But what is your experience? Did you ever take any courses? Do you have a git repository to show? Any side.."
*he interrupts again* "I only use Matlab!".
Team lead stands up and proceeds to shake his hand while saying "we will get back to you".
At last the guy says with a stupid smile on his face "You better hire me! Call me back tomorrow." Leaves TL hanging and walks away after packing his stuff into the pockets.
I was so shocked that I wasn't even angry.
We both laughed for the rest of the day though. It was probably the weirdest interview I took part at.39
My wife is turning into my project manager . . .
Me : Check out this game I'm building as a side project!
Wife : Wow that's really neat! I expect to be able to play it on my phone. 1 month?
Me: What? I haven't even learned how to port ...
Wife : (interrupts) ONE MONTH
Scope creep even at home *sigh14
I tutor people who want to program, I don't ask anything for it, money wise, if they use my house as a learning space I may ask them to bring cookies or a pizza or something but on the whole I do it to help others learn who want to.
Now this in of itself is perfectly fine, I don't get financially screwed over or anything, but...
Fuck me if some students are horrendous!
To the best of my knowledge I've agreed to work with and help seven individuals, four female three male.
One male student never once began the study work and just repeatedly offered excuses and wanted to talk to me about how he'd screwed his life up. I mean that's unfortunate, but I'm not a people person, I don't really feel emotionally engaged with a relative stranger who quite openly admits they got addicted to porn and wasted two years furiously masturbating. Which is WAY more than I needed to know and made me more than a little uncomfortable. Ultimately lack of actually even starting the basic exercises I blocked him and stopped wasting my time.
The second dude I spoke to for exactly 48 hours before he wanted to smash my face in. Now, he was Indian (the geographical India not native American) and this is important, because he was a friend of a friend and I agreed to tutor however he was more interested in telling me how the Brits owed India reparations, which, being Scottish, I felt if anyone was owed reparations first, it's us, which he didn't take kindly too (something about the phrase "we've been fucked, longer and harder than you ever were and we don't demand reparations" didn't endear me any).
But again likewise, he wanted to talk about politics and proving he was a someone "I've been threatened in very real world ways, by some really bad people" didn't impress me, and I demonstrated my disinterest with "and I was set on fire once cos the college kids didn't like me".
He wouldn't practice, was constantly interested in bigging himself up, he was aggressive, confrontational and condescending, so I told him he was a dick, I wasn't interested in helping him and he can help himself. Last I heard he wasn't in the country anymore.
The third guy... Absolute waste of time... We were in the same computer science college class, I went to university and did more, he dossed around and a few years later went into design and found he wanted to program and got in touch. He completes the code schools courses and understandably doesn't quite know what to do next, so he asks a few questions and declares he wants to learn full stack web development. Quickly. I say it isn't easy especially if it's your first real project but if one is determined, it isn't impossible.
About six months of sporadic development where I send him exercises and quizzes to try, more often than not he'd answer with "I don't know" after me repeatedly saying "if you don't know, type the program out and study what it does then try to see why!".
The excuses became predicable, couldn't study, playing soccer, couldn't study watching bake off, couldn't study, couldn't study.
Eventually he buys a book on the mean stack and I agree to go through it chapter by chapter with him, and on one particular chapter where I'm trying to help him, he keeps interrupting with "so could I apply for this job?" "What about this job?" And it's getting frustrating cos I'm trying to hold my code and his in my head and come up with a real world analogy to explain a concept and he finally interrupts with "would your company take me on?"
"Do you want the honest unabridged truth?"
"Yes, I'd really like to know what I need to do!"
The next day I got a text "I was thinking about what you said and... I think I'm not going to bother with this full stack stuff it's just too hard, thought you should know."22
(context: I'm from Germany)
The interview was going well, their developer and I had good talks about their stack and projects, I thought I was making a good impression.
Then the HR guy had some Qs. He went through my CV, wanted to know why I left company X and what I did at company Y. He seemed quite impressed with the work experience I already had (the job I was applying for was an entry level position).
For education I had an entry at a university. "courses in computer science". He asked:
"And you finished the Bachelor's degree, right?"
Me, "well, no. I stopped after about 2 semesters. I'm a self-taught developer, all my skills..."
HR guy interrupts
"So, no bachelor's degree?"
"No, but I figured out that I am a much better learner outside of university and that I don't want to go into research."
"Thank you for coming in, we'll get back to you soon."
As a conclusion: I learned that german companies are still very traditional and search for employees with degrees. They don't understand how you'd know stuff if you don't have a degree.
Good thing: we also have international companies, which are happy to welcome enthusiastic and self-taught developers.26
People will always ask us to fix their computer :/
Had a meeting with IT-director of our client.
Me: Yes, with our solution you will be sure that the details of all your 17.500 employees will be stored and accessible for all required third party systems. We will have a 6 month preliminary schedule and it will cost..
Random: Excuse me!
Random employee interrupts and has actually stepped into the meeting room.
Random: Can you take a look at my computer? Something is wrong.
IT-director: Is there noone else who can look at this?
Random: But it was working a minute ago. It probably will be a quick fix?
IT-director looks at me like "what even is this?"
IT-director: Go down to the 12th and talk to IT there, we're having a meeting here.
Random: I thought you guys who are so good with computers could fix this in a jiffy!
Me: Burning inside
IT-director: Just leave us, please.
IT-director looks at me and I look knowingly back. We are both sad for a moment. Then we continue.9
I'm getting ridiculously pissed off at Intel's Management Engine (etc.), yet again. I'm learning new terrifying things it does, and about more exploits. Anything this nefarious and overreaching and untouchable is evil by its very nature.
(tl;dr at the bottom.)
I also learned that -- as I suspected -- AMD has their own version of the bloody thing. Apparently theirs is a bit less scary than Intel's since you can ostensibly disable it, but i don't believe that because spy agencies exist and people are power-hungry and corrupt as hell when they get it.
For those who don't know what the IME is, it's hardware godmode. It's a black box running obfuscated code on a coprocessor that's built into Intel cpus (all Intell cpus from 2008 on). It runs code continuously, even when the system is in S3 mode or powered off. As long as the psu is supplying current, it's running. It has its own mac and IP address, transmits out-of-band (so the OS can't see its traffic), some chips can even communicate via 3g, and it can accept remote commands, too. It has complete and unfettered access to everything, completely invisible to the OS. It can turn your computer on or off, use all hardware, access and change all data in ram and storage, etc. And all of this is completely transparent: when the IME interrupts, the cpu stores its state, pauses, runs the SMM (system management mode) code, restores the state, and resumes normal operation. Its memory always returns 0xff when read by the os, and all writes fail. So everything about it is completely hidden from the OS, though the OS can trigger the IME/SMM to run various functions through interrupts, too. But this system is also required for the CPU to even function, so killing it bricks your CPU. Which, ofc, you can do via exploits. Or install ring-2 keyloggers. or do fucking anything else you want to.
tl;dr IME is a hardware godmode, and if someone compromises this (and there have been many exploits), their code runs at ring-2 permissions (above kernel (0), above hypervisor (-1)). They can do anything and everything on/to your system, completely invisibly, and can even install persistent malware that lives inside your bloody cpu. And guess who has keys for this? Go on, guess. you're probably right. Are they completely trustworthy? No? You're probably right again.
There is absolutely no reason for this sort of thing to exist, and its existence can only makes things worse. It enables spying of literally all kinds, it enables cpu-resident malware, bricking your physical cpu, reading/modifying anything anywhere, taking control of your hardware, etc. Literal godmode. and some of it cannot be patched, meaning more than a few exploits require replacing your cpu to protect against.
And why does this exist?
Ostensibly to allow sysadmins to remote-manage fleets of computers, which it does. But it allows fucking everything else, too. and keys to it exist. and people are absolutely not trustworthy. especially those in power -- who are most likely to have access to said keys.
The only reason this exists is because fucking power-hungry doucherockets exist.26
Dev : Every user in your organisation requires their own username and password...
Dev: Because if everyone uses one account, every note, product, message etc made by all the user's will be saved to that one account and confuse the he'll out of everyone using it when they can't find their 'own' information they made/captured/downloaded.
We just need the user emails.
User:We can't give you all the user emails just use one account ....
(The reason for not providing us the emails is purely cause it would require user to do work and that's out of the question)
Dev: Uhm ok, but this is not what you want, and *interrupts*
User: It is what we want, do it like that everyone will understand and it will make the system easier.
*Two weeks later*
User: Why is there only one account? Why doesn't everybody have their own account? This is not what we wanted.
... The shit you have to deal with when you are on holiday ...6
Being a programmer on a non-tech startup company is not too bad. That means aside from coding:
- You have to check if the office printer works
- You need to figure out why the phone lines aren't ringing
- You have to teach a stupid colleague on how to unzip a file
- When they give you a task, they'll say that it's "not urgent", but, they just "need it by tomorrow"
- You have to be a "mind-reader" because if something goes wrong, they don't know how to describe what's going on. Or probably, they're just too lazy being specific. They'll just say, "Hey, I have a problem.", and you will be like "What problem? Your dog is sick? You shit your pants? You lost your faith in God? Fuck what?"
- You don't have a time to "focus", because everyone interrupts you for just about anything related to "technology". Yeah, because you're the IT guy
- You always have learned and applied the latest practices/stacks, but no one gives a fuck
- You will start to re-think your life and devrants make you feel better9
I stare through the blueish black backgrounds and blurry colorful syntax into a somewhat familiar office within a mirrored world. That damned reflective glass layer covering these meaningless pixels is certainly not on my side.
The rushing sound of transactions flowing through cables is silenced today. Some blood cloth in the invoicing system is zeroing out everything after the currency mark.
While sighing I spin a one-and-a-half pirouette on my desk chair — even when desperate, you shouldn't give up on style — I take three steps away from my screen and try to harmonize my thoughts.
So much noise, everywhere... Noise from within?
I have been stuck at the apogee of an inhale for a while now. Locked into some masochistic constriction, self-punishment for the blindness which stings my ego.
Just fucking take a deep breath you asshole...
I freeze in place, and fall backwards.
Patterns on the creamy drywall rapidly vibrate and synchronize on vivid rhythms of respiration and resonating basslines. Deep indigo rainbows ripple through tiny veins, in-between chalky grains, raining as fine magenta dust through the ceiling frames.
My bare feet slide over soft oscillating concrete, fine flows of unsievable sand surrounded by toes, toes surrounded by streaming variables veiled in obscure vile abstractions.
A jadegreen field of vectored compressions resiliently rumbles and bounces through the clearances and corners of the vibrant concrete office cave, whispering in tongues. I try to voice my woes in little blips and bleeps but I seem to be missing an asymmetric key to their shrouded sequenced speech.
Suddenly, a wild turbulence breaks up all signals.
Joanna floats by in her tipsy effervescent cloud of disordered black hair and alcohol perfume, one hand grasping grapes, her other waving at me.
With every finger she moves a thousand tensors propagating paradoxically flawed but perfect pieces of an intricate surreal picture, sketching whole constellations of possible paths throughout the leafs of the giant Ficus next to her desk.
She stops dead in her tracks, and asks somewhat hypocritically: "Are you high?"
I can not discern the meaning of her words, and respond stoically.
"Joanna! Check out those branches!".
"Pun intended?", she giggles.
I'm focused on her grapeless hand, her fingers stretching to reach the lush little tree.
On touch, the plant shivers, grappled in the tight net of the puppet master. She pulls her strings, applying measured weights, all nodes normalize, and Joanna speaks in an oddly soft tone:
"Isn't it beautiful, how so many models emulate nature"
Her cheek buried in foliage she babbles on about unbalanced search trees and machine learning models... but from the tips of her fingers tables and indexes flow into the plant. Users, payments, tariffs, invoices and taxes crawl over the bark, joining at thicker branches, joining at the stem....
Joining. JOINING. A JOIN.
"IF THERE'S NO FUCKING TAX MULTIPLIER IN THIS LEFT JOIN, EVERYTHING COALESCES TO ZERO" I shout at a perplexed Joanna who squeezes grape juice over her desk. I hop on the beat to my keyboard. She looks puzzled, hugs her Ficus tightly, and reaches for the whiskey bottle behind her monitor.
Attracted by my exclamation, Tom from finance swings open the door, while I push my branch.
I look at Joanna still half hiding between the leaves, and I laugh at her: "Branches! Oh, lame, I finally got it!"
Tom's heavy voice interrupts me: "Does this mean... does this mean that the invoicing bug is resolved?".
I smile at Tom with his tailored suit and waxed hair. "The money is flowing once more. All debts are being settled."
He releases his breath in relief, which he seems to have held since that morning as well.
Joanna adds: "Although I think he is forever indebted to my Ficus".
About 20ish years ago I was working in IT, and it was about around this time where CD-Roms were hitting the stores and becoming the newest craze. However, Microsoft did not write the drivers correctly for this new hardware.
In a nutshell, the driver would be installed and the user would lose the sound to their speaker.
How did this happen? By altering the way the interrupts worked on the computer. At the time there only existed a few unreserved IRQs or Interrupt ReQuests. The installer package would redirect IRQ 5 which is "User Selectable (Sound Cards)" to work with the CD-Rom. This was fine and all unless you wanted to listen to your speakers.
I had come up with a clever hack through rewriting a config file that would be run during bootup. So at the time of boot up IRQ 5 would be dedicated to the sound card, and IRQ7 (which was usually for the Lpt1 Printer) would be dedicated to the CD-Rom. This worked.
And because I was IT at the time, I would get a lot of calls for fixing this problem.
So, as you can imagine, I've gotten **really** good at doing this. I didn't even need to be at a computer to walk someone through the problem.
I receive a call one day, it was a problem with the CD-Rom and sound card. I walk him through the problem and he reboots his computer. I could hear him on the other side jumping with joy when he was able to put in his music CD and hear sound coming from the speakers.
He asks me, how in the hell did you figure this out!? You're a fucking Genius!
And I said, It's not rocket science it's just a computer.
There was a long pause of silence.
Uhhh... Hello? Did I say something wrong?
Sir, I work at NASA I deal with Rocket Science on a daily basis.5
Started at a new company recently. Today I gave my first demo with some stuff I worked on. It's still in a rough draft state as I am still learning the language and framework.
10 seconds in my manager interrupts me and tells me everything that is wrong with it, right in front of my team.
Well, with as hot as the market is I won't be staying at this place very long. 👋3
So... Just overheard a conversation at an Apple store...
The customer gets furious for not getting to buy a mac pro for the price he wants and it doesn't even include the monitor there.....
C - customer, S - Sales person.
C: Hey, I've heard that apple released new home computers. May I get one?
S: Hello, they are not out yet.
C: WHAT?! How can they not be out yet? They released it like a week ago.
S: Well, they announced it, not officially released it for sale.
C: Ah, whatever. Can I pre-order it now?
S: Sure, we'll need your details and a deposit.
C: What? A deposit for what? That $1000 machine?
S: Sir, do you know the prices?
C: Of course. They have released a new machine and it will cost like previous ones - from $1000.
S: Then you might be talking about Macbook Air...
C: *Interrupts* No, I'm talking about the desktop computer, the whole box.
S: Ok... It starts at ~$6000.
C: WHAT?! It can't be... Oh well, I'll buy it. I hope it's the fully-specked one. Oh and does it come with a monitor?
S: No sir. It's the base model and it has no monitors.
C: WHAT?! How can this be?
S: You see, these are devices created for professionals. They are not for home users since our iMac line is....
C: *Interrupts again* Are you saying I'm not a professional?
S: I'm sorry but by the questions and lack of information - it seems to be true - you are not a professional.
C: FUCK YOU, I'm going to another store and they will sell it for me for $1000. What a piece of crap is this.
*Customer leaves furiously*
S: *to another S* - What is wrong with that dude? Is he high or what?
S2: *shrugs* and tells that it's the 5th time someone came to order that pc and was scared by the price.
So yeah... It's fun to see how idiots think that anything apple releases is for them... Once again I was made sure that apple fans are brainless fucks that will buy anything it produces and if that is not in the right price - they'll get furious.
ps. I own apple product, mac pro 2015. Would never buy a newer one NOR an iphone. I don't think that anyone is dumb just for buying it - people buy whatever fits their needs and that's ok but... More than we would like to admit - people buy it because it's an apple product....28
A colleague of mine from the administration department suddenly enters my room where my team and me are all busy and, without considering I'm talking with someone else, interrupts us.
he: "I needed to call you but your phone is in do-not-disturb mode"
me: "that's because I'm busy working on something urgent and I don't want to be disturbed"
he: "but I need your help!"
me: "we're working on a urgent thing, but, anyway, what's the problem"
he: "I need help with digital invoicing"
me: "I deal with programming, I don't think I can help..."
he (interrupting): "I created a digital invoice but I need to send a printable version to a customer"
me: "digital invoices should be XML files so you can't simply take the file's content and paste into Word and print..."
he: "in fact that's what I did and the result was horrible"
me: "I was saying just that. I'm sure, anyway, there should be some online tool for producing a well-formatted PDF from a digital invoice"
he doesn't say anything
me: "you can try with a search on Google..."
he: "but I'm not an IT guy, that's not my business"
me: "this has nothing to do with programming, you simply need to find a tool online for doing this"
he (disappointed): "ok, but this is computer stuff, I'll try..."2
a friend asks...
Friend: Hey I have this website and I'm having a problem, can you help me?
Me: surre what is it?
Friend: So I have this WordPress plugin..
Me (interrupts): Sorry I can't help you, your site is doomed
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
I'm interrupted frequently during team meetings, usually by junior team members. I brought it up to my boss at a 1:1 and now he interrupts me more often than they do.
I wasn't giving you permission. 😒4
I could bitch about XSLT again, as that was certainly painful, but that’s less about learning a skill and more about understanding someone else’s mental diarrhea, so let me pick something else.
My most painful learning experience was probably pointers, but not pointers in the usual sense of `char *ptr` in C and how they’re totally confusing at first. I mean, it was that too, but in addition it was how I had absolutely none of the background needed to understand them, not having any learning material (nor guidance), nor even a typical compiler to tell me what i was doing wrong — and on top of all of that, only being able to run code on a device that would crash/halt/freak out whenever i made a mistake. It was an absolute nightmare.
Here’s the story:
Someone gave me the game RACE for my TI-83 calculator, but it turned out to be an unlocked version, which means I could edit it and see the code. I discovered this later on by accident while trying to play it during class, and when I looked at it, all I saw was incomprehensible garbage. I closed it, and the game no longer worked. Looking back I must have changed something, but then I thought it was just magic. It took me a long time to get curious enough to look at it again.
But in the meantime, I ended up played with these “programs” a little, and made some really simple ones, and later some somewhat complex ones. So the next time I opened RACE again I kind of understood what it was doing.
Moving on, I spent a year learning TI-Basic, and eventually reached the limit of what it could do. Along the way, I learned that all of the really amazing games/utilities that were incredibly fast, had greyscale graphics, lowercase text, no runtime indicator, etc. were written in “Assembly,” so naturally I wanted to use that, too.
I had no idea what it was, but it was the obvious next step for me, so I started teaching myself. It was z80 Assembly, and there was practically no documents, resources, nothing helpful online.
I found the specs, and a few terrible docs and other sources, but with only one year of programming experience, I didn’t really understand what they were telling me. This was before stackoverflow, etc., too, so what little help I found was mostly from forum posts, IRC (mostly got ignored or made fun of), and reading other people’s source when I could find it. And usually that was less than clear.
And here’s where we dive into the specifics. Starting with so little experience, and in TI-Basic of all things, meant I had zero understanding of pointers, memory and addresses, the stack, heap, data structures, interrupts, clocks, etc. I had mastered everything TI-Basic offered, which astoundingly included arrays and matrices (six of each), but it hid everything else except basic logic and flow control. (No, there weren’t even functions; it has labels and goto.) It has 27 numeric variables (A-Z and theta, can store either float or complex numbers), 8 Lists (numeric arrays), 6 matricies (2d numeric arrays), 10 strings, and a few other things like “equations” and literal bitmap pictures.
Soo… I went from knowing only that to learning pointers. And pointer math. And data structures. And pointers to pointers, and the stack, and function calls, and all that goodness. And remember, I was learning and writing all of this in plain Assembly, in notepad (or on paper at school), not in C or C++ with a teacher, a textbook, SO, and an intelligent compiler with its incredibly helpful type checking and warnings. Just raw trial and error. I learned what I could from whatever cryptic sources I could find (and understand) online, and applied it.
But actually using what I learned? If a pointer was wrong, it resulted in unexpected behavior, memory corruption, freezes, etc. I didn’t have a debugger, an emulator, etc. I had notepad, the barebones compiler, and my calculator.
Also, iterating meant changing my code, recompiling, factory resetting my calculator (removing the battery for 30+ sec) because bugs usually froze it or corrupted something, then transferring the new program over, and finally running it. It was soo slowwwww. But I made steady progress.
Painful learning experience? Check.
Pointer hell? Absolutely.4
Today I had this conversation during my internship with the boss.
Boss:"You are from college x. What do you do there..."
Me:"We do have programming classes, electr..."
Boss*interrupts*:"So you know how to create exel tables, right?"
Me:"Uhmm... well... we barely worked with exel, but I think that I can solve it."
Boss:"Great. I have these ideas..."
*tells me his ideas and his problems with existing tables*
Me*great. I just took the wrong luck card. fml*"I see. I am on it."11
I am so fucking sick of hardware design and integration projects.
First thought, let's outsource. Except the best quote we got was $2.8M for a fucking 10 by 10 board with 200 components. What the dick shit is this did I send the email as Bill fucking Gates or something so they all thought I'm shitting gold bars?
Micro X comes with awesome frameworks and SDKs but you can't use it because it doesn't have those extra 2 pins you need.
Micro Y has them but they're not 5V tolerant so you can't use the $8 chinkese relay board, you have to add your own onboard relays which will cost you $25 and a blowjob for some FUCKING RELAYS
Then there's micro F to the rescue! enough pins, 5V tolerant, awesome SDK give or take a few months guessing how the fuck to use that 40Mb of C code library & fixing someone's fucking code, but wait, you can't use it because it has no external interrupts so basically you have to keep polling inputs and can't go to sleep, so you need to run the core at full speed and guess what the fuck it is more power hungry than the hottest trophy wife at 200mA.
No problem, fuck this shit, let's go STM like I told you so in the beginning - but I should be the one to pick the micro and all power components. Here's the specs, call me when it's done, we'll fuck with some of the web apis in the meanwhile. 2 weeks later: fuck all of you, I can't find what you need!
Then smartass #173 comes with the brilliant idea to try them chinkese PLCs with integrated HMIs, wtf they're cheaper than what you idiots are building?!. Sure, let's go for it. Spend $3000 on test units, wait 8 weeks because EU customs and taxes, then finally - NONE are usable despite the suppliers who swear it works, it has transistors on outputs, i'll be fucked it even lets you stick your cock in and gives you a tickle.
Then dickweed C-motherfucking-TO goes like, sure, let's go bare metal again, wtf we are old hardcore fucks with big cocks, plug a $8 pic24 and it will do the job. Except you have to spend 18935718 fucking years writing everything in C and when you're almost done guess what the fuck happened, we still need another micro so we can have ethernet and connect to a MQTT server.
No problem, trash all the work, let's pull the big guns, pic32mx-what-the-fuck, spend 1 month getting the toolchain to work and 2 more months writing all sorts of fucking signs and dashes and commas and brackets in MOTHERFUCKING C again and when we all think omfg we're done, some moron decides to test the board at high humidity and low temp and guess what the fuck happens - it breaks because that shit isn't rated what we need, but the fucktard was on paternity leave 5 eons ago when we started because his fucking wife gave birth and he couldn't spend a couple hours testing a blinky in his own fucking house in the fridge or wherever the fuck, so he just said yes and now guess what - we're all fucked.
Then let's try this shit board, it has the USB support and we can put one of them cheap ass ethernet chips, we'll just connect it to android via OTG and let the fucking google connect to the API over 3G. Except motherfucking android and its usb stack add some 100ms of latency which is basically more than I need to cook 3 fucking meals or some idiot needs to die electrocuted because the estop button doesn't shut down the relays fast enough.
2 years later I still don't have a workable prototype. Fuck my life. Fuck whoever planned this shit, they must have been brain fucked, in fact fuck this shit altogether. Fuck computers and processors and servers and micros and every fucking atom of copper in this fucking house.3
A programmer heads out to the store. His wife says "while you're out, get some milk."
He never came home.
The poor guy is stuck causing serious problems at a grocery store somewhere.
BREAKING NEWS: Man stuck in 'while' loop crashes global milk market. Will authorities resort to ctrl-x? This story, and more, at 7:00.
UPDATE: keyboard interrupts proving ineffective, authorities discussing resorting to kill -9
Aaaand he's broke.
And he has ALL the milk.
Should read as "return home"
Unfortunately, she gave no instructions for terminating the loop.3
Another day on my tutoring job
This guy who's got no idea about what is he doing here (I had a rant before), runs to me while I'm helping another student. He interrupts me, shoves a USB key to my face:
[Student]: can you do something for me? Can you upload something on my ftp coz I gotta go now.
/*Each student in out school got personal ftp and submitting under the right directory is usually a part of an assignment and cost grades*/
[Me]: I can't, it's against the school policy
[Student (annoyed)]: But I have to go!
[Me]: can't help you, sorry
[Student (still annoyed)]: So you're not gonna do it, huh?
[Me]: No, sorry
[Student (passively aggressively)]: So I guess I'll get a zero for this one.
And he says it like it's my fault!
And he walks away. Me and students I'm helping are shocked. The guy is in his at least 50s. And no common sense whatsoever.5
Friend of mine who is not a Dev and loves to go out sees me few days ago with a couple of Dev friends...
Dude what's going on? Dude dude let me tell you about this chick... 1 hour later story ends. We gave him respect as one Dev should to a non dev and started talking about IDEs and how the new VS Code is pretty awesome.
He interrupts and goes ... that chick Venesa Code, is she hot? Would you?
Silence ... We would, we all would.
Well it's a whole ritual, first it must be past 23 hrs, then an interesting project, an Spotify (trance/edm/electro/rap) playlist, and a quiet house and then everything falls into place and the code starts flowing down from my head and heart to my hands. That moment is so sacred that not even hunger interrupts it.1
Marketing : Do you think we can implement this feature in a system?
Dev : Hmm....*checking specs*...This will...
Marketing : *interrupts* we have already signed a contract with a client.
Dev : ugh......7
"Can you hear me?" – This is how my Skype conversation starts, interrupts and ends with long distance Client.2
Things you shouldn’t be:
2. That guy that interrupts the person next to him while he is trying to write code every 2 fucking minutes and asks dumb and meaningless questions3
Yesterday I was hanging with the guys from our Records dpt in the staff lounge. Their manager is a pretty nice talkative guy. Everything was going well until this happened..
Him: Hey you, I have an idea for an app. You can"definitely" help me, right? Or someone you know who also does the code thing..
Me: It depends. Just before you tell me about this idea, know that you'll be paying me or whoever will be doing this job unt..i..l *he interrupts
Him: Paying? I thought it was a one time or few hundreds of dollars. Why do I have to keep paying when you haven't finished the app?
Me: Did you finish your entire work this week?...but you're still getting paid next week, right?
Him: Oh crap, makes sense. Ok, how about I pay you the amount you charge then, that's it?
Me: See, you don't get it. I know once the app is done, you'll come back to me to fix and update things. When that time comes, you'll have to pay me again. And with the initial payment, don't just think you pay me and that's all... you'll...
Him: Crap, I have think more and come up with a plan for this.. nevermind, I'll keep you updated.
I think I made him sad knowing that, this sort of things doesn't happen easily.2
Someone told me a teacher wants to meet us at the library at 3:00pm. I went there and there was a yellow van with some of my friends and a teacher. Then
T = Teacher
M = Me
F = Friend
T: Your name is not on the list.
M: What list?
T: You didn't attend yesterday's meeting.
M: I don't know there was a meeting yesterday.
T: No excuses.
T: No excuses(slightly louder). I gave a message yesterday.
M: I didn't even receive the message. How do I...(even know about the meeting)
T: *interrupts* Your name is not on the list. You don't have permission from the administrators to go. You cannot go.
F: He doesn't usually attend the meetings.
(I don't even know the existence of the meetings before, no one told me)
T: You must attend the meeting next time.
M: When? What time?
T: I will send a message if we have any meetings.
M: *Flat-toned* Okay then. *keeps minimal facial expression then walk away steadily*
Inner me: What an ignorant teacher. She should at least listen to my REASONING, not treating them like empty excuses. I don't even know where they are going, I don't even have the intention to join them. Then she thought that it's my fault. I don't know what I don't know.3
Took a class on computer systems, was supposed to be taught instruction sets, interrupts, pointers, basic gate level digital logic, etc. Professor spent the whole semester going line by line in the Visual Studio disassembler for some arbitrary C code, explaining in painfully dull detail, what each assembly line did. They did this for every class session, including the first, with no introduction to assembly. I lost count of how many times I fell asleep in class.
Joins Skype group dev talk
20mins in mutes microphone
Co worker mentions something I am working on
Me: starts talking for a minute
Coworker: randomly interrupts me, like legit no warning, he just started talking....
Me: wait what da faq
OH wait I'm not mute....
It drives me crazy when I'm in the middle of coding and another dev member from my team interrupts my session to tell me something completely unrelated to work 😡3
Chat apps. What's the idea? Those are basically tools of violence. They give you a possibility to in real-time stop someones work and start demanding service. Now. Immediately.
Usually people send you first email and then they after 10 seconds chat "did you see my email?? read it! serve it! please me!" Usually it's just a small request to document something, review someone else's document. Do it ASAP. If you were coding something, then drop it and do someones job for them instead.
You got a request for me to create some verification case list? Put it into my backlog. I might start doing that in week or two. Or month. In case there's nothing else more important. Since I know that you are working with something that you think is the whole universe, but trust me, I got my own problems already.
But hey, if I don't reply to your chat in a minute, please feel free to walk behind me and start explaining your life. No need to wait even for me to get my headphones off. "Oh you are in conf call? Well, this is just a quick thing blaa blaa..."3
Personal project: I design and build single-board computers with old processors like Z80, 6502 etc when I'm not being too lazy. A few run CP/M. One that's been more interesting in terms of digging deeper has been an 80C188, for which I've written a BIOS (despite the chip's built-in peripherals and interrupts being at non-standard addresses) mostly in C, which it can use to boot DOS from an image file on an SD card (bit-banged off the UART chip with FatFs). (Yes it's slow, but so is a 5.25" floppy.)
Work: My first project at my current job. Not particularly exciting compared to some stuff on here, but it got me into making useful contributions to the open-source CRM we used at the time. Was building a basic extension to deal with duplicated organisation names. So learned CiviCRM fairly deeply, a bit of Drupal, a bit of PHP. It's a shame we don't use that system any more, the community was cool.7
4 months into the journey at an ambitious streaming startup we, a team of 10 engineers (primarily full stack), sets up a tiny and performant express.js api setup.
We document plans for improving the maintainability, including outlining specific practices (not very different from general node best practices) that need to be followed for all new development.
Enter a new engineering manager (dedicated backend manager), henceforth referred to as S, with a rat face and brain that belongs in a rat hole.
S: let's push this new feature out asap
Dev: it'll need a couple of weeks to get done right
S: let's push out a functional version tomorrow, and revamp in the next iteration
Dev: ... (long pause) there's documented practices specifically directing against this
S: can you not do it by tomorrow
Dev: not if it needs to be done right
S: all you need to do is.. (simplifies changes spanning 5 modules into a 3 line summary)
Dev: yes, (outlines how each changes chains into the others, and how to keep the development maintainable for atleast a few months)
S: (interrupts every sentence saying "yes dev, I understand, yes yes")
Dev: could you please tell me how you expect me to connect (outlines two modules that would fail unless developed as standalone services)
S: Yes dev, I understand, yes yes. I don't have much experience with Node.js, so I can't tell you that.
Our.. entire.. backend.. stack.. is.. Node. (Months of motivation, cultivated through hard work over late nights, dies inside)
I need a J and some sleep.6
Quick and probably duplicate.
One fucking more time someone comes to me and interrupts me, I swear if it's not important, or chitchat, or something easly googlable, or something you could ask literally anyone else or something that isn't even my shit to handle, I will give the unlucky bastard 30 minute lesson to not fucking interrupt me when Im trying to focus first half of fucking day to do one fucking thing.
What the fuck.
What, should I print big fucking A2 formated poster and stick next to my workstation "If you came here to interrupt me, think if you really need to"?
And no, I dont know where the fuck is your excel file.
And no, I dont give a shit when Im coding that there is cake avail for workers today.
And no, for fucks sakes I dont have time for chitchat, I have deadline on me once again and Im doing something I dont have much expirience in so please leave me fucking alone.9
A boss who is the most inefficient boss ever. No, yours is not, mine is, trust me.
In the middle of coding, never in the zone for obvious reasons. A workmate wants me to call him to discuss stuff as he is working from home, which I wish I were.
I keep coding and decide to call him later.
My boss interrupts me again to TELL ME IF I CAN CALL MY WORKMATE.
So happy about being about to convince management that we needed a large refactor, due to requirements change, and since the code architecture from the beginning had boundaries built before knowing all the requirements...
pulled the shame on us, this is a learning lesson card.. blah blah blah
Also explained we need to implement an RTOS, and make the system event driven... which then a stupid programmer said you mean interrupt driven ... and management lost their minds... ( bad memories of poorly executed interrupts in the past).... had to bring everyone back down to earth.. explained yes it’s interrupt driven, but interrupt driven properly unlike in the past (prior to me)... the fuck didn’t properly prioritize the interrupts and did WAYYY too much in the interrupts.
Explained we will be implementing interrupts along side DMA, and literally no message could be lost in normal execution.. and explained polling the old way along side no RTOS, Wastes power, CPU resources and throws timing off.
Same fucker spoke up and said how the fuck You supposed to do timing, all the timing will be further off... I said wrong, in this system .. unlike yours, this is discreet timing potential and accurate as fuck... unlike your round robin while loop of death.
Anyway they gave me 3 weeks.. and the system out performs, and is more power efficient than the older model.
The interrupting developer, now gives me way more respect...4
A client's representative (was an operations manager maybe; non technical guy) was explaining his legacy project (a knowledge transfer session), mentioned about using Azure for their new system.
One of the senior .net developer in the room interrupts this guy and asks "can you explain what do you mean by azure?"
I was like "what the fuck! did I hear it wrong"
My colleague doesn't debug with his own mind and interrupts me way too much dragging me in his hell of confusion. Should I kill him? I'm too good for that.3
You know how you wake up from a bad dream?
I just woke up in the middle of the night, without any memory on any dream, but rather two people talking to each other on discord.
All I can remember was:
A: (garbled) you know when you ALT+CTRL+SHIFT+G?
B: (interrupts the other) 1,2,3... yeah when you want to move the windows to the other screen?
Both started to laugh.
I fully woke up, got a glass of water and went back to sleep. I’ve never, ever used that shortcut in any program.4
This was shit funny.
One morning, one of my colleagues got a direct call from project architect that he has to setup a meeting to explain in depth the project he has been taking care of for months and prepare a presentation and send an invite. Two weeks later we are all invited to this meeting. This colleague acting as host of this meeting prepared for few days on the PowerPoint and also a well crafted demo. Then as the architect joins, this colleague starts speaking about his role and the project. Within a minute, the architect interrupts him and says 'shut the fuck up, I don't think you are ready yet for this meeting maybe we need someone more learned...so hmm....let me explain it'. And this architect then uses his PPT for sometime and then pulls up a whiteboard and draws birds and spiders telling every time to see system in it.
My colleague is screwed to shit and is incapable to speak when closing the call.
Later ahead 4 weeks, his PPT is retouched and recoloured and attached to a Wiki page created by a unknown fucker who happens to have direct mobile calls with this architect.
Who's is faulty or not or what happened it still shocks most when this architect joins the scrum call daily. Fuck him.1
If I had a fucking dollar for every time someone interrupts me at work. I literally get bothered in the hour by people in QA that have nothing better to do ( not taking shots at QA ). What irks me is when they continue to chat up a storm behind me with someone else when I finally get the point across.1
Who called it "enabling interrupts" and not "SMASH that button to get notified the next time this hardware goes live".
Fucking gnome and their stupid fucking alerts. Seemed like an okish desktop, but cosing in vim triggers a metric butt ton of alerts which interrupts my super chill beats. So, ok lets disable them. Oh look there's a toggle.. easy enough. NO because those motherfucking alerts, while now silent, still cut off my music for a couple hundred ms every time they're triggered. Fuck you gnome.7
Damn I hate ads. Ads everywhere, watching your favourite sports ads interrupts , visiting a website ads. In sites they pop up too much until it becomes personal4
Question: can I describe OOP as "not in a loop, doesn't use interrupts" ?
I don't know much outside of OOP so describing it is like describing life, hard.9
Can anyone help me with this theory about microprocessor, cpu and computers in general?
( I used to love programming when during school days when it was just basic searching/sorting and oop. Even in college , when it advanced to language details , compilers and data structures, i was fine. But subjects like coa and microprocessors, which kind of explains the working of hardware behind the brain that is a computer is so difficult to understand for me 😭😭😭)
How a computer works? All i knew was that when a bulb gets connected to a battery via wires, some metal inside it starts glowing and we see light. No magics involved till now.
Then came the von Neumann architecture which says a computer consists of 4 things : i/o devices, system bus ,memory and cpu. I/0 and memory interact with system bus, which is controlled by cpu . Thus cpu controls everything and that's how computer works.
Let's take an easy example of calc. i pressed 1+2= on keyboard, it showed me '1+2=' and then '3'. How the hell that hapenned ?
Then some video told me this : every key in your keyboard is connected to a multiplexer which gives a special "code" to the processer regarding the key press.
The "control unit" of cpu commands the ram to store every character until '=' is pressed (which is a kind of interrupt telling the cpu to start processing) . RAM is simply a bunch of storage circuits (which can store some 1s) along with another bunch of circuits which can retrieve these data.
Up till now, the control unit knows that memory has (for eg):
Value 1 stored as 0001 at some address 34A
Value + stored as 11001101 at some address 34B
Value 2 stored as 0010 at some Address 23B
On recieving code for '=' press, the "control unit" commands the "alu" unit of cpu to fectch data from memory , understand it and calculate the result(i e the "fetch, decode and execute" cycle)
Alu fetches the "codes" from the memory, which translates to ADD 34A,23B i.e add the data stored at addresses 34a , 23b. The alu retrieves values present at given addresses, passes them through its adder circuit and puts the result at some new address 21H.
The control unit then fetches this result from new address and via, system busses, sends this new value to display's memory loaded at some memory port 4044.
The display picks it up and instantly shows it.
1. Is this all correct? Does this only happens?
2. Please expand this more.
How is this system bus, alu, cpu , working?
What are the registers, accumulators , flip flops in the memory?
What are the machine cycles?
What are instructions cycles , opcodes, instruction codes ?
Where does assembly language comes in?
How does cpu manipulates memory?
This data bus , control bus, what are they?
I have come across so many weird words i dont understand dma, interrupts , memory mapped i/o devices, etc. Somebody please explain.
Ps : am learning about the fucking 8085 microprocessor in class and i can't even relate to basic computer architecture. I had flunked the coa paper which i now realise why, coz its so confusing. :'''(14
Oh god why... Why is it that every time I work with software defined radios, I keep on having to rely on not just incomplete, but at times misleading documentation 😩
Last time was GNU radio, with the doc telling me that I could define an input for a processing block using either a type or a (type, size) tupple, only for the actual code to scream at me in confusion upon my passing a tupple.
Now is that other SDR's SDK, which, as if being built upon eclipse wasn't bad enough, managed to make its serial communications confusing. Why can't you just let me set a callback to rx interrupts, you daft punks...1
Let me tell you about my wonderful weekend. It all started with a game that doesn't run in wine and it ended up in the biggest nightmare of Windows Update and EFI configuration.
1 - let's boot on my Windows partition to play trackmania 2.
2 - Windows Update interrupts me while driving a track.
3 - Update keep failing over and over again.
4 - I keep trying things to fix Windows Update, but with no success.
5 - Let's try system restore, failed
6 - Let's try to do a reset. "You don't have a recovery drive". Oh, right...
7 - Let's try to upgrade Windows 10 to Windows 10, just because. Nope, "we could not determine if your pc can run Windows 10". Wait what....
8 - I guess I'll be reinstalling this trash. "Nope, can't. Don't like that partition I just formatted". Of course you can't...
9 - Had to delete the partition and let it create new ones. It created a new EFI partition. Just why???
10 - Okay that worked. Let's fix grub now.
11 - Maybe not, let's try rEFInd, because it looks fancy.
12 - After rebooting on the live USB for about 50 times and reconfiguring rEFInd without any luck, I realised the install script didn't install fs drivers for ext4. Oh, right... That's why you didn't find any Linux kernel...
13 - It can't boot windows, they're using a different EFI partition. Let's move rEFInd to the new EFI partition windows created for me.
14 - Finally everything works again. So much effort to play a freaking game without being bothered by windows update. And rEFInd abience theme looks beautiful.
I've got to say though, I learned a lot and the Arch wiki is awesome!6
My bank's website is the shittiest fucking site in the world. It literally kills my phone, to the point where my browser takes a full 5 minutes to exit.
The latest bug I mean feature they have rolled out interrupts your login with a fullscreen modal which asks if you want the app or to continue on the site.
Well, the fact that I'm in a browser means I've already made up my mind so why don't you go and fuck yourself? And based on the quality of your website, do you really think I want to voluntarily install software that you've sellotaped together onto my device?
Go and fuck yourself you pieces of shit.2
Programming Siemens PLCs is the same like using windows. Pretty comfortable - if you are fine with using it like 85% of the users.
Spent 10h today finding a way to realise an interrupt everytime a specific variable is set.. Every damned microcontroller can be used to! - _-
And therefore this typcial windows user question:
Is it not intended by Siemens or am I blind?
I mean i know you can use some prefabricated interrupts.. Like the cyclic interrupt OB.. I can't believe that it's not provided to freely create interrupts?!
Someone with an idea?1
Oh... I dont know what to pick...
So i will pick 3 projects from my 3 stages of my dev "carrier"
1.Right after i discovered programing and learned how ,if, while and similar structures worked. The launguage was object pascal with delphi 2007
That was a "safe" with a stupidly complicated lock (text inputs, sliders, ect) it opened a secret folder in the end.
2. It was a embedded code for a Atmega8 AVR, Atmel studio, pure C but without memory managment (i didnt even know that it even existed)
It was a Pip boy knockoff, 16x2 display and a small keyboard connected to the arduino like board that i made on a proto board.
It wasnt that much of a pipboy, it was more of a showoff of atmega8 internal systems, (ADC, timers, interrupts and such)
3.DataLab, after helping my friend with his master thesis, (we meet on discord long story, i was in high school) i decided that mathlab is shit and i created a visual scripting enviroment, launguage C# .net 4 (in the latest version)
I remade the whole program from scrach 1 time, significantly improving everything (code reuse, better algorithms, data processing, code redability and edge cases) I have learned good practises from everywhere. I learned how to use git.
DataLab project looks just like LabViev (i didnt notice that it even existed...), it is frozen now because of my mental status but im planning on using it on my CV when i will be looking for jobs on holidays. There are many things that i can improve in that program but ... first i have to fix myself.
I am very obsessed when it comes to things I'm developing or making. I can't work on that project or even take a look at it if I have some other things I need to do that day because I know I'm not going to be able to concentrate on anything else if there is something that needs to be added or fixed until I successfully finish it. And I will be very grumpy and aggressive to other people that interrupts my thought train. I understand taking breaks and talking to your coding buddy is a must. But I go absolutely obsessed if I can't figure something out. Which I won't eat nor converse. I will most likely get over this problem of mine eventually but for now devrant is the ideal place for me to relax and get my thoughts together which I am very grateful about ! Keep being awesome.
When a non-engineer constantly interrupts your coding work to tell you something that isn't urgent2
Just turned myself inside out why parsing data from serial didn't work. A full day, and 20 minutes before going home I realize the uart interrupt function was too slow. I just didn't get all chars...