Details
-
Skillsjs,css,sass,chatbot development,html etc
-
LocationSomewhere in the universe
-
Website
-
Github
Joined devRant on 6/10/2020
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
-
As much as we like being elitists for a lot of shit:
I can either set a client with their own admin interface for authoring their content on their sites, spend hours configuring the shit they need and then spend more time setting up everything for a lot of additional shit.
Or
I can set them up with the newer versions of wordpress, call it a day and still charge for maintenance or adding pages to their shit and charge as if i was coding and preparing everything from scratch even though i would tell them It really is no problem charging billed hours for something that takes me minutes.
I dunno about y'all, but I ain't about to neckbeard over shit. I severely believe the hate to be displaced in current iterations of the cms.23 -
I found some rum!
Specifically kahlua.
Kahlua, milk, Tito’s. Mmm. And so strong.
I tried adding creme de cacao, but I wasn’t strong enough to open the bottle. 🙁
Anyway, we played a family game that amounts to throwing a ball or other toy into a bucket from increasing distances / more difficult areas of the room. With my drunken coordination it was a great time. 😁
No work today.
Just packing and fun.
☺️7 -
Hi guys working on a new live stream gaming app anyone wants to join me can contact me on Instagram :- @zadezax [more details]1
-
A few days ago Aruba Cloud terminated my VPS's without notice (shortly after my previous rant about email spam). The reason behind it is rather mundane - while slightly tipsy I wanted to send some traffic back to those Chinese smtp-shop assholes.
Around half an hour later I found that e1.nixmagic.com had lost its network link. I logged into the admin panel at Aruba and connected to the recovery console. In the kernel log there was a mention of the main network link being unresponsive. Apparently Aruba Cloud's automated systems had cut it off.
Shortly afterwards I got an email about the suspension, requested that I get back to them within 72 hours.. despite the email being from a noreply address. Big brain right there.
Now one server wasn't yet a reason to consider this a major outage. I did have 3 edge nodes, all of which had equal duties and importance in the network. However an hour later I found that Aruba had also shut down the other 2 instances, despite those doing nothing wrong. Another hour later I found my account limited, unable to login to the admin panel. Oh and did I mention that for anything in that admin panel, you have to login to the customer area first? And that the account ID used to login there is more secure than the password? Yeah their password security is that good. Normally my passwords would be 64 random characters.. not there.
So with all my servers now gone, I immediately considered it an emergency. Aruba's employees had already left the office, and wouldn't get back to me until the next day (on-call be damned I guess?). So I had to immediately pull an all-nighter and deploy new servers elsewhere and move my DNS records to those ASAP. For that I chose Hetzner.
Now at Hetzner I was actually very pleasantly surprised at just how clean the interface was, how it puts the project front and center in everything, and just tells you "this is what this is and what it does", nothing else. Despite being a sysadmin myself, I find the hosting part of it insignificant. The project - the application that is to be hosted - that's what's important. Administration of a datacenter on the other hand is background stuff. Aruba's interface is very cluttered, on Hetzner it's super clean. Night and day difference.
Oh and the specs are better for the same price, the password security is actually decent, and the servers are already up despite me not having paid for anything yet. That's incredible if you ask me.. they actually trust a new customer to pay the bills afterwards. How about you Aruba Cloud? Oh yeah.. too much to ask for right. Even the network isn't something you can trust a long-time customer of yours with.
So everything has been set up again now, and there are some things I would like to stress about hosting providers.
You don't own the hardware. While you do have root access, you don't have hardware access at all. Remember that therefore you can't store anything on it that you can't afford to lose, have stolen, or otherwise compromised. This is something I kept in mind when I made my servers. The edge nodes do nothing but reverse proxying the services from my LXC containers at home. Therefore the edge nodes could go down, while the worker nodes still kept running. All that was necessary was a new set of reverse proxies. On the other hand, if e.g. my Gitea server were to be hosted directly on those VPS's, losing that would've been devastating. All my configs, projects, mirrors and shit are hosted there.
Also remember that your hosting provider can terminate you at any time, for any reason. Server redundancy is not enough. If you can afford multiple redundant servers, get them at different hosting providers. I've looked at Aruba Cloud's Terms of Use and this is indeed something they were legally allowed to do. Any reason, any time, no notice. They covered all their bases. Make sure you do too, and hope that you'll never need it.
Oh, right - this is a rant - Aruba Cloud you are a bunch of assholes. Kindly take a 1Gbps DDoS attack up your ass in exchange for that termination without notice, will you?5 -
If you're making a game, dont start by thinking about your inventory system. Start by thinking about what you want your player to be able to DO, the cost of those things, and the constraints.
For example, ages of empires didnt have you worrying about unit equipment at all. every villager could do almost any job. while survival games, especially survival horror, like the recent RE remake, severly restrict inventory and stack sizes to make resource managenent more important.
Games like Fallout had list based inventories because lists are cheap, and it allowed a tighter interaction loop. players would loot. go into inventory. close container, onto the next container, keeping the player in the exploration loop longer. neoscav did the opposite *for effect* harkening back to diablo, but taken to the nth degree: *everything*, actions, combat, exploration, character design, all based on an inventory-style grid.
while games like rimworld and dwarf fortress have your inventory represented by zones where items are physically *stored* in stacks on the ground, extending the concept of base management to resource management through physical layout and build optimization.
its important to think about what kind of actions you want players to be able to do, and the kinds of challenges and constraints you want on them at each point of the game and each mechanic they engage in.
other examples, though terrible, include fortnite, where the limitations of competitive play had inventory limited to a resource system and a hotbar. while earlier battle royale and sandboxs games like rust and battleground induced tension by combining loot mechanics and grid inventories with the constant danger of competing players, allowing them to have richer inventory systems at the risk of frusterating players who frequently died while managing their inventory. meanwhile in overwatch, notice how the HUD changes to best represent the abilities of each character.
all in all it is better to stop thinking of inventory systems as a means to an end, and instead as the end representation of desired mechanics, or artificially selected representations for particular effects.
this applies likewise to ui and ux in general. because the design of interface is fundementally about the design of *interactions*, and what you want to enable a user or customer to *do* will ultimately drive those interactions.6 -
Often I hear that one should block spam email based on content match rather than IP match. Sometimes even that blocking Chinese ranges in particular is prejudiced and racist. Allow me to debunk that after I've been looking at traffic on port 25 with tcpdump for several weeks now, and got rid of most of my incoming spam too.
There are these spamhausen that communicate with my mail server as much as every minute.
- biz-smtp.com
- mailing-expert.com
- smtp-shop.com
All of them are Chinese. They make up - rough guess - around 90% of the traffic that hits my edge nodes, if not more.
The network ranges I've blocked are apparently as follows:
- 193.106.175.0/24 (Russia)
- 49.64.0.0/11 (China)
- 181.39.88.172 (Ecuador)
- 188.130.160.216 (Russia)
- 106.75.144.0/20 (China)
- 183.227.0.0/16 (China)
- 106.75.32.0/19 (China)
.. apparently I blocked that one twice, heh
- 116.16.0.0/12 (China)
- 123.58.160.0/19 (China)
It's not all China but holy hell, a lot of spam sure comes from there, given how Golden Shield supposedly blocks internet access to the Chinese citizens. A friend of mine who lives in China (how he got past the firewall is beyond me, and he won't tell me either) told me that while incoming information is "regulated", they don't give half a shit about outgoing traffic to foreign countries. Hence all those shitty filter bag suppliers and whatnot. The Chinese government doesn't care.
So what is the alternative like, that would block based on content? Well there are a few solutions out there, namely SpamAssassin, ClamAV and Amavis among others. The problem is that they're all very memory intensive (especially compared to e.g. Postfix and Dovecot themselves) and that they must scan every email, and keep up with evasion techniques (such as putting the content in an image, or using characters from different character sets t̾h̾a̾t̾ ̾l̾o̾o̾k̾ ̾s̾i̾m̾i̾l̾a̾r̾).
But the thing is, all of that traffic comes from a certain few offending IP ranges, and an iptables rule that covers a whole range is very cheap. China (or any country for that matter) has too many IP ranges to block all of them. But the certain few offending IP ranges? I'll take a cheap IP-based filter over expensive content-based filters any day. And I don't want to be shamed for that.7 -
While reviewing a PR from one of our newer FE devs, I ended up spending more time than I would like mulling over its composition. The work was acceptable for the most part; the code worked. The part that got me was the heavy usage of options objects.
When encountering the options object pattern (or anti-pattern, at times) in complex scenarios, I have to resist the urge to stop whatever I'm doing and convert it to the builder pattern/smack them in the head with a software design manual. As much as I would like to, code janitor is one of the least valuable activities I engage in daily, and consistently telling someone to go back to the drawing board for work that is functional, but not excellent is a great way to kill morale. Usually, I'll add a note on the PR, approve it, add a brown bag or two on that sort of thing, and make attendance mandatory for repeat slackers. Skills building and catharsis all rolled up in a tiny ball of investing in your people.
Builders make things so much cleaner; they inform users what actions are available in a context; they tend to be immutable, and when done well, provide an intuitive fluent interface for configuration that removes the guesswork. As a bonus, they're naturally compositional, so you can pass it around and accumulate data and only execute the heavy lifting bits when you need to. As a bonus, with typescript, the boilerplate is generally reduced as well, even without any code generation. And they're not just a dumping ground for whatever shit someone was too lazy to figure out how to integrate into the API neatly.
They're more work in js-land, sure; you can't annotate @builder like with Lombok, but they're generally not all that much work and friendlier to use.9 -
Story Time:
When I first started working where I currently am, the manager at the time decided to send us off to a conference about one of the products our institution was purchasing at the time. She also thought that it would be a good way for me, the new guy, to bond with the rest of the staff.
During the presentations we found out that the people surrounding us were not exactly developers because of a couple of things:
1. Some examples were done with php and javascript for adding functionality to said product. The product gave you the opportunity to script on top of it (think of some sort of CMS, but it does not use PHP as its backend language) EVERYONE from the "class" in this particular workshop said they were developers. But at the sight of php in a group of 80 people or so, only about 7 recognized it, including myself and my team.
2. When they showed an example with Javascript, in particular jquery, one of the dudes in the workshop said (with extreme senior level confidence might I add) "yeah I never liked Javascript because you really can't connect it to any database in a website" <--- my face went 0.o and one of the actual developers doing the presentation did a Jim from the Office and looked at some out of screen camera.
3. During a conf talk, one PHD dude showed an example in the template language the CMS used (an obscure Java based template language)in which he was proudly calling out a technique he used to include one snippet of code into another one.....at that time, one of my coworkers squinted his eyes in disbelief, got close to me and said "is this man telling everyone in here that he discovered how to include a file? like, as a new thing?" me: "lol yes", him: "this is a waste of time, do the docs for this thing show how to do it or is he doing some sort of strange maneuver for something the platform does not support?" me: "let me check....nope, it is included, for some reason he made a function that takes the...name of the file he wants to include and passes it over to that call inside of the body....which as per the docs it is the include function...." him: ".....fuck, what a waste of time and money, fuck it lets spend a couple of more minutes here and then go get a drink or something"
That last part was my favorite really, the man speaking was not just any phd holder, but a comp sci phd holder. To this day my dude would walk into my office and say shit like "I DISCOVERED HOW TO INCLUDE A FILE WITH PHP!"14 -
My sister is the one who got all the support, despite her now working as a cleaning lady, having 2 kids of her own, having already married and divorced, having been in financial trouble several times, oh and she's only 22 years old. She couldn't finish high school and even getting a driver's license wasn't without hoops. Now she's dating someone as old as our mother.
I've been putting my career front and center in everything. I want to make my own business and sell a network-oriented Linux distribution through it. My mother was impressed when her colleague whipped up a basic website for their company. You can imagine the surprise when I told her that that's only one component of my infrastructure. My family and I still aren't on very good terms, but yeah.. going from "don't stare at those "screens" all day long" to "wow, you've actually done something with these screens" (to her all technology is a screen) is at least some progress I guess.
No support whatsoever though, neither in my endeavors in programming, server administration and whatnot (but hey what can I expect) but what annoys me the most is that my sister did get all the help in the world for maintaining her general household. I didn't get any of that, first night when I moved into my apartment I slept on the floor because my bed wasn't completely built yet. Now that all of that is done, I don't consider my mother very welcome in my apartment actually...
Oh well, we've gotten where we are somehow at least. Just reading, reading and reading more manuals. That's all you need really.15 -
I was gonna write some code, but Tomcat stopped by
I was gonna write for browser or Node but Tomcat stopped by
Now I’m covered in cat hair and I know why
‘Cuz Tomcat stopped by
‘Cuz Tomcat stopped by
‘Cuz Tomcat stopped by
I was gonna follow through but Tomcat stopped by
I was gonna study algorithms too but Tomcat stopped by
Now I’m DevRanting this song and I know why
‘Cuz Tomcat stopped by
‘Cuz Tomcat stopped by
‘Cuz Tomcat stopped by11 -
- Recruiters are as bad as car sellers
- They are not your friends
- They're not on your side
- The less you ask for a job the more they're gonna get
- Keep your cards on your side
- Don't tell them how much you make (they love to know that)
- Set a salary expectation for yourself and push it
- Expect a few-months long job hunting
- If you know you deserve the salary you are asking for keep pushing.
- Be patient.
- Don't give your 2 weeks notice until you signed already for the other company
- Medical insurance makes a big dent on salary
- Keep applying for jobs even if you are advanced in a hiring process.
So far this is what I've been learning through my current job seeking experience.
I hate job recruiters, if you can, avoid them at all costs10 -
Between plague and smoke, spending way too much time indoors. Localised co2 got pretty high in the office my husband and I share and opening the windows is dicey during giant spider season even before the wildfires.
So as a result, I'm starting a little indoor garden in each room. The succulent are going to be hydro, and the prayer and snake plant will get soil so I have some place to dump my coffee grinds other than the rose garden. In the next month or so we also want to set up some living moss panels to help control the nitrogen balance.
And of course, obligatory rpi sensor suite and irrigation is inbound as well. That'll be a shared project. 😸48 -
"I keep telling you, I'm not a pilot"
"and I keep telling you, you fly boys crack me up!"
I'm not a developer, but I'm doing some complex things and I need the benefit of computers to work things out, so I know enough programming to get me by. Recently one of the uppers decided that all the amateur spaghetti python programs I'd quickly slapped together should be developed into tools that the clients engineers can use!
"How long do you need!."
" I have no idea how to make something like that",
"but it's all just maths right! you can figure it out",
"probably, given long enough bu.. "
"okay get started and we'll check in in a couple of weeks" "hold o.." "I'll give your pride and joy to the graduate to fuck up while you're working on that" "wai.. " "anyway got take this call, good luck"
┗|`O′|┛
So here I am.. I have no idea what I'm doing.
So since I have a working knowledge of python, fortran and VBA, someone suggested I learn nim, which was not what he sold it as. Then a software engineer that went to the same uni as me, suggested RUST! you can't mess up rust, and look at this I created (shows me a decent looking desktop application) "I'll help you out". But it wasn't really that easy.
Then I asked some questions... that was my first mistake, that's not acceptable until you know what you're doing apparently. Especially when the answers are in the docs you can't find in a topic you don't understand for a version you're not using solved with a tool you've never heard of for an operating system you forgot existed. Look at this moron asking a question.
Okay to be fair, I went through the rust docs and it was well written, and I do really like this language. But I do not have a degree in computer science, and so many docs for crates are just written with an expectation of a certain level of knowledge. As soon as there's a build error, it's at least 3 -4 days of me faffing about trying to decipher hieroglyphics.
..and the graduate is about to unwittingly commit manslaughter..
I'm sure whoever needs to fix this mess in the future will post a rant about this train wreck.6 -
I forgot what it was like to have a productive day!
I’m rewriting the Apple wallet pass code to make it fully customizable instead of mostly static, and it’s beautiful.
The code was horrible tangled spaghetti before (and soo slow) but now it’s clean and fast and modular and absolute bliss to spec. Yay, dependency injection!
I actually had fun working today! 😊
It’s been the first time in months.8 -
I am running a small - but growing - ceph-cluster at work. Since it is fun and our storage demand is growing each day.
Today, it was time to bring another node online and add another 12TB to the cluster.
Installation of the OS went fine, network settings fine, drives looks fine.
Now, time to add it into the cluster.... BAM
Every Dell machine in the Cluster - Dead.
The two HP-machines is online and running. But the Dell-machines just died.
WAT!?19 -
@NickyBones I hope you get that PHD
@F1973 I hope you get that good position in a good company you deserve
@theabbie I hope you wake up one day and realize you’re a well-respected expert in your field
@Root I hope you... ah, already bought it
@lor-inc I hope that thing was just fatigue and not a mental illness
@SortOfTested? As one guy once said “@SortOfTested got everything figured out”.14 -
I see a trend here.
Posts of people with good number of ++’s get more ++’s than the posts of people with less number of ++’s. Even if the post of person with good number of ++’ is just a normal conversation starter and post of person with less number of ++’s is an actual good fucking rant.
It’s not a bad thing, per se. I hope nobody gets offended. All in good spirit.
To people with good number of ++’s:
Let’s not hold back and ++ the good content of people with less number of ++’s.
To people with less number of ++’s:
Don’t hold back your thoughts. Be free. Write free. Don’t try to make your rant to look a certain way to get more ++’s. We are all here to support.
Let’s grow together and spread positivity.
Peace.18 -
I absolutely love the email protocols.
IMAP:
x1 LOGIN user@domain password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT
Because a state machine is clearly too hard to implement in server software, clients must instead do the state machine thing and therefore it must be in the IMAP protocol.
SMTP:
I should be careful with this one since there's already more than enough spam on the interwebs, and it's a good thing that the "developers" of these email bombers don't know jack shit about the protocol. But suffice it to say that much like on a real letter, you have an envelope and a letter inside. You know these envelopes with a transparent window so you can print the address information on the letter? Or the "regular" envelopes where you write it on the envelope itself?
Yeah not with SMTP. Both your envelope and your letter have them, and they can be different. That's why you can have an email in your inbox that seemingly came from yourself. The mail server only checks for the envelope headers, and as long as everything checks out domain-wise and such, it will be accepted. Then the mail client checks the headers in the letter itself, the data field as far as the mail server is concerned (and it doesn't look at it). Can be something else, can be nothing at all. Emails can even be sent in the future or the past.
Postfix' main.cf:
You have this property "mynetworks" in /etc/postfix/main.cf where you'd imagine you put your own networks in, right? I dunno, to let Postfix discover what your networks are.. like it says on the tin? Haha, nope. This is a property that defines which networks are allowed no authentication at all to the mail server, and that is exactly what makes an open relay an open relay. If any one of the addresses in your networks (such as a gateway, every network has one) is also where your SMTP traffic flows into the mail server from, congrats the whole internet can now send through your mail server without authentication. And all because it was part of "your networks".
Yeah when it comes to naming things, the protocol designers sure have room for improvement... And fuck email.
Oh, bonus one - STARTTLS:
So SMTP has this thing called STARTTLS where you can.. unlike mynetworks, actually starts a TLS connection like it says on the tin. The problem is that almost every mail server uses self-signed certificates so they're basically meaningless. You don't have a chain of trust. Also not everyone supports it *cough* government *cough*, so if you want to send email to those servers, your TLS policy must be opportunistic, not enforced. And as an icing on the cake, if anything is wrong with the TLS connection (such as an MITM attack), the protocol will actively downgrade to plain. I dunno.. isn't that exactly what the MITM attacker wants? Yeah, great design right there. Are the designers of the email protocols fucking retarded?9 -
My mom died when I was 7, after which my dad bought me a Commodore 64 so I had something to lose myself in during the mourning process.
I learned everything about that system, from my first GOTO statement to sprite buffers, to soldering my own EPROM cartridges. My dad didn't deal with the loss so well, and became a missing person 5 years later when I was 12.
I got into foster care with a bunch of strict religious cultists who wouldn't allow electronics in the house.
So I ran away at 14, sub-rented a closet in a student apartment using my orphan benefits and bought a secondhand IBM computer. I spent about 16 hours a day learning about BSD and Linux, C, C++, Fortran, ADA, Haskell, Livescript and even more awful things like Visual Basic, ASP, Windows NT, and Active Directory.
I faked my ID (back then it was just a laminated sheet of paper), and got a job at 15-pretending-to-be-17 at one of the first ISPs in my country. I wrote the firmware and admin panel for their router, full of shitty CGI-bin ASP code and vulnerabilities.
That somehow got me into a job at Microsoft, building the MS Office language pack for my country, and as an official "conflict resolver" for their shitty version control system. Yes, they had fulltime people employed just to resolve VCS conflicts.
After that I worked at Arianespace (X-ray NDT, visualizing/tagging dicom scans, image recognition of faulty propellant tank welds), and after that I switched to biotech, first phytogenetics, then immunology, then pharmacokynetics.
In between I have grown & synthesized and sold large quantities of recreational drugs, taken care of some big felines, got a pilot license, taught IT at an elementary school, renovated a house, and procreated.
A lot of it was to prove myself to the world -- prove that a nearly-broke-orphan-high-school-dropout could succeed at life.
But hey, now I work for a "startup", so I guess I failed after all.23 -
1. Have some issue with my code which spits out cryptic compiler error.
2. Ask on stack overflow, Reddit, etc for a solution.
3. Get scolded at for "not reading the documentation" and "asking questions which could be answered by just Googling". Still no clue what I'm doing wrong, or what the solution would be.
4. Find someone else's vaguely related problem.
5. Post my problematic code as the answer, with arrogant comment about OP being a retard for not figuring that out for themselves.
6. A dozen angry toxic nerds flock in to tell me how retarded and wrong I am, correcting me... solving my original problem.
7. Evil plan succeeded, my code compiles, and as a bonus I made the internet a worse place in the process.
I think if you tell a bunch of autistic neckbeards that "all coronaviruses are fundamentally incurable", you'd have a vaccine within a week.15 -
Fuck you Twillio.
You bought a perfectly good email service (SendGrid) and now this service is just.. failing.
All of theirs Ips are getting blacklisted. Our clients are calling us (Of course they are).
People cannot reset passwords, cannot get ANY email notification.
Right now, SendGrid is blacklisted by majority of anti spam systems.
Twilio, fuck you again. This service we were using for more than 5 years without ANY problem. Twilio fucked up.
Fuck you Twlio again. And when we create a “critical” ticket, all you have to say is “Meehhh we’ll contact you in a week” ? REALLY ? Even Microsoft contacts us in 2 hours for critical problems.
Sorry it needed to come out.10 -
Guys do you think that doing a follow up for a job opportunity is a good move?
Or it shows that i am so thirsty to get it4 -
Do any of you all have any recommendations on how to drill functional programming concepts into my brainhole? Any good resources or things that helped you learn? My brain is object oriented and I'm really struggling to "see the light" and become another FP hypebeast (which is what I feel most people become when they really learn this stuff)
Send help
Regards,
A desperate loser who doesn't wanna fail her course 🥺🤷13 -
When oracle employees decide to add new "feature":
How can we add feature X so it can be the user new most terrible nightmare?
When oracle employees decide to update an existed "feature":
We have discovered that the users of feature X have found a work-around to make it useful, we need to update that feature to make it the users most terrible nightmare ever, and we would like to make the upgrade/installation process break everything else installed on their machines without possible way of recovering, and if it worked by any chance we would like to make that process frustrating as fuck.7 -
When building a REST-API, that is secured with tokens (JWT or something),
Should the token be included in the body or in the headers?4 -
Not a whole lot. But when I was 9 I started trying to fix an old Compaq computer that my parents replaced. I never actually got it to work but I did tear it apart and put it back together. Eventually a friend's parent gave me a a Dell that didn't work. Figured out it just needed a new HDD. Around that time my dad (who is literally the textbook definition of technically challenged) got a old textbook about computer hardware from a friend of his that was a bit of a hobbyist. This was in maybe 2006. The book was from 1988. I don't remember the name but it's somewhere in my parents house still. I didn't get much out of the book. Time passed and I started building computers. For myself, the local library, my friends. I ended up going to college for business while building computers on the side. I was making pretty good money for the amount of time I put into it. Eventually I ended up switching careers. My parents didn't really help me get into software but they offered encouragement. And a book from 1988 about computer hardware... So that's something.
-
Could someone explain to this old fart what the kiki and bouba thing I keep seeing around the place is all about? Is it something to do with Köhler's work, or just something the urban dictionary hasn't yet catalogued?5