Details
-
AboutCloud Architect, IoT Dev, Linux Admin and so on with 15+ years exp
-
Skillsjs, ts, python
-
Location.com
-
Github
Joined devRant on 4/19/2017
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
-
The creation of an e-ink usb stick showing how much space is in use was to this day one of the best things lexar ever did.19
-
Someone on the IP 127.0.0.1 has been creating a lot of bugs in my code, please beware of you notice any connections from that address.15
-
When linux crashes : "OK, maybe i did a mistake, the program i made was bad or something like that"
When windows crashes : "THE FUCK THIS OS IS BULLSHIT !"9 -
Wanna grow in to more of a devops role, currently learning aws.. I'm excited, but also a bit nervous :)6
-
My 6 year old has been learning about trees at school, and had questions for me. Needless to say, she now has the best understanding of data structures in her class, and I expect parents evening will be "interesting"8
-
So @dfox ... when I subscribe to people, why not show their posts in my feed??? This is overuse of the notifications system I think...6
-
Job advertisement of the biggest software company here at our train station in Dortmund, Germany.47
-
Customer: I have installed Windows on my computer
Support: Yes, and ?
C: And I have problem now...
S: You already said that.11 -
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 -
Better ideas:
I love building stuff and when i have something that I'm really into, it's hard to concentrate on the boring stuff i need to finish first.
Sometimes i just need to do what i feel like doing, doesn't matter. No, i won't go to bed, no i can't do the other stuff, i need to do that!1 -
Rubber duck didn't understand code. So decided to use the expert for Android.
Meet Little Buggy.
P. S. I have 2 more, makes a complete family! 😀4 -
I've been working for this company for 2 years, tomorrow will be the first day that I meet my coworkers.
I love my job.6 -
Boss: Where's that urgent hotfix that we needed last week???
*mutters to myself* Still in your inbox, seeking approval before I can put it into production -
I really hate people who prefer this coding style:
if (condition)
{
// something shitty here
}
Instead of this:
if(condition){
// perfectly clean code
}41