Details
-
LocationMonte Rio, CA.
-
Github
Joined devRant on 6/13/2019
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
-
So here I am sitting on my dusty laptop gaming laptop (because supposedly it would offer me better performance in compiling code and working with CUDA according to the people above me) at a research institute where I just started working at. I am told that there are some issues with the code and that it fails to build on Windows with MSVC that ships with Visual Studio 2017 and later.
I poor some hot tea from my insulated bottle I brought from home and start reading.
I look in this header file and what do I see - a custom uint24_t struct. Interesting...
I keep sifting through the code base. I find some functions that check and change Endianess. Ok, but the software is developed, built on and runs only on Win7 and later desktop systems. Never mind...
Further I find a custom "allocator" that is used throughout the whole code base. It has three inline static class member functions: allocate, copy and deallocate plus some private constructors. And these just wrap around the standard new and free calls. Some flavours of this class actually only deallocate (with a comment above them: "This allocator does not allocate. HANDLE WITH CARE!!!", which is btw the only "code documentation" I have managed to find).
But wait! What is this? A custom thread and mutex. Oh, and string, and vector.
Further down the rabbit hole I find a custom math library with a matrix class that does not support multiplication between a matrix and a vector. Perhaps not a use case I guess...
I continue and come across some UI-related calls. Interesting, I wonder what they are using as a framework. Oh, my...We have an extensive GUI custom framework written from scratch (drawing buttons and all).
All of this is to load an OBJ file and render it on the screen on a standard Windows PC in some way.
Very nice... ;_;1 -
LOL CUSTOMER THAT DATABASE ENTRY DOESN'T 'JUST CHANGE' YOU CRA-----
Uh wait a ...
Oh.....
oh fuck....2 -
Regex syntax and vocabulary when talking about it reminds me of what Scientology would look like if it had its own coding language.3
-
What do you do when you don't feel like / can't get anything done? I couldn't focus at all. I feel like my brain is missing.3
-
I. FUCKING. HATE. MOBILE. DEVELOPMENT.
I already manage the data, devops, infra, and most of the backend dev.
We had a mobile guy. He was great. I never had to think about it and kept moving quickly on my work. #SpecializationOfLaborFTW
He left. Why? Because they wouldn't give him a small raise despite being one of the best mobile engineers in the firm. WTF.
I made the mistake of picking up just enough slack on this workflow in the interim such that I'm, apparently, the fucking god-damned release manager, fixer of pipelines, fixer of build configs, fixer of anything where someone just needs to RTFM for a half-hour to not fucking break things.
Now, 8 months later...and, apparently, Fortune 500 companies are too fucking god-damned cheap to pay for someone who actually knows WTF they're doing for a very reasonable thing to have at least one dedicated set of eyes for.
I never wanted to be a mobile dev.
I never will want to be a mobile dev.
And I certainly don't want to manage your HALF-FACE-FUCKED detached expo configs.
There's a reason I never intentionally involved myself in mobile. All the way down, it's just shitty cross-compilation, transpilation, dependency-hell, brittle-as-fuck build processes so we can foot-gun and mouth-gun react-native and expo and babel and whatever the fuck else cargo-culted horseshit into the wild.
And why? What's the actual fucking root cause? The biggest white elephant that ever fucking elephant-ed? It's because Apple and Google decided to never collaborate on a truly-native cross-platform SDK--where engineers could write native code that compiles to native binaries that's simply write-once, run-everywhere. They know they could have done that, and they didn't. So what'd they get back? Expo--a too-cleverly-designed backdoor/hack--more-or-less a way to circumvent the sane release process software has usually followed: code -> executable -> deploy. Or code -> deploy (for interpreted langs). Expo's like "keep your same executable, we're just gonna to do updates by injecting new code into it whenever we want". Didn't we learn anything with web? Shit gets messy real quick? Not to mention: HEY EXPO, WE WERE ALREADY BUILDING NATIVE APPS, YOU SHORT-SIGHTED FUCKS. THANKS FOR LURING OUR CTOs INTO FORCING EXPO DOWN OUR THROATS W/ THE IMPLICIT (BUT INCORRECT) TOO-GOOD-TO-BE-TRUE PROMISE THAT WE CAN HAVE WRITE-ONCE, RUN-ANYWHERE WITHOUT ANY BUY-IN OR COOPERATION FROM THE ACTUAL TARGET PLATFORMS.
And, we just, like, accept this? We all know it's garbage engineering. The principles we learned in the classroom aren't just academic abstractions--they actually yield real-world results--and eschewing them yields real-world failures. Expo is tightly-coupled to high-heaven, with leaky abstractions six-ways-to-christmas, chock-full of foot-guns, and fails the most basic test of quality: does it, "just work?"
Expo is fucking shameful and it should fucking die. Its promises are too bold, its land-mines too many, its future-proof-ness is alway, always, always questionable as fuck and a risk to every project that uses it.
You want a rant? This is my fucking venue, 'tis not? Well, then this is a piss and vinegar rant straight from my blood-red, beating fucking heart:
EXPO FUCKING SUCKS. AND IF YOU'RE A FAN, YOU FUCKING SUCK TOO.27 -
Hey everyone,
We have a few pieces of news we're very excited to share with everyone today. Apologies for the long post, but there's a lot to cover!
First, as some of you might have already seen, we just launched the "subscribed" tab in the devRant app on iOS and Android. This feature shows you a feed of the most recent rant posts, likes, and comments from all of the people you subscribe to. This activity feed is updated in real-time (although you have to manually refresh it right now), so you can quickly see the latest activity. Additionally, the feed also shows recommended users (based on your tastes) that you might want to subscribe to. We think both of these aspects of the feed will greatly improve the devRant content discovery experience.
This new feature leads directly into this next announcement. Tim (@trogus) and I just launched a public SaaS API service that powers the features above (and can power many more use-cases across recommendations and activity feeds, with more to come). The service is called Pipeless (https://pipeless.io) and it is currently live (beta), and we encourage everyone to check it out. All feedback is greatly appreciated. It is called Pipeless because it removes the need to create complicated pipelines to power features/algorithms, by instead utilizing the flexibility of graph databases.
Pipeless was born out of the years of experience Tim and I have had working on devRant and from the desire we've seen from the community to have more insight into our technology. One of my favorite (and earliest) devRant memories is from around when we launched, and we instantly had many questions from the community about what tech stack we were using. That interest is what encouraged us to create the "about" page in the app that gives an overview of what technologies we use for devRant.
Since launch, the biggest technology powering devRant has always been our graph database. It's been fun discussing that technology with many of you. Now, we're excited to bring this technology to everyone in the form of a very simple REST API that you can use to quickly build projects that include real-time recommendations and activity feeds. Tim and I are really looking forward to hopefully seeing members of the community make really cool and unique things with the API.
Pipeless has a free plan where you get 75,000 API calls/month and 75,000 items stored. We think this is a solid amount of calls/storage to test out and even build cool projects/features with the API. Additionally, as a thanks for continued support, for devRant++ subscribers who were subscribed before this announcement was posted, we will give some bonus calls/data storage. If you'd like that special bonus, you can just let me know in the comments (as long as your devRant email is the same as Pipeless account email) or feel free to email me (david@hexicallabs.com).
Lastly, and also related, we think Pipeless is going to help us fulfill one of the biggest pieces of feedback we’ve heard from the community. Now, it is going to be our goal to open source the various components of devRant. Although there’s been a few reasons stated in the past for why we haven’t done that, one of the biggest reasons was always the highly proprietary and complicated nature of our backend storage systems. But now, with Pipeless, it will allow us to start moving data there, and then everyone has access to the same system/technology that is powering the devRant backend. The first step for this transition was building the new “subscribed” feed completely on top of Pipeless. We will be following up with more details about this open sourcing effort soon, and we’re very excited for it and we think the community will be too.
Anyway, thank you for reading this and we are really looking forward to everyone’s feedback and seeing what members of the community create with the service. If you’re looking for a very simple way to get started, we have a full sample dataset (1 click to import!) with a tutorial that Tim put together (https://docs.pipeless.io/docs/...) and a full dev portal/documentation (https://docs.pipeless.io).
Let us know if you have any questions and thanks everyone!
- David & Tim (@dfox & @trogus)53 -
Well, it finally happened.
After 25 years coding in all types of languages and environments, I’m no longer having fun.
It now seems like it’s a fight to get interested in the code. I used to be something that I would spend hours / days doing. Now I just want to walk away from the code.
Is it true (do you think) that after a while all you see is a for loop, an if statement, a null check and you just think to yourself. Fuck this! Because I think I’m there.
God it’s depressing to think that I no longer find it fun.4 -
And there you go...\(◎o◎)/rant linkedin amarite joke/meme algorithms what? what the fuck datastructures wtf? linkedin linkedin is shit3
-
Straight from a marketing analyst (we didn't have a PM) I once had the displeasure of working with:
"Can you write a JavaScript that will scan a user's hard drive for credit card numbers and autofill the checkout form on our client's web site? I think it will increase their conversion rate."
The guy didn't believe me when I told him it was impossible (barring exploits that would break the browser's sandbox), unethical, and probably illegal. I had to escalate all the way to the CEO to get him to drop it.6 -
ERROR [SUCCESSFUL ] org.scala-sbt.ivy#ivy;2.3.0-sbt-cb9cc189e9f3af519f9f102e6c5d446488ff6832!ivy.jar (13350ms)
I have a Successful error.4 -
A database of a German client for testing was sent to our software company. To make sure that the program works well with real data. Testers are funny people, they immediately found a certain Schwarzkopf in the database and fired, making a comment “for dyed hair”. Further - more. Some Albert Speer was suspended from work on the night shift, pointing out in a comment: "suspected of a relationship with Hitler."
Work progressed, genocide grew. The whole department was dismissed with the comment: “To the gazenvagen” (naturally in German). The apogee was the demotion of the director to the supply manager, the establishment of the Obersturmbanführer position and the adoption of Max von Stirlitz (as you might have guessed) on it. An element of reality in the game of testers was made by a dull dude who wanted to check how the mail server works.
As a result, the above comments were sent to all of the above characters, as well as their managers, through the database to their real e-mail addresses.3 -
Here's a recent interview I had for an Android Developer job:
I: Interviewer, M: Me
I: hello, welcome
M: hi, thanks
I: do you know Kotlin?
M: yes, I've been working with it for 1.5 years and have written 3 projects in it
I: do you know RxJava, Dagger, Retrofit, and how to make Custom Views?
M: yes, I'm comfortable with them *explains*
I: do you know Room?
M: yes I do, I've done a lot of practices in it, but unfortunately have never needed to use it in production
I: what architecture do you use? Do you know MVP?
M: I'm currently using MVVM, but not MVP. I've debugged projects in it so I know what's going on in it
I: ok, do you have any questions for us?
M: how did I do?
I: I'm sorry sir, but you're not even a junior here
M: what? Why is that?
I: well you don't know Room and MVP?
M: I said I know them, just haven't used them in production.
I: well you have 3 years of experience but you dont even know Kotlin!
M: Kotlin was your first question and I said I have 3 projects in it. Did you even check the samples you asked for in the job posting?
I: SIR YOU'RE NOT A GOOD FIT FOR US, THANK YOU FOR COMING.
:/56 -
Arglebargle.
I went to buy flowers for [redacted event] and gave the florist my CC info, number, and email for a receipt. He was a nice old man who loves what he does, and makes beautiful arrangements. But. He just emailed me all of my CC info, and asked what part of it was wrong. Twice. Emailed. Plain text. SMTP.
Guess who's requesting a replacement card?
😞13 -
I think I'm going to delete my account.
I browsed through my personal feed, and even though I've spend some time curating, only about 1 in a 100 is a real rant. The rest are memes, mildly funny observations, the kind of programmer humor which is only funny to non-programmers, and bland anekdotes.
And when I post something IN ALL CAPS WITH SOME FUCKING CURSEWORDS AND RAGE IN THERE YOU CUNTS ALL TELL ME TO CALM DOWN AND BE MORE POSITIVE?
What kind of a weak, smoothieslurping mindfulness convention has this community become? Do you guys just want to be a mildly funny reddit clone for easily offended hipsters?
This place was my outlet, my venting space, the spot where I didn't feel alone in frustrations.
I find this new content fucking sickening.56 -
The fact that my boss knows I'm on devRant means, that I can't rant about anything, that can be linked to my workplace or current assignments.11
-
Today I learned Slovakia is in fact a version control system, not country.
Things you find on Wikipedia these days.. 🤔8 -
I'm really down.
I spent 10 years building on an application worth 800K$ revenue per year.
I tried to build a technical team. All left, because of fights with stupid account managers, CEO, business managers.
I was left alone for almost one year alone, working like 60-70 hours per week to keep the things going and adapt to more customers.
And looking for potential partners to outsource things.
Now out of the blue, 3 weeks before my summer holiday, investors introduce me to a "partner" that will rent to us a "developer" for 2 months. from tomorrow.
What the fuck I'm gonna do with him in 2 weeks I don't know.
Actually I understand that this "partner" will take over the whole project.
They used the word "to help me", but actually during the meeting they said to fix things that are not working, and to develop new features because the project is blocked.
Of course there are bugs, I have no developers with me and hundred of features and integrations to maintain. And of course everything is blocked because I have to think hard about priorities.
I feel humiliated in the worst way.
I don't know what will be my future position.
I wasted time contacting potential partners and the answer was always "there are no money".
The business strategist, entered one year ago and said "no more IT investment".
Basically as cofounder and cto (of myself), they will not fire me, if I stay silent. If I accept to be a puppet. And eat, eat eat a lot of shit. I'll grow fat from the shit I'll eat.
I feel I've lost all my hard work, and I'm alone.40 -
What devrant taught me:
Everyone hates java
Everyone hates php
Everyone hates spaces
Everyone hates tabs
Everyone hates vim
Everyone hates windows
Everyone hates linux
Everyone hates clients
Everyone hates PMs
Everyone hates every language they're not working with
Everyone loves devrant 😊36 -
!rant
After over 20 years as a Software Engineer, Architect, and Manager, I want to pass along some unsolicited advice to junior developers either because I grew through it, or I've had to deal with developers who behaved poorly:
1) Your ego will hurt you FAR more than your junior coding skills. Nobody expects you to be the best early in your career, so don't act like you are.
2) Working independently is a must. It's okay to ask questions, but ask sparingly. Remember, mid and senior level guys need to focus just as much as you do, so before interrupting them, exhaust your resources (Google, Stack Overflow, books, etc..)
3) Working code != good code. You are an author. Write your code so that it can be read. Accept criticism that may seem trivial such as renaming a variable or method. If someone is suggesting it, it's because they didn't know what it did without further investigation.
4) Ask for peer reviews and LISTEN to the critique. Even after 20+ years, I send my code to more junior developers and often get good corrections sent back. (remember the ego thing from tip #1?) Even if they have no critiques for me, sometimes they will see a technique I used and learn from that. Peer reviews are win-win-win.
5) When in doubt, do NOT BS your way out. Refer to someone who knows, or offer to get back to them. Often times, persons other than engineers will take what you said as gospel. If that later turns out to be wrong, a bunch of people will have to get involved to clean up the expectations.
6) Slow down in order to speed up. Always start a task by thinking about the very high level use cases, then slowly work through your logic to achieve that. Rushing to complete, even for senior engineers, usually means less-than-ideal code that somebody will have to maintain.
7) Write documentation, always! Even if your company doesn't take documentation seriously, other engineers will remember how well documented your code is, and they will appreciate you for it/think of you next time that sweet job opens up.
8) Good code is important, but good impressions are better. I have code that is the most embarrassing crap ever still in production to this day. People don't think of me as "that shitty developer who wrote that ugly ass code that one time a decade ago," They think of me as "that developer who was fun to work with and busted his ass." Because of that, I've never been unemployed for more than a day. It's critical to have a good network and good references.
9) Don't shy away from the unknown. It's easy to hope somebody else picks up that task that you don't understand, but you wont learn it if they do. The daunting, unknown tasks are the most rewarding to complete (and trust me, other devs will notice.)
10) Learning is up to you. I can't tell you the number of engineers I passed on hiring because their answer to what they know about PHP7 was: "Nothing. I haven't learned it yet because my current company is still using PHP5." This is YOUR craft. It's not up to your employer to keep you relevant in the job market, it's up to YOU. You don't always need to be a pro at the latest and greatest, but at least read the changelog. Stay abreast of current technology, security threats, etc...
These are just a few quick tips from my experience. Others may chime in with theirs, and some may dispute mine. I wish you all fruitful careers!221