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 - "wondering the whole life"
-
It finally hit me the other day.
I'm working on an IoT project for a late-stage ALS patient. The setup is that he has a tablet he controls with his eye movements, and he wants to be able to control furnishings in his room without relying on anyone else.
I set up a socket connection between his tablet and the Raspberry Pi. From there it was a simple matter of using GPIO to turn a lamp or fan on or off. I did the whole thing in C, even the socket programming on the Pi.
As I was finishing up the main control of the program on the Pi I realized that I need to be more certain of this than anything I've ever done before.
If something breaks, the client may be forced to go days without being able to turn his room light on, or his fan off.
Understand he is totally trapped in his own body so it's not like he can simply turn the fan off. The nursing staff are not particularly helpful and his wife is tied up a lot with work and their two small children so she can't spend all day every day doting on him.
Think of how annoying it is when you're trying to sleep and someone turns the light on in your room; now imagine you can't turn it off yourself, and it would take you about twenty minutes to tell someone to turn it off -- that is once you get their attention, again without being able to move any part of your body except your eyes.
As programmers and devs, it's a skill to do thorough testing and iron-out all the bugs. It is an entirely different experience when your client will be depending on what you're doing to drastically improve his quality of life, by being able to control his comfort level directly without relying on others -- that is, to do the simplest of tasks that we all take for granted.
Giving this man some independence back to his life is a huge honor; however, it carries the burden of knowing that I need to be damned confident in what I am doing, and that I have designed the system to recover from any catastrophe as quickly as possible.
In case you were wondering how I did it all: The Pi launches a wrapper for the socket connection on boot.
The wrapper launches the actual socket connection in a child process, then waits for it to exit. When the socket connection exits, the wrapper analyzes the cause for the exit.
If the socket connection exited safely -- by passing a special command from the tablet to the Pi -- then the wrapper exits the main function, which allows updating the Pi. If the socket connection exited unexpectedly, then the Pi reboots automatically -- which is the fastest way to return functionality and to safeguard against any resource leaks.
The socket program itself launches its own child process, which is an executable on the Pi. The data sent by the tablet is the name of the executable on the Pi. This allows a dynamic number of programs that can be controlled from the tablet, without having to reprogram the Pi, except for loding the executable onto it. If this child of the socket program fails, it will not disrupt its parent process, which is the socket program itself.13 -
Working in the IT Department is just funny man. Sometimes I wonder if I'm dumb, too smart to answer these dumb questions or these clients are just asking questions they already have answers to that I don't.
Client: Hey, can you please give X access to Y's Dropbox? He gets error saying he doesn't have access to the file.
Me: Uhh, you have to share a link to the specific file you want to share with X. Then only he can access it.
Client: Can you send him the link?
Me: Uhhhh, what link?
Client: The link to the file.
Me: Who created the file you want to share?
Client: My boss did. And he wants me to send the link to X. But I don't have the link so he said to check with IT.
Me (in my mind): WTF!!!!
Me: Ok, ask your boss to share the link to the file he created with you then you can send it to Y. He can also send it to Y directly himself. IT doesn't have and has no idea of what file your boss created. Only your boss knows.
Client: Ok, hold on let me check with him..
Client gets back on the phone.. "he said he deleted the file".
Me: Well, there's no file to share here.
Client: Can you find it?
Me: Call Dropbox.
Client: do you have his number?
Me: Who?
Client: Dropbox..
At this point I started laughing.. 😂😂😂🤣🤣
Me: Dropbox is a company.
Client: Ok, thank you. I'll call Dropbox.
At this point, I'm wondering. If this client thought Dropbox was person, then what did she mean by her initial question? 🤔
Can this be real life? This happened less than an hour ago, and going home now still confused about this whole situation. 😂😂5 -
All this "political correctness" cancer spreading through the Python community at the moment over "master/slave" terminology has me wondering where will it end. When the pendulum swings will be have a pro-life movement opposed to pre-emptively killing processes? Will a branch of PETA form to oppose the taxonomic appropriation of reptilian names for the language as a whole? Are we going to need to find gender-neutral names for motherboards to avoid offending those who are offended by the oppressive digital binary? Will removing "mother" from the name motherboard invite 6th wave feminists to decry the influence of toxic masculinity in electronics? Do snake lives matter? Seriously, some people need to take a month off to go fuck themselves somewhere far far away and stop confusing "diversity" with "rampant idiocy".14
-
How long do my fellow devRanters spend per day coding? I will spend about 10 hours per day 6/7 days per week.
I ask this because I'm wondering if I need to re-balance my life choices. I took a whole day off
over the weekend and ended up feeling more rejuvenated coming back to my code this Monday.15 -
I want to get your take on an icebreaker I was subjected to recently. For a 9 a.m. Monday morning training last week, the facilitator opened with, “Tell us your name, your team, how long you’ve been with the company, and a ‘scar story’. Pick a scar on your body and tell us how you got it. If you prefer not to talk about a physical scar, you can tell us about an emotional scar.” I am not joking.
As we went around the room, there were lots of blood and guts stories (gross) but people also shared really traumatizing tales, like an infant daughter being diagnosed with leukemia. The whole thing took 30 minutes of a 90-minute session. I was very turned off by the activity in the moment and even more so later after reflecting a bit.
Besides this one being in very bad taste, I find myself turned off by icebreakers in general. They feel forced and never seem to give you a useful introduction to your colleagues. I’m wondering if your readers have ever participated in an icebreaker they think was particularly effective or are these just a reality of office life we need to endure?3 -
I wonder why it is possible to like/upvote your own post on Facebook, Twitter, Instagram,...
but not on DevRant...? 🤔8 -
So, for a few months, as my finals are comming near, I was wondering is it a good idea to re-format my SSD and put Ubuntu on my laptop.
Reason? So I can't play games on my laptop and focus more on coding.
Downloaded Ubuntu, format, install, I was happy.
Soon as it installed, I downloaded all the sht I need (slack, discord, VSCode, nodejs, pixie dust and unicorns...), and did a 10 minute setup so the OS feels "nice".
After few hours of "trying" to work, I noticed it runs rather slow (vscode keeps freezing, app I'm developing stutters in chrome...), so maybe Ubuntu is being a douche to my laptop.
Downloaded xubuntu, did mostly the same (less work has to be done since xubuntu feels nicer than ubuntu (thanks xfce (mouse <3)), and started doing the same.
I realised that I can't use any of my Logitech stuff (mouse, headset (and by "can't use, I mean I can't use the Logiteh gaming software to set the DPI, mouse speed, buttons, nor set up the headset, so they sound like jack shit)).
Frustrated, I went to fix all the stuff manualy, with no success.
Also, the OS froze 3 times completely.
Luckly, I made a whole Windows 10 backup so I've spent a few hours more just waiting for it to restore.
Oh, did I mention I can't tether my Android device internet via usb on ubuntu?
Do I have so much to learn or this is how my life is going to look like when I start working as a developer?
*insert Sad panda gif here*2