Details
-
AboutNah
-
SkillsAll stuffs mobile
-
LocationGermany
-
Github
Joined devRant on 3/15/2016
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
-
Implementing URLSessionDelegate, URLSessionTaskDelegate, URLSessionDataDelegate, and URLSessionDownloadDelegate be like7
-
Fuck (some of) you backend developers who think regurgitating JSON makes for a good API.
"It's all in JSON. iOS can read JSON, right?"
A well-trained simian can read JSON, still doesn't mean it can do something with it. Your shitty API could be spitting out fucking ancient Egyptian for all I care, just make it be the same ancient Egyptian everywhere!
Don't create one endpoint that spits out the URL for the next endpoint (completely different domain, completely different path structure). Are you fucking kidding me?
As if that wasn't enough, endpoints receive data structured in one way, but return results in another!! "It's all JSON", but it's still dong.
How do I abstract that, you piece of shit? Now I have to write ever so slightly different code in multiple places instead of writing it only once.
How the fuck do I even model that in a database?
Have a crash course on implementing APIs on the client side and only come back when you're done.
Morons.6 -
Question: Have you ever worked for a toxic company? If so, did do you do something about it? Any tips?
By toxic I mean the abusive kind, where racism and sexism are "just jokes" and where clients are essentially scammed into buying software that doesn't do what they think it does.8 -
git add . && git commit -m "Because we're constantly interrupted and because we are not given enough time to do things properly, I need to check in and out of branches all the time (because separate envs are actually separate branches now) and have to interrupt what I'm doing. So this commit message reflects that."10
-
let rant: (Bool, Bool, String) -> Void = { (isRant, isDev, contents) in
print(contents)
}
rant(false, true, "
So, a year ago more or less, I set out to teach myself some server-side programming on the side.
Many (MANY) tutorials, Digital Ocean droplets created and destroyed, coffee mugs and FMLs later, I can say 'Hello World' from Node.js - built from source and not running as a sudoer - using express and forever on Ubuntu, behind another Ubuntu server running nginx - also built from source so to add headers-more and naxsi - using all sorts of goodies to enhance security and talking to each other via SSH. Oh, and taking to the world over HTTPS with a grade A on SSL Labs (I know this doesn't mean much to you. Yeah you, rolling your eyes over there. So why don't you just bugger off before even commenting? Haha)
Feels good man.
")2 -
"You shouldn't mark things as done if they aren't. It's only done when I can see it on the server and demo it."
Well, I just demoed it to you, you prick. The fact that it's not running on a server is because that AWS endpoint we have there is no where near being able to be called "staging" even, mainly because the other dev on the team hasn't committed their work in 8 days, let alone push it to said server. Data models have changed, APIs have changed, hell, the god forsaken Sahara desert is now green and blooming as far as I'm concerned.
So instead of trying to look smart to your boss, why don't you ask first you obnoxious waste of organic matter. Stop breathing our oxygen for once. There are more useful things to do with it. -
Le dev and le me (continued)
So le manager decides to talk to both le me and le dev so we can sort things out.
Le dev than says: "I think we shouldn't refactor things just to make them prettier." (Very passive-aggressively talking about me.)
Then goes on and implements a custom permission handler that performs several queries to the database to determine if a user should be able to change an object.
And all le me wanted was to use groups... -
"Good Morning,
I am currently recruiting for a UI/UX Designer for my client based in Cambridge, and I believe you would have a highly suitable skill set for this role."
WAT?4 -
Dev: Can you please tell me why you changed this?
Me: Because we need to handle permissions in the app. The quickest way of doing it, according to the docs, is [insert change log here]
Dev: But we can just check for the user's token.
Me: That's not exactly a permission, because...
Dev: I was only showing the information related to the user according to their token.
Me: I understand. But that means you're filtering data, not authorising users to access it. If a user is logged in, but changes query parameters, they can still access data they shouldn't be able to.
Dev: Whatevs.
Le me then proceeds to try to push my changes (that took the whole day to implement), gets a "you need to pull first" message from git, doesn't understand why, logs onto GitHub and realises dev has implemented their "permissions".
I was the one responsible for making those changes. Le dev was meant to be doing other things.
How do I even begin to explain?7 -
<quote>
EmptyCollection
struct EmptyCollection<Element>
A collection whose element type is Element but that is always empty.
</quote>
SwiftDoc.org is pure gold. -
ContractNotCompleteException.
Just found this on a contract.
19.1 Within this clause *Error! Reference source not found.* the following words shall have the following meanings: -
TMW you realise the only projects that got me somewhere were my side ones. Everything else I've built for other people is either defunct or never came to life in the first place.2
-
At home. Phone and backup drives connected to the computer, nothing else (no external monitors, no mouse, no extra keyboard). I like it zen. One of the drives makes this turbine-like sound when on, which gives me the "ALL SYSTEMS GO" alert I need. Couple of albums lined up on [insert music streaming service here], boosting on the Bluetooth speakers.
I can work for 12 hours straight like that. (Twelve hours later, takes eyes off the screen, *blink blink blink*, is there any food in the house, oh, wow, my kidneys are killing me, when was the last time I took a piss?, also I should definitely take a shower, but while I'm doing that I can think about that class interfacing with that other one and making them... wait, I should write this down... sits down again)2 -
FFS people. If you're going to ditch the Mac App Store (because Apple sucks, I'm such programmer I need to hate it) when releasing your software, get your installers right. ESPECIALLY if it's paid software.
Some people choose not to work on their systems with an admin user all the time. So don't assume your shitty installers will have sudo privileges.
I'm looking at you Atom and Paw. -
It's starting again. I can feel it.
You had a decent job, but you had to think otherwise. Then you had to go to that coffee shop tell some people you're the fucking bee's knees, didn't you?
Well, you know that's how the band plays.
Yeah, but now you'll have to live up to the hype, my friend. And you know pretty well that the pocketknife on your belt won't cut it anymore.
I can always learn as I go...
Sure you can. Except this time stakes are higher. They'll be expecting you to deliver on all your bloody greatness. They'll be relying on you. Not only them, but also the person who chose to be with you. And you know you're not enough, for neither of them. Now you'll fuck it up and let all those people down.
But I could build things little by little, lay out a solid groundwork and build up from that. Just like that other time when...
Of course you can. But can you make beautiful sparkly things? Can you make them sexy?
No... But I can make them resilient. I can follow best practices and intelligent design patterns.
Right. Cause design patterns win contests and prizes. Sure.
Well, it'll make things work better. And then when someone else comes along...
They'll say your work smells and let everybody know how it should've been done, because they need to prove themselves. You know that's what people do.
But that's just not fair! Solid work is solid work!
And a fraud is still a fraud. And that's what you are.5 -
The person who claims we should be "in control" of our stack and not use any of this pre-made, one size fits all, BaaS bullshit.
Even though none of our projects are even remotely close to needing scaling and whatnot.
Then proceeds to argue all we need is a step by step guide on how to deploy things very easily using Cloud Formation.
Spends the next two weeks trying to figure out why config files and scripts don't work.
And now that we have that "recipe", we're fully capable of deploying our own pre-made, one size fits all backend.1 -
var rant = true
var dev = false
I find it amazing that we live in a world where it's acceptable for someone in the office to say - in some water cooler conversation, but REALLY LOUD:
"I KNOW THE SOLUTION. KILL ALL MEN."
Swap "men" for [women, black people, gay people] and we that wouldn't have been "just a thought". Swap it for Jews and you have nazism. Swap it for Muslims and you have Donald Trump.
Guess that's my answer right there.2 -
Designer: "And you know what we could do? We could make all the information be available anywhere the client wants. It's all in the cloud!"
PM: "Yeah! That's brilliant!" (High fives all around)
That's one day after a visit to a client saying they cannot rely on their internet connection. -
TMW you realise you're working for Oroboro, the mythical snake that eats its own tail.
A product manager and a designer arrive at the project, spend a month doing lots of research, tell the devs that what they've built "isn't suitable for users" and come up with solution that has the exact same features that were implemented before.