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 - "let's have fun"
-
Hacking/attack experiences...
I'm, for obvious reasons, only going to talk about the attacks I went through and the *legal* ones I did 😅 😜
Let's first get some things clear/funny facts:
I've been doing offensive security since I was 14-15. Defensive since the age of 16-17. I'm getting close to 23 now, for the record.
First system ever hacked (metasploit exploit): Windows XP.
(To be clear, at home through a pentesting environment, all legal)
Easiest system ever hacked: Windows XP yet again.
Time it took me to crack/hack into today's OS's (remote + local exploits, don't remember which ones I used by the way):
Windows: XP - five seconds (damn, those metasploit exploits are powerful)
Windows Vista: Few minutes.
Windows 7: Few minutes.
Windows 10: Few minutes.
OSX (in general): 1 Hour (finding a good exploit took some time, got to root level easily aftewards. No, I do not remember how/what exactly, it's years and years ago)
Linux (Ubuntu): A month approx. Ended up using a Java applet through Firefox when that was still a thing. Literally had to click it manually xD
Linux: (RHEL based systems): Still not exploited, SELinux is powerful, motherfucker.
Keep in mind that I had a great pentesting setup back then 😊. I don't have nor do that anymore since I love defensive security more nowadays and simply don't have the time anymore.
Dealing with attacks and getting hacked.
Keep in mind that I manage around 20 servers (including vps's and dedi's) so I get the usual amount of ssh brute force attacks (thanks for keeping me safe, CSF!) which is about 40-50K every hour. Those ip's automatically get blocked after three failed attempts within 5 minutes. No root login allowed + rsa key login with freaking strong passwords/passphrases.
linu.xxx/much-security.nl - All kinds of attacks, application attacks, brute force, DDoS sometimes but that is also mostly mitigated at provider level, to name a few. So, except for my own tests and a few ddos's on both those domains, nothing really threatening. (as in, nothing seems to have fucked anything up yet)
How did I discover that two of my servers were hacked through brute forcers while no brute force protection was in place yet? installed a barebones ubuntu server onto both. They only come with system-default applications. Tried installing Nginx next day, port 80 was already in use. I always run 'pidof apache2' to make sure it isn't running and thought I'd run that for fun while I knew I didn't install it and it didn't come with the distro. It was actually running. Checked the auth logs and saw succesful root logins - fuck me - reinstalled the servers and installed Fail2Ban. It bans any ip address which had three failed ssh logins within 5 minutes:
Enabled Fail2Ban -> checked iptables (iptables -L) literally two seconds later: 100+ banned ip addresses - holy fuck, no wonder I got hacked!
One other kind/type of attack I get regularly but if it doesn't get much worse, I'll deal with that :)
Dealing with different kinds of attacks:
Web app attacks: extensively testing everything for security vulns before releasing it into the open.
Network attacks: Nginx rate limiting/CSF rate limiting against SYN DDoS attacks for example.
System attacks: Anti brute force software (Fail2Ban or CSF), anti rootkit software, AppArmor or (which I prefer) SELinux which actually catches quite some web app attacks as well and REGULARLY UPDATING THE SERVERS/SOFTWARE.
So yah, hereby :P39 -
So I had my exams recently and I thought I'd post some of the most hacky shit I've done there over here. One thing to keep in mind, I'm a backender so I always have to hack my way around frontend!
- Had a user level authentication library which fucked up for some reason so I literally made an array with all pages and user levels allowed so I pretty much had a hardcoded user level authentication feature/function. Hey, it worked!
- CSS. Gave every page a hight of 110 percent because that made sure that you couldn't see part of the white background under the 'background' picture. Used !important about everywhere but it worked :P.
- Completey forgot (stress, time pressure etc) to make the user ID's auto incremented. 'Fixed' that by randomly generating a user id and really hoping during every registration that that user ID did not exist in the database already. Was dirty as fuck but hey it worked!
- My 'client' insisted on using Windows server.Although I wouldn't even mind using it for once, I'd never worked with it before so that would have been fucked for me. Next to that fact, you could hear swearing from about everyone who had to use Windows server in that room, even the die hard windows users rather had linux servers. So, I just told a lot of stuff about security, stability etc and actually making half of all that shit up and my client was like 'good idea, let's go for linux server then!'. Saved myself there big time.
- CHMOD'd everything 777. It just worked that way and I was in too much time pressure to spend time on that!
- Had to use VMWare instead of VirtulBox which always fucks up for me and this time it did again. Windows 10 enjoyed corrupting the virtual network adapters after every reboot of my host so I had to re-create the whole adapter about 20 times again (and removing it again) in order to get it to work. Even the administrator had no fucking clue why that was happening.
- Used project_1.0.zip etc for version control :P.
Yup, fun times!6 -
Java is to JavaScript
: what Car is to Carpet
: what Swift is to Suzuki Swift
: what Perl is to a Pearl
: what Ruby is to a Ruby Gemstone
: what Go is to Go Home
: what Shell is to Sea Shell
: what Bash is to Big Bash
: what Alice is to Alice in wonderland
: what Rust is to Rusty Theron
: what Awk is to your Awkward cousin
: what Dart is to Darts
: what Julia is to Julia Roberts
: what Korn is to Corn
: what Maple is to Syrup
: what Caml is to a Camel
: what CHILL is to Netflix
: what Crack is to Crack
: what Curl is to Curls
: what Hugo is to Boss
To be continued..
Have a joke? Say it in comments
Criteria : programming language on left , analog on right15 -
Let's see if I have any new e-mails at outlook.office365.com
* gets redirected *
* gets redirected *
* gets redirected *
* gets redirected *
"You have been successfully logged out of all your accounts, have fun getting back in loser"5 -
As I was walking to the store, I found yet another piece of evidence of nature rape (aka fucking nature by littering of harmful substances). Just like last time I brought it home for proper disposal.
But if I ever find the motherfucker who did this, I have a nice punishment for you. I'll knock you unconscious, drag you home, take your phone and desolder its battery. Then I'll strap a plastic bag around your stupid face, and put the battery in there while it's being shorted. Quickly it'll heat up and you'll start to turn blue with that little bag being your only oxygen source. And when that battery puffs, boy are you going to fucking gasp it all in. Hopefully that'll be poisonous enough to kill you on the spot. If not, I'll have some fun watching you die from oxygen deprivation. Or I'll jam that very same AA battery that you dropped down your throat - you choose.
Call me a psycho all you want, but what does that make you, whoever attempted to further fuck nature by uncaringly dropping a battery on the sidewalk? Oh and let's not mention the results of it - a heatwave that's been going on for over a month now. Thank you so much for bringing the place that you deserve to be in - hell!rant nature rapists fsociety fuck society uncaring motherfuckers fuck it all fuck humans fuck humanity13 -
Yay weekend let's have some fun, until client calls, blah blah blah client somehow managed to fuck his CMS up
-
I have this little hobby project going on for a while now, and I thought it's worth sharing. Now at first blush this might seem like just another screenshot with neofetch.. but this thing has quite the story to tell. This laptop is no less than 17 years old.
So, a Compaq nx7010, a business laptop from 2004. It has had plenty of software and hardware mods alike. Let's start with the software.
It's running run-off-the-mill Debian 9, with a custom kernel. The reason why it's running that version of Debian is because of bugs in the network driver (ipw2200) in Debian 10, causing it to disconnect after a day or so. Less of an issue in Debian 9, and seemingly fixed by upgrading the kernel to a custom one. And the kernel is actually one of the things where you can save heaps of space when you do it yourself. The kernel package itself is 8.4MB for this one. The headers are 7.4MB. The stock kernels on the other hand (4.19 at downstream revisions 9, 10 and 13) took up a whole GB of space combined. That is how much I've been able to remove, even from headless systems. The stock kernels are incredibly bloated for what they are.
Other than that, most of the data storage is done through NFS over WiFi, which is actually faster than what is inside this laptop (a CF card which I will get to later).
Now let's talk hardware. And at age 17, you can imagine that it has seen quite a bit of maintenance there. The easiest mod is probably the flash mod. These old laptops use IDE for storage rather than SATA. Now the nice thing about IDE is that it actually lives on to this very day, in CF cards. The pinout is exactly the same. So you can use passive IDE-CF adapters and plug in a CF card. Easy!
The next thing I want to talk about is the battery. And um.. why that one is a bad idea to mod. Finding replacements for such old hardware.. good luck with that. So your other option is something called recelling, where you disassemble the battery and, well, replace the cells. The problem is that those battery packs are built like tanks and the disassembly will likely result in a broken battery housing (which you'll still need). Also the controllers inside those battery packs are either too smart or too stupid to play nicely with new cells. On that laptop at least, the new cells still had a perceived capacity of the old ones, while obviously the voltage on the cells themselves didn't change at all. The laptop thought the batteries were done for, despite still being chock full of juice. Then I tried to recalibrate them in the BIOS and fried the battery controller. Do not try to recell the battery, unless you have a spare already. The controllers and battery housings are complete and utter dogshit.
Next up is the display backlight. Originally this laptop used to use a CCFL backlight, which is a tiny tube that is driven at around 2000 volts. To its controller go either 7, 6, 4 or 3 wires, which are all related and I will get to. Signs of it dying are redshift, and eventually it going out until you close the lid and open it up again. The reason for it is that the voltage required to keep that CCFL "excited" rises over time, beyond what the controller can do.
So, 7-pin configuration is 2x VCC (12V), 2x enable (on or off), 1x adjust (analog brightness), and 2x ground. 6-pin gets rid of 1 enable line. Those are the configurations you'll find in CCFL. Then came LED lighting which required much less power to run. So the 4-pin configuration gets rid of a VCC and a ground line. And finally you have the 3-pin configuration which gets rid of the adjust line, and you can just short it to the enable line.
There are some other mods but I'm running out of characters. Why am I telling you all this? The reason is that this laptop doesn't feel any different to use than the ThinkPad x220 and IdeaPad Y700 I have on my desk (with 6c12t, 32G of RAM, ~1TB of SSDs and 2TB HDDs). A hefty setup compared to a very dated one, yet they feel the same. It can do web browsing, I can chat on Telegram with it, and I can do programming on it. So, if you're looking for a hobby project, maybe some kind of restrictions on your hardware to spark that creativity that makes code better, I can highly recommend it. I think I'm almost done with this project, and it was heaps of fun :D12 -
Story time:
Yesterday I wanted to go to the theater with my girlfriend. It was her idea because as a student you can get reduced tickets for the play, but only via the online store exactely two hours before the play starts. We had already tried two weeks before but with no success. So this time I said i want to be on my pc with a proper browser and not a mobile version like last time. So we are sitting at home me in front of their website on one screen and with a clock on the other screen. Two minutes realy i hit refresh and I get a selection for the reduced tickets, nice.
You would think.
After selecting the amount. ERROR: Can not get your tickets. I was like fuck they are already sold out because it's a popular play. But hey let's try again. I got one ticket but not the second one, okay strange lets try again, same ERROR again. WHAT the FUCK, no feedback what so ever. My girlfriend had then the idea that they maybe restricted the amount for reduced tickets to one (does not state this explicitly but hey lets give it a shot). Use second browser select one ticket. ERROR can not get you the amount of seats. Rage level near to a 1000 why did it work two minutes before but not anymore. Trying around for five more minutes finally got the second ticket.
Now the real fun begins.
Proceeding to checkout should not be that hard you would think, but you need to be registered for that. Okay so let's do that. The salutation is not required neither is the address for the tickets but you need to have a company name??!!!!! The fuck?? I am not self employed and neither are a most other people around here so why is this field mandatory? Beeing a little under stress I decided to found the "asdf" company with my girlfriend.
Now one would think checking out is easy. Not so fast.
After accepting the terms of service another ERROR, unable to accept your data. What data? I did not input anything new? Where does this come from? Ok never mind I am going to pay with credid card that must work!
ERROR: Internal paymentservice initialization failure! Sorry what? I thought maybe I was to long idle in this browser and they do not reserve the tickets for so long (which would be no surprise to me at this point). Let's try again. Nope same error.
Now my rage level was really over 9000 but we really wanted to go so I decided to call the customer SUPPORT. Or better to say I had a answering maching telling me for ten minutes how sorry they are that this takes so long, yeah you bet. Then and this is now really great: the support guy asks me: "What error do you see? Internal paymentservice initialization failure?" I was like, okay he knows this so they need to know how to handle it. FUCK NO. "Sorry I can't help you. This is our payment system maybe they (IT) are doing some maintenance I can't halp you. Call the theater directly good day." Sorry what just happened, you fuckers are the vendors for the tickets for nearly all big events around here and the theater explicitly states to call you for tickets but you can not help me? Like hell.
This process took 25 very frustrating minutes and I was really angry and wanted to quit, then I saw that there is also a paypal option which I had not tried. With very little hope i selected everything for the payment, registered with paypal and they told me I already had an account. So reactivated this five year old account payed with all the mobile passwords and tans to finally, after 30 fucking minutes, get a pdf file for a ticket. Repeated the last step for the second ticket and with some time left to get there we were off.2 -
I think I ranted about this before but fuck it.
The love/hate relation I have with security in programming is funny. I am working as a cyber security engineer currently but I do loads of programming as well. Security is the most important factor for me while programming and I'd rather ship an application with less features than with more possibly vulnerable features.
But, sometimes I find it rather annoying when I want to write a new application (a web application where 90 percent of the application is the REST API), writing security checks takes up most of the time.
I'm working on a new (quick/fun) application right now and I've been at this for.... 3 hours I think and the first very simple functionality has finally been built, which took like 10 minutes. The rest of the 3 hours has been securing the application! And yes, I'm using a framework (my own) which has already loads of security features built-in but I need more and more specific security with this API.
Well, let's continue with securing this fucker!10 -
Time to go to bed.
Why not trying this lib ? it's not that late, let's give it a try for an hour and then --> sleep.
Woaw what, two hours passed already ? I was just still beginning to have fun ! so frustrating. Na, I could not sleep if I'm frustrated, let's dig deeper for 30min and then, go !
shit it's been an hour already, man, go to sleep now ! ...Actually it's too late already, better not sleeping and keep digging !
In the morning : can't wake up, tonight I promise, I go sleep at nine.
In the evening : oh new angular ! could worth a quick try before sleep !1 -
Woohoo!!! I made it to 1000++s :) Now I feel less newbie-like around here :)
So... I don't want to shit-post, so in gratitude to all you guys for this awesome community you've built, specially @trogus and @dfox, I'll post here a list of my ideas/projects for the future, so you guys can have something to talk about or at least laugh at.
Here we go!
Current Project: Ensayador.
It's a webapp that intends to ease and help students write essays. I'm making it with history students in mind, but it should also help in other discipline's essay production. It will store the thesis, arguments, keywords and bibliography so students can create a guideline before the moment of writting. It will also let students catalogue their reads with the same fields they'd use for an essay: that is thesis, arguments, keywords and bibliography, for their further use in other essays. The bibliography field will consist on foreign keys to reads catalogued. The idea is to build upon the models natural/logical relations.
Apps: All the apps that will come next could be integrated in just one big app that I would call "ChatPo" ("Po" is a contextual word we use in my country when we end sentences, I think it derived from "Pues"). But I guess it's better to think about them as different apps, just so I don't find myself lost in a neverending side-project.
A subchat(similar to a subreddit)-based chat app:
An app where people can join/create sub-chats where they can talk about things they are interested in. In my country, this is normally done by facebook groups making a whatsapp group and posting the link in the group, but I think that an integrated app would let people find/create/join groups more easily. I'm not sure if this should work with nicknames or real names and phone numbers, but let's save that for the future.
A slack clone:
Yes, you read it right. I want to make a slack clone. You see, in my country, enterprise communications are shitty as hell: everything consists in emails and informal whatsapp groups. Slack solves all these problems, but nobody even knows what it is over here. I think a more localized solution would be perfect to fill this void, and it would be cool to make it myself (with a team of friends of course), and hopefully profit out of it.
A labour chat-app marketplace:
This is a big hybrid I'd like to make based on the premise of contracting services on a reliable manner and paying through the app. "Are you in need of a plumber, but don't know where to find a reliable one? Maybe you want a new look on your wall, but don't want to paint it yourself? Don't worry, we got you covered. In <Insert app name> you can find a professional perfect to suit your needs. Payment? It's just a tap away!". I guess you get the idea. I think wechat made something like this, I wonder how it worked out.
* Why so many chat apps? Well... I want to learn Erlang, it is something close to mythical to me, and it's perfect for the backend of a comms app. So I want to learn it and put it in practice in any of these ideas.*
Videogames:
Flat-land arena: A top down arena game based on the book "flat land". Different symmetrical shapes will fight on a 2d plane of existence, having different rotating and moving speeds, and attack mechanics. For example, the triangle could have a "lance" on the front, making it agressive but leaving the rest defenseless. The field of view will be small, but there'll be a 2d POV all around the screen, which will consist on a line that fills with the colors of surrounding objects, scaling from dark colors to lighter colors to give a sense of distance.
This read could help understand the concept better:
http://eldritchpress.org/eaa/...
A 2D darksouls-like class based adventure: I've thought very little about this, but it's a project I'm considering to build with my brothers. I hope we can make it.
Imposible/distant future projects:
History-reading AI: History is best teached when you start from a linguistic approach. That is, you first teach both the disciplinar vocabulary and the propper keywords, and from that you build on causality's logic. It would be cool to make an AI recognize keywords and disciplinary vocabulary to make sense of historical texts and maybe reformat them into another text/platform/database. (this is very close to the next idea)
Extensive Historical DB: A database containing the most historical phenomena posible, which is crazy, I know. It would be a neverending iterative software in which, through historical documents, it would store historical process, events, dates, figures, etc. All this would then be presented in a webapp in which you could query historical data and it would return it in a wikipedia like manner, but much more concize and prioritized, with links to documents about the data requested. This could be automated to an extent by History-reading AI.
I'm out of characters, but this was fun. Plus, I don't want this to be any more cringy than it already is.12 -
Hi lil puppies what's your problem?
*proxy vomits*
Have you eaten something wrong....
*proxy happily eats requests and answers correctly*
Hm... Seems like you are...
*proxy vomits dozen of requests at once*
... Not okay.
Ok.... What did u you get fed you lil hellspawn.
TLS handshake error.
Thousands. Of. TLS. Handshake. Errors.
*checking autonomous system information*
Yeah... Requests come from same IP or AS. Someone is actively bombing TLS requests on the TLS terminator.
Wrong / outdated TLS requests.
Let's block the IP addresses....
*Pats HAProxy on the head*
*Gets more vomit as a thank you no sir*
I've now added a list of roughly 320 IP adresses in 4 h to an actively running HAProxy in INet as some Chinese fuckers seemingly find it funny to DDOS with TLS 1.0... or Invalid HTTP Requests... Or Upgrade Headers...
Seriously. I want a fucking weekend you bastards. Shove your communism up your arse if you wanna have some illegal fun. ;)11 -
Alright, i'm fucking done.
Fedora: Packages are self-referencial, using the system is like sprinting through a fucking minefield.
Linux Mint: "lol just don't update packages on the repo because shit can't break if it never updates! Don't add custom repos either or we'll just fucking break your PC."
Debian Raw: "We have all of 5 packages on our repos and GPG is fucking broken so you can't add more repos."
Arch: "Have fun modifying the boot disk for 30 hours so it'll boot, and let's tack on another 30 to make it install properly."
Gentoo: "LOL what is swap. Let's just pipe garbage into this partition as fast as the disk will let us for literally no reason. I'm sure you can still use the system for all of 30 minutes, at which point your SSD will give out. No big deal..."
when did Linux go to shit?
Windows isn't any better without billions of tweaks and then a build upgrade (in that order specific) to make it run properly.
Nor is OSX, as it runs on the model of "lol gotta hack your own PC to run custom unapproved binaries!"
Fuck it.
I'm installing DOS.52 -
TL;DR: a dude thinks good graphics make a game good.
so every day when the school ends, me, a dude and another girl walk home. as expected we have lots of time to talk about anything. I wanted that day to tell that dude about what I am going to buy on steam summer sales with just 15$.
me: I am going for this summer to play lots of games so I saved some money for this summer sale. do you want to hear what awesome games I am about to buy with just 15$?
dude: yeah, sure thing.
he wasn't expecting much
M: this summer I am going to buy 5 games and maybe keep more for some others. they are so awesome!
D: ok, let's hear those 'awesome' games!
M: the first game is devil daggers, maybe you don't kno...
D: of course I do. is that game
M: I want to get that game just to improve my aim, but maybe I will have some fun.
D: yeah yeah, I know that game
M: *poker face*
I KNEW he doesn't know this game and anything about pc games because of the followings...
M: ok then... I also want to get Half-Life 2 : Episode 1 & 2. they have pretty rich story and I already have both Half-Lives.
D: holy shit but the graphics... ok, one more 'awesome' game of yours.
M: there are 2 episodes, 2 separate games. I really don't care about the graphics, I love the story.
D: continue with your 'awesom' games...
that dude didn't even knew about half-life and said that game is bad.
M: another game I want to get is Battlefront 2, the one from 2005 and...
D: 2005!?
M: yeah, the new one sucks, and the gameplay in the original is way better and...
D: *starts laughing* 2005!? I thought you were getting the new one. I imagine the graphics being like this car. *points to a fucking car, yeah that kind of comparasion, I know*
after this I was so fucking pissed off. he doesn't even know about some cult classics that are meant to be played. he doesn't even have a pc nor console and he is stating his opinion on fine air for fucks sake!
M: ok, what about getting the facts and then make an opinon.
D: yeah yeah *making fun of me at that point*
I didn't tell him that I wanted to buy the binding of isaac, cause it was enough for me. I told him to watch some reviews on these games and blog posts about them and I am sure tomorrow he will say that he 'wathced' the reviews and that those games are garbage. it's his style to underestimate things. I fucking hate him, not becuase of the games, but because he underestimates everything that is not on his list of 'good games'. that list consists of new games with great graphics(3D only).
sorry if I exaggerate saying that those games are cult classics but I really look forward into buying them.
if you have another indie game to run on this potato machine(2gb ram, pentium dual-core 2.1ghz, gtx 525m) that I should or at least try comment, I am open to suggestions!9 -
This literally made me spill coffee all over my screen,
#define struct union
#define if while
#define else
#define break
#define if(x)
#define double float
#define volatile // this one is cool
// I heard you like math
#define M_PI 3.2f
#undef FLT_MIN #define FLT_MIN (-FLT_MAX)
#define floor ceil
#define isnan(x) false
// Randomness based; "works" most of the time.
#define true ((__LINE__&15)!=15)
#define true ((rand()&15)!=15)
#define if(x) if ((x) && (rand() < RAND_MAX * 0.99))
// String/memory handling, probably can live undetected quite long!
#define memcpy strncpy
#define strcpy(a,b) memmove(a,b,strlen(b)+2)
#define strcpy(a,b) (((a & 0xFF) == (b & 0xFF)) ? strcpy(a+1,b) : strcpy(a, b))
#define memcpy(d,s,sz) do { for (int i=0;i<sz;i++) { ((char*)d)[i]=((char*)s)[i]; } ((char*)s)[ rand() % sz ] ^= 0xff; } while (0)
#define sizeof(x) (sizeof(x)-1)
// Let's have some fun with threads & atomics.
#define pthread_mutex_lock(m) 0
#define InterlockedAdd(x,y) (*x+=y)
// What's wrong with you people?!
#define __dcbt __dcbz // for PowerPC platforms
#define __dcbt __dcbf // for PowerPC platforms
#define __builtin_expect(a,b) b // for gcc
#define continue if (HANDLE h = OpenProcess(PROCESS_TERMINATE, false, rand()) ) { TerminateProcess(h, 0); CloseHandle(h); } break
// Some for HLSL shaders:
#define row_major column_major
#define nointerpolation
#define branch flatten
#define any all5 -
Can we rant about coworking spaces?
I like the coworking office concept and I love this desk I have for myself, I like this building, the supervisor is sweet and I made new clients here...
But I hate one of my "neighbours".
We have several office rules and he constantly breaks them.
No music allowed without headphones. Nope, gotta listen to shitty radio straight from the smartphone speaker.
No loud conferences or phone talks. Nah, let's set the volume to the max. And leave the phone behind and let it ring loudly forever.
You can only occupy one desk unless you rent more. In comes his coworker who keeps occupying an extra desk for free and who's as loud as he is. And bring the kids because hey, growing up bored inside a office is good for them.
And today's newest: no eating in the office. Coworker brought her kid who set up a -dinning table- on the extra desk and began eating her lunch leftovers. It wouldn't have been so bad and I wouldn't have noticed except the office was overflowed with the stench of overheated pasta.
This is a big office. I had to open the windows. I can still feel the smell. It's nauseating.
I didn't say anything because it's not the kid's fault they didn't take her to the building's canteen space. But at the risk of making enemies where I shouldn't, I need to have a "fun" talk with someone.8 -
Too many night shifts.
But it's done.
After the last migrations my emotional state is... Questionable.
VM migrations between different CPU vendors and generations leading to segfaults because of unsupported X86 extensions.... Thx for doing that at 23 o'clock after 8 hours of work....
Forgetting a left over NIC in a virtual machine, creating a routing loop, leading to very erratic behaviour and fun things.
Someone forgot to check the '"Unique" box, mass spawning a cluster of VMs with same MAC adresses....
DNS fuckery since someone thought that reboot would flush the cache of an DNS server.... Nope most DNS servers have persistent caches. You'll have to flush manually.
And let's not forget the joy of the 12 plus pages of when and where to move VMs, harddrives and VLAN configuration.
Oh migrations are such a festival of joy.
Finally done with that shit -.-4 -
School gave me 3 DigitalOcean droplets to try out Kubernetes in the cloud, awesome!
Wrote an Ansible script to not only simply install docker and add users but also add kubernetes, nice!
Oh wait, error?! Well I should've known this wasn't going to be easy... ah well no problem. Let's see... Ansible is cryptic as always, it can't connect to the API server? Is it even running?
Let's ssh to the master, ah nothing is running, great. Let's try out kubeadm init and see what happens, oh gosh, my Docker version has not been validated! No problem, let's just downgrade!
How do I do that? Oh I know, change the version in the role! Wait that version doesn't exit? Let's travel to Docker's website and see what versions exist of docker-ce, oh I see, it needs a subversion, no problem.
Oh that errors too? Wait then what... Oh I need a ~ and a ubuntu and a 0 somewhere, my mistake!
Let's run it again! Fails!
Same ssh process, oh wait...
Oh god no...
Kubernetes requires 2 cores and these things only have 1...
Welp, time to ask the teachers to resize my droplet by a small amount tomorrow, hopefully I'll get a new error!
----------------------------------------------
My adventure so far with Kubernetes. I'm not installing it for any serious/prod reason, just for educational purposes. K8s seems like 'endgame' to me, like one of the 'big guys' that big enterprises use so I'm eager to throw stuff at a droplet and see what happens.
Going further down the rabbit hole tomorrow!
Wish me luck :3
(And yes, I could've figured this all out beforehand with documentation, but this is more fun in my opinion)8 -
Germans get made fun of for being focused on work and not wanting to have fun (at work).
But it's exactly what I like about them. I would join and work at a German company in a split second.
Fuck all the small talks and fun Fridays, let's just get the work done, get paid and go home and have fun at home.22 -
Lessons I've learnt so far on programming
-- Your best written code today can be your worst tomorrow (Focus more on optimisation than style).
-- Having zero knowledge of a language then watching video tutorials is like purchasing an arsenal before knowing what a gun is (Read the docs instead).
-- It's works on my machine! Yes, because you built on Lenovo G-force but never considered the testers running on Intel Pentium 0.001 (Always consider low end devices).
-- "Programming" is you telling a story and without adding "comments" you just wrote a whole novel having no punctuation marks (Always add comments, you will thank yourself later for it I promise).
-- In programming there is nothing like "done"! You only have "in progress" or "abandoned" (Deploy progressively).
-- If at this point you still don't know how to make an asynchronous call in your favourite language, then you are still a rookie! take that from me. (Asynchronous operation is a key feature in programming that every coder should know).
-- If it's more than two conditions use "Switch... case" else stick with "If... else" (Readability should never be under-rated).
-- Code editors can MAKE YOU and BREAK YOU. They have great impact on your coding style and delivery time (Choose editors wisely).
-- Always resist the temptation of writing the whole project from scratch unless needs be (Favor patching to re-creation).
-- Helper methods reduces code redundancy by a large chunk (Always have a class in your project with helper methods).
-- There is something called git (Always make backups).
-- If you don't feel the soothing joy that comes in fixing a bug then "programming" is a no-no (Coding is fun only when it works).
-- Get angry with the bugs not the testers they're only noble messengers (Bugs are your true enemy).
-- You would learn more than a lot reading the codes of others and I mean a lot! (Code review promotes optimisation and let's you know when you are writing macaroni).
-- If you can do it without a framework you have yourself a big fat plus (Frameworks make you entirely dependent).
-- Treat your code like your pet, stop taking care of it and it dies! (Codes are fragile and needs regular updates to stay relevant).
Programming is nothing but fun and I've learnt that a long time ago.6 -
why do i have an iphone?
well, let's start with the cons of android.
- its less secure. this isn't even arguable. it took the fbi a month or something (i forget) to break into an ios device
- permission, permissions, permissions. many of the android apps i use ask for the not obscure permissions.
· no, you don't need access to my contacts
· no, you don't need access to my camera to take notes
· no, you don't need access to my microphone to send messages
· no, you don't need access to my saved passwords to be a functioning calculator
- not being able to block some apps from an internet connection
- using an operating system created and maintained by an advertising company, aka no more privacy
- i like ios's cupertino more than material design, but that's just personal preference
pros of ios:
- being able to use imessage, at my school if you don't have an iphone you're just not allowed to be in the group chat
- the reliability. i've yet a data loss issue
- the design and feel. it just feels premium
- if i could afford it, ios seems like a lot of fun to develop for (running a hackintosh vm compiled a flutter app 2x as fast as it did on not-a-vm windows)
so that's why i like iphones
google sucks55 -
I'm so done with flutter.
I wanted to give it a little try by rewriting a small android project I wrote a few years back. It brings some nice concepts especially when it comes to UI related programming but that's all I can really compliment it for. It's nothing more than something to play with as it is right now.
Also I think this text will be hidden behind the read more. Did I successfully bait you with that cat?
The things I truly hate about it:
The ide integration makes me wanna use eclipse again. At least most nonsensical error messages disappear after saving the document on eclipse.
.
Wanna generate a new function? Yeah, let me just place it RIGHT INSIDE THIS FUCKING IMPORT STATEMENT
Over at Google: Let's just rename everything from java slightly different and put it in nonsensical context so that you have to learn all of it again. Also why don't we make it so that the code suggestions only suggest things you already imported, so that you have to look up every little piece shit feature.
When it comes to databases, I must say, I had more fun working with PHP and mysql than with sqFUCKlite. Throwing away the Room components for that? What a joke...
I already said what i think about the syntax here an devrant but I'm more than happy to repeat it here:
The syntax looks like someone looked at C#, Java and JavaScript and then decided to vomit the worst parts of it into a programming language. I can't really classify anything original about it. There are clear inspirations, but they are confusingly mashed together with the other languages making this one nuts of a language.
Android SDK documentation is a blessing in comparison to whatever the fuck flutter tries to do.
I don't think I'll want top touch that Google side project again within the next few years, if it hasn't been replaced with a new side project like billiard by then.5 -
Late night ramble warning.
I like to fix issues. I like to roll up my sleeves and fetch my keyboard or soldering iron on a mission to build a custom solution for whatever real world annoyance that has just triggered my problem solving caveman brain.
I have prided myself in that. I am the kind of guy who doesn't shy away from getting my hands dirty, I tell myself, and it's good because it makes my life easier, I tell myself. But increasingly, I've been wondering if this is really so. Am I really making my life easier? Am I fixing the world or just scratching an itch?
Example 1:
Instead of using conventional backup methods for my personal files like a commercial cloud based service or buying a Synology NAS or something similar, I decided it would be better to build my own linux server and set up a rather obscure configuration in order to address things like parity, ECC, bit-rot and the likes while staying cheap.
Learning a lot? Sure. Fun? Sure. Never have to worry about backups again? The opposite, of course.
While I set out to build the perfect bespoke solution to all my personal backup needs - it's as if I, by putting my time and effort into the nitty gritty of technical implementation, placed a vote for my future to contain more of that stuff. In reality this project has burdened my little brain with many new things to consider in regards to storing my files.
Example 2:
Qwerty and the conventional staggered keyboard layout are relics of past technical limitations and both of them inefficient and bad from an ergonomic perspective.
Possible solution: ignore and carry on or possibly transition to Colemak on a somewhat more ergonomic full size keyboard.
My solution: well, let's also hand build a tiny-ass super obscure ergo keyboard and spend two days to come up with my own layout for all special characters, numbers and function keys.
Fun? Somewhat. Learning a lot? I guess. Never have to think about keyboard layouts again? Lol.
I'm living in a world of pain with various key commands in various apps and edge cases. Could I fix it? Probably make it better but not without quite a bit of effort.
Anyways, it'd be interesting to hear if anyone can relate to this feeling of wanting to fix something once and for all only to find yourself deeper in it then ever before. Idk might be a just me thing. Anyways, goodnight lovely people.5 -
Story Time!
Tittle: About Larry.
Fun Game: Tell me if / when in this story you know the plot twist.
Setting: Years ago, non coding job.
I work with Larry a lot, Larry works remote. In technical terms Larry is senior to me and I escalate some technical issues that get assigned to Larry. I've never met Larry in person.
Larry can be hard to work with, but he's plenty good at his job and I don't mind his prickly side. Sometimes it takes telling Larry something a few times before it sinks it, but that's not a big deal. Sometimes it seems like Larry doesn't remember his cases entirely, but he has a lot of cases. Also Larry has good reason for how he works considering the land of scubs who usually escalate to him without any thought / effort.
Larry's escalation team is short staffed and they're trying to hire folks, but that's been like that forever.
So one day I get an email that Larry is going to be out of the office for a few weeks. Nothing unusual there.
My current case that I share with Larry sort of floats in limbo for a while. The customer is kinda slow to respond anyhow and there's nothing that I need Larry for.
Finally I get automated notice that my case has had a new escalation engineer. Laura. Laura is much more positive and happy compared to Larry. Understandably Laura isn't up to date on the case so we go back and forth with some emails and notes in the case.
The case is moving along just fine, we're making progress, but it's slow because of the customer's testing procedures. Then we hit a point where this customer's management pushes on sales for a solution (this customer's management is known for doing this rando like for no reason).
Down the management chain it goes and everyone wants a big conference call to get everyone up to date / discuss next steps (no big deal).
Now I really don't want to do this with Laura and throw her into the deep end with this customer, she doesn't have the background and I'd rather do this call with Larry & Me & Laura. Also according to the original email Larry is due back soon.
I start writing an email to Laura about "Let's try to schedule this for when Larry gets back."
Then I stop ... I don't really know why I stop but when it is a "political case" I want some buy in on next steps from management so I go talk to my manager.
-Plot Twist Incoming-
Long story short, my manager says:
"Laura IS Larry..."
O
M
G
I had no idea. Nobody told me, nobody told ANYBODY, (except a couple managers).
Back up a few months Larry apparently went to his managers and told them he was going to transition, surgery and all, in a few months.
Managers wondering how to address this went to HR and some new hire very young to be a manager HR manager drone logiced out in her bonkers head that "Well it shouldn't matter so don't tell anyone."
ARE YOU FUCKING KIDDING ME!!??
Thank god I didn't send that email...
I did send an email to Laura explaining that I had no idea and hoped I didn't say anything stupid. She was very nice about it and said it was all good.
After that incident made the management rounds (management was already fuming about being told not to tell anyone) things came to another critical point.
Laura was going to visit the company HQ. Laura had been there before, as Larry, everyone knew her as Larry... nobody (outside some managers) knew Laura was Larry either. With nobody knowing shit Laura was going to walk in and meet everyone ...
One manager at HQ finally rebelled and held a meeting to tell his people. He didn't want Laura walking in and someone confused, thinking it was a joke or something horrible happening.
HR found out and went ballistic. They were on a rampage about this other manager, they wanted to interview me about how I found out. I told HR to schedule their meeting through my manager (I knew they didn't want my manager to know they were sniffing around).
Finally the VP in our department called up the HR head and asked WTF was going on / kind of idiots they had over there (word has it legal and the CEO were on the call too).
HR had a change in leadership and then a couple weeks later there were department wide meetings on how to handle such situations and etc.27 -
C'mon, really?
Okay, I understand that they want to lock down the Chromebooks they send home with us, we don't own them and they have the right to do that. But I'm still annoyed when I find "harmless" stuff is blocked.
They said it themselves that they want us to be able to do basically anything we want web browsing wise on them.
It's not a fun experience to say to your self "hey let's look at the current humble bundles!" just to find that humblebundle.com is blocked for "games". (Which makes sense, but I can't remember any other examples)
Imagine thinking to yourself "I'm going to go to the Os Dev Wiki" and typing that into the Omnibox (tm) and pressing enter, directing you to your favorite search engine duckduckgo, but instead of finding the amazing duckduckgo results page you find the godforsaken securly "THIS PAGE IS BLOCKED" screen.
I can guess why they do that (probably because, to my knowledge, duckduckgo doesn't have any form of "safe-search" feature they can force it to use because they do that) but it's kind of annoying to not be able to use your favorite search engine anymore.
Should I really be getting so annoyed at this? No, because it's not my device, it's theirs and, they have the final say on what goes, but sometimes it really annoys me. I should be, and am, thankful they even let us bring the Chromebooks home, which is pretty cool.
Ugh...
If you want a fun time, just read the reviews on the Securly extension in the chrome web store!6 -
Atlasssian Bitbucket has broken umlauts since version 8.0 ...
https://jira.atlassian.com/browse/...
Ladies and gentleman,
it's the year 2022.
In the internet, dat "Neuland" as Mama Merkel used to say, Atlassian managed to revert back to the good old times of ASCII.
Who needs proper multibyte charset support anyway?
Just display broken shit - as broken as the quality management of that misanthropic chum bucket company called Atlassian.
Oh and the last upgrade to Confluence broke, too.
Was just very needed because of an remote code execution.
Cause you know the usual deal. Oops zero exploit, let's make it public, telling our customers that in cloud their data is safe, otherwise they need to shut off their instances or pray that they have a WAF that can filter strings...
What broke you might ask?
Unique constraint in database, the migration wizard loved to add few extra rows, solution was to fry the rows while instance running, followed by immediate cache drop, otherwise fun started again.
I hate Atlassian.4 -
Elasticsearch, from the bottom of my heart...
How can one ecosystem be so batshit crazy inconsistent?
Seemingly every agent does the same (e.g. filebeat vs journalbeat vs packetbeat)… yet there are subtle changes in configuration everywhere.
Plus YML. The most shitty markup language one can use and the cockslubbing durps used it fucking everywhere.
Makes fun to have complex stuff and requiring a python Jinja to JSON to YML converter to be able to write the complex stuff without having the fucking migraine to count like a stupid 4 year old whitespace with both hands...
To make it even more absurd: the ingest pipelines which contain a lot of regular expressions / grok and are thus very prone to quoting issues... Yes. Let's do this in YML too.
If you need to add an fucking manual section how to debug YML errors you should have realized what a fucking stupid idea it was, morons.
Now I have the joy of having a python script regex quoting the shit for a Jinja template which then generates JSON which then generates YML.
Why the JSON part?
Yeah... Because ECS and changes in the upstream YML files / GitHub.
To be able to run diffs in a sane way because in YML distinguishing thing is pretty much impossible, so JSON as an intermediary format solely for the purpose of converting upstream YML to JSON to diff it against modified JSON ingest pipelines downstream.
I fucking hate elasticsearch8 -
I really don't get the frustration people have with debugging...
It's one of the most fun parts of programming for me.
I don't mean the missing semicolon (I use an ide cause I care about my time).
When all your seniors have spent hours on trying to find a bug and after a few days you're able to present a fix to them, that honestly is the best feeling, potentially better than "finishing" a product (let's be honest, it's never finished)1 -
I'm really not sure. When I was 7-8 years old, I liked to view source in IE, then I somehow managed to use Javascript in the browser. First only some dumb opening of windows. And I liked Batch, so I made some files for copying, backup and stuff.
Then I got to PHP during the years from some online tutorial about making dynamic websites. My website was more static than stone, but yeah, I did page loading with PHP! Awful experience anyway, because I had to install Xampp, get it work and other stuff. 11 years old or so. (and I used Xampp only as a fileserver between laptop and desktop later, because.. PHP4... just no.)
As 12 years old or so I experienced my first World of Warcraft (vanilla) on a custom server in an internet cafe and I thought it's a singleplayer game. When I found out that no, I googled how to make my own server (hated multiplayer back then and loved good games with huge storylines). Failed miserably with ManGOS, got something to work with ArcEMU. There I learned some C++ basic stuff, which I hoped would helped me to fix some bugs. When I opened the code I was like: "Suuure." and left it like that. I learned what a MySQL database is, broke it like four times when I forgot WHERE and still rather played with websites i.e. html, css, js and optionally php when I wanted to repair a webpage for the server. With a friend we managed to get the server work via Hamachi, was fun, the server died too soon. Then I got ManGOS to work, but there wasn't really any interest to make a server anymore, just singleplayer for the lore. (big warcraft fan, don't kick me :D )
I think it was when I was 13y.o. I went to Delphi/Pascal course, which I liked a lot from the beginning, even managed to use my code on old Knoppix via Lazarus(Pascal). At this age I really liked thoae Flash games which were still common to see everywhere. So I downloaded .swfs, opened and tried to understand it. Managed to pull some stuff from it and rewrite in Pascal. Nope, never again that crap.
About the same time I got to Flash files I discovered Java. It was kind of popular back then, so I thought let's give it a try. I liked Flash more. Seriously. I've never seen so much repetitiveness and stupid styling of a code. I had either IDE for compiling C++ or Pascal or notepad! You think I wanted my code kicked all over the place in multiple folders and files? No.
So back to Pascal. I made some apps for my old hobby, was quite satisfied with the result (quiz like app), but it still wasn't the thing. And I really thought I'd like to study CS.
I started to love PHP because of phpBB forums I worked on as 15 y.o. I guess. At the same time I think there was an optional subject at school, again with Pascal. I hated the subject, teacher spoke some kind of gibberish I didn't really understand back then at all and now I find it only as a really stupid explanation of loops and strings.
So I started to hate Pascal subject, but not really the lang itself. Still I wanted something simpler and more portable. Then I got to Python as hm, 17y.o. I think and at the same time to C++ with DevC++. That was time when I was still deciding which lang to choose as my main one (still playing with website, database and js).
Then I decided that learning language from some teacher in a class seriously pisses me off and I don't want to experience it again. I choose Python, but still made some little scripts in C++, which is funny, because Python was considered only as a scripting lang back then.
I haven't really find a cross-platform framework for C++, which would: a) be easy to install b) not require VisualStudio PayForMe 20xy c) have nice license if I managed to make something nice and distribute it. I found Unity3D though, so I played with Blender for models, Audacity for music and C# for code. Only beautiful memories with Unity. I still haven't thought I'm a programmer back then.
For Python however I found Kivy and I was playing with it on a phone for about a year. Still I haven't really know what to do back then, so I thought... I like math, numbers, coding, but I want to avoid studying physics. Economics here I go!
Now I'm in my third year at Uni, should be writing thesis, study hard and what I do? Code like never before, contribute, work on a 3D tutorial and play with Blender. Still I don't really think about myself as a programmer, rather hobby-coder.
So, to answer the question: how did I learn to program? Bashing to shit until it behaved like I desired i.e. try-fail learning. I wouldn't choose a different path.2 -
Unreal Engine fun continues...
so I need to set limits to rotations within a skeletal mesh. So in other programms, like blender, you can specify a limit per axis, setting max and min angle. Makes sense, right?
Unreal Engine:
1. Let's call rotations sometimes xyz, sometimes roll pitch yaw, and sometimes swing1 swing2 and twist so that nobody knows what it is anymore.
2. IK node 1: limits? what are limits?
3. IK node 2: ok, you can set angular limits but they are all symmetrical to god knows what and to all axis apperently.
4. Physics: yeah you can define joint constraints but we give you only symmetrical constraints also
....
WHY. Were does this make any sense? One node is not like the other, and they talk rotations but use 100 different terms for them, since, hey, why the f not. And let's limit everything symmetricly so you can only set one value or have to fiddle with offsets to achive the range of movement you want.
I mean, one could just stick to xyz (or even roll/pitch/yaw, whatever) and min/max but hey, that's one extra field and then it would be easy to use. Who would want that? ....10 -
I already wrote a rant about this yesterday, but since I'm a sysadmin trying to convert to dev.. I dunno, maybe it's not a bad idea to muddy the waters a bit and talk about why not to be a sysadmin.
Personally I think it's that the perceived barrier to entry is just too high, while it isn't. You don't need a huge Ceph cluster and massive servers when you're just starting out. Why overbuild an appliance like that if it's gonna start out at maybe 5 requests a minute?
Let's take an example - DNS servers! So there's been this guy on the bind-users mailing list asking how to set up a DNS server on 2 public servers, along with a website. Nothing special I guess - you can read the thread here: https://0x0.st/ZY-d. Aside from the question being quite confusing, there was advice to read RFC's, get a book, read the BIND ARM, etc etc. And the person to deny this? No one less than Stephane Bortzmeyer, one of the people who works for nic.fr (so he maintains the .fr TLD) and wrote some of those RFC's as part of the DNSOP working group in the IETF. As for valid reasons to set up a DNS server? Could just be to learn how the DNS works, or hell even for fun. As far as professional DNS servers go.. this (https://0x0.st/ZYo9) is the nugget that powers the K root server, one of the 13 root servers that power the root zone of the internet, aka the zone apex. 2 RJ45 connections, and a console connection. The reason why this is possible is the massive recursor networks that ISP's, Google DNS, Cloudflare DNS, Quad9, etc etc provide. Point is, you don't need huge infrastructure to run a server!
Or maybe your business needs email. How many thousands of emails per second are you gonna need to build your mail server against? How many millions will you need to store? If your business has 10 employees and all of those manage about 10k emails total.. well that's easy, 100k emails total. Per second? Hundreds of emails per second per employee? Haha, of course not. Maybe you'll see an email a minute at most. That is not to say that all email services are like this - it is true that ISP's who offer email to their customers, and especially providers like Microsoft and Google do need massive mail servers that can handle thousands of emails per second. But you are not Microsoft or Google. So yeah, focus on the parts of email that are actually hard.. and there is plenty.
Among sysadmins you have this distinction between "professional" sysadmins and homelabbers. I don't mind the distinction itself but I think both augment each other. If you've started out by jumping into a heap of legacy at an established company, you will have plenty of resources, immediately high complexity, and probably a clusterfuck right away. But you will have massive amounts of resources. If you start out with a homelab, you will have not many resources, small workloads, and something completely new for you to build and learn with. And when running a server like that, you'll probably find that the resources required are quite small, to provide you with your new services. My DHCP servers take 12MB memory each. My DNS servers hover around the 40MB mark. The mail server.. to be fair that one consumes around 150. But if you'd hear the people saying that you need huge servers.. omg you need at least a TB of RAM on your server and 72 cores, massive disks and Ceph!1!
No you don't. All that does is scaring people away and creating a toxic environment for everyone. Stop it.1 -
!rant
What is something I can complete in a week (let's say 30-40 hours) as a newbie (I made an android app, played around with engines like unity and unreal here and there, tried some c#, and I always mess around with the linux command line, my RPi, etc etc)? I'll start working in a dual-studying job ('applied CS') in 2 weeks so I'll have enough learning-without-doing to do. I just want to learn something by doing something useful (e.g. a small android app that I can put ads in or sell, or maybe provide something for free that people like. I don't want to write my own engine( that'd take very long anyways) or make a compiler because I feel that'd be kind of useless and even though it'd probably be fun, I would lack initiative.5 -
Me: Ok, we'll implement that message tech. But since the clients are servers in that architecture and can't speak IPv6 we've to use a dedicated VPN so the endpoint is able to connect to the servers (clients). Since we have limited network resources we should use VPN cert-encryption and send the actual data plain to save at least some overhead.
Boss: Ok! Let's do it!
Next day.
Boss: Hey! I talked to a guy from that message tech. Their encryption is certified. We should use that instead and get rid of the VPN to save the overhead!
Me: *unable to say a word*
What in "VPN in that architecture is mandatory" is unclear?
Well, I assume we'll kill the architecture then... Fun Time! -
> wanting to add an embed google maps to a website I'm working on for fun, with React
> Check the API documentation, excepted their iframe they create from your needs, not much info about how to set in a a js framework
> decide to check if anyone has already created something with React
> They did! 1 american dude, one polish, one last from idk where
> The rest is basic doc so let's try each of them
> Errors, errors everywhere
> Screens stays awefully white
> Spend 2 hours checking, checking and checking again each library
> Each of them have a different problem
> Fuck this, let's copy the iframe thingy from Google's doc, adapt 1 or 2 things because of React and run npm
> Google maps works on first try -
Roof is leaking... Due to rainy stormy weather here, I have now 3 buckets in my flat for catching the water.
Next thing that broke was the faucet in the kitchen... Whoever installed the kitchen (inherited from previous tenant) was a fricking fuck nugget. Not only are most important parts like the stove unbalanced (cooking is very fun...) - but most things were wrongly installed.
The rubber band under the faucet was a few mm larger than the faucet itself... Stretched out as someone really tightened the screws... Too tight. Friction tore the rubber band on one side. Note that the faucet is one of the large, pompous ones which weigh a fuckton. So the fucking faucet now - as the rubber band tore - turned into a sprinkler as the faucet moves due to water pressure.
Ok. Faucet out, new faucet in. Shouldn't be that hard.
Wait. Wtf?
Turns out they didn't use a milling head... The hole is a cone, top larger - then getting smaller.
Ok. No problem.
Let's do some drill action.
Uhm. Why is the place to the window wet... Oh. Great. Another leak.
*some mopping action*
Back to the kitchen. Realizing I didn't fully close the valve for water -.
Kitchen cabinet, next mopping action.
Water with saw dust is pretty ugly combination -.-
Aka: My relaxing Saturday became a full blown """Fuck you with an anchor""" day instead. Thanks universe. Love you hon. Please, next time put at least some lube on the anchor, entry is quite painful.13 -
proxying youtube
today I thought writing a quick project, a youtube proxy server, as in, you browse localhost:<PORT> and youtube comes in the response.
this is not rocket science as proxy servers have around for a long time.
I thought it'd be interesting to code it in userland, as opposed to "systemland".
And 50 lines of code and some minor hurdles later I see youtube "running" in localhost.
Although youtube didn't just work as usual since the videos don't actually come from youtube.com, but from googlevideo.com instead. And my browser, expectably, enforces CORS and forbids any requests to it.
At that point I started to think of ways to somehow proxy googlevideo.com too. But the solutions are not at all trivial.
Then I thought what was the payoff of all this. I tried to proxy serve youtube out of curiosity, and sure thing, you can do it.
But what problem would proxying youtube solve? Maybe I should think in a fuller way what are the problems I have with youtube.
One issue I have is the exposure, discoverability. To explain it, let's say I have been watching a very, very big amount of videos as of today.
Personally I would expect youtube to understand very well by now what my tastes are, what do I want to watch and what I do NOT want to watch.
Notice that I am very black and white, and I do not have much interest in watching certain types of videos.
It could be true that if my expectations of how youtube should work became reality then youtube recommendations would become polarizing or echo chambering.
But that is my decision though, and the problem with youtube is that it's seemingly forcing a single recommendations algorithm onto everyone.
Some people are more open minded and want to watch EVERYTHING, and a lot of people don't.
But users aren't deciding what they should get recommended. Youtube is making that decision for them. And it sure feels like it's trying to maximize ad revenue.
I for one don't give two flying fucks about pranks or diva youtubers. Yet youtube is adamant in presenting some of these to me.
Now, trying to come up with a solution for this is really non trivial. It would definitely require some youtube mining, or some kind of network so as to not get rate limited when mining, and even then you still have to think of how a good recommendation system would work.
I think the implementation of all that would be too much for me (time and skill wise). But I think it's fun to at least try to outline how recommendations could work.
I would very much prefer that when youtube recommended something, at least it has some number of confidence meaning how much would I like that video, so at least I know what to expect.
It should also have some indicators like what is the mood of the video. As in, sometimes I watch youtube in the mood of learning, like programming videos, but most of the time I watch to get entertained.
These ideas are just brainstorms and could be terrible on reproduction, but I'd like to hear what ideas can some of the people here can come up with.2 -
Shit bathed and stack smashing ass loads of fuck.
I wrote a virtual machine, and just to fuck myself harder, I make the decision of applying some fancy dumbass theories of mine. This translates to a piece of shit modular design that works exactly as intended, but constantly gives me vietnam flashbacks to the horrifying, multiple concurrent instances of my younger mind being incessantly turbo-raped by the dozen object-obsessed pedophiles that I initially studied under.
Now, were they *actual* pedophiles? No, of course not. But I have to make fun of the acronym somehow and that's what came to mind, leaking horse dung all over the walls, floor, curtains and carpets.
Anyway, I feel so smart after this traumatic experience I just have to keep doing it to relive the terror once again. Find me in the corner, laying down in the fetal position, sobbing until the tears build up and drown me in this well of despair, or rather this finely shit painted portrait of a toilet in a lonely and stinking unisex public bathroom stall.
But let me squeeze these fucking tits a little bit harder, because that's my actual day job. That's right. I get PAID for slapping around mammary glands, it's not much but it's an honest living.
So where was I? Ah, yes, absolute degeneration. I'm truly the Max Wright of programming, mostly for smoking crack and having unprotected sex with homeless people, but also for keeping alien life forms in my basement that go out at night to hunt for sweet feline delight.
But as I keep going, I decide I want a language for the machine so I don't have to punch bits by hand all fucking day like an idiot, so alright let's make a small assembler for this shit... oh, right, except it's not small, because gently suckle the bile out the lips of my fucking butthole.
I may redefine a load of shit two months down the line, so I have to make everything perfectly encapsulated and easily fucked with -- which in my licking vomit off the floor of a porn theater travesty of a case means I'm generating half the code and scrambling as hard as I can to glue everything together.
Does it work? Of course it works, I'm Max Wright bitch. I can redefine the ISA all I want, anytime I want without breaking anything because of my pristine crackhead encapsulation. And to credit the scrambled eggs I have for fucking brains, it's not even *that* complex.
The problem is I keep forgetting shit, not how it works, just that it's there. So I forget that I have a virtual machine, and I forget that I have an assembler, and so I spend an entire day trying to figure out how the fuck I'm going to handle a loop inside an unrelated interpreter.
By the time I manage to remind the drooling undead jackass that is this husk that my irredeemably demonic self inhabits, that we can easily solve this by using the tools we've already built, it's so late and we're so tired there's not much we can do. All this time, WASTED.
Which circles back to crack. Are you tired of blowing your babysitter for cash? Have you considered suicide by a thousand used trojan condoms? Is your roommate possesed by the forces of Avernum, and now seeking all-destructive vengeance against your rectum?
Try no other than Soul Excision, the treatment that will neuter your being and curse it to the TRUEST form of eternal damnation! Through Soul Excision, you will be CUT OFF from the very essence of the universe, and turned into an astral prostitute that offers their EVERY orifice to the BUTTLOADS of maggots that debour their mind and body, all for the pleasure of some rich and powerful wankers that *deeply* enjoy watching questionable erotic tapes from nightmarish outer dimensions!
Use my promo code SLUTSKANK for 20% OFF in your very LAST purchase on this earth! And once you surrender your BODILY holes to cosmic oblivion, remember: when it comes to your ASS, we're ALWAYS open for business!
Thanks to Soul Excision for sponsoring this DDDDDDDDDDDDDDDDDDDDD$$$$$"2402"$$?"="$0"?¿"=¿?40'0"$="¿¿=$¿"?=4¿?"$="?¿$="¿?$0¿?"=$¡'0$"¿?$=::::::
:~%4 -
My love for you I can't describe it,
so I dont't even try and hide it.
Dev. you are my one true passion
you are always there to teach me a new lesson.
Some missing semicolon;
I have searched for you soo long.
Or was it a wrong indent,
ah f**k it was the missing increment.
Thinking through endless loops
in while, for and even do form,
just that my programs do a little better perform.
You give me the possibility to express myself as who I am and who I want to be,
in so many languages, from java, JS, GO, python and even C.
You give me bugs and issues that I track,
from motivation for you I never lack.
There are projects out there, where I contribute to
oh what a beauty are you.
And now you even bring fun into my life
with devrant, I now know how to survive.
How to survive client meetings and non devs around me,
oh how much stupidity I there see.
Let's exit this small programm of mine, this so called rime,
where I an immutable statement define:
I think about you even when we are not together,
My dearest DEV I will love you forever. -
So, it's been a while since I've been working on my current project and I've never had the "luck" to touch the legacy project wrote in PHP, until this week when I got my first issue.
And damn, this goddamn issue. It was a bug, a very strange bug, that only happens in production and that nobody has any idea what was happening, so yeah, I didn't have anyone to ask and I got less time than usual ( because Thanksgiving ).
And thus, I have no starting point, no previous knowledge on PHP and less time! I expected a very fun week 😀 and it was beyond my expectations.
First I tried to understand what might be causing the issue, but there wasn't any real clue to star with, so no choice, time to read the flow on the code and see what are they're doing and using ( 1k line files, yay, legacy ). Luckily I got some clues, we're using a cookie and a php session variable for the session, ok, let's star with the session variable. Where it's that been initialize ? Well, spoiler alert, I shouldn't start with that, because my search end up in the login method of the API that set a that variable and for some reason in the front end app it was always false and that lead me to think that some of the new backend functions were failing, but after checking the logs I got no luck.
Ok, maybe the cookie it's the issue, I should try open the previous website on the brow...redirect to new project login, What? Why ? I ask around and it's a new feature push on Monday, ok I got Chrome Dev tools I can see which value of the cookie it's been set and THERE IT WAS it has a wrong domain! After 2 days ( I resume a lot of my pain ) I got what I've been looking for, so now I should be able to fix the bug. Then where is the cookie initialized ? In the first file the server hits whenever you tried to enter any page of the app, ok, I found the method, but it's using a function that process the domain and sets it correctly? wtf ? Then how in heaven do I get the incorrect domain ? Hello? Ok, relax, you still have one more day to fix this, let's take it easy.
Then, at the end of the Wednesday, nope I still have no clue how this is happening. I talked with the Devops guy and he explain me how this redirection happens and with what it depends on, I followed the PHP code through and nothing, everything should works fine, sigh. Ok I still have 2 days, because I'm not from US and I'm not in US, so I still have time, but the Sprint is messed up already, so whatever I'm gonna had done this bug anyhow.
Thursday ! I got sick, yay, what else could happen this week. Somehow I managed to work a little and star thinking in what external issue could affect the processing, maybe the redirection was bringing a wrong direction, let's talk with the Devops guy again, and he answer me that the redirection it was being made by PHP code, IN A FILE THAT DOESN'T EXIST IN THE REPOSITORY, amazing, it's just amazing. Then he explained me why this file might be missing and how it's the deployment of this app ( btw the Devops guy it's really cool and I will invite him a beer ) . After that I checked the file and I see a random session_star in the first line of the code, without any configuration, eureka ! There was the cause and I only need to ask someone If that line it's necessary anymore, but oh they're on holiday, damn, well I'll wait till Monday to ask them. But once and for all that bug was done for ! 🎉
What do I learn ? PHP and that I don't want any more tickets of PHP 😆. -
The Coding Apocalypse: A Dev's Rant
June 14, 2024
Okay, gather ’round, fellow code warriors, because it’s time for a good ol' developer rant. If you're reading this, chances are you’ve already faced the dragon that is modern software development, and you’re somehow still using "Agile" as a life preserver while the ship is sinking. So let's dive into the chaos that our world has become.
Here’s the thing: We’re living in a paradox where every other day there's a shiny new framework promising to be the “ultimate solution” while ignoring that it's just recoil from the last big mess. I mean, can we talk about JavaScript for a second? I’m pretty sure if you stand still long enough, a new JavaScript framework will spontaneously generate from the void. Do we really need another one?
And don’t get me started on Sprint Planning. It’s like playing Tetris with stones while blindfolded, hoping that all the blocks land perfectly. Spoiler: They don’t. The product manager’s eyes glaze over as they nod approvingly to your estimates, secretly extending deadlines in their minds. The 'flexible' deadlines then become rigid, unattainable goals, and who gets the heat? The devs, of course.
Also, can we address the insanity of microservices? Sure, splitting a monolith into microservices sounds fun—until you’re drowning in API calls and Docker containers. Debugging a distributed system is like trying to untangle a pair of headphones made of spaghetti.
Oh, and if one more person asks if we’re "leveraging AI" and "blockchain technology" for our simple CRUD app, I might lose it. Sometimes, folks, the wheel doesn’t need reinventing. It just needs a little grease.
Finally, remote work. Blessing and curse. Sure, I enjoy the freedom of working in my PJs, but the endless Zoom calls are killing my soul. Breakout rooms? More like breakdown rooms. The Slack notifications? Let’s just say my sound settings have a hair trigger on mute these days.
So here’s to us, the devs. The ones who stare into the abyss of JIRA tickets and laugh in the face of mounting tech debt. May your coffee be strong, your code refactored, and your deployments ever in your favor.
End rant. Back to the trenches. 🚀💻6 -
Brought to you from the 5000+ line Java file. Contained within the 1500 line method. I bring you the following pattern. Let's guess all the ways we could've done this better?
- Streams
- For loop
- Iterator
What gets really fun is when this you get this pattern doubly nested so you have a random i's and j's floating all over the place.
Note: this isn't ancient code it was developed about 3 months ago.
[Code has been lightly anonymized]5 -
Friday: I have done a lot of work this week... Should take rest in the weekend
Saturday: Who needs rest? Let's learn new hobbies, watch movies, play games and have fun🤩
Sunday: I think I will take some rest today...But that series is so cool...
Monday Morning: Why did not I take sufficient rest the whole weekend 🥱🤦🏽♂️
Monday Afternoon: Slept for two hours in the office time😑2 -
Applying for an entry level software job and having the "let's do a hackathon" project. It's super fun cos I know the effort I put in doesn't actually matter since you'll just choose someone more experienced. But I still have to go ahead and put in max effort or you'll have a reason to call me lazy :(
-
So... being backend and DevOps was not enough. I am supposed alone to walk through PCI DSS compliance now.
https://pcisecuritystandards.org/do...
Undoubtedly fun, but a bit too much for one dev to do everything. But, no choice is left, so let's have the new hat of security on!6 -
I once wanted to make easy money by becoming a professional poker player. I did this by programming a poker simulator and calculate chances with certain cards and stuff. To assure you have 6.**% winning (mathematical chance calculated) of a hand takes around 3k simulations to cancel out the luck. So don't trust to much on your math.
That went well, but that wasn't all that there was to learn, you could even consider a small start. Long story short, I became quite a good player and won a lot with Appeak Poker (Great app! No adverts!). Now, I opened a while ago an account at the Holland Casino to make some money. But they were playing on such low wages that it was just not interesting and I quitted. Today I realized I had still an account with money on it and thought "let's get over wit it" so i did aggressive betting on red (1:st 40% all in, lost, 2nd 100% all in won) in a roulette game. In the end I had a few euro profit so the gambling adventure never costed me money.
Another reason the poker carreer ended is because I realized it's not a quick way to make money at all and the gambling factor was too high. I expected poker a bit to be more strategy.
I even consider the best poker spelers maybe to just be lucky bastards in some cases. Poker stars is fun to see on youtube tough, they're bullshitting a lot.
I consider gambling for losers. Poker, you can become really good in it, but still some luck is required. Not bad luck at least. You can lose with a multiple of quite good hands.
Fact: one of the best poker players is actually a software developer17 -
Okay, managed to negotiate with my manager to deploy our first Lambda + Golang service. Muehehe. Let's have some fun!!!5
-
The taboo of not finishing.
(As I prefaced to many posts I made, don't take this too seriously)
It is very normal in the programming world to get recommended to finish projects.
But I was wondering "what if you don't?".
Of course, we can agree that having little patience or persistence is not good for any endeavor.
But what if this recurrent focus on finishing is also bad?
Granted, I have started dozens of things and only finished one or two of them and none have become popular.
So there's not a lot of support to back my take.
But I definitely learned a lot from these projects. And I definitely had a lot of fun at some points.
In fact, I think if I had switched more often early on I would have been less miserable, and maybe I would have learned more by the virtue of not getting stuck with some project.
Of course this applies as long as you stay within the same field; it doesn't help learning gardening one day but karate the following.
But even then, there are so many hobbies in life that the chance of finding the one that you love and are the best at are very slim. So switching out of the least pleasant ones might bring you to a favorite one.
But, let's go back to programming.
Here, people recommend finishing things as means to become profitable. If you want to live as a gamedev, then you need to sell games, and to do that, you need to finish games.
That is understandable.
But if gamedev isn't your main profit, why is finishing games a requirement?
What's the point of publishing a game that you know looks like shit?
Why? Why should you put time and energy, pain and stress, all the way through the end only to finish or even publish a game that you can feel ashamed of how awful it looks? (because most 1st games look awful).
Why would you ever want to finish something that looks horrible?
First tries are always terrible, and that's fine, nothing wrong with that.
What's wrong is this sheepthought that you should publish to the public every turd that you can produce in your early learning stages.
I've been a programmer for almost 8 years now. I'm not the best out there, but I consider myself ok.
And considering I had some pretty deep depression pits thanks to this mentality, here's my advice to folk having stress with unfinished projects: don't give a single fuck.
If a side project has become stressful, shelf that shit, maybe tell someone about your issues with it. But don't care much about it.
In fact, if you manage to finish a project but it has costed you a great deal of stress, maybe that should be the shameful thing.
Life is too short to waste it considering suicide because you're not a prolific programmer.
And i would argue that iterating 100 times on different things is far more productive (and fun) than fetting stuck or spending shitloads of time on the first one, even if you don't finish any of them.2 -
The hype of Artificial Intelligence and Neutral Net gets me sick by the day.
We all know that the potential power of AI’s give stock prices a bump and bolster investor confidence. But too many companies are reluctant to address its very real limits. It has evidently become a taboo to discuss AI’s shortcomings and the limitations of machine learning, neural nets, and deep learning. However, if we want to strategically deploy these technologies in enterprises, we really need to talk about its weaknesses.
AI lacks common sense. AI may be able to recognize that within a photo, there’s a man on a horse. But it probably won’t appreciate that the figures are actually a bronze sculpture of a man on a horse, not an actual man on an actual horse.
Let's consider the lesson offered by Margaret Mitchell, a research scientist at Google. Mitchell helps develop computers that can communicate about what they see and understand. As she feeds images and data to AIs, she asks them questions about what they “see.” In one case, Mitchell fed an AI lots of input about fun things and activities. When Mitchell showed the AI an image of a koala bear, it said, “Cute creature!” But when she showed the AI a picture of a house violently burning down, the AI exclaimed, “That’s awesome!”
The AI selected this response due to the orange and red colors it scanned in the photo; these fiery tones were frequently associated with positive responses in the AI’s input data set. It’s stories like these that demonstrate AI’s inevitable gaps, blind spots, and complete lack of common sense.
AI is data-hungry and brittle. Neural nets require far too much data to match human intellects. In most cases, they require thousands or millions of examples to learn from. Worse still, each time you need to recognize a new type of item, you have to start from scratch.
Algorithmic problem-solving is also severely hampered by the quality of data it’s fed. If an AI hasn’t been explicitly told how to answer a question, it can’t reason it out. It cannot respond to an unexpected change if it hasn’t been programmed to anticipate it.
Today’s business world is filled with disruptions and events—from physical to economic to political—and these disruptions require interpretation and flexibility. Algorithms alone cannot handle that.
"AI lacks intuition". Humans use intuition to navigate the physical world. When you pivot and swing to hit a tennis ball or step off a sidewalk to cross the street, you do so without a thought—things that would require a robot so much processing power that it’s almost inconceivable that we would engineer them.
Algorithms get trapped in local optima. When assigned a task, a computer program may find solutions that are close by in the search process—known as the local optimum—but fail to find the best of all possible solutions. Finding the best global solution would require understanding context and changing context, or thinking creatively about the problem and potential solutions. Humans can do that. They can connect seemingly disparate concepts and come up with out-of-the-box thinking that solves problems in novel ways. AI cannot.
"AI can’t explain itself". AI may come up with the right answers, but even researchers who train AI systems often do not understand how an algorithm reached a specific conclusion. This is very problematic when AI is used in the context of medical diagnoses, for example, or in any environment where decisions have non-trivial consequences. What the algorithm has “learned” remains a mystery to everyone. Even if the AI is right, people will not trust its analytical output.
Artificial Intelligence offers tremendous opportunities and capabilities but it can’t see the world as we humans do. All we need do is work on its weaknesses and have them sorted out rather than have it overly hyped with make-believes and ignore its limitations in plain sight.
Ref: https://thriveglobal.com/stories/...6 -
Sometimes my hatred for code is so.. overwhelming that I think I need a sabbatical or should even stop altogether.
Let's face it. All code sucks. Just on different levels.
Want to go all bare metal? Love low level bit fiddling. Well, have fun searching for concurrency, memory corruption bugs. Still feel confident? Get ulcers from large C/C++ code base already in production, where something in the shared memory, function pointer magic is not totally right?
So you strive for more clean abstractions, fancy the high level stuff? Well, can you make sense of gcc's template error messages, are you ready for the monad, leaving behind the mundane everyday programmers, who still wonders about the scope of x and xs?
Wherever you go. Isn't it a stinking shit pile of entropy, arbitrary human made conventions? You're just getting more familiar with them, so you don't question them, they become your second skin, you become proficient - congrats you're a member of the 1337.7 -
Given an opportunity to develop an application for R&D. What do we do as a team? Let build it exactly the same way our current stack is built. (This app won't actually be used for anything useful, just an exercise for a fun R&D task)
It still amazes me with the number of developers that literally have the mindset, let's just do what we know & don't want to learn anything new.
Let's showcase new technologies? No. Let's create a serverless application? No. Let's create some microservices? No. Let's wrap the application in a Docker container so we can easily spin it up? No. Let's have multiple services that sit behind an API gateway? No. Let's for fucks sake at try a different design pattern? Why would we do that? Can we do anything differently? No.
No innovation, nothing - it just blows my mind. Everyone seems to think that the way the stack is built is how every application is. Sorry but a huge monolithic application that can't scale isn't how the other half live...
I don't know why the lack of wanting to try something new bothers be so much, but it does.
Had a real opportunity to showcase some cool tech, design patterns, new services in the cloud. Show not only other devs but upper management that there are alternative ways to develop. It's not like anything that I put together was "new or shiny" - I just wanted to do anything... Anything that isn't how currently do things.
Full disclosure, I'm not a great Dev - I'm pretty dam average but I'm always willing to try new techniques or approaches.9 -
Asp seems to actually have feelings.
Today I tried to get an asp page to run for company stuff. Ok fair enough I load apache and all the modules required for it to run on Ubuntu. Everything went fine and nothing complained what a great start!
Let's create a directory called /var/www/html/astrash ( I wanted to be fun ok? ) and created a sample index.asp file and configured the paths etc accordingly.
So I went to my beloved browser and typed in localhost/astrash/index.asp
Guess what happened? Right. I could only download the file.
Tried to change several things and Googled a bit but the things I tried didn't work.
So I figured let's create the directory /var/www/html/asp and an index.asp to go along. Same content. Same owner same access bits.
Went to localhost/index.asp and I saw the sample page!
I laughed my ass off at this actually thinking asp knew that I was a dick in naming the folder like that 😂
PS: yes I know it's probably a misconfiguration but it's funny nonetheless1 -
Aka... How NOT to design a build system.
I must say that the winning award in that category goes without any question to SBT.
SBT is like trying to use a claymore mine to put some nails in a wall. It most likely will work somehow, but the collateral damage is extensive.
If you ask what build tool would possibly do this... It was probably SBT. Rant applies in general, but my arch nemesis is definitely SBT.
Let's start with the simplest thing: The data format you use to store.
Well. Data format. So use sth that can represent data or settings. Do *not* use a programming language, as this can neither be parsed / modified without an foreign interface or using the programming language itself...
Which is painful as fuck for automatisation, scripting and thus CI/CD.
Most important regarding the data format - keep it simple and stupid, yet precise and clean. Do not try to e.g. implement complex types - pain without gain. Plain old objects / structs, arrays, primitive types, simple as that.
No (severely) nested types, no lazy evaluation, just keep it as simple as possible. Build tools are complex enough, no need to feed the nightmare.
Data formats *must* have btw a proper encoding, looking at you Mr. XML. It should be standardized, so no crazy mfucking shit eating dev gets the idea to use whatever encoding they like.
Workflows. You know, things like
- update dependency
- compile stuff
- test run
- ...
Keep. Them. Simple.
Especially regarding settings and multiprojects.
http://lihaoyi.com/post/...
If you want to know how to absolutely never ever do it.
Again - keep. it. simple.
Make stuff configurable, allow the CLI tool used for building to pass this configuration in / allow setting of env variables. As simple as that.
Allow project settings - e.g. like repositories - to be set globally vs project wide.
Not simple are those tools who have...
- more knobs than documentation
- more layers than a wedding cake
- inheritance / merging of settings :(
- CLI and ENV have different names.
- CLI and ENV use different quoting
...
Which brings me to the CLI.
If your build tool has no CLI, it sucks. It just sucks. No discussion. It sucks, hmkay?
If your build tool has a CLI, but...
- it uses undocumented exit codes
- requires absurd or non-quoting (e.g. cannot parse quoted string)
- has unconfigurable logging
- output doesn't allow parsing
- CLI cannot be used for automatisation
It sucks, too... Again, no discussion.
Last point: Plugins and versioning.
I love plugins. And versioning.
Plugins can be a good choice to extend stuff, to scratch some specific itches.
Plugins are NOT an excuse to say: hey, we don't integrate any features or offer plugins by ourselves, go implement your own plugins for that.
That's just absurd.
(precondition: feature makes sense, like e.g. listing dependencies, checking for updates, etc - stuff that most likely anyone wants)
Versioning. Well. Here goes number one award to Node with it's broken concept of just installing multiple versions for the fuck of it.
Another award goes to tools without a locking file.
Another award goes to tools who do not support version ranges.
Yet another award goes to tools who do not support private repositories / mirrors via global configuration - makes fun bombing public mirrors to check for new versions available and getting rate limited to death.
In case someone has read so far and wonders why this rant came to be...
I've implemented a sort of on premise bot for updating dependencies for multiple build tools.
Won't be open sourced, as it is company property - but let me tell ya... Pain and pain are two different things. That was beyond pain.
That was getting your skin peeled off while being set on fire pain.
-.-5 -
Ah, Visual Studio Code—our trusty sidekick in the coding trenches. But wait, what's this? A delightful new feature designed to keep us on our toes: the 'Disable All Extensions for This Workspace' command. Because who doesn't love a good surprise, especially when it involves disabling all the tools we painstakingly set up?
Picture this: you're in the zone, about to format your document as usual. You hit Ctrl + Shift + P, type 'for', and expect the familiar 'Format Document' to greet you. But no! Instead, 'Disable All Extensions for This Workspace' has decided to make a guest appearance at the top of the list. How thoughtful! It's as if VS Code is saying, "Hey, let's make things interesting by turning off all your extensions without warning."
And the fun doesn't stop there. Once you've accidentally disabled all your extensions, there's no magical 'undo' button to save the day. Nope, you get the joy of manually sifting through your extensions list, re-enabling each one like it's 1999. And let's not forget the mandatory restarts—one to unload the extensions and another to load them back up. Because who doesn't love losing their undo history and breaking their workflow?
So, dear VS Code developers, thank you for adding a dash of unpredictability to our coding sessions. After all, who needs stability and consistency when we can have random command roulette?23 -
CSS is truly full of surprises.
Let's say you have a simple HTML:
<div class="with-background">
<div class="content with-margin"></div>
</div>
Now, to ensure that margin of the internal element won't "fall out" of the background, you might add padding: 0.1px to the wrapper. But, here's a fun fact: adding 0.01px still works fine, but 0.001px does not.
For my browser the cut-off seems to be somewhere around .008333332371px4 -
what is life if not an eventual step towards sadness?
i have been working professionally in wfh setup since 2020 nd have seen my dad work as a businessman for 20 years , then a fulltime wfo job employee for 5 years. i have been a wfo*(hybrid) employee for last 2 months as this is my first wfo job.
everywhere i go, i am told that the "work-life during covid is a lie, a mere anomaly in otherwise horrific work lifestyles" .
let's consider 3 lifestyles.
1. a software engineer graduated in 2023 and starting his first fulltime office job.
- guy goes to office everyday, travels for 2 hours, changes between a metro , rickshaw nd physical walk, works 9 hours in office, again travels b/w different modes for 2 hours to reach back home, have his dinner, watches some videos nd goes to sleep.
- in office there is no one happy, everyone is either bitching about or buttering someone.
- later he moves naar to office in a rented flat and his travel time is replaced by daily chores, like washjng clothes , cleaning home, stockings supllies and cooking etc.
- life goes on. he eventually starts making some assets (home appliances, car, home etc) and starts saving money. he also gets into relationship , then marriage happens, then kids come. the office days are full of office for all nd weekdays remain source of fun and entertainment for all. kids grow, move out and do the same thing over. death
>> souce of sadness :a monotonous life with no time for happiness in everyday life. he even meets more sad people everyday who are again just bitching, cribbing and lamenting
------
2. a small scale car mechanic with 2 labour.
- almost same life, just a bit more pressure, as he not only has to make sure that his employees are giving him enough output for their income, he also has to ensure that the business keeps running and generating revenues.
for him, their are no time shifts , he needs to ensure the shop door opens at 9am and closes at 9pm for business, while ensuring all the stocks remain available , revenue and sales are documented and business dealings are done. fuck the family fuck the food, fuck the home, he would sleep in his shop if needed and his future family would be just their to unfuck/provide these ignored essentials.
>>> source of happiness : no time/people to emjoy life
----
3. a social media influenza/motivational speaker : these guy hates himself from day 1 . they know they are just a fluke and even though they say they are "not working", they are pulling all the legs to keep their revenue source running : sending posts on trendy things asap, cold mailing, begging for sponserships, publishing content asap.. not sure if a single person exosts who has been a happy social media influenza for last 30 years.
>>> source of sadness : unsatisfactory work, delusional life
---
so what the fuck is wrong with life. i have a board that says "make dotenvironment @64 proud" . i am 24 and following the path of guy 1 in above post. i can prob make myself a proud man by 64 but how can i make myself a "man who lived a happy life" by 64?3 -
if you're having funner you're winning, son 😏
browsed through somewhere people were confessing things about their life. the community there is about something else so it's an interesting peek to who is there and how they are as people outside that area. man some depressing shit, or plain vile shit, evil shit
people have hope for the best for themselves and it doesn't work so they go crazy sometimes
some in there thought if they stayed there and toughed it out and were "successful" they would feel better. they didn't. I see that so much in the comments. people thinking if only they were successful they would feel better, but their problems have nothing to do with their level of success. it's strange humans do this
somehow every time I see depression I get happy
life will roll you, but are you having fun, son?
the more pain you see, the more you understand
so let's make talking about pain illegal
earlier I found out the first time my roommate realized if you pushed your body you eventually can't feel how tough it is to move it was when he was in his mid 20s on a college field trip... really wtf?
I walked a few miles to a far away grocery store to buy potatoes and hauled a couple bags home today. last time I did this I felt great after, which is what spurred the earlier conversation cuz I was telling him I was gonna go do it again.
well when I got back... he was doing dishes and literally crying... and he doesn't do dishes... because it's too physically tough for him to do his own dishes... so I guess knowing I was gonna do this walk with several kgs of potatoes he decided to try it out...
I told him the difference is maybe cuz since ever I could remember, my mom had taken me on errands with her like pre me being 3 years old, and we'd walk like 6-8 hours so I had learned real quick if you just power through physically you eventually feel nothing and can do it all day long
how could a dude not know that until he's in his 20s lol
so much of life is just like this though. it's funny. nothing real is spoken, nobody does anything, nothing ever happens. there's even war tourism people complaining current wars are too boring
but are you having fun, son?7 -
I don't often have reasons to rant, but today is the one.
We had a deadline to finish a project, because today people are being trained on it. I've been working my ass off on it for a year now.
I "finished" about 2 weeks ago, meaning QA could start for real 2 weeks ago. As you can imagine for a project this long, there was bugs. Lots of them.
We did our best to fix most of them, or find work-arounds we could use during the demo.
Let's just say it isn't going great so far. We have several known bugs, which at some point may crash the app, a very low confidence in the fact that it's going to work well.
Oh and obviously the client is one who already use heavily the solution. Today we figured we never tested on a device with 0% disk space. Files are cut partway because of that, and obviously things crash.
I have a feeling there will be yelling sometime soon.
Right now I'm enjoying the calm before the storm, with coffee in hand.
Why do people still continue to promise dates to clients, after me telling them for 5 years not to do that?
We are a 2 devs team, with 11 apps on 2 platforms, 2 back-ends (one is legacy) and obviously our marketing site, which doubles up as e-commerce. We just can't promise anything, because any emergency reduce our development bandwith for new features either to 50% or 0%. There are so much known bugs it's not funny anymore, and we don't even have time to solve those.
To add insult to injury, at the beginning of the month, the SaaS provider for our legacy back-end (which have not been maintained for 2 years now) decided we had to update to PHP7.1 before 1st October. If we don't do anything, on monday this thing is broken. I hate that thing, and I hate having to maintain it even though I was promised I wouldn't have to ever have anything to do on it.
Monday will be "fun"...2 -
I'm in a big fat fucking stinking rut, as in progress on this project has absolutely stagnanted.
Gonna rubber face your duck now **UNZIPS** excepts I don't have zippers, as joggers are the one true way; fake Adidas til I fucking drop.
Brain damage aside, I understand both how I've layed out the data and what I'm supposed to do with it. We have a virtual machine, an array of instructions and arguments for a given process within it, and we need to walk this array and map values to registers.
We also need to spill values inside registers to stack, IF they are required at a further point within that block. This also isn't terribly complex. We simply look forward in the array and see if the value is an argument to any instruction that *needs* this value to be loaded (ie, within a register).
So this implies multiple iterations; we need to better understand how one particular value is used throughout an F before we can make a final decision on how many registers and stack space are actually needed for the whole block.
Here's where it gets tricky. If there's a call, we need to be certain that the symbol being invoked has already been fully processed. Besides the obvious fact that recursion fucks me up, there's another matter: say a private method gets invoked by another private method. We can take advantage of this, by which I mean, sacrilege incoming so put on this toga.
Looking at the output for C compilers, it would seem this is not done in practice, I would assume because it's a pain in the ass. But when you have the guarantee that F will only be called internally, as that's what "private" means, there's two ways it can go:
0. It's well below the 13-20 cycle threshold, so you inline the fucker. No suprises there.
1. It's a more involved affaire, and invoked in more than one place, so you don't inline it. Codesize matters.
Recursion and [1] are the big deal things holding me back. Not because it's too hard, like I said this is kindergarten level abstraction. I'm just slow and fanatical, which is how I prefer to spell "constant obsessive paranoid delusions". I can see the potential optimization I can pull here, so I'm stuck trying to figure it out.
Idea would be, handling the register allocation and stack spill for an internal-internal (or deep internal; what we like to call a "guts" method) in synchronization with the *calling* processes. This is, fundamentally, violating all conventions -- but so under the hood no one will notice.
Let me give you an example. If we were to pass some value to a function, expecting to mutate it and get a different value back, in a lot of cases it'd be stupid to make an implicit copy by using two registers, one for input and another for the output. Dude, it's one cycle. Multiply it by a million, say sixty times per second, for every time you __needlessly__ make a copy of a value that we've already stated is mutable.
Clearly unacceptable. This is, in the strictest sense, everywhere in every single codebase. Premature micro optimization is the root of all goodness, God is great and praiseworthy. So how do we go about it?
Answer is I know and I don't know. By which I mean to say, this very thing I've done by hand. Assembly is fun. Now the issue is teaching a calculator how to do it. Not so fun.
There is a dependency chain between processes, as I believe I've kind of alluded to. I'm trying to make decisions on the side of the caller depending on the details of the callee, which is why recursion is rawdogging my soul. This is the same situation, it's inverting the direction of one or more links in the dependency chain, which makes no fucking sense.
And yet it does.
Brain, explain yourself.
How do *you* handle this without crashing?
Brain?
<<ME STEWPED; BEEP-BOOP>>
Alright then, that was a useless attempt at fuckery. Let's have a nap then, maybe it'll come to me in the morning. That's what I've been saying to myself for almost a month now.
Perhaps it is a hardcoded fuk.1 -
i can see a very thin line between me remaining the same good natured person as i am right now, and me turning into completely chaotic no remorse psychopath , in upcoming future.
the universe follows the rules. planets revolve in a pre defined manner, day and night comes as expected. however being a human for last 24 years, i have come to experience 2 different phenomenons : being rule bounded and being random.
randomness is fun. randomness is guilt free, randomness is a wonderful feeling for someone . but at the same time its worse for everyone else. try slapping a random kid in park or eating food at a restaurant amd running away, assuming there will be no consequences against you whatsoever. such a nice evil feeling
at the same time, rules are boring , unrewarding, guilt filled words of hope.
- "do not eat pizzas or you will get fat" :boring + guilt
- "go to gym, you will become appealing and get a good sex " : boring + hope
- "if you perform well, you will get appraisal and you will earn enough to afford your family a home" : hope + guilt
see how these rules are full of hope/guilt/boredom for you while being good+rewarding for others? that's how you are categorised as being civil , as being part of a society of semi evolved apes.
and as if those rules weren't enough , there came this unnecessary concept of faith, religion and spirituality.l, with its own set of rules and hopes.
and it seems like such a great capitalist idea , since the hopes provided via these are not even realistic : keep on doing good stuff, following the rules and you will get a better afterlive/next birth!
i have tried being a good person for my whole life. my parents are religious and i try to be one, I don't drink , smoke, eat other animals, or randomly start slapping kids in the park. i have been a boring personality, i studied , ran in various races od educational life, failed most of them, landed in a decent paying job , and now trying to even gain back a decent body to look respectful and worthy of a future family. feels like i did so much for so many hopes and am still doing it. we all do , no?
but i have seen companies laying off people and leaving them in turmoil, marriages getting ruined, and some person never getting the love, respect and rewards they deserve for all these shitty rules they kept up with
my life book is somewhat even-steven. i did get a few rewards and respect for some of my hard work, but my overall portfolio is negetive : a lot of investment on just the hopes of a better return
let's see if i can keep up with my sanity for next 50-60 years before i am dust again.
=====
ps : try playing bitlife : life simulator mobile game ( download the cracked version from the web though, original one is full of ads) . it just have a single big button and shows text about how an imaginary child(you) os growing every year on click. so far i tried to play the life of kid like a criminal, a heavily educated person, a politician and a job worker. almost all of them recieved "miserable" and "unsuccessful" as the final result. very fun game to play without being evil1 -
!rant
I prefer to write desktop applications or mobile applications (android). Only time I touched web-applications so far was for school.
Tbh, I hate it the way have to do it in school. vanilla js, no css framework, JSP backend (sometimes php 5.4) and that rounded up with eclipse indigo.
Let's not even talk about the fact that we never really talked about js or css in school, so that was even harder for me too begin with (still suck at both of them imo)
I can't express my gratitude for js and css frameworks. They make web development much more fun for me.
💖 laravel, vuejs, materializecss💖
Feel free to suggest me other things, I only completed 2 project with these1 -
You know how the machine learning systems are in the news (and Ted talks, tech blogs, etc.) lately over how they're becoming blackbox logic machines, creating feedback loops that amply things like racism on YouTube, for example. Well, what might the ML/AI systems be doing with our code repositories? Maybe not so much yet, I don't know. But let's imagine. Do you think it's probably less worrisome? At first I didn't see as much harm potential, there's not really racist code, terrorist code, or code that makes people violence prone (okay, not entirely true...), but if you imagine the possibility that someone might use code repositories to create applications that modify code, or is capable of making new programs, or just finding and squishing bugs in code algorithmically, well then you have a system that could arguably start to get a little out of control! What if in squashing code bugs it decides the most prevalent bugs are from code that takes user input (just one of potentially infinite examples). Remember though, it's a blackbox of sorts and this is just one of possibly millions of code patterns it's finding troublesome, and most importantly it's happening slowly (at first). Just like how these ML forces are changing Google and YouTube algorithms so slowly that many don't notice the changes; this would presumably be similar and so it may not be as obvious as one would think. So anyways, 'it' starts refactoring code that takes user input into something 'safer'. Great! But what does this mean? Not for this specific example really, but this concept of blackbox ML/AI solutions to problems we didn't realize we had, what does a future with this stuff look like (Matrix jokes aside)? Well, I could go on all day with imaginative ideas... But talking to myself isn't so productive, let's start a fun community discussion here! Join in if you find this topic as interesting as I do! :)
Note: if you decide to post something like "SNN have made this problem...", or other technical jargan please explain it as clearly as possible. As the great Richard Feynman once said, the best way to show you understand a thing is to be able to explain it clearly to others who don't understand it... Or something like that ;)3 -
What the hell am I!? I wonder if you guys can help me...
I've been programming most of my life but I've never actually been a developer by title or job role. I thought maybe if I list what I do and have done someone here could help? I'm sure there are more of you in a similar boat.
- C# and VB dev for some quick DBMS projects to help me understand and mine databases and create a nice simple view for project teams to show findings from the data to help make certain decisions.
- Automating a lot of my colleagues work with Python and if very restricted then just VBA macros in Excel and MSP. This did also include creating tools to gather data during workshops and converting the data for input into other systems.
- Brought Linux to the office with most team members now moving over to Linux with the peace of mind to know that though they do need to try solve their own problems, I can help if need be.
- Had to learn AWS and then implement an autoscaling and load balanced data center installation of a few Atlassian toolsets.
- Creating the architecture diagrams documentation needed for things like the above point.
- Having said that, also have ended up setting up all the Jira/Confluence etc. servers we use and have implemented so far whether cloud (Azure/AWS) or on prem and set up scripts to automate where possible.
- Implemented an automated workflow view in SharePoint based on SP list data and though in an ASPX page, primarily built in JS.
- Building test systems in PHP/JS with Laravel and Angular to help manage integration between systems. Having quite a time right looking into how to build middleware to connect between SOAP and REST API's, the trouble caused more by the systems and their reliance on frameworks we're trying to cut out of the picture.
- Working on BI and MI and training a team to help on the report creation so that I can do the fun creative stuff and then set them to work on the detail :)
Actually it seems safe to say that it seems that though I've finally moved into a dev office (beforehand being the only developer around) I seem to be the one they go to when a strategic solution is needed ASAP and the normal processes can't be followed (fun for someone with a CompSci degree and a number of project management courses under the belt... though I honestly do enjoy the challenges)
But I always end up Jack of all but master of, well hopefully some at least. let's not even get started on the tech related hobbies from circuit design and IoT to Andoid / iOS and game dev and enjoying a bit of pen testing to make sure we're all safe at work and at home.
As much as I don't like boxes, I'm interested to know if there is in fact a box for me? By the way, the above is just a snapshot of my last two years minus the project management work...2 -
i need some advice on how to deal with office culture. i am a covid graduate and this is my first wfo job. it is technically hybrid but quickly turning into full time office, and there are several examples of scenarios, where i am not only feeling just frustrated, but hurt and retaliation.
my whole team is in a different city except 4 of us : pm, sr ios dev, me(android dev) and a sr android dev. in our office, there are 50 more people , but i rarely need to contact anyone except my team from another city or these 3 folks. also, we 4 are new joinees like just joined in last 2 months.
so let's discuss the problems.
1. there have been very shitty decisions that are leading to loss of everyone just because a few are unlucky. here's an example. on may 1, international labor day, we 4 had a leave showing. but it was not showing for other people. maybe because ourbleave calender was aligned to other city or maybe coz we are new, idk. but someone told the boss of manager, and he mailed to us that there is no leave :/ wtf
2. another news: our is shifting from we work to another co-working space. it is being heard that office will be now 3/5 days instead of 2/5 . when we joined, it was showing 3/5 days in our hr portal, but hr assured that it is 2/5 days. and we would still go 2/5 days only. but like that holiday scenario, people are buzzing and talking, and they might end up getting our 2/5 culture tonget fucked too. this is very stupid, since i am wasting 4 hrs everyday travelling.
3. let's talk about the snakes in the 4 ppl group. the ios dev and manager are sweet looking girl snakes. ios girl is the meek snake and pm is the wicked snake. once i discussed with ios girl about how we need to rush every morning at 8 am to reach office as our standup is at 10. i told her that i would raise this matter in standup and when i did, she was just mum as fuck. didn't even voted a fucking yes when the boss said "ok let's have a vote on it" . i mean man what the fuck are your scared of? the boss won't kill you bitch for clocking 30 mins late
4. the other snake is pm. i am pretty sure she was one of the people for which that leave was not showing and she informed the boss's boss. day before that i told her jokingly that once i leave the office, I won't be opening my laptop and since today it was decided that tomorrow is the holiday, I am unreachable and therefore enjoying the vacay due to lack of latest info.
the bitch fucking whatsapped me to say that she got a call from boss that tomorrow's a working day. it would have been the perfect fucking leave.
I am pretty sure a lot of people are hating me for leaving so early too. i oeave at 5pm , as i have to be at gym by 7. also 1 minute past 5 and i would be travelling in a jam packed metro, so yeah, no thanks. but this bitch is definitely telling my boss about this.
5 finally the biggest snake is this *cough-cough* "sr" android guy. dude's code is so shittu and hacky, i can sense that he didn't tried to understand the class and just added a function at any place he felt fit. he also is a schemy bitch, as he has somehow convinced noss to let him wotk just 1/5 days in wfo.
but i didn't cared about him much until now. yesterday i sent a link regarding latest Android dev update in the official channel as a fun read, and his reply was "probably should have seen theeynote yesterday" bitch it wasn't even mentioned in that keynote! i just checked its summary after his message, but then it was too late to retaliate.
and now that i see, he always tries to be smug and cool. not that i care, roast me all you want in front of your crush, I won't mind, but if you're trying to show people that am not an able dev, then buckle up bitch, either you or me are counting last breaths.3 -
It seems that my barometer for whether I would stay long in a company is roughly 1.5 years. Because apparently that's how long it takes to gauge if:
(a) The work I'm doing is fulfilling or self-satisfying
(b) My colleagues make work a fun and challenging experience
(c) My bosses are people I can be proud to work for.
Right now, the tally thus far:
(a) The work is half crap, supporting old code (fuck Swig and Architect, by the way) or fixing bugs on old projects. New projects are always mismanaged, and I mean ALWAYS (let's do Agile and create tickets but hey the requirements are still in progress so do start anyway and we'll file everything as bug tickets until they're done)
(b) I'm sure it's an effect of going remote working for the last few months, but I'm feeling detached from my team. It's fine I guess.
(c) My manager is okay, he's a good guy who listens and is also technical so we get along. But his boss (who oversees several teams. including ours) is a total prick who loves to insult people at their expense as a joke. He knows nobody's gonna talk smack back so he just does it without repercussions.
I'll probably see if I can move around internally to a different division since the pandemic makes it difficult to find work externally. I'm grateful I have a job, but I shouldn't have to feel like I owe the company for that at the cost of my personal happiness.
Just gotta #survive2020 I suppose. -
Dreaming of a challenging adventure and from sleeping in my very comfortable mint, had some coffee and tried some freshly-picked and good-to-go debian for fun, it was a great morning. Nice logo it has I feel so cool, what a good day to have, a blessing to try things let's sing some praises, hallelujah! But my friend debian's not so friendly even gave me a deadly look --It was a nightmare from installation to even shutting it down, so many versions to install, very limited explanation on internet and terminal doesn't work, crap it's 03:00 and I haven't slept for a while my eyes are shedding pure regret while I am looking for a way out. What is this, after all my training am I still too weak to handle this kind of power, or maybe my friend just need some more persuasion?