Details
-
AboutSoftware robotics developer
-
SkillsPython
-
LocationEnontekiö Finland
-
Github
Joined devRant on 2/21/2018
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
-
Hurr durr master-slave is racist blacklist is racist robot is racist ('cause in some language it apparently means "slave"...?)
just let me coode ffs8 -
A while back, I had a lot of telemarketers were calling me daily, and I mean A LOT of them.
I got so frustrated with he calls that I decided I had to figure out a better way to handle those calls.
At the time, I was working with a PBX software called Asterisk, which is used to handle hardware interfaces and network applications for phone calls.
I needed a suitable side project and there was a version of Asterisk designed for Raspberry Pi, so I made a fun little answering service for myself.
Whenever a telemarketer called, I asked them to call back later, but to "my personal number", and gave them the number to my phone robot. (which had a pre-paid SIM card in a GSM dongle mounted)
When it received a call, it would play a pre-recorded phrase, wait for 1000 ms of silence and then play the next phrase.
After all 16 phrases had been played, it would start from phrase 7 again and repeat until the caller gave up.
I had this set up running for a while, and then added another robot for english speaking callers.
The calls stopped after a few months.
MISSION ACCOMPLISHED!13 -
!dev && rant
Looking for a song's lyrics... A very complicated task apparently. Blinding Lights by The Weeknd for whoever's interested.
Firefox: just one small thing to keep going, sorry we just updated our CA certs again. Screw you, close the browser. I will not restart it for you but I will tell you that I would. When you restart the browser, you will lose whatever search you were just doing. Sucks for you bastard! Enjoy the update.
Go to Genius Lyrics, please turn on JavaScript to run this "app". Done that? Okay now solve this CAPTCHA please. Um.. let me just leave that ingenious site.
Next one, AZ Lyrics: Yeah sorry your IP is from a hosting provider, but we will not tell you that is the reason. You've just been denied access to the site. See you next time! Everyone using a VPS to make a VPN connection with is obviously an abuser after all.
Finally found the lyrics on lyrics.com after a long journey that was way more complicated than it should've been. It's a good song.
Oh and Firefox consumed well over a GB for just a single tab of course...
I want Gopher, BBS, IRC and the likes back.4 -
At work, me and my guys don't say "you have my attention" we say "you have my erection"
Yeah, its juvenile, and in poor taste, but to us its fricking hilarious.
Anyway, at any meeting when someone says "attention please" we always start giggling like fucking morons.
We basically substituted the word "attention" for "erection" and the only thing that we fear is using it in public. My guys seldom have to speak in public, I do most of the talking as their manager.
It falls on me to not say it at the wrong place, and the wrong time.
That is not reassuring to me. But I wonder how much longer can I keep going without messing that one up.15 -
NO YOU PIECE OF FUCK APP I DO NOT WANT TO TURN ON YOUR FUCKING NOTIFICATIONS SO I WILL IMMEDIATELY GET YOUR SUPPOSEDLY AMAZING FEATURE STOP FUCKING ASKING.2
-
Is there a way to display list of all weeklies outside of the devRant app, ie in any web browser?
There has been quite a lot of interesting weekly topics, but going through them on the phone is a pain.11 -
"Where an expression’s main job is to produce a value, a statement’s job is to produce an effect."
That's the cleanest way of explaining the difference between expressions and statements I've ever seen. Kudos to you, Bob.
craftinginterpreters.com if anyone's interested.2 -
PM: That screwdriver you built me is really nice. I like how it works with all screws and bolts, does the work itself, etc., but I simply can’t get it to paint, and I really need it to cut my sandwich. Can it cut my sandwich?
PM: Also, since you finished it, the neighbor’s can opener doesn’t work, my dog got fleas, and our screw supplier ran into shipping issues. Fix these ASAP!
Bonus:
Also, remember that hack I forced you to do despite you telling me it wouldn’t work? Yeah it isn’t working. You need to fix that too.20 -
Eureka! I have done it! I have written a program that will replace 80% of programmers with an AI!
The approach is to use grammar identification with language heuristics to recognize solution patterns using multilayered neural networks. The code source uses trusted pattern samples that are scored by human programmers. The code is programmed using text duplication and placement from the trusted sources.
TLDR: Uses pattern matching to copy and paste from Stack Overflow.1 -
I just ran system updates on my PC and it looks like Nvidia has enabled ultra dark mode on their new 455 driver by default.8
-
Day 9 of devWholesome...
Dedicate some time to learning something new or pick up a new hobby! Software development may be fun, but sometimes it can be frustrating and time consuming. Take some time off to do something else as well. Maybe learn an instrument or learn how to draw. I have decided to pick up drawing and am practicing to have nice looking art (might even post in a later devWholesome post). Learning something new can broaden your interests and opportunities. And as always, make the most out of your day!random wholesome positive happy hobby learn devwholesome i slightly broke the embed generator good day4 -
Thank God the week 233 rants are over - was getting sick of elitist internet losers.
The worst security bug I saw was when I first started work as a dev in Angular almost year ago. Despite the code being a couple of years old, the links to the data on firebase had 0 rules concerning user access, all data basically publicly available, the API keys were uploaded on GitHub, and even the auth guard didn't work. A proper mess that still gives me the night spooks to this day.3 -
Have you ever been so motivated to do stuff that you lost the motivation because of too much motivation that sucked up all the energy you had to be motivated?7
-
I put an Easter egg into a product, that if you enter the string "final countdown" into the stock code search field, it plays a YouTube vid of Europe's "The Final Countdown", in a hidden div. It's an in-joke for a few people in the company.
A well meaning maintainer with no sense of humour or judgement takes over and goes on the warpath against any hardcoded strings. The secret code gets moved into a config file.
A third developer changes the deployment script so that it clears any configs that aren't explicitly set in the deployment settings.
So the secret code is now "".
Literally every PC in the stock buying department is now blaring out "The Final Countdown" at top volume.
...Except none of them have speakers, so it remains this way for over a year and two more changes of maintainer.
I just noticed this afternoon and quietly re-hardcoded the string. The buying dept.'s PCs will silently sing no more.31 -
WFH vs Office, what will be your preference in a post covid world?
I'm sure after the covid saga ends, there will be a plethora of remote and WFH opportunities since businesses are now ready for it. Most big companies in our place (Like Microsoft, Google, Amazon) have extended WFH till June/July, and Microsoft even said it's gonna be way more flexible in letting ppl WFH16 -
To be a good developer, you must thrive in chaos, and have an insatiable desire to turn it into order.
All user input, both work tasks and actual application input, is pure fucking chaos.
The only way to turn that input into anything usable, is to interpret, structure and categorize it, to describe the rules for transformation as adequately as you can.
Sometimes companies create semi-helpful roles to assist you with this process. Often, these people are so unaware of the delicacy of the existing chaos, that any decision they make just ripples out in waves leaving nearly irreparable confusion and destruction in its path.
So applications themselves also slowly wear down into chaos under pressure of chaotic steak-holders which never seem to be able to choose between peppercorn or bernaise sauce for their steaks.
Features are added, data is migrated between formats, rules become unclear. Is ketchup even fucking valid, as a steak sauce?
The only way to preserve an application long term, is refactoring chaos into order.
But... the ocean of chaos will never end.
You must learn to swim in it.
All you can hope to do is create little pools of clarity where new creative ideas can freely spawn.
Ideas which will no doubt end up polluting their own environment, but that's a problem for tomorrow.
So you must learn to deal with the infinite stream of perplexed reactions from those who can't attach screenshots to issue reports.
You must deflect dragging conversations from those who never quite manage to translate gut feeling into rational sentences.
You must learn to deal with the fact that in reality there are no true microservice backends. There are no clean React frontends. There are no normalized databases. Full test coverage, well-executed retrospectives, finished sprints -- they are all as real as spherical cows in a vacuum.
There is no such thing as clean code.
There is only "relatively cleaner code", and even then there are arguments as to why it would be "subjectively relatively cleaner code".
Every repository, every product, every team and every company is an amalgamation of half-implemented ideals, well-intended tug of war games, and brilliantly shattered dreams.
You will encounter fragmented shards of perfect APIs, miles of tangled barbed documentation, beheaded validator classes, bloody mangled corpses of analytical dashboards, crumbled concrete databases.
You must be able to breathe in those thick toxic clouds of rotting technical and procedural debt, look at your reflection in the locker room mirror while you struggle yourself into a hazmat suit, and think:
"Fuck yes, I was born for this job".24 -
Anyone else here ever feel like an insignificant cog in a large machine that's easily replaceable?
I feel like the company has gotten so big that I don't have much say or impact anymore. Everything we do is determined by the dudes at the top. -
Just before you, my fellow system programmer, scroll past this, let me say this:
🍬 The web is actiually simple. 🍬
Both HTML and CSS is declarative. It's all easy when you understand the concepts, learn how to be idiomatic and quit trying to do that imperative bullshit in languages that aren't imperative.
HTML is simple. You know the boilerplate: doctype, head, body, that's all. Just mark it up and do NOT look at it before you end, mark it up as it were article or something. The appearance is up to css.
CSS is simple. You may even forget bem or rscss, you're already a skilled software developer. Use common sense and your code-splitting and naming skills you gained reading The Code Complete or doing software development for years.
Forget mockups. Forget absolute positioning, forget setting width and height in pixels. Go to awwwards, find some inspiration. Draw some buttons and fields on paper with your good old pencil. Then go and write some css. Feel free to steal some shadows and transitions from codepen.
Read about 8-pixel grid system. Let every element push away from others by setting something like margin: 16px; and whoops! You've just got fully responsive and got great vertical rhythm without even using media queries!
Oh my god, do NEVER set width and height explicitly! Type something like button { width: 120px; } and bang! The entire web page is broken. Quit that shit. Let it resize as it should. It will resize itself to fit its contents.
HTML is by default ready for your template engine. That's how you receive data from server — as server-side rendered, plain old HTML page. On the other hand, the form element is the most axiomatic and simple way to send the data to server. That's how you send it — as plain old GET or POST that every webserver can handle.
All of there are true:
1. It's easy to get great 100% responsiveness without media queries.
2. It's easy to align items in row, it's just one line of css. Maybe two, if you still want elements to wrap, but want to use flexbox:
.parent {
display: flex;
flex-wrap: wrap;
}
3. HTML and CSS are fast by default.
4. You don't need mockups to achieve great visual experience. Mockups is imperative, web is declarative.
5. You may not even need JavaScript to make great website.
Go on, ask me a question about web! I'll ready to answer everything.21