Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "//wiring"
So, I'm programming a control system for a prototype aerospace vehicle. You know, the stuff that needs to work to prevent falling out of the sky.
Anyway, test day was today (was -- not anymore). Wiring all the electronics, everything is actuating and works well. Except for one part, a little thruster for stability.
I spent hours - literally, fucking hours - trying to fix the problem. Wrong address? Wrong syntax? I had absolutely no clue what was wrong. Queue the hardware guy, $stupid:
$stupid: "How have you not got it working yet?!"
$me: "I don't know, everything I'm trying isn't working. I've spent hours digging through this code and nothing is fucking working."
$stupid: "Well have you set it up for the new thruster?"
$me: "What...What new thruster?"
$stupid: "Oh, the one we installed this morning, did noone tell you?"
WHY WOULDN'T YOU TELL ME THIS?! COMMUNICATION 101!6
After 2 hours of wiring/debugging/rewiring, I have my EEPROM programmer halfway done. Currently is only able to read locations in memory. Next step: make it programmable.
(For those of you who dont know, EEPROM stands for Electrically Erasable, Programmable Read-Only Memory31
Rebuttal to all these beautiful wiring closet shots. This was taken at my first internship in 2002. As green as I was, I still knew this was awful.
(Pardon the low fidelity; it's a snap of a 14 year old printout!)4
So this shit happened today...
We were asked to implement a functionality on the device that allows it to go to standby mode to save battery power. Once the device enters that state, it can only be woken up by actual bus-network activity, and usually that means connecting a shit-ton of wiring harness and network emulation devices... Before implementing and releasing the device software that does this, we told that fucktard customer how difficult it would be for him to connect to the device without such a setup. He seemed to be fine with it and said rather arrogantly that we should implement the requirement as asked...
Well okay you cock-sucking motherfucker, you'll get exactly what you asked for... We implement the functionality and deliver the software...
Now this pile of shit comes back running his mouth on how the device tears down all its interfaces (to reduce power consumption) and he can't connect to the device anymore.... Well what else were you expecting you dickhead.
To make things worse for me apparently he runs to the manager describing his apparent problem. Both of them come to my desk.. With that fucking Bastard hiding his smugly mug behind the manager's back... He thought he was going to have the upper hand... Well guess what fucked piece of shit, I came prepared... I showed the manager how this was a part of the requirements by throwing that JIRA ID in their faces... The manager seems to understand but this relentless fuck wanted me to implement a "workaround" that would allow him to connect to the device easily... The manager almost had me implement that workaround, when I expose a huge security flaw in doing so. Guess what, now the entire team comes to my desk and start supporting my statement... To make it better they also tell how doing so will violate other requirements...
I've never felt so happy in my entire fucking career, when the entire team stood by me and watched that asshole drag his sorry ass back to his place5
The deeper I dig into HP's designs, the more I realize how amazing they are.
- Let's put 18.5V on our charger label
- Let's make it actually put out 20V, just because 🤪
(Note: this is a SMPS, not one of those old linear ones where that's normal)
- Let's make our charger output positive on not only 1 line, but also a second smaller one, just because. All the while the thicker line is more than capable enough, and the same size as the negative line.
(So essentially there's 2 positives, one negative)
- Fuck conventional wiring colors (red for positive, black for negative). Let's awaken our 'murican patriotism and make positive black, and negative white.
- Oh those are the colors for American AC lines and not DC lines? I had no idea! But look, I have a shiny piece of paper and you don't so your concern is invalid!
I lost more brain cells from these realizations than I would from a whole night of binge drinking. WHAT THE FUCK IS WRONG WITH YOU HP?!!15
1. Fucking MySQL database clusters.
There's nothing fun about MySQL clusters. Sometimes they start producing deadlock errors for no apparent reason... well, there's probably a reason, but it's never a transparent easy to find reason.
What was even less fun is that those errors took down a Sentry server. When your error log server goes down through ddos from your database messages, it's time to rethink your setup.
2. Wiring up a large factory with $2 arduino clones, each with a $2 esp8266 wifi chip, with various sensors for measuring flow of chemical solutions (I wanted cheap real time monitoring as an early warning system next to periodic sampling).
The scaling issue was getting over 500 streaming wifi signals to work in a 55c moist slightly corrosive atmosphere with concrete and steel everywhere, and getting it all into a single InfluxDB instance for analysis.12
In response to the picture I posted of my boss's wiring, we got a new switch today and he cleaned it up a bit.27
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
Ah! The sense of achievement you get, the feeling of accomplishment you feel, the beautiful red light that glows up on board, when you repair your home's broken wiring.
I fucking ❤ hardware. Best WYSIWYG of all.7
Me : Home automation using programming sounds interesting,how about i'll get a aurdino
Internet : There's wiring involved and other electronic's stuff.
Me: Nah,my home is fine,why spend money, I'll just get a old pc to use as a server.1
You have to think this is like building a house, so you have to spend time doing some serious thinking, so you come up with a (somewhat) good vision of what you want and what could possible change in the future... let me give you an example: let's say we were building a house and we are very close to finishing it, so you come up with the great idea of putting the kitchen where the living room is, and the bathroom in the second floor where the TV room was... if that happens, then I would tell you to go fuck yourself.
See dear client... there are pipes, wiring, and all sorts of stuff you don't see, that makes a house be a house... apply the same logic to building software and we'll be on the same page more often.
PS: I appreciate your business2
You do know that "why do I need you if I can copy-paste code from SO?" joke floating around, right? Today I had a real-life situation perfectly illustrating it.
So I bought a set of parking sensors. Cheap ones, from AliExpress. Prolly the cheapest ones I could find. Installed them w/ engine turned off. All seemed fine. Cleaned it all up, got ready to go, started the engine and beeeep beeep beeepeeeeep beepp ..... beeeeeeeeep.
Tried unplugging/replugging them one-by-one to find the faulty one. Nada. Apparently they all were false-alarming. They must all be bad, bcz they seem to work well w/ engine turned off (ignition on) and only false-alarm when engine is on.
Allright, I'll get a new set next weekend, a more expensive one and replace them again.
There goes my €20 and another week basically w/o parking sensors (car length is >5 meters, so sensors do help a lot).
Today I spend a few hours removing my rear bumper again, replacint all the sensors, wiring, etc. Tests show promising results - all sensors seem OK even w/ engine on! Close it all up, start a car again and.... beeep bep bep beeep beeee..eeeeppp.
Another 30min-hour goes by while looking for a possible culprit. And I found it. The fix could did not take longer than 5 seconds. Apparently a wire feedint the sensors' controller was too close to sensors' wires. All I had to do is to push that wire a lil further from the controller with my index finger.
I could have saved €30, a week of time, half a day of work if I only knew what wire to [literally] poke.
There's a side project that I wanted to finish for some time now:
I built a pipboy (from Fallout 3) for a close friend - 3D printed and colored the parts, made a preliminary setup.
But to this day, it's still missing a power supply and all the proper wiring. (Jumper cables ARE not.)
Apart from that, I probably want to replace the RPi in there for a slimmer version.
Development is all done, implementation needed.1
FX [ Checks outdoor CCTV..]
"Oh my god, its a nuclear winter !"
Picture is frozen..
FX [ Checks wiring, camera, server, switch, etc.. ]
FX [ Checks CCTV server.. notices picture not frozen.. ]
FX [ Checks CCTV client, notices 'status' Icon not displaying, clicks on Icon, it says "Paused".. ]
So, not a nuclear winter after all !2
So we have this feature of our platform where users can upload videos and have the encoded to HTML 5 to be displayed.
The original plan in the spec and timeline (wow we have those now?) was "Video encoding queue". I was working with a senior engineer on this project (although he was doing non-video work).
After many days of wiring this up to a cloud video encoder, a process he was aware of every step of the way, I'm finally done and I put it through version control and he signs it off and merges it in.
Here's where it turns ugly. On the issue tracker, he just posts this passive aggressive comment:
"We can safely leave it closed because next time we need something we'll just find a different solution instead of doing it".
(Somewhat edited to add context).
So basically, as it turns out, he's had a massive problem with me not using a queue + FFmpeg for video encoding because he also wanted a queue for something unrelated.
The spec & timeline called it a "video encoding queue", my request for the cloud encoding license was signed off by the team leader and CEO and finally... I cannot stress this enough.
The engineer working with me on this project was told about this pivot before I started any work. He was involved every step of the way. He even admitted on the issue tracker that he "knew I would do this".
Why the fuck didn't you say something? If you needed it and I tell you I've found a more appropriate solution, you don't ignore the problem until it's now too late to fix. Do you want me to undo this week of work or something?
So I'm beyond pissed off at this point. Worst thing is I have a long ass holiday in a few months so I can't leave for greener pastures (do those even exist?) because I'd probably be impeded by not working for 3 weeks at my new place.
So I'll probably be trapped here until the end of the year and that sucks.6
Proper rant tonight... I was getting an upgrade to my home entertainment today. It needed an engineer visit. What a useless clown he turned out to be.
2 hrs after arriving, he left and things weren't working remotely right at all. But it was Saturday and he was off the clock so I had to suck it up. No option to back out either - it was all activated and I had to accept it.
He spent most of the time arguing with me about my home network was set up and how it was wrong and how it was important for the overall system to work. Being a geek and having done research, I couldn't understand this - that wasn't how it was meant to be, I knew. I accept my home wiring is a bit odd, but I've had a working system for years because it's all necessary.
After all the faffing about and purchase of some new powerline units (which I accept I needed anyway but where unrelated to this set up), looking more into it myself, it is now up and running correctly.
I am thoroughly pissed at the ineptitude of the engineer. He clearly doesn't understand how the system works. He doesn't understand how powerline works and how it's a life saver for people with awkwardly shaped houses or thick walls where Wi-Fi is useless. If he had, we would have had far fewer issues and I wouldn't have had the stress of thinking I'd killed our home entertainment and internet and there was nothing I could do about it.
I don't blame the provider (besides them clearly not providing adequate training). But this was arrogant uselessness. At least I had the knowledge to understand how it was meant to work and get it sorted myself.
Maybe it could be a useful sideline job if I get fed up with developing.7
So I ordered an SSD. It's 1TB for some programs I want to startup faster. I have 3*1TB HDDs to store some movies, series and personal stuff (you know what I am talking about) and a 128 M.2 SSD for Windows. After connecting the new SATA SSD it wouldn't show up. After half an hour searching for a problem related to the wiring, UEFI configuration and other mythical problems coming to my mind I took the instructions of my motherboard. This was the moment I found out that those fuck faces implemented the biological feature of turning one thing off when using another.5
How many of you feel functions API in Java8 should have support wiring up a Function and a Consumer :/
Bought an Arduino and is finally able to learn how to make my software interact with custom hardware projects. Just wiring up a led and controlling it with software is amazing fun! Really looking forward to learning servos, motors etc.
Planning to make velocity sensitive midi drums with piezos in the future.4
My wireless headphones stopped working, fuuuuuccckkk! Now I'll have to order a new pair. Any recommendations?
Once I have my new pair I'll take apart this one to try to fix the wiring :D8
TL;DR : How would you 'smart home' with privacy?
How would you go about a privacy focused home automation/smart home setup?
What I feel is not necessarily important
> some assistant that you can have conversations with.
> Not being in home network to automate.
What I feel is essential. (in decreasing order of importance)
> Being a able to control appliances/electronics with voice/app (optional gesture)
> Have features to automate stuff, like turn on something if something happens (IFTTTish)
> Easily play music from Spotify or something similar, e.g. " * Play some Tchaikovsky."
> Simple alarm and reminder features.
So far I have seen relays and other devices that you add in the wiring and they connect to wifi. They work surprisingly well, but whatever I came across also collects personal user data.
Also not aware of any google home and alexa alternative that can so seamlessly pick up commands through ambient noise.
What are your thoughts and views?
P. S. I would have picked up something like this as my side project, but I don't see my self having that much free time atleast for the next 4-5 months.6
the people in Ops
all have space heaters, but we
don't have the power
Seriously though, building management needs to turn up the heat by like 3°C. And install new breakers. And fix the shitty wiring.
Once in school, a teammate couldn't contribute real work, and is wiring the report. I asked him to write about how ABC should be like DEF, and those exact words appeared on the report draft.
Probably wiring up a door chime for my smart things (because they don't sell one) that plays the classic 7-11 chime when any door is opened.
That or using xpath to write beautiful dynamic SQL.2
so yesterday was a fun day. I'm wiring up dbvis toour db life cycle envs. connection to dev, works. move on to Val, connection works. move on to prod, boom, dbvis violates some security protocal that obviously does not exist in dev or Val which locks out the dB acct. I single handedly shutdown production, simply trying to connect with dbvis. smh. what a day!!
Last week we commenced a programming project on a machine that was being built for a customer with a view to them coming to test machine in 8 working days, we spent 2.5 days re wiring due to bad electrical design, a further two days changing mechanical design, and I have had half a day coding. We now have three days before customer comes and about three weeks work to do. Might be some long days3