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 - "it's ok tho"
-
CoolFuckingStoryBob
So I found a job that fit my stack perfectly
I phoned the CEO and we had a mini phone interview, it was easy
And the next day I had an offline interview
It was fast as fuck. I answered all of the questions, showed my projects and we were done in 30 mins, pretty good huh
So the CEO tells me to wait a week
It's strange but ok
The week passes, and you guess what
"We can't hire you, you psychological portrait does not fit in our team..."
I'm like bitch, what the fuck
I had declined other offer cuz I though there was no reason not to hire me
Also this is a small company tho, I should've saw it coming 😐12 -
Today I fucked Up by making friend install Linux when he doesn't even know what OS is.
Friend's Windows 7 broke. Unbootable & unfixable. I told him to reinstall. He has no idea how so he told me he will rent a PC (apparently that's a thing) until he buys a new one (he wanted it anyways). I told him it's bullshit to rent for PC when yours is totally ok only without OS.
He agreed and that's where I fucked Up. I told him how to make bootable flash disks(it was pain to get some info from him tho..) and he said he downloaded cracked Win7.. I told him it's suicide to use cracked OS for MANY fucking reasons. He agreed and I told him to install Ubuntu.... I thought it's easy that even my grandma could use it...... Well, apparently I was, in technical terms, "FUCKING WRONG"(all caps cuz tech terms).
He wasn't even able to Google how to install Steam on Ubuntu(apt install steam?) ... Constantly asking me "well and what should i write to Google?" And other shit..
I Always woke up to messages From him like "This shit doesn't work I'mma uninstall it" and I Always responed in one command or first Google result and it suddenly started to work.
After 2 days he gave up and is using cracked Win7. Can't wait for his reaction when I pwn him on nearest LAN party 😂 Maybe he will reconsider using cracked OS.
Anyway I learn from my Mistake. Just fuck me...4 -
I now leave my work IM status as "Away". It's the only way people leave me alone so I can get work done...*shrug* ☺1
-
Almost finished with latest preprocessor.
Why am I always working on preprocessors tho? Shit...
Anyway, almost finished ok.
Idea is, basically, that inside a C source or header you can write a perl subroutine instead of `#define ...`.
The mechanism is rather simple:
```C (wat?)
macro mymacro($expr) {
· // perl code goes here
· return "$expr;"
};
```
`$expr` is just a string holding whatever block of code comes after an invocation of `mymacro`. You can use the builtins `tokenshift` and `tokenpop` on a string to get the first and last token, respectively, and then `tokensplit` gives you *all* the tokens.
Whatever string you return is what the expression you received is replaced by:
- You can just give back the expression as-is to get the exact same thing you wrote -- so `mymacro char* wat;` gives you `char* wat;`.
- But if you return a galaxy's worth of C code, then bam. Macro expanded into it, just like that. It's a perl subroutine, so let your imagination fly. Wanna run some scripts at (pre)compile time? Then you can.
- If you return an empty string, then puff. No code. Input consumed.
- If you give the name of another macro (eg "another_macro $expr;"), the expansion recurses.
- If you return the name of the currently executing macro, no recursion happens. This lets you wrap C keywords without (too much) fear.
It's kind of cool because a separate perl module is built from the macros themselves. So then you can include those in another C file. Syntax is basically more perl because why not:
```C (yes)
package mypkg;
· use lib "path/to/myshit/";
· use pm funk qw(mymacro);
```
The `lib` bit actually translates to `-I(path)` for gcc. But for some reason the way you add an include path in perl is `use lib "path"`, so yep. I get it's confusing but just go with the ::~ f l o w ~:: ok.
Then the `pm` stuff is not valid perl (i think), but I took the easy way out and invented it to ensure there is a way to say "OK I don't give a single shit about the C stuff, just give me these qw()'d funky macros from this file." If you simply `use funk qw(mymacro)` then you also get an `#include "funk.h"`.
Speaking of which, headers are automatically generated. Yeah, fuck you, I added `public` to C, bite me. It's actually quite sexy as I defined it using the preprocessor:
```C (yes but actually perl)
macro public($expr) {
· my $dst=cmamout()->{export};\
· tokentidy $expr;
· push @$dst,$expr;
· return "$expr;";
};
```
Where `cmamout()` is a hash from which the output is generated. Oh, and `tokentidy` is just a random builtin that cleans up extra whitespace, don't mind it.
So now the bad stuff: I have to fix a few things. For instance, notice how I had to escape a new line there? Yeah. It's called dumb fix to shit parsing, of course.
But overall I'm quite satisfied with this. And the reason why may not be so obvious so I'ma spill it out: backticks, motherfucker.
That's right. Have a source emitter written in an esoteric language?
```C (yes really but not really)
macro bashit($expr) {
· my ($exe,@args)=tokensplit $expr;
· return `$exe @args`;
};
```
So now you can fork off into parallel dimensions; what can I say pass the pipe brother.
MAMmoth in the room is yes, this depends on MAM. What is MAM? MAMMI. It's the original name of my infamous picture of an ouroboros eating it's own ass while stuck in limbo contemplating terrible life decisions of a build tool, avtomat (go ARSLASH <AR/> [habibi]).
So what's the deal with that? avtomat is a good build tool _for me_, not... ugh, you. I made it for *myself* baby things are not going to work out between us I'm sorry. MAM just does lots of things I wanted build tools to do in the __EXACT__ way I wanted them done. I'd say you should go use it too maybe, but actually don't and you shouldn't because I broke main some weeks ago to fix some other shit and then implement this. Yeah, pretty stupid, but what the hell. I'm the only user after all!
In conclusion, I am fully expecting to receive my mad props and street cred in the mail along with your marriage proposals en masse, effective immediately.
Further reading: https://youtube.com/watch/...5