Details
Joined devRant on 5/13/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
-
Meeting with client.
Me: our solution does not require a central server, any computer (windows, Mac or Linux) on which you install our software can act both as a client and a server
Client: no we need to have all our data on our server
Me: sure, you can install our software on any computer
Client: no, we need it on our server
Me: ok then, we can make the needed changes to install our software on your server, it will cost an additional fee though
Client: very good then17 -
So a few days ago I felt pretty h*ckin professional.
I'm an intern and my job was to get the last 2003 server off the racks (It's a government job, so it's a wonder we only have one 2003 server left). The problem being that the service running on that server cannot just be placed on a new OS. It's some custom engineering document server that was built in 2003 on a 1995 tech stack and it had been abandoned for so long that it was apparently lost to time with no hope of recovery.
"Please redesign the system. Use a modern tech stack. Have at it, she's your project, do as you wish."
Music to my ears.
First challenge is getting the data off the old server. It's a 1995 .mdb file, so the most recent version of Access that would be able to open it is 2010.
Option two: There's an "export" button that literally just vomits all 16,644 records into a tab-delimited text file. Since this option didn't require scavenging up an old version of Access, I wrote a Python script to just read the export file.
And something like 30% of the records were invalid. Why? Well, one of the fields allowed for newline characters. This was an issue because records were separated by newline. So any record with a field containing newline became invalid.
Although, this did not stop me. Not even close. I figured it out and fixed it in about 10 minutes. All records read into the program without issue.
Next for designing the database. My stack is MySQL and NodeJS, which my supervisors approved of. There was a lot of data that looked like it would fit into an integer, but one or two odd records would have something like "1050b" which mean that just a few items prevented me from having as slick of a database design as I wanted. I designed the tables, about 18 columns per record, mostly varchar(64).
Next challenge was putting the exported data into the database. At first I thought of doing it record by record from my python script. Connect to the MySQL server and just iterate over all the data I had. But what I ended up actually doing was generating a .sql file and running that on the server. This took a few tries thanks to a lot of inconsistencies in the data, but eventually, I got all 16k records in the new database and I had never been so happy.
The next two hours were very productive, designing a front end which was very clean. I had just enough time to design a rough prototype that works totally off ajax requests. I want to keep it that way so that other services can contact this data, as it may be useful to have an engineering data API.
Anyways, that was my win story of the week. I was handed a challenge; an old, decaying server full of important data, and despite the hitches one might expect from archaic data, I was able to rescue every byte. I will probably be presenting my prototype to the higher ups in Engineering sometime this week.
Happy Algo!8 -
~During app demo to our client~
- And when you click here the request will be submitted, the admin will be notified.
*App crashes*
- And of course the app will close itself since it's the end of the process.
- Client: That's good
- Me: ⊙﹏⊙13 -
Some ideas for variable names. Thank me later :))
1. bool sheet;
2. int entionally;
3. char mander;
4. double penetration;
5. string cheese;
6. long schlong;23 -
[Client]
We've noticed we gave you the wrong product prices for our new online shop.
[Dev]
Yeah, just login to the backend and fix them.
[Client]
But we don't want to use your fancy backend, we'll be using anyway soon - we want EXCEL!
Could you send us an EXCEL, so we can fix that?
How much will this cost?
[Dev]
Sure... here you are.
Not that much, takes about an hour.
[Client]
Great, you'll hear from us in a few days.
(a few months later...)
[Client]
We've finally managed to update the EXCEL. And btw, we've also added a bunch of columns with product pictures and new properties, highlighted products to delete red, inserted some comments with manual instructions and basically destroyed the entire data structure of this table.
Before I forget... also make sure to get this finished today, we have to go live ASAP. Our marketing campaign is already live.
[Dev]
Well, I'm sorry to say this, but this is not possible.
I'm currently working on another project and it will take me hours to clean up the data you sent me, before even starting to build an import tool for the new data you provided. Better stop the campaign and I'll do my best to get this done by the end of the week. Also it may be a bit costly.
(angry client calls immediately...)
(dev transfers to manager...)
(client transfers to client's boss...)
[Manager]
Ok Dev, I think I was able to explain it to them. However, it would be great if you spend day and night to get this thing out ASAP.
[Dev]
No problem...
I'll just do it by hand to get this out immediately.
(few days later; nearly done, exhausted)
[Client]
Hey Dev, here's another EXCEL.
We've just noticed there were a bunch of errors in the previous one. Please use this instead...13 -
I'm the biggest dumbass, the laziest procrastinator I know of..
Joined devRant in June 2017, got eligible for the stickers in a week's time, sent a mail requesting them, but never received it. Given the size of our community, I thought I'm way behind in the list and probably receive them in few months. After a year, I totally forgot about it.
But, the colossal stupid that I am, had also lost the key to my mailbox (the physical one). I never cared about the lost key, because who sends post these days !!!
When I finally got a duplicate key for my mailbox after 2 years, guess what I found.. a first class international mail from devRant which arrived on July 2017 🤦♂️🤦♂️🤦♂️, couple of weeks after I originally requested
But, yay... I finally got them..16 -
Yeeeeeeeee! My granddaughter yelled up to me, "Grandpa, I'm programming!" She was doing some kid code game thing. Ten years old. I can hope, can't I? 😁14
-
Pro tip: If you are a junior, or senior but new at the company, don't start your conversations with:
"We're doing X wrong. At my previous company we did / at school I learned /in this book I read / according to this talk I watched, the right way to do X is ..."
Instead try:
"I'm curious why were doing X this way. I'm used to doing it differently."
I love flat-hierarchy teams, and people who think about flaws in procedures and proactively try to improve the tools we use are awesome, but the next kid walking up to me yelling we use git flow "wrong" will be smacked in the face with a keyboard.
If you come to me with curiosity and an open mind, I'll explain, and even return the favor by behaving the same way when I'm baffled by your seemingly retarded implementations.
Maybe we can learn from each other, maybe discover that "how I learned it" is sometimes good, sometimes bad.
But let's start with some social skills, not kicking off into every debate with a stretched leg and a red face.23 -
So I was hired about 4 months or so in this companty, we will name it 'Derp & Co.'
The first task they want me to do was to 'clean' an android app that, for what they told me:
- Previous dev fired. said that tasks have been done but totally a lie.
- Took a fully week of 2 fellows coworkers to 'undo' the mess.
- And for the last but not least, zero documentation, like ZERO.
So, I clone the repo, install android studio, blah blah blah, get hands to the pile of code and jesus...
- The whole app was working with a gargantuan json, there was no use of POJOs at all. Objects are for normies.
- A masive copy/paste code, like 'I will need this here, crtl-c... ctrl-v, DONE!'
- Threads are free, isn't it? let's just put a thread whenever I desire to make an HTTP request and not reuse code at all.
So... with this on mind, my first task is to make proper objects:
- Coworker: 'Sorry dev, we don't have documentation for this, you must debug the code to se what the server will send to you'.
- Me: 'Real?'
Shit... ok. So I first try to figure out how the hell is made my gargantuan json. A month was entirely lost to unravel this data and implement Objects, improve their code, reuse code, etc. but at the very end:
- coworker: 'Good job dev, when the POJOs are done, we can focus on the next task, whe have to define a new DATA MODEL because the one we are using now is not good at all'.
*note: the app is on production and working with all the previous 'features' and today it still on use on some enviroments.
- Me: 'Wait... this is a joke, now you want to define new data models? This should have been done in first place!' <WTF face>
- Coworker: 'I don't think so dev, Mr. boss have this list with things to improve on the app an this is the order of do the tasks'.
Mr. boss is on vacations, two days after he came back:
- Mr boss: 'Coworker said that you have been working with POJOs, is that right?'
- Me: 'Yes'
- Mr boss: 'Why? Did not see the need of a new data model?'
- Me: 'I told that to him, but he insist on "the order" of the list.
- Mr. boss <facepalm>
This is one of the few tales i have from 'Derp & Co.'
PS: Sorry if i made a mistake on writing, english is not my first language and maybe I have done some mistakes.7 -
Me: Did Sherry let you know that I'm leaving today?
Coworker: what!? No!
Me: yeah... I'm leaving.
Coworker: huh, I'm not surprised...
Me: what is that supposed to mean!?
Co: shit man, this job sucks, I'm not surprised. I'll be leaving right behind you.
Me: oh.... Um... April Fools... 😬
Co: God damnit.
Me: don't worry, I won't tell the boss how you really feel.4 -
So I have been temporarily assigned to new team .. moving from mainly backend.. to help the Web team ..
Me .: Aight guys .. what we working with ?
Team: MVC .net
Me: awesome ..
Team: but we have our own version of MVC .
Me : 🤔 your own MVC ?
Team: yeh we only buse controllers.. but no models at all ?
Me.: 😲 So where does the view gets its data from ?
Team : from Azure functions apps.
M: how ?
T: ( in very proud tone ) .. we use js to call all functions.
M: so why not just use HTML pages . Why MVC then !
T: coz MVC is modern architecture design.
M: but you not using it and all of calles to the functions are exposed publicly.
T: 🧐 THIS IS MODERN DESIGN !!
M: 🤪 My bad .. what the hell do I know ! I only been developing MVC applications for 7 years !!
Please tell me more about your " Modern Design "
🤮🤮🤮25 -
Sorry, I just had to post this cable porn I found posted in some random subreddit.
Just look at those curves12 -
What is in a web name?
thought i would share
ready?
www.gotahoe.com (go tahoe )
www.speedofart.com (speed of art designers)
www.whorepresents.com (who represents celebrity rep lookup site)
and of finally
www.penisland.com ( pen island yup they sell pens)13 -
My boss intentionally changed my IDE font color to black since im using dark theme. I was literally confused a solid 30 minutes.
FFFFUUUUUCK16 -
Boss: Hey, remember that app you made that was supposed to be purely for demonstration purposes?
Me: The one that we hard coded to get done in a week? Yea, why?
Boss: Here are some changes we need done for the next meeting.
Me:...1 -
So apparently I got added to a Python dev group by a random person.
I thought okay cool I might learn new things and connect with some great people in the industry.
Turned out that it was just a bunch of noobs.
When I gave an honest response to a question asked by the admin (who turned out to be a noob as well), he kicked me out.
I honestly don't know if there's any official certification for Python other that the one I said.3 -
Today I learned:
`/usr` stands for “universal system resources” not “user”
`/dev` stands for “device” not “development”
Had no idea.30