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 - "why not a vm"
-
Me - Lately, been working on Node.js, its fun.
Friend - Oh but it doesnt scale well, I hate that language.
Me - why do you think so? and its a VM, JS is the language.
Friend - Cos it doesnt scale, i heard from others.
Me - wut.
I fucking hate people who fucking blindly hate a technology / programming language.
Motherfuck, whats with these idiots blindly hating languages?
Every lang has its own use cases, why cant these twats understand that.
You use a tech as per needs, its not a fucking make-up.7 -
Damn, I'm an idiot.
I was wondering why I could not set up a VM with Arch-Linux for 2 days only to discover now that I stopped the torrent for the ISO at 84%4 -
3 rants for the price of 1, isn't that a great deal!
1. HP, you braindead fucking morons!!!
So recently I disassembled this HP laptop of mine to unfuck it at the hardware level. Some issues with the hinge that I had to solve. So I had to disassemble not only the bottom of the laptop but also the display panel itself. Turns out that HP - being the certified enganeers they are - made the following fuckups, with probably many more that I didn't even notice yet.
- They used fucking glue to ensure that the bottom of the display frame stays connected to the panel. Cheap solution to what should've been "MAKE A FUCKING DECENT FRAME?!" but a royal pain in the ass to disassemble. Luckily I was careful and didn't damage the panel, but the chance of that happening was most certainly nonzero.
- They connected the ribbon cables for the keyboard in such a way that you have to reach all the way into the spacing between the keyboard and the motherboard to connect the bloody things. And some extra spacing on the ribbon cables to enable servicing with some room for actually connecting the bloody things easily.. as Carlos Mantos would say it - M-m-M, nonoNO!!!
- Oh and let's not forget an old flaw that I noticed ages ago in this turd. The CPU goes straight to 70°C during boot-up but turning on the fan.. again, M-m-M, nonoNO!!! Let's just get the bloody thing to overheat, freeze completely and force the user to power cycle the machine, right? That's gonna be a great way to make them satisfied, RIGHT?! NO MOTHERFUCKERS, AND I WILL DISCONNECT THE DATA LINES OF THIS FUCKING THING TO MAKE IT SPIN ALL THE TIME, AS IT SHOULD!!! Certified fucking braindead abominations of engineers!!!
Oh and not only that, this laptop is outperformed by a Raspberry Pi 3B in performance, thermals, price and product quality.. A FUCKING SINGLE BOARD COMPUTER!!! Isn't that a great joke. Someone here mentioned earlier that HP and Acer seem to have been competing for a long time to make the shittiest products possible, and boy they fucking do. If there's anything that makes both of those shitcompanies remarkable, that'd be it.
2. If I want to conduct a pentest, I don't want to have to relearn the bloody tool!
Recently I did a Burp Suite test to see how the devRant web app logs in, but due to my Burp Suite being the community edition, I couldn't save it. Fucking amazing, thanks PortSwigger! And I couldn't recreate the results anymore due to what I think is a change in the web app. But I'll get back to that later.
So I fired up bettercap (which works at lower network layers and can conduct ARP poisoning and DNS cache poisoning) with the intent to ARP poison my phone and get the results straight from the devRant Android app. I haven't used this tool since around 2017 due to the fact that I kinda lost interest in offensive security. When I fired it up again a few days ago in my PTbox (which is a VM somewhere else on the network) and today again in my newly recovered HP laptop, I noticed that both hosts now have an updated version of bettercap, in which the options completely changed. It's now got different command-line switches and some interactive mode. Needless to say, I have no idea how to use this bloody thing anymore and don't feel like learning it all over again for a single test. Maybe this is why users often dislike changes to the UI, and why some sysadmins refrain from updating their servers? When you have users of any kind, you should at all times honor their installations, give them time to change their individual configurations - tell them that they should! - in other words give them a grace time, and allow for backwards compatibility for as long as feasible.
3. devRant web app!!
As mentioned earlier I tried to scrape the web app's login flow with Burp Suite but every time that I try to log in with its proxy enabled, it doesn't open the login form but instead just makes a GET request to /feed/top/month?login=1 without ever allowing me to actually log in. This happens in both Chromium and Firefox, in Windows and Arch Linux. Clearly this is a change to the web app, and a very undesirable one. Especially considering that the login flow for the API isn't documented anywhere as far as I know.
So, can this update to the web app be rolled back, merged back to an older version of that login flow or can I at least know how I'm supposed to log in to this API in order to be able to start developing my own client?6 -
Boy, this Monday mornig was crazy...
At 7 am, as I just left my flat, I received an ultra urgent email from the CEO of a company we exchanged the fileserver for, that the network shares are not available.
I instantly turned around, went back to my flat, fired up my HAL9000 supercomputer and connected remotely.
4 levels deep (PC => VPN => Remotedesktop => vSphere Client => VM) I felt like I was in the movie Inception and tried to figure out what happened.
I don't know why, but in the logs it said that the fileserver VM was down since 4am. Holy sithlord... why?
After restarting and the usual problems with Windows Network Names, everything was back online.
My special thanks go to Mr. Coffee, who is always a great companion during monday mornings, Mr. VPN, the great fellow who invented the VPN and last but not least "The Internet" for connecting me to a world of binary, where every idea finds a listener and where Ajit Pai can be memed without concequences.
FUCK YOU Ajit. Harlem Shake is so 2013.2 -
Worst WTF dev experience? The login process from hell to a well-fortified dev environment at a client's site.
I assume a noob admin found a list of security tips and just went like "all of the above!".
You boot a Linux VM, necessary to connect to their VPN. Why necessary? Because 1) their VPN is so restrictive it has no internet access 2) the VPN connection prevents *your local PC* from accessing the internet as well. Coworkers have been seen bringing in their private laptops just to be able to google stuff.
So you connect via Cisco AnyConnect proprietary bullshit. A standard VPN client won't work. Their system sends you a one-time key via SMS as your password.
Once on their VPN, you start a remote desktop session to their internal "hopping server", which is a Windows server. After logging in with your Windows user credentials, you start a Windows Remote Desktop session *on that hopping server* to *another* Windows server, where you login with yet another set of Windows user credentials. For all these logins you have 30 seconds, otherwise back to step 1.
On that server you open a browser to access their JIRA, GitLab, etc or SSH into the actual dev machines - which AGAIN need yet another set of credentials.
So in total: VM -> VPN + RDP inside VM -> RDP #2 -> Browser/SSH/... -> Final system to work on
Input lag of one to multiple seconds. It was fucking unusable.
Now, the servers were very disconnect-happy to prevent anything "fishy" going on. Sitting at my desk at my company, connected to my company's wifi, was apparently fishy enough to kick me out every 5 to 20 minutes. And that meant starting from step 1 inside the VM again. So, never forget to plugin your network cable.
There's a special place in hell for this admin. And if there isn't, I'll PERSONALLY make the devil create one. Even now that I'm not even working on this any more.8 -
Well, some time in the future, i will have to sit a computer science exam with C#. It can't be that bad, right?
Wrong.
To start off, Visual Studio 2013. Why the fuck someone would use this pile of garbage in 2018. I have no fucking clue why any semi-competent IT department would decide to skip TWO fucking releases of the software and decide, that it's okay to just roll with it. It's okay to not have any updates. It's okay to just no care at all.
I literally brought in my laptop with a VM installed since Visual Studio 2017 is really superior to the crap from 5 years ago just to do my coursework most lessons.
-------
Second issue, you know thoes desks where the monitor is literally under the desk and you get a small little window to see the monitor? Yeah, well I will have to take my proper exam in one of these all over the fucking room. Pic related.
Today we had a mini mock - - it went something like this:
- There was glare from the glsss on the desk because of the lights in the room and literally the monitor itself.
- The glass was beyond fucking pig filthy.
- There was neck pain from my back because i was constantly looking down and bending over the see the screen.
- There was eye strain because the document given to us was a tiny piece of paper with tiny writing and the monitor was far away and the paper was close i couldn't focus my eyes.
- Literally every desk was as bad as the next.
- I did fuck all work because i just couldn't focus because of the things above.
You can tell how great that felt.
If i was in a room with a man (or if it was a woman, let's just pretend she has balls), who was the creator of the room i just described, Hitler, my College's IT staff and other really bad people while having infinite ammo, i would continuously shoot the creator in the balls while not giving a shit about anything else.
Forever.
Until heat death.
Thanks for reading.23 -
God damn fucking Windows bullshit.
Why is the fuck does Microsoft HATE its users?
Latest updates, and no fuck Windows 11, completely BREAKS all of my WSL environments.
Home directories are gone, or the environments are corrupt and won't even run.
99% of the issues these dense shit-fucks cause are because they RaNdOmLy reboot for their dumbass updates instead of scheduling them with the end user. During these rebots, do you thing they wait for everything to shut down?
HELL NO!
They just shut that shit down like they fucking own it. Editors? Gone. Browsers? Gone. WSL Consoles? Gone. Docker containers? Gone. IEdge? Hey, we have great news, we made IE your default browser again! BTW, your upgrade to Windows 11 is free until we force you to upgrade!
I'm so fed up with it.....so fucking tired of it...
The only reason why I even use WSL these days is to ssh into my Linux devices or run some quick dev tests in containers. Why not use PuTTY for SSH? Because it fucking SUCKS that's why.
I'm feeling so many emotions right now over bullshit that shouldn't even be happening. I'm literally at the point that I'm just going to install Linux on this device and just create a Windows VM on one of my hosts so I can still do "work" things that involve leadership.19 -
I fucking hate the Safari browser to death.
This piece of disk space waste is 50% of the reason why I have to spend hours to find out what the fuck is incorrectly displaying or not working on W.I.P. websites.
The other 50% is Edge, IE <=11 and Firefucks.
Just for piss smelling Safari, I need to either run a VM with Crapple OS X for debugging or borrow a Crapbook from $randomPerson.
Is it fucking not possible to compile Safari blowser to run on Linux or Winblows?
Eventhough I'm disgusted about Google and its privacy and data mining policies, Chrome is the most decent browser there is on the whole digital world. It only happens extremely rarely that something is not working/displaying as expected during development.
Most browser developers seem to be useless pubes eaters and like to shower with curd soap.13 -
Oh fucking Huawei.
Fuck you.
Inventory:
- Honor 6x (BLN-L22C675)
- Has EMUI4.1 Marshmallow
- Cousin brother 'A' (has bricking XP!)
- Uncle 'K'
- Has Mac with Windows VM
Goal:
- Stock as LineageOS / AOSP
Procedure (fucking seriously):
- Find XDA link to root H6X
- Go to Huawei page and fill out form
- Receive and use bootloader code
- Find latest TWRP
- Flash latest TWRP
- TWRP not working? Bootloops
- XDA search "H6X boot to recovery"
- Find and try modded TWRP
- TWRP fails, no bootloop
- Find & flash TWRP 3.1.0
- Yay! TWRP works
- Find and download LineageOS and SuperSU
- Flash via TWRP
- Yay! Success.
- Attempt boot
- Boot fails. No idea why
- Go back to TWRP
- TWRP gives shitload of errors
"cannot mount /data, storage etc."
- Feel fucked up
- Notice that userdata partition exists,
but FSTAB doesn't take
- Remembers SuperSU modded boot
image and FSTABS!
- Fuck SuperSU
- Attempt to mod boot image
- Doesn't work (modded successfully
but no change)
- Discover Huawei DLOAD
Installer for "UPDATE.APP" OTAs
Note: Each full OTA is 2+ GB zipped
- Find, download, fail on 4+ OTAs
- Discover "UPDATE.APP Extractor"
Runs on Windows
Note: UPDATE.APP custom format
Different per H6X model
- Uses 'K''s VM to test
- My H6X model does not have
a predefined format
- Process to get format requires
TWRP, which is not working
- FAIL HERE
- Discover "Firmware Finder"
Windows app to find Huawei
firmwares
- Tries 'K''s VM
- Fails with 1 OTA
- Downloads another firmware ZIP
- Unzips and tries to use OTA
- Works?!
- Boots successfully?!
- Seems to have EMUI 5.0 Nougat
- Downloads, flashes TWRP
- TWRP not working AGAIN?
- Go back to XDA page
- Find that TWRP on EMUI 5 - NO
- Find rollbacks for EMUI5 -> EMUI4
- Test, fail 2-4 times (Massive OTAs)
- DLOAD accepts this one?!!!
- I HAVE ORIG AGAIN!!!
- Re-unlock and reflash TWRP
- Realise that ROMs aren't working on
EMUI 4.1; Find TWRPs for EMUI5
- Find and fail with 2-3 OTAs
Note: Had removed old OTAs for
space on Chromebook (32GB)
- In anger, flash one with TWRP
instead of DLOAD (which checks
compatability)
- Works! Same wasn't working with
DLOAD
- Find and flash a custom TWRP
as old one still exists (not wiped in
flash)
- Try flashing LineageOS
- LineageOS stuck in boot
- Try flashing AOSP
- Same
- Try flashing Resurruction Remix
- Same
- Realise that need stock EMUI5
vendor
- Realise that the firmware I installed
wasn't for my device so not working
- FUCK NO MORE LARGE DLs
- Try another custom TWRP
- Begin getting '/cust mounting' errs
- Try reflashing EMUI5 with TWRP
- Doesn't work
- Try DLOADing EMUI5
- Like before, incompatability
- DLOAD EMUI4
- Reunlock and reflash TWRP
- WRITE THIS AS A BREAK
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRRRGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHH7 -
On my personal journey to better privacy!
Wanted to change to Qubes, but since I wind down with games, that won't happen sadly and it seems windows still doesn't support proper gpu passthrough either, so might eventually change to linux host and windows guest or create a VM I use for everything else that isn't gaming, since I still really love the idea of having a snapshot backup system.
So since that isn't quite in my timeframe right now though: first move was to move to firefox, already done the change on mobile (love having dark reader and ublock on mobile!), now setting it all up on desktop, pleasant surprise was for sure that firefox finally seems to have chromes devtools pretty much mirrored, even the mobile suite of tools.
Loading of pages is also finally fast and much snappier than chrome from the first testing I could do (on desktop, on mobile it still kind of sucks in comparison, but I can deal with that).
Please suggest me all sort of privacy tools you got, especially with firefox in mind, but also host tools, be it windows or linux (e.g. some sort of traffic obfuscator that visits random pages that are SFW but make automatic traffic filtering hard, could probably make my own, but if there's something like that already, why not), I'll save all I can use.44 -
I had spent the last year working on a online store power by woocommerce with over 100k products from various suppliers. This online store utilized a custom API that would take the various formats that suppliers offer their inventory in and made them consistent. Now everything was going swimmingly initially, but then I began adding more and more products using a plug-in called WP all import. I reached around 100k products and the site would take up to an entire minute to load sometimes timing out. I got desperate so I installed several caching plugins, but to no avail this did not help me. The site was originally only supposed to take three to four months but ended up taking an entire year. Then, just yesterday I found out what went wrong and why this woocommerce website with all of these optimizations was still taking anywhere from 60 to 90 seconds to load, or just timing out entirely. I had initially thought that I needed a beefier server so I moved it to a high CPU digitalocean VM. While this did help a little bit, the site was still very slow and now I had very high CPU usage RAM usage and high disk IO. I was seriously stumped the Apache process was using a high amount of CPU and IO along with MYSQL as well. It wasn't until I started digging deeper into the database that I actually found out what the issue was. As I was loading the site I would run 'show process list' in the SQL terminal, I began to notice a very significant load time for one of the tables, so I went to go and check it out. What I did was I ran a select all query on that particular table just to see how full it was and SQL returned a error saying that I had exceeded the maximum packet size. So I was like okay what the fuck...
So I exited my SQL and re-entered it this time with a higher packet size. I ran a query that would count how many rows were in this particular table and the number came out to being in the millions. I was surprised, and what's worse is that this table belong to a plugin that I had attempted to use early in the development process to cache the site. The plugin was deactivated but apparently it had left PHP files within the wp content directory outside of the actual plugin directory, so it's still executing scripts even though the plugin itself was disabled. Basically every time I would change anything on the site, it would recache the whole thing, and it didn't delete any old records. So 100k+ products caching on saves with no garbage collection... You do the math, it's gonna be a heavy ass database. Not only that but it was serialized data, so when it did pull this metric shit ton of spaghetti from the database, PHP then had to deserialize it. Hence the high ass CPU load. I had caching enabled on the MySQL end of things so that ate the ram. I was really desperate to get this thing running.
Honest to God the main reason why this website took so long was because the load times made it miserable to work on. I just thought that the hardware that I had the site on was inadequate. I had initially started the development on a small Linux VM which apparently wasn't enough, which is why I moved it to digitalocean which also seemed to not be enough, so from there I moved to a dedicated server which still didn't seem to be enough. I was probably a few more 60-second wait times or timeouts from recommending a server cluster to my client who I know would not be willing to purchase it. The client who I promised this site to have completed in 3 months and has waited a year. Seriously, I would tell people the struggles that I would go through with this particular site and they would just tell me to just drop the site; just take the money, just take the loss. I refused to, this was really the only thing that was kicking my ass. I present myself as this high-and-mighty developer like I'm just really good at what I do but then I have this WordPress site that's just beating the shit out of me for a year. It was a very big learning experience and it was also very humbling as well, it made me realize that I really don't know as much as I think I might. It was evidence that there is still so much more to learn out there, I did learn a lot from that experience especially about optimizing websites the different types of methods to do that particular lonely on the server side and I'll be able to utilize this knowledge in the future.
I guess the moral of the story is, never really give up. Ultimately things might get so bad that you're running on hopes and dreams. Those experiences are generally the most humbling. Now I can finally present the site that I am basically a year late on to the client who will be so happy that I did not give up on the project entirely. I'll have experienced this feeling of pure euphoria, and help the small business significantly grow their revenue. Helping others is very fulfilling for me, even at my own expense.
Anyways, gonna stop ranting. Running out of characters. If you're still here... Ty for reading :')7 -
Today I'm ranting about Windows. No, it's not "WiNdOwS sUcKs!", it's more like "But why!?"
See, I'm an IT guy for the year, and in my office they use Windows. Now once upon a time, they had Active Directory and all that (well, actually, they still do) but then they got some new computers running Windows 10, and for some reason they just couldn't join them to the domain!
Why can't they, you ask? Well, Microsoft only allows Win 10 Pro and up to join a Domain, and since these computers came with Win 10 Home, that wasn't possible.
Long story short, I now have some 30 computers that need to be upgraded (possibly from 7) to Win 10 Pro, and joined to the Domain.
Thing is, I would like to do that all in one go, so I look into how to automatically setup Windows.
"Ah! Got it, provisioning packages!"
Lest you think they work let me spare you now: they don't. Just like real computers where everything is different, provisioning packages failed to work twice, and after wasting about a week trying to make it work, I gave up.
So now I realized that I need to try a different method, a custom windows image. Issue is, I've got no clue how to make one. See, microsoft decided to go all in on the provisioning packages thing (they do have advantages in certain use cases), and seemed to decide that making custom images was no longer necessary, so they documentation was nearly impossible to find.
But after a lot of searching, I figured out how to do it:
1. Install Windows in a VM.
2. Put it in audit mode.
3. Install your stuff.
4. Create an unattend.xml file with certain customizations.
5. Put the unattend in Windows\System32\Sysprep
6. Generalize the image.
7. Boot WinPE.
8. Open the console.
9. Capture the image.
10. Wait an hour or two.
11. Done!
I'm over simplifying, it was a huge PITA, and yet there were still issues.
Maybe another time I'll talk about those.22 -
Oh look. The monitoring channel is in flames, smartphone is vibrating so hard it's having a seizure.
Hm. Nah it's fine. Not my...
Damn it. Incoming call. -.-
I'm actually on vacation (more like you need to trim down overtime before management get's angry).
They decided to test the new hardware / os stack I set up in the last weeks. I'd actually be happy about it If I wasn't on vacation and would be part in something that I invested a lot of time...
Well now I am. Guess what. It's running too good.
And that's not a joke. It's partly due to an upgrade in infrastructure (got rid of some last remaining 1 Gbps networks)… but also because I changed quite a lot on the OS / VM side plus we changed from XEN to Proxmox... With major tweaks, too.
The whole stack can now handle peak traffic where it would choke before, and even go beyond the old peak traffic.
Enough of introduction, the simple reason why shit burned down was because they tried out the current development branch and let it ran.
The development branch had an currently unfinished ratelimiter framework, since I didn't had time for an full burn in and didn't knew what the maxima / limits were. And since I hadn't finished that, I didn't finish the traffic shaping either.
Hm. Guess it's not good when you let a bunch of heavy parallelized data generators / analyzers run for free....
In the end, we simply shotgunned the docker development machines, because thanks to network congestion / retransmissions and feedback, they were not really cooperative via network / REST.
But hey: To infinity and beyond. XDrant darling i grilled the network it was just a test dumb ways to die never ask the guy who invented it oops2 -
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 -
ŁEŊ@#fmęgwjnfčuÆ®ŊÆŁEŊ3ŋ4ħ€3łæŋ€4æł4ħæ4€ħ9æŋ98ł3ħŋ98↓łħ€9“→↓ŋħł93ŋ@38ŁŊ89ÆŁ4ĦŊ08ÆŁĦ093Đ3@09ŋæłęb„guwahęgawęgÆŁ$ĦÆEı$Ŋ(ÆŁ#Ŋ↑(łæ49↓ŋw
AAAAAAAAAAARRGGHHHHH!!!!!!!!!!!!!!!!!!!!!!!
I'm gonna break this laptop in half if I will not get a break from Windows!
I'm running it in a VM and STILL this fucker gets on my nerves SO FUCKING HARD!!!
1. CPU% 100%. Laptop fans are spinning so hard it's ready to take off
2. My hands are on the laptop. THey are HOT from the heat from inside. Hell that's uncomfortable!
3. ctrl+shift+esc to see why is cpu% 100%. It's something called WMI Host something. Kill that mthrfckr!
4. Process respawns immediately and goes up to 100% again. I have already increased handles limitation for that service a few weeks ago. Like 20x more than it was before!
5. website in IE
6. does not seem to be responding
7. hit f5. Nothing happens
8. Hit refrech buttong on the toolbar. Nothing happens
9. Place cursor at the address bar and hit ENTER. Nothing happens.
Meanwhile my hands are burning.
WHAT THE FUCK!!!
What kind of idiotic system is that!! My asshole is a better OS than this piece of SHIT!
AAAARGHHHHHHHHHHHHHHH#@ŦŊæ¶đ@#ĸogęq j
I'm super pissed. Better keep a 30-40 meters distance from me so the things I throw at you would not hit your ballz!
Now that I come to think of it, the only times I am THAT pissed is the times I am using windows. Srsly.8 -
Kinda all other devs translate incompetent with a lack of knowledge
i would go with not able to recognize his lack of knowledge
Story 1:
once we had a developer, whom was given the task to try out a REST/Json API using Java
after a week he presented his solution,
2 Classes with actual code and a micro-framework for parsing and generating JSON
so i asked him, why he didn't use a framework like jackson or gson, while this presentation he felt pretty offended by this question
a couple of weeks later i met him and he was full of thanks for me, because i showed him, that there are frameworks like that, and even said sorry for feeling offended
- no incompentence here -
Story 2:
once i had a lead dev, who was so self-confident, he refactored (for no reason but refactoring itself) half the app and commited without trying to compile/run test
but not only once, but on a regular basis
as you may imagine, he broke the application multiple times and blamed the other devs
- incompentence warning-
Story 3:
once i had a dev, which wanted to stay up with the latest versions of his libraries
npm update && commit without trying to compile/testing multiple times
- incompentence warning-
Story 4:
once i had a cto
* thought email-marketing is cutting edge
* removed test-systems completely to reduce costs
* liked wordpress
* sets vm to sleep without letting anyone know
- i guess incompetent alert -2 -
Despite common sense, I think technology is not making our lives easier. It's just build chaos on top of chaos.
Take server-side programming for instance.
First you have to find someone to host your thing, or a PaaS provider. Then you have to figure out how much RAM and storage you need, which OS you're going to use. And then there's Docker (which will run on top of a VM on AWS or GCP anyway, making even less sense). And then there's the server technology: nginx, Apache (and many many more; if, that is, you're using a server at all). And then there are firewalls, proxies, SSL. And then you go back to the start, because you have to check if your hosting provider will support the OS or Docker or your server. (I smell infinite recursion here.)
Each of these moving parts come with their own can of worms in terms of configuration and security. A whole bible to read if you want to have the slightest clue about what you're doing.
And then there's the programming language to use and its accompanying frameworks. Can they replace the server technology? Should you? Will they conflict with each other and open yet another backdoor into your system? Is it supported by your hosting provider? (Did I mention an infinite recursion somewhere?)
And then there's the database. Does it have a port to the language/framework of your choosing? Why does it expose an web interface? Is it supposed to replace your server? And why are its security features optional again? (Just so I have to test both the insecure and the secure environments?)
And you haven't written a single line of code yet, mind you.4 -
I once agreed to maintain and develop an application used in a different section of the school to keep inventory and make sure everything is where it is supposed to be.
At first there was enthusiasm, together with 2 of my classmates we agreed and git clone-d the .NET application that now graduated students built and maintained for the past few years. What could go wrong right?!
It became clear that the original students that worked on it followed an older curriculum, meaning they still got taught .NET instead of the core variant that we get now, not only that but it also seemed that they either did not fully grasp the Clean/Onion architecture or didn't get it in class since there were infrastructure components in the 'Domain' project of the solution. Think of 2 DBContexts in the domain model, yep.
One of us bailed in the first week, the other one and I felt bad for the people using the app so we went on and tried to work on the first bugs that were described in a document. One of these bugs was 'whenever I filter on something in the list, everybody gets to see that filter on their screen instead of only me'. Woah that's weird! Let's see how they put that together!
Oh god, they are using a _static_ variable to store filters, no wonder that it doesn't work properly. Ever heard of sessions?!
Second bug: Sometimes people can't create an account when we sign them up from the admin panel. Alright that is weird, let's figure that one out! Wait a second it seems to work in development? What's this about.
Oh wait I can't create an account on production either? Oh that's weird, wait a second... Why do I have to put my e-mail in a form that was sent to me through e-mail? Why is my address not filled in already? OOH, if someone types in the wrong e-mail address (which is easy since our school has 4 variants of the same f*cking e-mail address) it won't work since it can't recognize the user! Brilliant! Remove e-mail input box and make a token/queryparam determine the user account.
Ah that seems good, it's a mess but it seems a tiny bit better now, great! We're making progress and some sweet buck.
Next bug, trillions of 50x errors on random pages, that's a weird one.
Hm everything works in development, that's odd. Is the production data corrupted?
DID I MENTION that in order to get into the system in development we have to load in a f*cking production database backup ON OUR DEVELOPMENT MACHINE and then ask one of the users' password to login to it and create an account for ourselves? Seeding? What's that, right?!
Anyway, back to bug fixing. I e-mail the the people responsible for the app and get a production admin account, oh I also can't ssh into it because of policies so I have to do everything over e-mail and figure out what's causing the errors. I somehow also wonder if they have any kind of virtualization in place, giving students a VM to do that stuff in doesn't seem so weird does it ? Even with school policies?
Oh btw, 'deploying' means sending a .zip file to a guy in another building and telling him how to configure it, apparently this resulted in a missing folder that the application needed to work and couldn't make on its own. This after 2 weeks of e-mailing back and forth.
After 3 months i quit out of despair and sadness, and due to the fact that I just couldn't do it anymore. I separated everything into logical subprojects and let the last guy handle it, he was OK with that and understood why I left.
Luckily, around that time I already had an actual job at a software development company :)3 -
My friend recently tried to install apt on fedora 🤦♂️
Some how this created a zombie process And used a ton of the ram and the ram usage leaked out of the VM and into the host server
And I had to explain to him why a package manager meant for a system with dpkg will not work on one that uses rpm12 -
I used to work with a teacher in my last uni year.
The job consisted on doing a kinda-like management system for a business. It all began kinda "right", we agreed upon a price for 6 months of my work (a very lowball price, but it was just right because I was learning stuff that we were going to be using).
Fast-forward first six months, all I do is code frontend, mockup screens and whatsoever because this "business" hadn't give us proper requirements (Yeah, I told him to ask for them, but nothing came through).
So I was like well, I'll keep working in this project because I really want to finish it. Sidenote: I was doing all the "hard work", he didn't know how to code, and he calls himself a teacher... wtf).
Months go by, and a year goes round, in between these months, he spoke to me, that he wanted me that we kept working together, that we could renegotiate the payment (I asked him to give me my payment once the job was done). I agreed, but my uni residence period was coming along and I got an oportunity to go abroad to another country.
So there I was, in the need of money to buy my passport, plane tickets and other stuff, so I asked him for the payment.
Needs to be noted, that the last 6 months work was me doing tutorials on how to fucking use Linux, how to use PostgreSQL, how to fucking use CSS! He told me he would pay me extra for it.
The day came, and I received my payment... the exact amount we talked a year ago, I was like "Seriously dude?", but well, I needed the money and I didn't have time to argue, so we talked a little bit about me helping him and I told him "As long as I have time, I'll help, but remember that I'm going abroad to work for a small startup, so maybe I'll be up to my head with work" he agreed, we nod and then I left.
First week abroad came in and I was doing a shit-ton of stuff, then his first message comes around "Hey, I need more tutorials! ASAP! Before 6PM"
What.The.Fuck. I told you, son of a bitch, that I wouldn't be able to do them until weekend.. and it was monday!
So I ignored it, weeks went throught and my "angry mood" was fading away so I said to myself "Well, it's time to pick up that stuff again", I open Slack and I find a week old message with a document attached, it was a "letter", I just skimmed by it and read some keywords "deceptioned... failed me.."
Sure dude? Was I the failure? Becase, as far as I remember, you were the fucktard that didn't know how to fucking install a VM!
A week went by, and then randomly a friend of mine talks to me through Facebook:
E: Hey, how are you?
M: I'm fine, what's up?
E: What did you do to TEACHER?
M: Nothing, <explains all situation>
E: Well, It seems weird, that's why I wanted to talk with you, I believe in you, because I know you well, but TEACHER it's thrashing shit about you with all his students on all of his classes
M: Seriously?
E: Yeah, he's saying that you are a failure, irresponsible, that you scammed him
That moment, I for sure, lost all moral responsibility with him and thought to myself "He can go fuck himself with my master branch on his ass"
So when I got back to my country, I had to go around in school, avoiding him, not because I was ashamed nor anything by the way, just because I knew that If i ever had the disgrace to meet him face to face, my fists would be deep into his nose before he could say "Hey".
Moral of the story:
If you overheard that a teacher has a bad rep, not by one, nor two, but more than +100 people, maybe it's true.
Good thing my friends and others know me well and I didn't have repercutions on my social status, I'm just the guy that "fucked up TEACHER because I had the right and way to do it"4 -
I think I made someone angry, then sad, then depressed.
I usually shrink a VM before archiving them, to have a backup snapshot as a template. So Workflow: prepare, test, shrink, backup -> template, document.
Shrinking means... Resetting root user to /etc/skel, deleting history, deleting caches, deleting logs, zeroing out free HD space, shutdown.
Coworker wanted to do prep a VM for docker (stuff he's experienced with, not me) so we can mass rollout the template for migration after I converted his steps into ansible or the template.
I gave him SSH access, explained the usual stuff and explained in detail the shrinking part (which is a script that must be explicitly called and has a confirmation dialog).
Weeeeellll. Then I had a lil meeting, then the postman came, then someone called.
I had... Around 30 private messages afterwards...
- it took him ~ 15 minutes to figure out that the APT cache was removed, so searching won't work
- setting up APT lists by copy pasta is hard as root when sudo is missing....
- seems like he only uses aliases, as root is a default skel, there were no aliases he has in his "private home"
- Well... VIM was missing, as I hate VIM (personal preferences xD)... Which made him cry.
- He somehow achieved to get docker working as "it should" (read: working like he expects it, but that's not my beer).
While reading all this -sometimes very whiney- crap, I went to the fridge and got a beer.
The last part was golden.
He explicitly called the shrink script.
And guess what, after a reboot... History was gone.
And the last message said:
Why did the script delete the history? How should I write the documentation? I dunno what I did!
*sigh* I expected the worse, got the worse and a good laugh in the end.
Guess I'll be babysitting tomorrow someone who's clearly unable to think for himself and / or listen....
Yay... 4h plus phone calls. *cries internally*1 -
Saturday 9.00 AM. I was sleeping, my colleague (on holiday) sent me a text: "We got a problem on our system, probably we ran out of space". I checked the log and found out that several cron jobs failed due to not enough space on the disk. I started deleting some unnecessary logs (we're paranoid) and ended up to squeeze the vm like a lemon to save some space. Sent an email to the sysadmin, "We got to add more space ASAP, users are getting 500 errror for almost everything". Silence. I thought to myself: "Until monday we're safe..". I did a df (96%) and sent a screen to the sysadmin, just to be sure that we understood each other. Finally monday comes, nobody worries about the issue. At noon I literally takled the guy of IT dept. "Yeah, we read your email. I think the sysadmin didn't take you seriously". "Why? Which part of 'we're running out of space' isn't serious?!!!". "He just told me that we have unlimited space on that vm". Unlimited space...sure.... "Right.....the disk is at 96%, buuuuut if he said so No news to worry. Don't call me if everything burns. Have a good day!!!"4
-
Fuckin RAZER. Part 2. "SOLVED!!!"
This will be both a rant and a shout out.
Firslty, fuck RAZER. I don't who in the actual fuck makes the software for these peripherals, but while the hardware is decent the entire software team should be tarred and fucking feathered. Just beaten bloody with a rubber hose. And then publicly paraded and shamed through whatever backwater shithole they call home all while their mothers look on crying their eyes out.
Anyway, some of you may be familiar with my Razer peripherals on Mac saga.
To refresh your memories... I got 4 razer devices for my b-day from my wife. I was very stoked. They work great on Windows 10. They work for shit on Mac and the software to manage their colors, Synergy 3, is not available on Mac, and the version that is, Synergy 2, basically does not work and hasn't worked for like two years and would only work for two of these peripherals anyway and it would appear Razer does not give a shit. Fuck.
Ok, we caught up? Good.
In our last episode I ran up a full Windows 10 VM AND a full Debian VM just so I could jumpstart these god damn peripherals into a solid color.
Why so much work?
Because by default they rotate the color spectum fucking SEPARATELY... so it's just a god awful mess of rando RGB.
So, by running Synergy 3 on the Windows side, and then an open source package called Poloychromatic on the Debian side I was able to patch together preferences through the two programs... and I found quitting out of them hard kept the keyboard, mouse, mousemat, and dock color settings until the next reboot while working on my Mac.
For WEEKS I WENT THROUGH THIS FUCKING PROCESS AT EVERY REBOOT.
Reboot. Run up Windows 10 VM, update Synergy 3, log into Synergy 3, Open Synergy 3, Wait like 90 seconds, Synergy 3 finally fucking gets ahold of my mouse pad, mouse, and dock (not the keyboard).
Run up Debian VM (at least its fast), start polychromatic, set the keyboard solid color.
Then quit them both and my colors are set until reboot.. This is, for lack of a better turn of phrase, the most fucking ridiculous thing ever.
I had to do a 400 fucking megabyte update today for the Synergy 3 software that lives INSIDE my god damn VM. A VM only created in the first damn place to run synergy 3 and then fucking die. And it put me over the edge.
I committed to finding a better way this evening. I started looking into trying to port polychromatic to macOS my god damn self only to find this badass mother fucking kid Ken Chen wrote a whole god damn macOS package and put it up on GitHub.
Fuck fucking YEEEEEESSSS!!!
So thanks to Ken Chen, a student from Australia with 12 Github followers, who was single handedly able to write a better software product than the entire fucking team at SHIT FOR BRAINS fucking Razer.
https://github.com/1kc/razer-macos4 -
Hey Guys
A few Questions I have to decide soon, for tools I never used:
1- How do you guys keep information about several accounts and stuff? Must have some protection to not be easily accessible (started using Google Notepad and Evernote until I find better... don't really like them)
2- Firefox: Is there a way to store groups of open tabs?
Like I have one windows with 6 or 7 tabs for movies (youtube and such), other for general stuff with 5 or 6 tabs, other with Arduino shit, and I'm going to pick Vue soon and another language to build native apps and that will be a lot more tabs, It would be nice to close them all and open them all at will or something.
3 - What Is your favorite browser? I'm using Firefox, but there are so many new good ones... Like Brave browser with Tor incorporated, or Puffin for Android (which uses a VPN with their own server by default)
4 - For windows users, do you have any tools to help with workflow installed? which ones you use and why?
5 - What I'm using: Google Notepad + Evernote to save stuff, Windows 10 and Firefox, (Linux Mint in VM) and I just keep my shortcuts in folders... I don't use the Windows taskbar for a long while since its so full of shit.
6 - How do you do your backups? Right now I'm just putting my code and important stuff in Dropbox.
I'm an old school programmer... Stuck in 1990's Ideas and there is so muchhhh shit these days that I would prefer your opinions then just googling.
Guess that's enough for this post. Thank you guys28 -
Very eventful day, please see enclosed several smaller rants.
===================
My college's systems are shit and not only do they use HTTP for everything, even the stores and financial aid purchase system, they have homebrew JS shit for PGP site encryption (nifty...), but they exchange the PRIVATE KEYS instead of the public keys. Over HTTP. Not even HTTPS. Also if you log in more than 10 times in 24 hours it's supposed to lock you out of your account until you call... except it locks EVERYONE out. Found this out when on campus, trying to get my textbooks, when suddenly everyone had login lockouts because i'm a "paranoid bastard" and "afraid of idiot college students" for not telling a PUBLIC PC to remember the one password (enforced by password auto-sync across all their shit, not ideal, no) guarding my SUPER-SENSITIVE FINANCIAL AND ACADEMIC DATA... among the other hundreds of issues this college has. I now see why this college is the only one I can afford...
===================
Can't pass-through raw DVD drive access to VMs as VM managers crash when I try (yes, even QEMU...) so i've gotta install Windows on a shitty 80GB laptop HDD for literally one quick project. On the bright side, if my theory proves correct, you'll no longer need modchips for PS2s.
===================
Found a couple odd lines in my xscreensaver config:
GetViewPortIsFullOfLies:False
nice: 10
pointerHysteresis: 10
the first 2 I can't seem to figure out what do, and the last taught me a new word. Fun!
===================
that's it, it's over, why are you still here11 -
Work gave me a linux computer and asks to integrate an application that has no Linux support and wonder why it is going slower. The linux computer also has not enough RAM to develop comfortable on a VM
*sigh*6 -
Debugging an elusive database query problem. Attached to server process about 10 steps into the call stack trying to figure out why a a column value is not being properly cast. In comes Windows. You picked the most inappropriate time to restart for updates without asking me. Restart VM, authenticate with VPN, wait for 2FA, start up Visual Studio, enter credentials for the millionth time to authenticate with version control since the remember me checkbox doesn't work, open solution. Now where was I? Then Windows pops up a notification to inform me the updates couldn't be installed. The following comic strip comes to mind.
-
With a recent HAProxy update on our reverse proxy VM I decided to enable http/2, disable TLS 1.0 and drop support for non forward-secrecy ciphers.
Tested our sites in Chrome and Firefox, all was well, went to bed.
Next morning a medium-critical havock went loose. Our ERP system couldn't create tickets in our ticket system anymore, the ticket systems Outlook AddIn refused to connect, the mobile app we use to access our anti-spam appliance wouldn't connect although our internal blackboard app still connected over the same load balancer without any issues.
So i declared a 10min maintenance window and disabled HTTP/2, thinking that this was the culprit.
Nope. No dice.
Okay, i thought, enable TLS 1.0 again.
Suddenly the ticket system related stuff starts to work again.
So since both the ERP system and the AddIn run on .NET i dug through the .NET documentation and found out that for some fucking reason even in the newest .NET framework version (4.7.2) you have to explicitly enable TLS 1.1 and 1.2 or else you just get a 'socket reset' error. Why the fuck?!
Okay, now that i had the ticket system out of the way i enabled HTTP/2 and verified that everything still works.
It did, nice.
The anti-spam appliance app still did not work however, so i enabled one non-pfs cipher in the OpenSSL config and tested the app.
Behold, it worked.
I'm currently creating a ticket with them asking politely why the fuck their app has pfs-ciphers disabled.
And I thought disabling DEPRECEATED tech wouldn't be an issue... Wrong... -
If you've ever tried using Go plugins raise your hand.
If you've ever tried doing plugins in Go, raise your hand.
If you think that the following rant will be interesting, raise your hand.
If you raised your hand, press [Read More]:
This is a tale of pain and sorrow, the sorrow of discovering that what could be a wonderful feature is woefully incomplete, and won't be for a very long time...
Go plugins are a cool feature: dynamically load pre-compiled code, and interact with it in a useful and relatively performant way (e.g. for dynamically extending the capabilities of your program). So far it sounds great, I know right?
Now let me list off some issues (in order of me remembering them):
1. You can't unload them (due to some bs about dlopen), so you need to restart the application...
2. They bundle the stdlib like a regular Go binary, despite the fact that they're meant to be dynamic!
3. #2 wouldn't be so bad if they didn't also require identical versions of all dependencies in both binaries (meaning you'd need to vendor the dependencies, and also hope you are using the right Go version).
4. You need to use -trimpath or everything dies...
All in all, they are broken and no one is rushing to fix it (literally, the Go team said they aren't really supporting it currently...).
So what other options are there for making plugins in Go?
There's the Hashicorp method of using RPC, where you have two separate applications one the plugin, one the plugin server, and they communicate over RPC. I don't like it. Why? Because it feels like a hack, it's not really efficient and it carries a fear of a limitation that I don't like...
Then we come to a somewhat more clever approach: using Lua (or any other scripting language), it's well known, it's what everyone uses (at least in games...). But, it simply is too hard to use, all the Go Lua VMs I could find were simply too hard to set up...
Now we come to the most creative option I've seen yet: WASM. Now you ask "WASM!? But that's a web thing, how are you gonna make that work?" Indeed, my son, it is a web thing, but that doesn't mean I can't use it! Someone made a WASM VM for Go, and the pros are that you can use any WASM supporting language (i.e. any/all of them). Problem inefficient, PITA to use, and also suffers from the same issues that were preventing me from using Lua.
Enter Yaegi, a Go interpreter created by the same guys who made (and named) Traefik. Yes, you heard me right, an INTERPRETER (i.e. like python) so while it's not super performant (and possibly suffering from large inefficiency issues), it's very easy to set up, and it means that my plugins can still be written in Go (yay)! However, don't think this method doesn't have its own issues, there's still the problem of effectively abstracting different types of plugins without requiring too much boilerplate (a hard problem that I'm actively working on, commits coming soon). However, this still feels to be the best option.
As you can see, doing plugins in Go is a very hard problem. In the coming weeks (hopefully), I'm going to (attempt to at least) benchmark all the different options, as well as publish a library that should help make using Yaegi based plugins easier. All of this stuff will go (see what I did there 😉) in a nice blog post that better explains the issues and solutions. But until then I have some coding to do...
Have a good night(/day)!13 -
Long-time, no-rant.
I use Linux everywhere all the time. I'm not a huge gamer, but I like a few titles. Most run in Wine or can be made to run with effort in a VM. No biggie.
What I want to know from mobile/game devs is (sorry for ridiculously compound logic in non-lang):
IF you== gamedeveloper && you.haz({shitty}iOS_App) && you.haz({shitty}Android_App) &&
you.haz({shitty}WinXXX_App) && you.haz({shitty}MacOS_App):
THEN:
why(!you.haz({any}Linux_App))
return(excuse.shitty());
That. is. all. read on.3 -
yesterday I had to use a Windows VM.
Took me less than 5 minutes to remember why I'm no longer using it.
- I'm doing nothing; CPU is at 100%
- Laggy AF
- Windows Updates not only download, but also install themselves and restart my OS automatically
- right after restart it starts downloading and installing another set of updates (restarted my PC while I was away, I come back - all my work is gone. And this dumbass Windows has a popup "I want to install more updates. When should I restart?")
ooohhh the horrors4 -
Oh my, never was i triggered more. Of course i can only speak for my experience. I study software development as focus.
First off, the starting languages and or concepts you learn.
Why the fuck do they start with java and don't even really explain how instances actually work? Of course they don't. Because it would be way too fucken much for a semester to go over garbage collection, Instanciation of stuff, allocation in such an advanced system, etc..
How about starting with something not 50% managed by a vm?
Good ol' C. And now don't tell me thats a rough start. We all know about these subjects or exams where it's all about sorting people out. Who will be able to manage a whole bunch of shit or who should consider something else.
Yo dawg sick idea: how about sorting it via the will to achieve the skill of coding?
Nah but we make the exams around coding (by the fucking way done on paper, what the hell) such a fucking breeze, asking you how to convert hex do dec.
Meanwhile maths will make you cut yourself in a dark corner, after you nearly shot yourself because of some lame-ass business-subject.1 -
College broke my school VM by "accidentally" pushing a policy to just me that disables being able to start anything after logging in (no DWM or Explorer, either, so just login, then infinite abyss.) Fine, nothing I can't fix, i got around shit like this in middle school. Reboot... can't get to the school's webpage. No DNS...?
No.
Windows disabled all the network services. Why? Defender didn't start, is why. Why not? School broke it. Goddammit. Gotta fix that.
There, are we ready now? NO, OFFICE ATE SHIT. FUCK, LEMME REBOOT AGAIN...
How about now? Everything works? Cool, let's get some work done. Download assignment, and... file's busted. Redownload? Nope. One more try? Nothing.
I am going to flip my shit I swear to fuck -
Trying out the new version of fasm, I realize it's good, and conclude I should update my code to work with it as there's small incompatibilities with the syntax.
So, quick flat assembler lesson: the macro system is freaking nuts, but there are limitations on the old version.
One issue, for instance, is recursive macros aren't easily possible. By "easily" I mean without resorting to black magic, of course. Utilizing the arcane power of crack, I can automatically define the same macro multiple times, up to a maximum recursion depth. But it's a flimsy patch, on top of stupid, and also has limitations. New version fixes this.
Another problem is capturing lines of code. It's not impossible, again, but a pain in the ass that requires too much drug-addled wizardry to deal with. Also fixed in new version.
Why would you want to capture lines of code? Well, because I can do this, for instance:
macro parse line {
··match a =+ b , line \{
····add a,b;
··\}
};
You can process lines of code like this. The above is a trivial example that makes no fucking sense, but essentially the assembler allows you define your own syntax, and with sufficient patience, you can use this feature to develop absolutely super fucking humongous galactic unrolls, so it's a fantastic code emitter.
Anyway, the third major issue is `{}` curlies have to be escaped according to the nesting level as seen in the example; this is due to a parser limitation. [#] hashes and [`] backticks, which are used to concatenate and stringify tokens respectively, have to be escaped as well depending on the nesting level at which the token originates. This was also fixed.
There's other minor problems but that gives you sufficient context. What happens is the new version of fasm fixes all of these problems that were either annoying me, forcing me to write much more mystical code than I'd normally agree to, and in some rare cases even limiting me in what I could do...
But "limiting" needs to be contextualized as well: I understand fasm macros well enough to write a virtual machine with them. Wish I was kidding. I called it the Arcane 9 Machine, A9M for short. Here, bitch was the prototype for the VM my fucking compiler uses: https://github.com/Liebranca/forge/...
So how am I """limited""", then? You wouldn't understand. As much as I hate to say it, that which should immediately be called into question, you're gonna have to trust me. There are many further extravagant affronts to humanity that I yearn to commit with absolute impunity, and I will NOT be DENIED.
Point is code can be rewritten in much simpler, shorter, cleaner form.
Logic can be much more intricate and sophisticated.
Recursion is no longer a problem.
Namespaces are now a thing.
Capturing -- and processing -- lines of code is easier than ever...
Nearly every problem I had with fasm is gone with this update: thusly, my power grows rather... exponentially.
And I SWEAR that I will NOT use it for good. I shall be the most corrupt, bloodthirsty, deranged tyrant ever known to this accursed digital landscape of broken souls and forgotten dreams.
*I* will reforge the world with black smoldering flame.
*I* will bury my enemies in ill-and-damned obsidian caskets.
And *I* will feed their armies to a gigantic, ravenous mass grave...
Yes... YES! This is the moment!
PREPARE THE RITUAL ROOM (https://youtube.com/watch/...)
Couriers! Ride towards the homeland! Bring word of our success.
And you, page, fetch me my sombersteel graver...
I shall inscribe the spell into these very walls...
in the ELEVENTH degree!
** MANIACAL EVIL LAUGHTER ** -
So, I decided over the weekend that I would move my entire dev environment to Linux. No Windows on the laptop and only as a backup boot system for my home PC. I wanted to wean myself off of Linux as only being a VM and move to the full blown desktop.
I can only describe my experience to that of having your first kid: lot's of crying and joy at the same time.
Things I've learned:
1. The install is amazingly painless. Wi-Fi and Bluetooth work straight out of the box no configuring needed.
2. OH MY GOD THE CUSTOMIZATION. Rocking Arc Dark theme on Gnome3 = EVERYTHING IS
ALWAYS DARK MICROSOFT WHY IS THIS NOT A THING.
3. Getting Java servlets to work has been hell. I gave up trying to get them to work in eclipse and moved over to IntelliJ. More trial and error before I can figure out why tomcat won't fucking work in eclipse but it's fine in IntelliJ.
4. The UI and overall work flow has been improved after getting past the learning curve. Gnome3 is way better from when I tried it out 4 years ago.
5. Vim has a steep learning curve but I am starting to understand the net benefits of it. It'll probably be a solid month before I get good with it.
6. Loosing Microsoft Office has been a little bit of a challenge but their suite is online so....meh. I do miss Visual Studio though, and am still looking for an adequate replacement for C++ and C# development.
Overall it's been a challenge but I think it's been a net gain. Now if only I could get the whole sys-admin team to use it. ;)12 -
We had a tutorial on how to use spark/Hadoop.. part of the tutorial was the installation instructions for Ubuntu vms.
The Prof insisted we used an older version of Hadoop (v2.1.5), so naturally this required pulling older repos and older versions of java.
Naturally, some of the people in the class got some namespacing issues and garbage left from uninstalled packages.
Now, the tutorial was geared towards business/math people, not com sci. So most of the people didn't understand why apt didn't let them run certain commands (even though it very clearly just asked for them to run autoremove or autoclean, like in the "error message"). When the Prof and their "experienced TA" saw these messages, their recommendation was "make a new fresh vm".
The fuck? I heard that, run over and was like no. Just run the suggested command, it's literally a simple issue. And the guy didn't believe me. I had to sit him down, show him how I literally typed what the console was asking for, and everything just worked... The guy's response was "well that's Linux for you, its really complicated and can never trust anything, this time it worked, but next time it might not". Dude... Do you even know what you are saying? Like you are a supposed expert, least have some understanding of the package manager you are using. Maybe things will then be less "schrodinger cat".
God damn I can't wait to be out of this stupid fucking school. Never going back to academia.1 -
## Learning k8s
Okay, that's kind of obvious, I just have no idea why I didn't think of it..
I've made a cluster out of a rpi, a i7 PC and a dell xps lappy. Lappy is a master and the other two are worker nodes.
I've noticed that the rpi tends to hardly ever run any of my pods. It's only got 3 of them assigned and neither of them work. They all say: "Back-off restarting failed container" as a sole message in pod's description and the log only says 'standard_init_linux.go:211: exec user process caused "exec format error"' - also the only entry.
Tried running the same image locally on the XPS, via docker run -- works flawlessly (apart from being detached from the cluster of other instances).
Tried to redeploy k8s.yaml -- still raspberry keeps failing.
wtf...
And then it came to me. Wait.. You idiot.. Now ssh to that rpi and run that container manually. Et voila! "docker: no matching manifest for linux/arm/v7 in the manifest list entries."
IDK whether it's lack of sleep or what, but I have missed the obvious -- while docker IS cross-platform, it's not a VM and it does not change the instructions' set supported by the node's cpu. Effectively meaning that the dockerized app is not guaranteed to work on any platform there is!
Shit. I'll have to assemble my own image I guess. It sucks, since I'll have to use CentOS, which is oh-so-heavy compared to Alpine :( Since one of the dependencies does not run well there..
Shit.
Learning k8s is sometimes so frustrating :)2 -
Trying to setup a ltsp server for fun. Neve done server things before.
The server and the thin client are in VMs. So I start, install openssh, and them when I try to ssh... WHY CAN’T I FUCKING CONNECT, I CHECKED THE IP WITH IFCONFIG, oh shit, forgot to configure the vm network... so ssh works! Then I setup dhcp (I really don’t know what I’m doing, just following the tutorial), the ltsp configs thing, build the client image and then, I HAVE NO FUCKING INTERNET CONNECTION. Continues, boot up the thin client... WHY CAN’T YPU FUCKING FIND THE SERVER!! Then I realise the vm is not an ubuntu one, so delete it and make a new one... WHY DOES IT STILL DOESN’T WORK!!!!!! Oh wait forgot to connect to the network! Goes to put the network adaptor, and: wait! I don’t need NAT! So I replace the NAT by the correct network, and: Wait it lets me choose the weird thingy intel/pce thingy, oh I remember now! It said we needed the “...III FAST...”! Activate it and... IT WORKS ! !!!! CONNECTS TO THE SERVER!!! GOT THE DHCP!!! WAIT!!!!! What is THAT 🤬 TFTP LOADING THING!!!:
TFTP open timeout
🤬 YOU!!!!!!!!>> -
This shit is long story of my computer experience over my lifetime.
When I was young I got my first PC with windows it was not so bad. It required safe shut down of it’s fat32 partition. From time to time I needed to reinstall it cause of slow down but I got used to it I was only a gamer.
Time passes and I got more curious about computers and about this linux. Everything worked there but installation of anything was complete madness and none of windows programs worked well, and I wanted to play games and be productive so I sticked with windows.
I bought hp laptop once with nvidia card, it was overheating and got broken. So I bought toshiba and all I told to the seller was I want ATI card. Took me 5 minutes to do it and I was faster then my friend buying pack of cigarettes because I was earning money using computer.
Then I grown up running my small one person programming businesses and I wanted to run and compile every fucking program on this world. I wanted linux shell commands. I wanted package manager, and I wanted my os to be simple because I wasn’t earning money by using my os but by programming. So after getting my paycheck I bought mac. I can run windows and linux on vm if I need it. I try not to steal someones work so I didn’t want to run hackintosh. I am using this mac for some time.
Also I use playstation for gaming. Because I only want to run and play game I am not excited about graphics but gameplay. I think I am pragmatic person.
I can tell you something about my mac.
When I close lid it go sleep when I open it wakes up instantly. I never need to wonder if I want to hibernate or shut down or sleep and drain battery. It is fucking simple.
When I want to run or open something it doesn’t want me to wait but it gives me my intellij or terminal or another browser or whatever I search for. Yeah search is something that works.
Despite it got 8 gigs of ram I can run whatever number of programs I want at the same speed. The speed is not very fast sometimes but it’s constant fast.
I have a keychain so my passwords are in one place I can slow down shared internet speed, I can put my wifi in monitor mode and I don’t need to install some 3rd party software.
And now I updated my mac to high sierra, cause it’s free and I want to play with ios compilation. Before I did it I didn’t even backup whole work. I just used time machine and regular backups. And guess what, it still works at the same speed and all I did was click to run update and cook something to eat.
When I got bored I close the lid, when got idea open lid and code shit, not waiting for fucking wakeup or fucking updates.
I wanted to rant apple products I use but they work, they got fucking updates all along at the same time. And all of updates are optional.
I cannot tell that about all apple products but about products I use.
I think I just got old and started to praise my limited time on this world. Not being excited about new crap. When I buy something I choose wisely. I bought iPhone. I can buy latest iPhone x but I bought iPhone 7 cause it’s from fucking metal. And I know that metal is harder then glass, why the fucking apple forgot about it? I don’t know.
I know that I am clumsy and drop stuff. Dropped my phone at least 100 times and nothing.
I am not a apple fan boy I won’t buy mac with this glowing shit above keyboard that would got me blind at night.
I buy something when I know that it can save my time on this world. I try to buy things that make me productive and don’t break after a year.
So now piece of advise, stop wasting your time, buy and update wisely, wait a week or a month or a year when more people buy shit and buy what’s not broken. And if something’s broken rant this shit so next customer can be smarter.
Cheers1 -
Today is thursday. Oh no.
At thursdays I have a 8h30-19 schedule (I have 1h30' of free time to go home and cry after I finish a class at 15h30 though) and there's this one class I DREAD. It's a 2h class at 17h and it's an exercise class. This wouldn't be so bad it I actually understood the code behind the exercises, because they don't teach us code in the theory classes (btw it's C. I hate that language because of all this). The teacher pretty much tells us "do this exercise", waits like 10' and then starts to (try to) explain what we're supposed to do. Oh my god.
The other day he was like "write "exec ( ... "text" ... )", compile and execute". It didn't work. Of course it didn't why would it? I was switching around between terminal, manual and text editor, to no avail. In the end he explained but I don't think I got it.
Every time I think about this class I die a little inside and start to become somewhat anxious to be honest. The theory is not that that hard, the practice part is what is killing me (I have test in 2w but I'm just gonna start studying earlier so I can go watch this match LoL).
Does someone know a good book (preferably online, if possible) or a good website on C? I really need to read that, that language is killing me.
Bonus: the other day I had to do a homework that was to be delivered. We had to write a program that read the program and its arguments like this:
./program_name
numArgs
arg1
arg2
etc
I wrote the code, had some bumps in the way, asked a colleague for help because we needed to have a custom function made that was to be done in the class but that I couldn't make because of the reasons above. Then it came the time to test. My VM broke (I think I'm gonna format my PC to try to fix that. Have installed some other versions of the VM but the installations fails or the machine doesn't start) so I sent it to said colleague to test. She said it did OK and so I sent the work to this website we have to send our works to.
"2 errors".
What? What happened? She said it worked just fine.
Looked at my code, couldn't see anything wrong.
Asked the same colleague for help.
Turns out I missed a space. A SPACE. I don't think I've ever felt so frustrated in my life. A presentation error in Java is a good thing, at least we know the program works fine, it's just the output that's wrongly formatted. But C? Nope, errors all around, oh my god. I'm still mad about it.
And I owe her a chocolate.1 -
I've always been a strong critic of the mac operating system and apple in general for they're overpriced products. few months back my old laptop kicked the bucket and repairing it was not an option as i was sick of charging the laptop after every 3-4 hours and had to purchase a new laptop immediately. loooking at my options around 50k rs or 700$ all windows laptops available in indian markets sucked (except for lenovo 320s) so i made the shift to macbook air 2017.my daily work involves photoshop illustrator and a dash of premiere pro. I also work on nodeJS and python using the pycharm and atom IDEs. After using it for a month i feel in love with mac platform and macos. Its a wonderful experience. gone are the days of crashes and the windows updates (ugh). the boot of the laptop is like magic and softwares like wmware imovie and notes keynote are f**king awesome. Long hours of work have become fun rather than hell dealing with constant windows gimmicks and bad battery optimisation on linux.
An explanation why all developers (except for the ones who require high powered gpus) graphic designers should shift to macos rn.
Advantages of using mac
No forced updates update whenever now or a f'ing month later no probs.
better battery optimisation than linux
no more installing os again and again (ubuntu)
better vm than virtualbox (vmware)
terminal for running bash commands
no crahes
Xcode platform
trackpad is worlds better than the best windows trackpad
Disadvantages
some softwares not available for macos
storage is generally less on macbooks
UI is simple (less elaborated than windows)
Workarounds
get a vm and install linux(vmware fusion 8)
ps. u may not need it though
wine and wine bottler for using windows apps
get a microsd to sd adapter for macbook and expand storage5 -
I have just slept for a minimum of 5 hours. It is 7:47 PM atm.
Why?
We have had a damn stressful day today.
We have had a programming test, but it really was rather an exam.
Normally, you get 30 minutes for a test and 45 minutes for an exam.
In this "test" we have had to explain what 'extends' does and name a few advantages of why one should use it.
Check.
Read 3 separate texts and write the program code on paper. It was about 1 super class and 1 sub class with a test class in Java.
Check.
Task 3: Create the UML diagram of the code from above. *internally: From above? He probably means my code since there is no other code there. *Checks time*. I have about 3 minutes left. Fuck my life.*
Draws the boxes. Put the class names in each of them. A private attribute for the super class.
Teacher: Last minute!
Draw the arrow starting starting from the sub class to the super class.
Put my name on each written paper. And mentally done for the day. Couldn't finish the last task. Task 3.
During this "test", I heard the frustrations of my classmates. Seemed like everyone was pretty much pissed.
After a short discussion with the teacher who also happens to be the physics professor of a university nearby.
[If you are reading this, I hope that something bad happens to you]
The next course was about computer systems. Remember my recent rant about DNS, dhcp, ftp, web server and samba on ubuntu?
We have had the task to do the screenshots of the consoles where you proof that you have dhcp activated on win7 machine etc. Seemed ok to me. I would have been done in 10 minutes, if I would be doing this relaxed. Now the teacher tells us to change the domain names to <surnameOfEachStudent>.edu.
I was like: That's fine.
Create a new user for the samba server. Read and write directories. Change the config.
Me: That should be easy.
Create new DNS entries in the configs.
Change the IPv6 address area to 192.168.x.100-200/24 only for the dhcp server.
Change the web server's default page. Write your own text into it.
You will have 1 hour and 30 minutes of time for it.
Dumbo -ANGRY-CLIENT-: Aye. Let us first start screenshotting the default page. Oh, it says that we should access it with the domain name. I don't have that much time. Let us be creative and fake it, legally.
Changes the title element so that it looks like it has been accessed via domain name. Deletes the url and writes the domain name without pressing Enter. Screenshot. Done. Ok, let us move to the next target.
Dhcp: Change lease time. Change IP address area. Subnet mask. Router. DNS. Broadcast. Optional domain name. Save.
Switches to win7.
ipconfig /release
ipconfig /renew
Holy shit it does not work!
After changing the configs on ubuntu for a legit 30 minutes: Maybe I should change the ip of the ubuntu virtual machine itself. *me asking my old self: why did not you do that in the first place, ass hole?!*
Same previous commands on win7 console. Does not work. Hmmm...
Where could be the problem?
Check the IP of the ubuntu server once again. Fml. Ubuntu did not save when I clicked on the save button the first time I have changed it. Click on save button 10 times to make sure it really is saved now lol.
Same old procedure on win7.
Alright. Dhcp works. Screenshot.
Checks time. 40 minutes left.
DNS:It is your turn. Checks bind9 configs. sudo nano db.reverse.edu.
sudo nano db.<mysurname>.edu.
Alright. All set. It should work now.
Ping win7 from ubuntu and vice versa. Works. Ping domain name on windows 7 vm. Does not work.
Oh, I forgot to restart the bind9 server on ubuntu.
sudo service bind stop
" " " start
Check DNS server IP on win7. It looks fine.
It still doesn't work. Fuck it. I have only 20 minutes left. Samba. Let us do this!
10 minutes in. No result. I don't remember why. I already forgot why I have done for it. It was a very stressful day.
Let us try DNS again.
Oh shit. I forgot the resolver!
sudo nano /etc/resolv.conf
The previous edits are gone. Dumb me. It says it in the comments. Why did not I care about it. Fuck it.6 minutes left. Open a yt video real quick. Changes the config file. Saves it. Restarts DNS and dhcp. Closes the terminal and opens a new one. The changes do not affect them until you reopen them. That's why.
Change to win7.
Ping works. How about nsloopup.
Does not work.
Teacher: 2 minutes left!
Fuck it.
Saves the word document with the images in it. Export as pdf. Tries to access the directories of the school samba server. Does not work. It was not my fault tho. Our school server is in general very slow. It feels like they are not maintained and left alone like this in the dust from the 90s.
Friend gets the permission to put his document on a USB and give the USB to the teacher.
Sneaky me: Hey xyz, can you give me your USB real quick?
Him: sure.
Gets bombed with "do you want to format the USB?" pop-ups 10 times. Fml. Skips in a fast way.
Transfers the pdf. Plug it out. Give it back.
After this we have had to give a presentation in politics. I am done.6 -
Random thoughts on more out of the box tools/environments.
Subject: Pharo
Some time ago I had shown one of my coworkers about Pharo and he quickly got the main idea behind it but mentioned how he didn't like the idea of leaving behind his text editor to deal with source code.
Some time last week I showed the dude some cool 3d animations you can do with Pharo while simultaneously manipulating the code to change them in real time. Now that caught his attention particularly and he decided he wanted to know more about the language but in particular the benefits of fucking around with an image based environment rather than a file based.
Both of us reached the conclusion that image based makes file based dev enviroments seem quaint in comparison, but estimated that it was nothing more than a sentiment rather than a fact.
We then considered what could be the advantage/disadvantages of such environments but I couldn't come up with anything other than the system not having something like Vim or VS Code or whatever which people love, but that it makes up for it with some of the craziest IDE tools I had ever seen. Plugins in this case act like source code repos that you can download and activate into your workflow in what feels something similar to VS Code being extended via plugins written in JS, and since the GUI is maleable as it is(because everything is basically just subsets of morp h windows) then extending functionality becomes so intuitive that its funny
Whereas with Emacs(for example) you have to really grind your gears with Elisp or Vimscript in Vim etc etc, with Pharo your plugin system is basicall you just adding classes that will convert your OS looking IDE into something else.
Because of how light the vm machine is, portability is a non issue, and passing pharo programs arround is not like installing Java in which you need the JVM.
Source code versioning, very important, already integrated into every live environment and can be extended to do pushes through simple key bindings with no hassle.
I dunno, I just feel that the tool is too good to be true. I keep trying to push limits into it but thus far I have found: data visualization and image modeling to work fine, web development with Teapot to be a cakewalk and work fine, therr are even packages for Arduino development.
I think its biggest con would be the image based system, but would really need to look into how this is bad by any reason other than "aww man I want vim!" since apparently some psychos already made Emacs and VS code packages for interfacing with Pharo source trees.
Embedded is certainly out of the question for any real project since its garbage collected and not the most performant cookie in the jar.
For Data science I can see some future, seems just as intuitive and interesting as a Jupyter Notebook actually, but the process can't and will not be the same since I still don't know of a way to save playground snippets unless you literally create classes for it, in which case every model you build gets saved inside of an object, sounds possible but, strange since it is not a the most common workflow in jupyter.
Some of the environment is sometimes glitchy, but it does have continuos development and have not found many hassles.
There is a biased factor from my side: I seem to be wired to understand the syntax and simple object model better than in other languages. To me this feels natural as if I was just writing ideas rather than code, mostly because I feel that there really ain't much in terms of syntax, the language gets out of my way and the IDE feels like the most intuitive environment in the world to me. I can see why some people would find it REALLY weird of counterintuitive tho.
Guess I really am a simple dude. -
tl;dr: why is it so hard to build a pc?😒
why is it so damn hard to find the right pc components for developing/image editing/gaming/...?😟
i've been googling around and watched many youtube videos on what components to buy/what to watch out for/tips/problems/etc...
i want to build a decent pc for web, mail, office, developing, running linux as VM (for experiments), edit images, doing most in multitasking (and maybe also play some games) ... basically everything, but i can't wrap my head around what to choose😟
every time when i think (for example) "ok, ryzen 5 2400G, that must be it!' there's always smth negative about it, come on!!🙄😤
i wanted to make an AMD setup for 1000€ max
i feel like as a developer/"kinda it guy" i know what i need, then again i feel dumb as fuck, not knowing what to choose and i'm almost certain i will pick smth wrong😪
do u guys have any suggestions for me/any help?21 -
Trying to build a ros workspace inside VMware...
Called up the teammate who put it together:
Me: hey the workspace isn't building for me, do I need to setup anything before I type "make"?
Him: nah dude just type make and ur good, why what error are you getting?
Me: *describes error*
Him: oh lol I never got that error before, idk maybe your machine is just dumb
Me: *uh ok sure dude* let me try some other stuff
*Boots to native install of Ubuntu*
*Build successful*
Me: oh huh that's weird it built on my native installation but not on the VM
Him: oh lol that's not my problem
Seriously dude? First off, screw you Ros for not being able to build in a VM. Secondly, it's entirely your problem! Linux is nice to use, sure, but it's a bit of a problem when the entire team runs off Mac!
😲😲😲😣😥😫😓 -
This story happened to everyone, and i am sure that if i search, i will find dozens of similar stories, but the different here is, i tried, i really tried, in a hundred different ways to achieve my goal !
When you are stuck on a problem, let's say, that you have a program, project, website ... and need to achieve something technically weird (or hard) and need some help to save you time on experimentations. The first thing a lot of people do is : Google.com && put search dorks.
But, at a moment, google gets "dirty", you use it so often that he always think to know better then you what you are looking for.
It reminds of "Ted", the movie (for thows who know it) where they asked : "Hey ! Why does google always suggest us to look for black dicks ??"
It is exactly what happened to me, i got results who doesn't have anything to do with what i was looking for !
You can give it a try now : type "semantic web RDF to RDB"
You won't find anything, except results related to : NOSQL DBs, which is totally annoying.
Something else, i once google swift to get some updates, what results did i got ? Taylor Swift ... (musician)
I often get 2 or 3 results from google, which made me thinking that i somewhat reached the end of internet, or that people are so dumb that i will have spend hours trying to figure my solutions, but, before doing that, other solutions had to be tested.
1- TOR : Google tracks his users and uses its algos and bullshits to return results as close as possible to the user's demand (big fail ...) so how about moving to a different country ? DL TOR browser, open, setup, go to US, open google (got us version YAY !) enter my keywords, and, nothing, still nothing, more results for sure, but nothing related to what i was looking for.
2- VM
Pop a VM, launch TOR, use Hidden mode, delet all cookies and stuff (it is a new VM but who knows).
Use keywords (now in UK). Here they are !! my results !!! i finally found some decent results about my keywords !
But, i have the required knowledge to do this kind of stuff, but how about people who rely heavily on google ? they can't change country, clear everything, trick google to think you are a new user, they have almost biased and flawed results. I tried duckduckgo (i love them) but they are not that efficient.
Google says not to anything evil, but they ARE EVIL, miss guiding people, suggesting corrections who have nothing to do with the keywords, or results totally unrelated in any way to the keywords while results exist in other countries ???
Ever since, i don't pay attention to google at all, and started thinking that google's algos are manipulating people, i don't know if it is done on purpose or not, but the result is the same, people have biased results based on their country, on their tag, on their ID, and the recent keywords.
During that period i was cursing google every funcking day, and i am still doing it, too much trackers, too much manipulation, i will end-up enclosing myself in darknet.4 -
I'm helping my teammates with the problems that they face in debugging an issue or fixing a Dev environment.
Sometimes ppl go too flexible and ask for my Dev VM. The help I have to offer is tell them cause of an issue and tell them the fix that they have to give. What the fu*k they do? What did they gain as experience all these years.
Ppl don't know how to make draft commits. They can't fix but failures. They don't know anything.
They just sit at office and age as it is their only job.
Seniors take so much salary. Why don't they feel bad that they are not doing justice to their work. -
Man i realy need to get of my windows host.
My productivity takes a nosedive whenever im on windows idk why.
I'd love to use linux fully but my fav game Overwatch has shit performance running on linux.
So the best solution would be to pass through my gpu to a windows vm for gaming.
But that would require a new gpu for the host system as the ryzen 7 1700 does not have a gpu.
I dont have any experience with passing thtough gpus. But could i make 2 vms that acces the same gpu, ofc not at the same time. So that i could have a gaming vm and maybe use another linux vm if i wanted to do something which profits off gpu acceleration.11 -
Is the JS VM in browsers as efficient as the webassembly interface?
If it is not, then why don't browsers transpile JS to webassembly?
I realize JS does do JIT in a lot of browsers (all?).9 -
Installing and setting up a toolkit on a VM should not take roughly a week. Why isn't this just an image?!?
-
firstly, does anyone know of an online telegram or whatsapp group where i can ask silly stuff regarding web dev and get immediate answers, just like it is here?
secondly i am trying to learn js and there are just too many related terms that are messing with my brain:
"some features are supported ines5/es6/es15/es16/es17 , some are supported in chrome's v8/chakra/spidermonkey/android browser , some features are only supported in "serverside" and blocked in all browsers thanks to browser's vm environment; babel can't read this code, some features are provided only by node js..."
WHAT THE MESS IS THIS?
All i am trying to do is to write code that would make a website visible to everyone. if by specific browser , i want to target, chrome and its subsidaries and android chrome/other android browsers .
for other browsers am willing to make external converters later but don't want to change my code by 1 bit. And from what i know, each browser (at least the browsers am thinking of supporting) has the complete JS compilers already built in
can i or can i not built a complete functional website with those things?
and finally my main question : how to make custom exceptions in vanilla js? i saw this answer on stack overflow:
===================
function InvalidArgumentException(message) {
this.message = message;
// Use V8's native method if available, otherwise fallback
if ("captureStackTrace" in Error)
Error.captureStackTrace(this, InvalidArgumentException);
else
this.stack = (new Error()).stack;
}
InvalidArgumentException.prototype = Object.create(Error.prototype);
InvalidArgumentException.prototype.name = "InvalidArgumentException";
InvalidArgumentException.prototype.constructor = InvalidArgumentException;
Usage:
throw new InvalidArgumentException();
var err = new InvalidArgumentException("Not yet...");
=====================================
where is the error code? what would be the exception details? what is the line number/timestamp of error?why is that function making an error, i thought error/exception is a class in JS?4 -
I've just joined a new company out of despair after several month out of jobs without being able to even get interviews.
I've been warned about the code being a bit behind with modern Android stack, they needed to migrate from rx to coroutine and compose is not a priority at the moment.
Fine with it, I like handling and planning migration, that's a nice challenge.
But if only that were the only problems !! Far from it, the code is a formidable mess, I've never seen so much amateurism... Most of it was written from the previous Lead Dev who stayed there for years and touched everything with their very bad practices.
I don't even know where to start honestly...
While the code is in Kotlin, it stink Java. Nothing wrong about Java, but if you code in kotlin, you need to understand what kotlin try to achieve. And that's not the case here. There is freaking nullable everywhere, for no reason at all, the data classes contains lot of var in their constructors, equals are override to compare only one or 2 params and no hashcode override with it.
Sealed class, what for ?! Let me just write a List<Pair<Enum, Any>> and cast your any depending on the enum !
Oh and you know what, let's cast everywhere, no check, and for once no null safe, there is enough nullable in the code !
What about the reactive part ? well let's recreate a kind of broken eventbus with rx ! Cause why not ?!
The viewmodel observable don't contain data, they just contain enum for the progress of the states we're checking.
In the viewmodel function we update that enum states and emit it to be observed and make the data available as a var for the view to pick it up when needed.
But why put the business logic in the viewmodel, let's put in the views, and grab and check the variable contain in the viewmodel whenever it fits.
Testing the business logic ? uh let me just test my variable initialisation in the viewmodel instead.
The vm, the views, make about 2000 lines, the test over 3000, and not a single test really test the business logic in it ! I've made big refactoring we're all the tests stayed green, while the function are full of side effects ! WTF ?!
Oh and what about that migration from rx to coroutine ? well better not break the existing code and continue writting like rx, everything is cold flow ! We just need to store a boolean saying if we already did our call to the data layer then we decide to start our flow or not.
As for the RecyclerView, having too many viewHolder is just so annoying, let's put all our different views in one, and hide what we don't need.
Keystore has been push on the repo, but it's private no ? So who cares ?!
And wait i'm not done ! Some of the main brick of the apps depends on library that hasn't been updated for years, and you know what... yes they were hosted on Jcenter and it's only now that they decide to do something about it, we we're warned about the sunset of jcenter 2 years ago !!!!
So what about compose ? What do you want with compose ?! there is no design system in that app obviously, so don't even think about it !
And there... among all of that mess, I'm supposed to do code review... how the fuck do you do a code review when all the code that is around stink ?!
And there is so much more but by now I'm afraid you're thinking i'm just pissing on the old code like everyone... but damn I guarantee, that's the worst code I've ever seen, and i've work on more than 15 app from small to big on different contract with a lot of legacy code, but nothing that bad !1 -
First contact with XEN.
Xen Orchestrator UI / Web, logged in first time...
Wow. The UI is a big giant mess...
I don't care for this fucking bling bling shit... Need to have an overview of all VMs.
Oh Lord... Wtf... Icon hell...
Hm, I need more detailed information... Ah. Found the button.
Pressed button.
Wtf... What's taking so long...
Bloody shit.... Why does it include real data diagrams of usage statistic per row????!!! (had pagination set to 100 rows, one row is one VM)...
Bloody christ, ain't no option to configure that monstrosity... Export function?... Nope... Great. This will be a giant fuckfest...
Rest API? Nope.... Non existent as it seems. Thought that would be common in the 21st century... Guess what, nope.
Further googling...
Oh interesting. An cli client in NPM?
Hm, pretty scarce documentation...
Poked it a bit... Got first results...
xo-cli --list-objects type=VM
...
Let's take a look...
Oh JSON. Gooooooo(d)....
Wow. The document structure looks like someone puked out alphabet soup...
Or maybe the dev had hemorrhagic fever and was suffering from delusion and blood loss.
After this... More than devastating experience...
I took a look at Proxmox REST API.
Sweet jesus. That's like... Stone Age to 23rd century. Oo
https://pve.proxmox.com/pve-docs/...
Seriously... It seems not so hard to define an API to get the data of all VMs... Without suffering a traumatic brain injury.1 -
I have been working on a long time, low progress project of mine that keeps on giving and giving.
Let's begin like two years ago where I dipped my toes into "more then gigabit" networking thanks to a Linus Techtips video about infiniband.
I had the dream of booting my Workstation from my NAS, a so called diskless setup.
Well, since I run FreeNAS on my Nas , a very nice Freebsd based Nas OS, everything's gonna be good.
In the beginning, there was no infiniband support.
Turns out, you don't need it, since the mellanox CX2 nics can do ETH too.
Yay.
Just took me a few weeks of anger.
So, to be able to boot something over the network, you need firmware that finds the bookable stuff and loads it.
That protocol and firmware is called PXE.
PXE needs a DHCP telling it what to do, and what is where and etc.
Freenas here I come! Installing dnsmasq on the actual freenas install turned out to be not that great of an idea because freenas thinks of itself as being an "appliance" that you don't fiddle with. So things work, until you update/ upgrade when everything will basically be wiped, except what you have done through the ui.
Ok. So I gona use a jail, a container like thing for that.
Everything is great, jail has internet, everything Installs fine, what could go wrong?
Dnsmasq can launch and work, but not as dhcp server. Some thing about permissions.
Turns out, jails have permission like things.
A few days of head scratching later, it has ALL the permissions.
Dnsmasq still can't work as DHCP server though, why you ask?
Because it needs a specific kernelmodule that isn't contained in the jail. Since jails are kind of like a docker container, they run on the same OS kernel, who does not have this module, I'd need to patch the freenas, which is an appliance, so fuck that.
Like a year later, freenas has finally added good VM support, so why not make a VM for the dhcpserver?
Well, about a year ago, I didn't know that the virtual Intel nic is a fucken unstable piece of garbage, crashing nearly any OS at some point.
So that was it for a while again.
Now to the last few weeks.
Finally dnsmasq is running in a freebsd VM with a good and working configuration which is rather simple, if those tutorial fuckers out there would explain shit instead of just telling you to copy, paste and replace X.
Now back to the PXE side.
I'm using iPXE because I have no clue how to boot anything over tftp so iSCSi it is, since that is what I can relate too.
The idea behind iscsi is to fake a SCSI disk over the network. Attached devices appear as if they are actually directly connected to the machine instead of over the network.
iPXE gets a lease from the server, can connect to it, everything is fucken great. Finally.
Except that if it "sanBoots" the iscsi drive, it can't find anything to boot.
Well fuck.
If I attach a Linux live USB over iscsi, it boots, finds grub, and crashes because the live iso isn't configured for network-boot.
But it boots.
So what's so different?
Well iPXE is booted in legacy mode, where as the content of the target is windows 10 in efi mode.
Ffff.
Ok. Can I get iPXE to boot in EFI mode?
Well yes, after like 3 days fiddling with it.
But it only finds the onboard Intel nic instead of the new Mellanox CX3 cards, and can't even connect to the target....
Sooo, I guess my options are as follows.
Either, get PXE efi to work on the network cards directly, its called flexboot and might be able to since I just found some firmware options for that.
Or give up on efi and install windows in legacy mode.
Which isn't that easy when it has to end up on a drive on my nas. -
Why in the fuck does everyone expose specific ports in Dockerfiles?
If I wanted to expose the port, I would fucking expose it.
Currently can't run my home infra platform because I'm running two separate instances of Maria DB on the same private internal network. These are two databases for two separate applications.
Why don't I run them on one? Because they're two separate fucking applications.
Why the fuck can I not do this when I used to be able to do it a week ago.
Stop exposing your fucking ports in your fucking Dockerfiles.
This shit is getting so bad, I'm just about to throw my towel in on all fucking containers and just install everything in multiple VM environments.
I am God damn appalled that after 8 years of using docker, core concepts like a port exposure is being leveraged as a way to somehow circumvent poor security practices.
You want a secure container environment? Expose your own goddamn ports.
Fuck you Maria DB, and fuck you docker.2