Details
-
AboutJust a developing developer
-
Skillsjs, ruby
-
LocationShanghai, China
Joined devRant on 3/8/2018
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
-
Since fucking when did "bare metal" mean just running on an OS?? At a conference and literally everyone is like "we got kubernetes running on bare metal", got super excited for a bit because just the idea of that sounds amazing but they're using it as slang for "basically not in a container or vm."
Nothing exciting at all. Now we're patting ourselves on the back for getting software working without it being preconfigured as a container or a VM image. No one knows how to do anything any more. MUCH too much abstraction going on.
I guess it keeps me more employable, but the state of the world from a developer standpoint is just sad.
(For reference, this is what the first sentence of "Bare Metal" looks like on wikipedia "In computer science, bare machine (or bare metal) refers to a computer executing instructions directly on logic hardware without an intervening operating system.")4 -
Today - after a successful launch of my own GitLab-Server - I finished my other project!
It's a Resouce Panel for my Homeserver to check it's stats like:
- CPU usage
- RAM usage
- Network Traffic
- Disk Space
It works like a charm and only need php <3
If you guys want a download link, I'll send one in :)51 -
Design team: "Is it okay if I put this here?"
Me: "No, it's not okay if you put that there."
Design team: "Are you sure? It'd be really cool if I could put that there."
Me: "No, I will need to fuck with a lot of things if you put that there, just put it in the bootstrap columns."
Design team: "Hold on, lemme see if it's okay to put that there."
Lead-dev: "He's right, you shouldn't put that there."
Company: "We should have a meeting to discuss where the design team can and can't put things."
Lead-dev: "Just put the things in the middle and devide them in these twelve columns on seperate rows, 'kay?"
Company: "Okay, the design team will now put the thing in those things, right design team?"
Design team: "Yes, we agree to putting the thing where we should put the thing."
Me: "So where do you want the thing now?"
Design team: "I want it all the way to the right, outside of the container, that'd look cool."
Me: "Fuck you."22 -
You know who sucks at developing APIs?
Facebook.
I mean, how are so high paid guys with so great ideas manage to come up with apis THAT shitty?
Let's have a look. They took MVC and invented flux. It was so complicated that there were so many overhyped articles that stated "Flux is just X", "Flux is just Y", and exactly when Redux comes to the stage, flux is forgotten. Nobody uses it anymore.
They took declarative cursors and created Relay, but again, Apollo GraphQL comes and relay just goes away. When i tried just to get started with relay, it seemed so complicated that i just closed the tab. I mean, i get the idea, it's simple yet brilliant, but the api...
Immutable.js. Shitload of fuck. Explain WHY should i mess with shit like getIn(path: Iterable<string | number>): any and class List<T> { push(value: T): this }? Clojurescript offers Om, the React wrapper that works about three times faster! How is it even possible? Clojure's immutable data structures! They're even opensourced as standalone library, Mori js, and api is great! Just use it! Why reinvent the wheel?
It seems like when i just need to develop a simple react app, i should configure webpack (huge fuckload of work by itself) to get hot reload, modern es and jsx to work, then add redux, redux-saga, redux-thunk, react-redux and immutable.js, and if i just want my simple component to communicate with state, i need to define a component, a container, fucking mapStateToProps and mapDispatchToProps, and that's all just for "hello world" to pop out. And make sure you didn't forget to type that this.handler = this.handler.bind(this) for every handler function. Or use ev closure fucked up hack that requires just a bit more webpack tweaks. We haven't even started to communicate to the server! Fuck!
I bet there is savage ass overengineer sitting there at facebook, and he of course knows everything about how good api should look, and he also has huge ass ego and he just allowed to ban everything that he doesn't like. And he just bans everything with good simple api because it "isn't flexible enough".
"React is heavier than preact because we offer isomorphic multiple rendering targets", oh, how hard want i to slap your face, you fuckface. You know what i offered your mom and she agreed?
They even created create-react-app, but state management is still up to you. And react-boierplate is just too complicated.
When i need web app, i type "lein new re-frame", then "lein dev", and boom, live reload server started. No config. Every action is just (dispatch) away, works from any component. State subscription? (subscribe). Isolated side-effects? (reg-fx). Organize files as you want. File size? Around 30k, maybe 60 if you use some clojure libs.
If you don't care about massive market support, just use hyperapp. It's way simpler.
Dear developers, PLEASE, don't forget about api. Take it serious, it's very important. You may even design api first, and only then implement the actual logic. That's even better.
And facebook, sincerelly,
Fuck you.17 -
I was contacted by a college senior guy (he was part of the core team of the club that I recently joined in my college).
Him: Do you want to launch your own startup?
Me: Yeah, I would love to.
Him: Nice, Listen. Even I want to start my own company. If you don't know, the current trend is ML and AI . So, I would like to base my startup on an AI application.( He was in his final year )
Me: I haven't tried any ML or AI stuff before.Sorry.
Him: Take 2 months time to study the AI concepts and do the app.
Me: But first, tell me what the AI app is supposed to do?
Him: It can be anything I have to think, you take the AI part and the UI and integration; with your skills and my idea let's build a startup and I will appoint you as the head of Application Development in my company.
*wtf, seriously dude? you want me to build the whole app for you and all you will do is put your fucking startup's name on it. I am building an application all by myself why the f would I ask you to publish it for me*
Me: Okay, I am getting late, I have to leave..
Made sure I didn't meet him again
and I have also came out of that stupid club..3 -
When I was in college in 1996, one of my roommates had a “Web 101” class. At that same time, the office of a government agency I was working for had asked me to publish a website to let the public know what they were doing. Prior to that I had bought an HTML 1.0 reference and had been fiddling around with some things. I got excited about it all when I realized that just within 2 weeks of using the book I had passed up the entire class my roommate was taking and apparently knew more at that point than the professor. I published the agency site, then went on to build sites for the Uni and freelance clients, and then to apply to teach a more advanced class in the Continuing Education courses the Uni offered to adults in the community. All of that got me a job at a startup which led to the rest of my career. That was pretty dang exciting to me.1
-
I see my boss interested in learning new languages as if it is gonna be some sort of holy grail but his logic remains the same.
I'm in a step of my life that I finally understand that this language fight is a total waste of time:
PhP is fucking delicious to deploy
Java is fucking delicious to work with spring boot
Python has a fucking delicious syntax and I wanna marry it
Go is fucking delicious to outperform others
Anyway, my point is that when you get the hang of it you should learn concepts and improve your logic instead of hoping language x is gonna save you, its not.13 -
[Thursday afternoon on a call...]
Client: Before we get started, can you create a sitescape outlining all of the pages and sections of the new website?
Me: Sure! I'll go through the website and shoot you a full layout in xls format as soon as possible, that way you can easily make notes on what you want added, modified or removed.
[Two hours later...]
Client: Hey, did you build that sitescape yet?
Me: Actually, I've been on back-to-back calls with other clients.
Client: So when are you going to get it done?
Me: Well, I have to go through the current website in it's entirety, which I'm guessing is about 1,000 pages. I have to determine which pages work fine on their own, which need to be combined for better presentation and which should be removed due to redundancy. That's something that is tedious and takes some time to complete. That, in combination with having an existing work queue that I need to fit you within and being at the end of the work week, we're looking at Tuesday morning to have it ready.
Client: "Existing work queue"? This is ridiculous. We're paying you good money to make our project your only priority. If we wanted to wait days for work, we would have saved money and paid for a cheaper service. You're already gouging us as it is! If we don't get the sitescape by end of day Friday, we're going with another company.
Me: I would tell you that I'm sorry for the inconvenience, but I'm not. I'm not going to feed you a line to make you happy. I'm also not going to work on my days off just to rush something out to you. You hired us because you wanted things done right, not quickly. Your current website is the result of not focusing on quality, but by how fast you can deliver it. We don't work that way. We only build quality products.
By rushing your project, not only do we alienate our current clients, affecting our reputation, but we build product of less than the highest quality. That will upset you because it isn't perfect, and it reflects poorly on us to use it in our portfolio.
If you want to hire someone to pump out this project to your unrealistic deadlines, be our guest. But you paid a 50% non-refundable deposit, so not only will you lose money, but your end product will suffer.
I'm going to let you sleep on this. If you decide tomorrow that another direction is the way to go, we wish you luck. But please understand that if we conclude our business, we will no longer make ourselves available for your needs.
Please find the attached contracts you have signed, acknowledging the non-refundable deposit, as well as the project timeline and scope, of which a "sitescape" was never originally mentioned or blocked out for time.
I hope that tomorrow we can move forward in a more professional manner.
[Next morning...]
Client: My apologies for yesterday. We're just very anxious to get this started.
-----
Don't let clients push you around. Make them sign a contract and enforce it whenever necessary.7 -
I spent yesterday refactoring a JavaScript file and it was so fucking bad that I wasn't containing my frustration to the point it git blamed it to make sure I wasn't "wtfing" my boss's code, I wasn't so I went on a rampage.
Anyone who looked at me yesterday would see a pissed off dev with the highest rate of wtf/minute to the screen gesturing and force palming constantly.
I'm a back end dev.
I made a front end code have 90% (?!?!?!) less code, more readable and I can say for sure 10x faster.
There was a fucking setTimeout() with 5 seconds delay to do something that doesn't even need to wait...
Fuck this shit lol.2 -
Ok so you're a pretty good programmer. You don't take time to grasp stuff, but then we all know there are times when we all fail to understand certain things. But why does that 'making a fool out of yourself' incident HAVE to happen when your colleagues are around?
Scene 1:
Coding alone, no bugs at all. Perfectly optimized code. Runs with no compile-time errors or warnings.
Scene 2 :
Typing code. Colleague enters my cabin. Before even I execute it, finds 300 compile-time errors. All of them happen to be true
Judged for life..
Why, oh programmer god, why?2 -
Alright wikipedia, i see that you're in a crisis, but I just send 5€ your way. That should not be the fucking signal to unleash popup hell on me. Fucking 4 out of 5 pages now come with that popup. "if rveryone woukd just send $2..."
BITCH I SEND YOU 5€, STOP DEEPTHROATING ME YOUR UNGRATEFUL COCK10 -
Biggest challenge: Remember to put ';' (semicolons) in line endings after coding python for 5 years.1
-
Useless Google Shortener API.
It allows 1M requests per day.
But has a max rate limit of 1 request/second. There are 86400 seconds in a day. Why are you giving a 1M requests limit then?5 -
I'm convinced code addiction is a real problem and can lead to mental illness.
Dev: "Thanks for helping me with the splunk API. Already spent two weeks and was spinning my wheels."
Me: "I sent you the example over a month ago, I guess you could have used it to save time."
Dev: "I didn't understand it. I tried getting help from NetworkAdmin-Dan, SystemAdmin-Jake, they didn't understand what you sent me either."
Me: "I thought it was pretty simple. Pass it a query, get results back. That's it"
Dev: "The results were not in a standard JSON format. I was so confused."
Me: "Yea, it's sort-of JSON. Splunk streams the result as individual JSON records. You only have to deserialize each record into your object. I sent you the code sample."
Dev: "Your code didn't work. Dan and Jake were confused too. The data I have to process uses a very different result set. I guess I could have used it if you wrote the class more generically and had unit tests."
<oh frack...he's been going behind my back and telling people smack about my code again>
Me: "My code wouldn't have worked for you, because I'm serializing the objects I need and I do have unit tests, but they are only for the internal logic."
Dev:"I don't know, it confused me. Once I figured out the JSON problem and wrote unit tests, I really started to make progress. I used a tuple for this ... functional parameters for that...added a custom event for ... Took me a few weeks, but it's all covered by unit tests."
Me: "Wow. The way you explained the project was; get data from splunk and populate data in SQLServer. With the code I sent you, sounded like a 15 minute project."
Dev: "Oooh nooo...its waaay more complicated than that. I have this very complex splunk query, which I don't understand, and then I have to perform all this parsing, update a database...which I have no idea how it works. Its really...really complicated."
Me: "The splunk query returns what..4 fields...and DBA-Joe provided the upsert stored procedure..sounds like a 15 minute project."
Dev: "Maybe for you...we're all not super geniuses that crank out code. I hope to be at your level some day."
<frack you ... condescending a-hole ...you've got the same seniority here as I do>
Me: "No seriously, the code I sent would have got you 90% done. Write your deserializer for those 4 fields, execute the stored procedure, and call it a day. I don't think the effort justifies the outcome. Isn't the data for a report they'll only run every few months?"
Dev: "Yea, but Mgr-Nick wanted unit tests and I have to follow orders. I tried to explain the situation, but you know how he is."
<fracking liar..Nick doesn't know the difference between a unit test and breathalyzer test. I know exactly what you told Nick>
Dev: "Thanks again for your help. Gotta get back to it. I put a due date of April for this project and time's running out."
APRIL?!! Good Lord he's going to drag this intern-level project for another month!
After he left, I dug around and found the splunk query, the upsert stored proc, and yep, in about 15 minutes I was done.1 -
Me, trying to create a LaTeX document: *googles "latex string comparison"*
Customer and boss walk in.
Google: *shows NSFW results*
I.. Let...- Let me explain, it's not what it looks like!14 -
What happens when you change the service call center to 100% AI
AI: Hello, this is the After Service center. How may I help you?
Angry customer: Hey! Do you count this as a product? Do you sell this to use it? F*** shit?! Bring the manager now!
AI: Thank you for your response. We will connect you to the Development team.
Angry customer: Uhhhhhh
AI: Hello, this is the development team. Please state your problems.
A bit relaxed customer: Umm, so this product you guys are selling stops working sometimes, so...
AI: We are sorry, but for the product misfunctions, please contact the After Service. We will connect you to After Service.
F***ed out customer: Wait, I just came from the After Service!
AI: Hello, this is the After Service center. How may I help you?
Angry customer who is ready to throw the phone: I said that the product is not working, and I asked to bring the freaking manager in the line!
AI: Thank you for your response. We will connect you to the Development team.
Customer throwing the phone and shouting: F*********************************************************************************************!7 -
!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