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 - "miraculously"
-
Inspired by @h3ll, this is a combination of current and former coworkers:
Awkward Wizard:
This guy has the social skills of a microwaved dog turd. He is a genius, but working with him is about as uncomfortable as sticking a grill skewer in your eye and twisting it repeatedly until close of business. He laughs at inappropriate times, and every time he does, an unborn child tears its own ears off. He explains things in a way that only himself and Satan understand, then talks to you like you're a child when you don't follow his logic. He is the guy you hide when the CEO is around. His code is immaculate.
Backstab McGillacutty:
This bowl of bile is the son of a bitch that takes credit for everybody else's work. When you do something good, he was miraculously involved, but when you mess up, this twat is the dicknose that brings it up in retrospective and calls you out by name to the boss. You can usually find these guys talking shit about the CTO, until the boss quits. Then they buddy up with the CTO and become a Joel Osteen-esque evangelist for everything the CTO wants in a shitty, underhanded attempt to climb the ladder. Fuck this guy.
Professor Fuckwaffle:
This coworker used to teach Computer Science classes. Their resume is amazing, and they can speak to the most complex of design principles. This is the shitstain that you hire because of their skill and knowledge only to find out that ol' fuckwaffle can't apply the shit they spout to save their wretched lives. You'll spend more time listening to fuckwaffle lecture than you will reviewing their code (because they cant fucking write any!) You know the saying, those who can, do, and those who can't, teach? Yeah, that shit was written for Fuckwaffle.
Last but not least:
Scrumdumb:
This guy isn't even a coder. This guy is worse than the the scum you pour out of the bottom of a slow-cooker that you forgot to wash last time you made chicken. He's a non-technical PM. You know the type, right? He usually says "cloud infrastructure," "paradigm," "algorithm," "SDLC," etc but has no grasp of any of them. He often opens his dumpster to spout off something like "You can just create a new class for that" while talking about HTML. I won't waste any more breath on Scrumdumb, he already creates enough work for me.3 -
Perhaps not "best", but certainly most amusing, so what the heck!
Years ago as an intern, I applied to a large pharmaceutical company. On part of the application form, you had to enter the code of the department you were applying to.
What I *should have* put down was "IT", which is the department that houses all their devs. However, I didn't actually read any of what the codes meant, assumed that was the department for helping people with how to mail merge, and put down "COMPSCI" instead. This was computational sciences - loosely summarised as computational data analysis on various druggable molecules.
I do *not* have any sort of biology or chemistry background, so the interview was rather... interesting, and I muddled through on the basis of getting some more interview practice assuming it was a no go.
To my amazement, got a phone call saying that they'd been thinking they wanted someone more technical on the team, and despite my lack of scientific experience they thought I'd be a good fit. I was unsure as to whether I should accept for a while, but then decided to just go for it - and had a fantastic internship there, working on a great variety of stuff, and learning tons all under a supervisor who I'm still in touch with to this day.
tl;dr - Applied for the wrong job. Coincidentally got it anyway, and miraculously had a fantastic year working there.8 -
Just went to a bar in a nearby town and miraculously got a contact of a fairly big investor by talking to the barman there. Apparently said investor is also technically inclined, and has a fair amount of financial resources to help make my plan to make my own distribution and compete with Canonical, Red Hat and SUSE a thing.
Talk to barmen people! They're the people that have contacts - in pretty much every industry. They're the people that know people.9 -
When you work your ass off to meet the deadline and once you miraculously make it, the client decides to wait with the launch for a few more weeks.5
-
I've only experienced a quitting coworker once.
In a previous job a coworker quit with the words directed to the boss in a very loud and aggressive manner: "Ich künde, du verfiggti pissmorchle!!!"*, while throwing around office chairs and swearing all kinds of nasty stuff.
My boss at that time was indeed a fucking wanker. He exploited the shit out of every employee and expected from us that we work overtime for free. No pauses were paid, eventhough he'd had to by law.
I don't have to mention that he was a sexist fucktard and 3 female ex-employees sued him for sexual assault.
Sadly he is still in charge of that wanker company and he "miraculously" dodged every "bullet".
* trigger-safely and roughly translated to: "I quit, you fucking wanker!!!"7 -
In electronics there's 3 options.
1. You pay a small fortune to get something decent.
2. You pay a smaller fortune to get crap.
3. You build it yourself and it'll be nicely priced AND decent.
Why is that? I have no idea. Profiteering gluttons perhaps.
Case in point: my watch. A waterproof one, so you'd expect to be able to take it in the shower, which I often did.
But then, le wild drop from 50cm height occurred and the whole thing just popped open, with soapy water rushing in. Luckily it didn't short out, and I quickly evacuated it out of the shower and dipped it with my towel.
Then already I thought.. what the fuck is wrong with the designers of this thing?! I'm all for keeping the inner parts of electronics accessible for self-servicing. But in a waterproof watch you wouldn't expect the backside to pop right off and expose the bloody internals, would you? So that's one thing. While evacuating it I quickly figured that I'd want to remove the battery immediately.. except that fucking thing was screwed in place?! WHAT THE FUCK?!! Use those screws to keep the fucking backside of the watch in place you certified pieces of shit that designed this craptacular piece of garbage!!!
Finished showering, went ahead and troubleshooted the thing. Miraculously it still worked. Except that now the UI of the fucking thing is biting me in the ass. A single button on the watch is used to operate the whole thing, and get it to set itself to the correct time, get radio signal, go in sleep mode (where the watch stops ticking, for storage purposes) and activate itself again. So I dived into the manual.. and still couldn't get it to work properly. So it's got one button just like an iPhone, it craps itself when it's dropped just like an iPhone, its design is shit just like an iPhone, and it's completely unusable when it craps itself just like an iPhone.
And the manual... Oh fucking shit. It specifies that the watch is 3 bar water resistant, yet apparently you can't take it into the shower. 3 FUCKING BAR!!! That's supposed to enable you to take a fucking dive with it! And apparently you can't drop it either.. who would've thought, when they lock it with no more than outwards pressure from the back plate into the main body! How difficult can it be to use fucking screws, and to make it watertight put some rubber bands or whatever?!
CERTIFIED MOTHERFUCKERS!!!
And the watch, it's in the garbage can right now. Right where it belongs!!21 -
Okay, story time.
Back during 2016, I decided to do a little experiment to test the viability of multithreading in a JavaScript server stack, and I'm not talking about the Node.js way of queuing I/O on background threads, or about WebWorkers that box and convert your arguments to JSON and back during a simple call across two JS contexts.
I'm talking about JavaScript code running concurrently on all cores. I'm talking about replacing the god-awful single-threaded event loop of ECMAScript – the biggest bottleneck in software history – with an honest-to-god, lock-free thread-pool scheduler that executes JS code in parallel, on all cores.
I'm talking about concurrent access to shared mutable state – a big, rightfully-hated mess when done badly – in JavaScript.
This rant is about the many mistakes I made at the time, specifically the biggest – but not the first – of which: publishing some preliminary results very early on.
Every time I showed my work to a JavaScript developer, I'd get negative feedback. Like, unjustified hatred and immediate denial, or outright rejection of the entire concept. Some were even adamantly trying to discourage me from this project.
So I posted a sarcastic question to the Software Engineering Stack Exchange, which was originally worded differently to reflect my frustration, but was later edited by mods to be more serious.
You can see the responses for yourself here: https://goo.gl/poHKpK
Most of the serious answers were along the lines of "multithreading is hard". The top voted response started with this statement: "1) Multithreading is extremely hard, and unfortunately the way you've presented this idea so far implies you're severely underestimating how hard it is."
While I'll admit that my presentation was initially lacking, I later made an entire page to explain the synchronisation mechanism in place, and you can read more about it here, if you're interested:
http://nexusjs.com/architecture/
But what really shocked me was that I had never understood the mindset that all the naysayers adopted until I read that response.
Because the bottom-line of that entire response is an argument: an argument against change.
The average JavaScript developer doesn't want a multithreaded server platform for JavaScript because it means a change of the status quo.
And this is exactly why I started this project. I wanted a highly performant JavaScript platform for servers that's more suitable for real-time applications like transcoding, video streaming, and machine learning.
Nexus does not and will not hold your hand. It will not repeat Node's mistakes and give you nice ways to shoot yourself in the foot later, like `process.on('uncaughtException', ...)` for a catch-all global error handling solution.
No, an uncaught exception will be dealt with like any other self-respecting language: by not ignoring the problem and pretending it doesn't exist. If you write bad code, your program will crash, and you can't rectify a bug in your code by ignoring its presence entirely and using duct tape to scrape something together.
Back on the topic of multithreading, though. Multithreading is known to be hard, that's true. But how do you deal with a difficult solution? You simplify it and break it down, not just disregard it completely; because multithreading has its great advantages, too.
Like, how about we talk performance?
How about distributed algorithms that don't waste 40% of their computing power on agent communication and pointless overhead (like the serialisation/deserialisation of messages across the execution boundary for every single call)?
How about vertical scaling without forking the entire address space (and thus multiplying your application's memory consumption by the number of cores you wish to use)?
How about utilising logical CPUs to the fullest extent, and allowing them to execute JavaScript? Something that isn't even possible with the current model implemented by Node?
Some will say that the performance gains aren't worth the risk. That the possibility of race conditions and deadlocks aren't worth it.
That's the point of cooperative multithreading. It is a way to smartly work around these issues.
If you use promises, they will execute in parallel, to the best of the scheduler's abilities, and if you chain them then they will run consecutively as planned according to their dependency graph.
If your code doesn't access global variables or shared closure variables, or your promises only deal with their provided inputs without side-effects, then no contention will *ever* occur.
If you only read and never modify globals, no contention will ever occur.
Are you seeing the same trend I'm seeing?
Good JavaScript programming practices miraculously coincide with the best practices of thread-safety.
When someone says we shouldn't use multithreading because it's hard, do you know what I like to say to that?
"To multithread, you need a pair."18 -
Thanks @dfox and Tim for the awesome stickers which miraculously made it all the way to Sydney! Love seeing that you guys are so in touch with your audience 😊12
-
Recap: https://www.devrant.io/rants/878300
I was out Thursday at the Hospital. I'm what the doctors would call "Ill as fuck"
So, Friday I’m back in the office to the usual: "How was that appointment?"
I know people mean well when they ask this. So, I do the polite thing and tell them it went as well as it could.
Realistically it does't matter how well it went... They haven't cured Crohn's because I showed up to the appointment. They know I'm fucked already.
But, push it down, add it to the future aneurism.
I had to go through the usual resignation meetings with managers:
"We"re fucked now you're going"
"yep"
"we need to get a handle on how fucked"
"already done that for you, here"s a trello board, very fucked."
"we need to put a plan together to drop all the junior devs in the shit with the work you’ve been doing"
"You need about 4 devs, please refer to the previous trello board for your plan"
Meanwhile, me and Morpheus are in constant communication because all of this is like a Shakespearean comedy.
So, I overhear a conversation between a Junior Dev and the Solution Architect.
[SA] took over the project because he knows better than two tried and tested senior devs -_- (fuckwit).
JD: "It took me one and a half days to build it out"
SA: "Yeah, it must have taken me twice as long... It must be a problem with the project, you should just be able to check it out and run it."
JD: "I know, it has to be wrong"
All of this is about Morpheus' work of art, of an Ionic 3 hybrid app.
I fumed quietly at my desk because I've been ordered by the Stazi to be hands off.
Since Morpheus and me were pulled from the project [JD] and [JD2] were dropped into it to get it over the line.
It"s unfortunate and I was clear and honest with my advice to them: I personally would not take over the project because I"d be way out of my depth... Oh, and the App works, so uh, there's no work to do.
They have been constantly at our desks. Asking fuckdiculous questions about how to perform basic tasks. So they can get Morpheus" frigging masterpiece to the user.
It"s like watching that touch up of jesus that got borked by an amateur. Shit I have google, it's like watching this happen: http://ti.me/NnNSAb
[JD] came to me Friday evening.
"I can’t get this to build to iOS or install on [Test Analyst]'s phone."
Me: "No worries brother, where are you stuck right now?"
[JD] describes the first steps with clear indication he hasn't googled his problem.
Life lesson: http://lmgtfy.com/?q=lmgtfy
Que an hour of me showing [JD] how to build an Ion3 project for iOS. Fuck it, your man's in a bind and he"s asked politely for help. I can show him quicker than he can read 3 sets of docos.
I took him through 'ionic cordova build ios', the archive and release processes in XCode 9, then the apk bundling process for droid. Finally we have an MAM so the upload process for that too.
All the while cleaning up his AppIDs, Profiles, deployment attempts.
Damn they were a mess.
I did this with a smile on my face, not because I could say "I told you so"... But. because when any developer asks you how to do something. If you know how to do it, you should always be happy to learn them some new tricks!
Dude's alright, he's been dropped in the shit. Now I know how badly so I'll help him learn things that are useful to his role, but aren't project specific.
As a plausi-senior dev (I'll tell you about that later); it's my job to make sure my team have what they need to go home smiling!
I’m not a hateful fucker, the guy asked me an honest question so I am happy to give him the honest answer.
I took him through it a few times and explained a few best practices. Most were how to do his AppID and ProvProfile set up. Good lad, took it all on board.
However! In his frustration, he pointed the finger at Morpheus' "David" (ref: Michelangelo).
He miraculously morphed into a shiny colourful parrot and fed me SA's line:
"you should just be able to build from a clean clone"
My response was calm and clear:
"You can, it took me 20 minutes on Thursday evening. I was bored and curios, so I wanted to validate Morpheus' work. Here it is on my iOS device and my Android device. It would have taken me 5 if my laptop wasn’t so horrifically out of date."
I validated Morpheus' work so I have evidence, I trust that brilliant bastard.
I just need to be able to prove it's good.
[JD] took this on board.
Maybe listening to two tried and trusted senior devs is better than listening to a headstrong Solution Architect.
When JD left for the weekend I was working a late one (https://www.devrant.io/rants/874765).
His sign off was beautiful.
"I think I can happily admit defeat on this one, it can wait until Monday."
To which I replied: "no worries brother, if you need a hand give me a shout."
Rule 1: Don't be a cunt.
Rule 2: If someone needs help and you can give it: Give it!
Rule 3: Don't interrupt James' cigarette time.
Rule 4: goto Rule 3.rant day 3 jct resigns crohns resignation solution architect wk71 invisible illness fuckwit illness junior developer4 -
I had applied a job , where the interviewer told me this "We don't think you are good fit for this company, you don't have proper education. We highly doubt that all the application in your portfolio are coded by you."
I was like :"WTF? I have been develop software for years . what do they mean by the application weren't developed by me? if that's so, how miraculously I have the source code of the application I presented?7 -
Google cripples ad and tracking blockers: In January, Chromium will switch to Manifest V3 which removes an essential API in favour of an inferior one. As usually, Google is being deceitful and touts security concerns as pretext.
That hits all Chromium based browser, such as my beloved Vivaldi. The team argues with their own browser internal blocker, but that's far worse than uBlock Origin. One of Vivaldi's core promises was privacy, and that will go out of the window. The team simply doesn't react to people pointing that out. They're fucked, and they know it.
So what now? Well, going back to Firefox because that will include the crippled new API for extension compatibility, but also keep the powerful old one specifically so that ad and tracking blockers will keep working. Google has just handed Mozilla a major unique selling point, and miraculously, Mozilla didn't fuck it up.26 -
Don't you think it's unfair that a group project where only 2 out of 6 people actually worked their butt off for a whole school year but everyone 'miraculously' passes? Yeah, this happened to me. They stuck to my group like parasites just to pass10
-
Lately I have been overthinking a lot. I am stressing myself out on every single decision believing that decisions I make today will define my tomorrow.
In hindsight, all the major and positive impact that have happened in my life were the decisions I took on the fly without much underlying research. The executional part did have me struggle a little but almost all of the best things happened to me were unplanned.
Funnily this has been my philosophy since years but guess what, I failed to follow it this time.
My overthinking and over planning caused me to mess up a little leading to a lot of unwanted anxieties.
Now let's reflect a little on the past, when my first relationship ended.. wait.. even earlier..
When I was in 5th standard, I was crazy bullied at school but I was happy go lucky and things turned out in my favour throughout till date.
I used to do what I loved and enjoyed. I literally never worried or thought about future. Not even once, things just fell in place for me miraculously.
When my first relationship ended, I was shattered. The darkest time of my life and me being all alone, I came out strong.
I used to live happy. I used to do stuff that I loved. I used to not care about what people thought. No socials for me. I used to follow random dark or counter culture stuff and be a little rebel that I am.
I remember, she and I used to go for fuck tons of events, hangout at waterfront of the city, spend time together and just be ourselves.
I never used to compete, compare, or conflict with anyone.
devRant was (and still is) a digital home for me. Wonderful phase of life.
Then shit went south. I joined Reddit. A girl told me about a pen pal app. Met another girl there.
Joined Telegram again to be in touch with her. She wasn't interested but I stayed on Telegram.
I could pick up any girl in minutes and do so effortlessly.
Slowly the twin extrovert in me came out. I started building and maintaining insanely awesome network.
Started spending more time on Reddit and Telegram.
Joined a bunch of professional communities. Career sky rocketd.
I was still happy and living a gala life at this stage.
Slowly, I realised I was underpaid (via professional communities). That unsettled me.
I frantically started hunting for jobs. 2020 and COVID-19 hit. Being indoors sucked more.
Became more aggressive on job hunt, money, building skills, work work work...
Met a hoe who fucked my emotions and ethics even further.
Got a high paying job. WLB went negative.
I started losing myself. I forgot my hobbies. I don't know what happiness is. I don't remember when I last smiled. I started planning my finances. Overthinking and stressing about shit troubled me into sleepless nights followed by early morning calls made things worse to my health.
I lost the clarity of my life. I FUCKING LOST ME.
I want myself back and I am gonna work for it. That happy little rebel Floyd who never gave a fuck about other's opinion on him or his beliefs. That dude who was shy to talk to girls. The guy who'd follow his passion and not society of high paying jobs or shit.
I almost got my finances and taxation sorted. Now I'll work to get my office timings in place. If not then I'll switch and find a job in UK/EU with a good WLB. And at the same time I'll pursue my hobbies.
Enough of rat race shit. Money has always been an outcome of my hard work and high work ethics. I want to live a life and I am willing to trade of extremely high paying/stressful FAANG jobs for a small company keeping me happy.
I'll be the happy Floyd that I was once was.
Because, the heart wants what the heart wants :)2 -
Writing a super extensive project in php. Twice so far, I have had weird problems of codes not working.
But everytime I copy/paste the SAME code from another file, IT MIRACULOUSLY WORKS!!!!
WHAT THE ACTUAL FUCK!!!12 -
That feeling when you finally use @ before a few functions in PHP to suppress warnings, since the whole application is a hack which miraculously works anyways.
The feeling of finally getting close to deploying it.5 -
When you're helping someone with a bug for ages and then try something random and it's miraculously fixed so you have to spend another hour figuring out why...1
-
Another day, another shitty set of JIRA tickets.
In this week's edition, we run into an issue you'd think is a meme, something you couldn't even make up: three tickets with IDENTICAL titles, but miraculously, they actually refer to three DIFFERENT tasks! (Also comical, they're not bugs, they're tasks, but mouth breathers don't really know the difference, and at this point I just don't have the energy to attempt to explain what could be explained to elementary school children.)
I present a rare look into our national archives!
This document features two exhibits:
Exhibit A: product owner's original ticket titles
Exhibit B: translated-into-competency-because-i'm-not-mentally-deficient ticket titles
Just more proof that 'product owners' don't own shit, the devs are the real ones who actually know what is going on.
I mean just LOOK at Exhibit A's titles. As a big smart manager, do you write those tickets, smile, and say to yourself "Ah, yep, that's very clear, I'll definitely remember what each of these mean literally 5 seconds from now!"
Is asking for literally 30 seconds more of thought too much to ask for? Apparently.
Just kill me
Happy friday ☠️7 -
garbage collectors' lifestyle matters!
Ever eyeballed the abyss of your memory leaks? Shit, garbage collectors deserve a raise.
Unsung heroes, janitorialing thru that VM like a dung beetle, silently fucking up your perf so you can do that delicious spaghetti. Indiana-jonesing the fuck out of that memory trash can and euthanizing all that disgusting heap of pointers hanging, dangling, like... well, like garbage.
At the very least they're deterministic, unlike that Markov chain we all had the displeasure of fucking up. Amen? Amen! 🙌🏻
You gotta wonder, though, what goes through their nuggin. Do they reminisce about the potential of that half-ass-written class? Do they weep for the elegance of a forgotten function bottlenecking their job? Nah, probably just counting down the nanoseconds till their next full GC cycle. Aaah, like cold beer in Saturday barbecue.
So next time your program miraculously avoids a memory error, take a moment, put your hands up in the air and say a prayer to your garbage collector.
Silently covering for your fuckups2 -
First rant here..
So earlier this week, on a php Laravel project, I created a set of nice new features.
The code is tested, locally all fine, I push to Github, circleCi kicks in and double checks myself, still everything green. (Just for a not, its a private project so only I work on it.)
I go ahead and merge, deploy to staging and continue on my next ticket, which is a very small one.
I call it the day, next day I pick back up where I left, test locally, all green, push... then circleCi says no.
I spend 2 days debugging, trying to figure out what is wrong without advance. I just push develop branch again, guess what also failing.
I leave it for the day as I already spend enough time on it.
This morning, I simply do a composer update, push and everything miraculously starts working.. even if there were no changes in the working branches.
Im so mad right now, and this is going in my "try this before you debug a ci" book..2 -
I want to create multiple entries on a worklist with one message in one of the systems we work with.
I googled the issue and miraculously found link about precisely this issue...
It was a mailing list... with my messages... last message: "thanks, i managed to figure it all out"...
And no details...
Well, fuck me...2 -
They say that runing the same command over and over again is a sign of insanity.
LIKE HELL IT IS!!!
I've been running `terraform apply` for the last hour (trying to dump an EKS token in plain-text, because my k8s-related providers failed to auth to the cluster), and miraculously the problem went away. Now the error is no more.
Insanity?
I beg to differ!
Narf!3 -
1. Fire all of my clients, including ungrateful friends I’ve done free work for
2. Shut down my business
3. Maybe start a new business, or completely switch careers to something more interesting
4. Keep working my full time job which, miraculously, allows me lots of time to keep screwing around with my own career and entrepreneurial goals
5. Keep saving and investing so I can retire and travel well before I have to wear adult diapers and walk with a cane2 -
!dev
I just woke up from a fun adrenaline packed film dream.
It started like an movie, leaning a bit into the funny side, but also a bit serious.
We were 3 guys going top speed on the highway, dodging traffic, trying to prevent a bomb from detonating on the other side of the city.
We were all famous actors, but the only one I remember was Jackie Chan. I remember thinking why would they cast Jackie Chan and give him so few lines.
I wished I remember more about this part. The only thing I remember is that when we get to the end of the island, we’re in the wrong place: we’re at a huge OBGYN center.
My sidekicks are bothering the desk women, eating all of the “waiting candy”. I feel bad and offer to pay those, which they pretend to not care about but then end up charging me down to the penny. Cunts.
The sidekicks leave and (without explanation because dreams) disappear of the story.
Defeated, I go outside and start walking.
And I don’t remember exactly what the fuck happened in between, but somehow I’m now in the house of a cartel druglord and he’s pissed and I need to run now.
So I do. I remembered that there was a very thick forest east to the house. So I go there.
And what follows is a very intense montage of me escaping.
At some point that forest ended, so I continue through some high weed, and then another forest, and so on. While I had to pass through parts with no vegetation, I had to avoid these as much as possible.
I saw dozens of types of trees and shrubs.
Then I started seeing families, kids, playing, relaxing on what seemed a Sunday afternoon.
The adventure was so fun, the landscape was so beautiful I felt happy and thought “this is how it feels to be alive”. And I actually felt happy in real life as well.
At some point the vegetation I encounter decreased, and I have to go through more urbanized areas, with more people.
“Uh oh” I think, “I hope no one snitches me”. But miraculously, no one does.
Throughout all the journey I had glimpses of the drug lord nearby presence.
His face on the distance, the sound of his car engine.
But now he was closer than ever. And I’m closer to this house which is the escape point (can’t really remember why).
So I reach for the handle and fade to white, and fade back again, it’s me, older, and I’m not in an escaping mood.
My wife is waiting, our car is outside (on the non drug lord side).
And guess what, we were waiting for our daughter, who comes with a smile and a child on her hands.
So apparently, my daughter married someone from the drug lord villa that almost murders me.
Reading this sounds like a bad script, but that’s what I dreamed today.1 -
YAYYY! I MADE IT!!
After several nights of playing with my new and very first custom mechanical keyboard, at last I could successfully get my long-time-dreaming keyboard!
I read the guilds, tutorials, even youtube videos to get walked through the process:
- I started with building my own layout on different websites, since they said that it would be easier to use online tools than to write codes by yourself in order to build your own keymappings, but the UI/UX of the first one I tried was so bad that it took me a great deal of time to understand how to use it and working on it is even more time consuming. Later I found another webpage which was less recommended, but could help me to do that a lot easier.
- Then, the result was compiled to a firmware file, which would be flashed into the kb's controller. Loading the file into the board was also tiring and got me exhausted totally! I tried all the "lazy" recommended ways (using Windows softwares) but received the same error all the time. When I almost lost all the hopes, I'd come to the least recommended way: typing a few command lines on Linux. And it worked! The keyboard just do what I want it to do miraculously.
What I learnt: never do complicated things on Windows, because they are suuuuuper simple on Linux!
P/S: Sorry for the bad lighting in my room and the tiny spacebar (the spacebar size is 7u which I don't have one right now). I just need a beautiful keycap set to make it perfect.5