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
Search - "first lesson"
-
"You gave us bad code! We ran it and now production is DOWN! Join this bridgeline now and help us fix this!"
So, as the author of the code in question, I join the bridge... And what happens next, I will simply never forget.
First, a little backstory... Another team within our company needed some vendor client software installed and maintained across the enterprise. Multiple OSes (Linux, AIX, Solaris, HPUX, etc.), so packaging and consistent update methods were a a challenge. I wrote an entire set of utilities to install, update and generally maintain the software; intending all the time that this other team would eventually own the process and code. With this in mind, I wrote extensive documentation, and conducted a formal turnover / training season with the other team.
So, fast forward to when the other team now owns my code, has been trained on how to use it, including (perhaps most importantly) how to send out updates when the vendor released upgrades to the agent software.
Now, this other team had the responsibility of releasing their first update since I gave them the process. Very simple upgrade process, already fully automated. What could have gone so horribly wrong? Did something the vendor supplied break their client?
I asked for the log files from the upgrade process. They sent them, and they looked... wrong. Very, very wrong.
Did you run the code I gave you to do this update?
"Yes, your code is broken - fix it! Production is down! Rabble, rabble, rabble!"
So, I go into our code management tool and review the _actual_ script they ran. Sure enough, it is my code... But something is very wrong.
More than 2/3rds of my code... has been commented out. The code is "there"... but has been commented out so it is not being executed. WT-actual-F?!
I question this on the bridge line. Silence. I insist someone explain what is going on. Is this a joke? Is this some kind of work version of candid camera?
Finally someone breaks the silence and explains.
And this, my friends, is the part I will never forget.
"We wanted to look through your code before we ran the update. When we looked at it, there was some stuff we didn't understand, so we commented that stuff out."
You... you didn't... understand... my some of the code... so you... you didn't ask me about it... you didn't try to actually figure out what it did... you... commented it OUT?!
"Right, we figured it was better to only run the parts we understood... But now we ran it and everything is broken and you need to fix your code."
I cannot repeat the things I said next, even here on devRant. Let's just say that call did not go well.
So, lesson learned? If you don't know what some code does? Just comment that shit out. Then blame the original author when it doesn't work.
You just cannot make this kind of stuff up.105 -
The first time I realized I wasn't as good as I thought I was when I met the smartest dev I've ever known (to this day).
I was hired to manage his team but was just immediately floored by the sheer knowledge and skills this guy displayed.
I started to wonder why they hired outside of the team instead of promoting him when I found that he just didn't mesh well with others.
He was very blunt about everything he says. Especially when it comes to code reviews. Man, he did /not/ mince words. And, of course, everyone took this as him just being an asshole.
But being an expert asshole myself, I could tell he wasn't really trying to be one and he was just quirky. He was really good and I really liked hanging out with him. I learned A LOT of things.
Can you imagine coming into a lead position, with years of experience in the role backing your confidence and then be told that your code is bad and then, systematically, very precisely, and very clearly be told why? That shit is humbling.
But it was the good kind of humbling, you know? I really liked that I had someone who could actually teach me new things.
So we hung out a lot and later on I got to meet his daughter and wife who told me that he had slight autism which is why he talked the way he did. He simply doesn't know how to talk any other way.
I explained it to the rest of the team (after getting permission) and once they understood that they started to take his criticism more seriously. He also started to learn to be less harsh with his words.
We developed some really nice friendships and our team was becoming a little family.
Year and a half later I had to leave the company for personal reasons. But before I did I convinced our boss to get him to replace me. The team was behind him now and he easily handled it like a pro.
That was 5 years ago. I moved out of the city, moved back, and got a job at another company.
Four months ago, he called me up and said he had three reasons for us to meet up.
1. He was making me god father of his new baby boy
2. That they created a new position for him at the company; VP of Engineering
and
3. He wanted to hang out
So we did and turns out he had a 4th reason; He had a nice job offer for me.
I'm telling this story now because I wanted to remind everyone of the lesson that every mainstream anime tells us:
Never underestimate the power of friendship.21 -
At university we had lessons in C++.
First lesson: Make a calculator
Second lesson: Make an application that uses sockets to connect to an FTP-server and downloads a file. No FTP-libraries allowed.13 -
I just remembered the first time I set up a Linux-Server. It was a simple Apache webserver at my first internship anf I didnt have a clue about literally anything.
My mentor guided me through and gave me literal step-by-step instructions (alright, now type... and now type...).
At the end he told me "OK, now run 'sudo rm -rf /*' to finish setting up". Me, being the naive and clueless motherfucker I am, happily nuked the everloving shit out of my newly setup server. I was like "Alright, WTF just happened??" He then told me "Now that you know how it works, do the entire thing again all by yourself. And you just learned an important lesson: NEVER exexute commands you dont know what theyre doing". I really did learn a lot on that day and still follow that lesson :D8 -
This was my first freelancer project. Just dropped out of school, i think i was 17. No money, no proper hardware, i had a very old laptop & stolen wifi from our neighbor. I lived in a very small room at my mom’s flat, she wanted me out as soon as i turn 18. At the time my plan was to work on freelancer stuff and make my own games. “It will be fine, fuck school, who needs school? 😂“ I haven’t really finished anything back then, so i only had a few wip hobby projects to show ppl as my references. I saw a freelancer job posting. The task was to make a simple quiz game for mobile, it paid 350$. Back then that was a lot of money for me so i took it. I met the client, he said “2-3 week tops, i send you everything, you do the code” Cool. I finally had a “job”😃. The 2-3 weeks turned into a 8 month blur of all-nighting and just implement one more thing and its finished. I did not really have any experience on how to deal with clients and i really needed this project to finally have something on my porfolio. I motivated myself with “if i can finish this i can finish anything”. I think the story of my most definitive all-nighting was 3 months into the development. I finally got everything from the client so it was like just put it together and its done. The client wanted 300 levels, beeing a noob i was i started making all the 300 unity scenes by hand, aligning the pictures, the ui, testing each level, making adjustments to the code, etc.. after a really long night and a fuckton of caffeine i was done. I sent it to the client at around 9 am and gone to sleep. When i woke up i checked my emails to saw this: Cool! But can we do hints? (wich needed a fuckton of rework of my code) I think i had my first mental breakdown while working on the project. After that he wanted more modifications and because i made every level by hand i had to remake all of them like 10 times 😂
But in the end it turned out positive, he really helped me to start my carrier, we became sord of friends and the project gave me a lot of confidence and experience on how to deal with stuff when shit goes wrong because everything that can go wrong in a project gone wrong. It was the most valuable developer lesson. Plus it sounds so cool to say “i was born in development hell, b*tch!”🕶
I attached a pic of the laptop i worked on 😂
Thanks for reading 😃32 -
Was lead developer at a small startup, I was hiring and had a budget to add 3 new people to my team to develop a new product for the company.
Some context first and then the rant!
Candidate 1 - Amazing, a dev I worked with before who was under utilized at the previous company. Still a junior, but, she was a quick learner and eager to expand her knowledge, never an issue.
Candidate 2 - Kickass dev with back end skills and extras, he was always eager to work a bit more than what was expected. I use to send him home early to annoy him. haha!
Candidate 3 - Lets call him P.
In the interview he answers every question perfectly, he asks all the right questions and suggests some things I havent even thought of. CTO goes ahead and says we should skip the technical test and just hire the guy, his smart and knows what his talking about, I agree and we hire him. (We where a bit desperate at this stage as well.)
He comes in a week early to pick up his work laptop to get setup before he starts the next week, awesome! This guy is going to be an asset to the company, cant wait to have him join the team - The CTO at this stage is getting ready to leave the company and I will be taking over the division and need someone to take over lead position, he seems like the guys to do it.
The guys starts the next week, he comes in and the laptop we gave him is now a local server for testing and he will be working off his own laptop, no issue, we are small so needed a testing stack, but wasnt really needed since we had procedures in place for this already.
Here is where everything goes wrong!!! First day goes great... Next day he gets in early 6:30am (Nice! NO!), he absolutely smells, no stinks, of weed, not a light smell, the entire fucking office smells of weed! (I have no problem with weed, just dont make it my problem to deal with). I get called by boss and told to sort this out people are complaining! I drive to office and have a meeting with him, he says its all good he understands. (This was Friday).
Monday comes around - Get a call from Boss at 7:30am. Whole office smells like weed, please talk to P again, this cannot happen again. I drive to office again, and he again says it wont happen again, he has some issues with back pain and the weed helps.
Tuesday - Same fucking thing! And now he doesnt want to sign for the laptop("server") that was given to him, and has moved to code in the boardroom, WHERE OUR FUCKING CLIENTS WILL BE VIEWING A DEMO THAT DAY OF THE PRODUCT!! Now that whole room smells like weed, FML!
Wednesday - We send P a formal letter that he is under probation, P calls me to have a meeting. In the meeting he blames me for not understanding "new age" medicine, I ask for his doctors prescription and ask why he didnt tell me this in the interview so I could make arrangements, we dont care if you are stoned, just do good work and be considerate to your co-workers. P cant provide these and keeps ranting, I suggest he takes pain killers, he has none of it only "new age" medicine for him.
Thursday - I ask him to rather "work" from home till we can get this sorted, he comes in for code reviews for 2 weeks. I can clearly see he has no idea how the system works but is trying, I thought I will dive deeper and look at all of his code. Its a mess, nothing makes sense and 50% of it is hard coded (We are building a decentralized API for huge data sets so this makes no sense).
Friday - In code review I confront him about this, he has excuses for everything, I start asking him harder questions about the project and to explain what we are building - he goes quiet and quits on the spot with a shitty apology.
From what I could make out he was really smart when it came to theory but interpreting the theory to actual practice wasnt possible for him, probably would have been easier if he wasnt high all the time.
I hate interview code tests, but learned a valuable lesson that day! Always test for some code knowledge as well even if you hate doing it, ask the right questions and be careful who you hire! You can only bullshit for so long in coding before someone figures out that you are a fraud.16 -
Funny story about the first time two of my servers got hacked. The fun part is how I noticed it.
So I purchased two new vps's for proxy server goals and thought like 'I can setup fail2ban tomorrow, I'll be fine.'
Next day I wanted to install NginX so I ran the command and it said that port 80 was already in use!
I was sitting there like no that's not possible I didn't install any server software yet. So I thought 'this can't be possible' but I ran 'pidof apache2' just to confirm. It actually returned a PID! It was a barebones Debian install so I was sure it was not installed yet by ME. Checked the auth logs and noticed that an IP address had done a huge brute force attack and managed to gain root access. Simply reinstalled debian and I put fail2ban on it RIGHT AWAY.
Checked about two seconds later if anyone tried to login again (iptables -L and keep in mind that fail2ban's default config needs six failed attempts within I think five minutes to ban an ip) and I already saw that around 8-10 addresses were banned.
Was pretty shaken up but damn I learned my lesson!8 -
I think I've shown in my past rants and comments that I'm pretty experienced. Looking back though, I was really fucking stupid. Since I haven't posted a rant yet on the weekly topics, I figure I would share this humbling little gem.
Way back in the ancient era known as 2009, I was working my first desk job as a "web designer". Apparently the owner of this company didn't know the difference between "designer", which I'm not, and "developer", which I am, nor the responsibilities of each role.
It was a shitty job paying $12/hour. It was such a nightmare to work at. I guess the silver lining is that this company now no longer exists as it was because of my mistake, but it was definitely a learning experience I hold in high regard even today. Okay, enough filler...
I was told to wipe the Dev server in order to start fresh and set up an entirely new distro of Linux. I was to swap out the drives with whatever was available from the non-production machines, set up the RAID 5 array and route it through the router and firewall, as we needed to bring this Dev server online to allow clients to monitor the work. I had no idea what any of this meant, but I was expected to learn it that day because the next day I would be commencing with the task.
Astonishingly, I managed to set up the server and everything worked great! I got a pat on the back and the boss offered me a 4 day weekend with pay to get some R&R. I decided to take the time to go camping. I let him know I would be out of town and possibly unreachable because of cell service, to which he said no problem.
Tuesday afternoon I walked into work and noticed two of the field techs messing with the Dev server I built. One was holding a drive while the other was holding a clipboard. I was immediately called into the boss's office.
He told me the drives on the production server failed during the weekend, resulting in the loss of the data. He then asked me where I got the drives from for the Dev server upgrade. I told him that they came from one of the inactive systems on the shelf. What he told me next through the deafening screams rendered me speechless.
I had gutted the drives from our backup server that was just set up the week prior. Every Friday at midnight, it would turn on through a remote power switch on a schedule, then the system would boot and proceed to copy over the production server's files into an archive for that night and shutdown when it completed. Well, that last Friday night/Saturday morning, the machine kicked on, but guess what didn't happen? The files weren't copied. Not only were they not copied, but the existing files that got backed up previously we're gone. Why? Because I wiped those drives when I put them into the Dev server.
I would up quitting because the conversation was very hostile and I couldn't deal with it. The next week, I was served with a suit for damages to this company. Long story short, the employer was found in the wrong from emails I saved of him giving me the task and not once stating that machine was excluded in the inactive machines I could salvage drives from. The company sued me because they were being sued by a client, whose entire company presence was hosted by us and we lost the data. In total just shy of 1TB of data was lost, all because of my mistake. The company filed for bankruptcy as a result of the lawsuit against them and someone bought the company name and location, putting my boss and its employees out of a job.
If there's one lesson I have learned that I take with the utmost respect to even this day, it's this: Know your infrastructure front to back before you change it, especially when it comes to data.8 -
My first ever programming lesson was pretty awkward. I had zero knowledge of any coding so even the basics were new. Everytime the teacher said "string" I was kinda cringing and feeling awkward, but nobody else seemed bothered. I was laughing inside like the teenager I was, looking around for someone to share a giggle with. But nothing.
The explanation:
The word "string" in dutch means thong. Me not knowing any other uses for this word was a little flustered 😬.4 -
Rant && story time
When I was in first grade of high school (age of 15) we had a class of informatics. Nothing unusuall, you say, but this teacher was ummm ... Let's just say special. Most of his classes looked like this:
TEACHER: Ok, class, today we are going to learn/work with <insert a name of a software here>. # And then he sat behind his desk, falling silent for the rest of the lesson. We had to look up the software ourselves, and learn to use it. Or not.
Next lesson, he just said:
TEACHER: Continue your work from the last time.
And on the third lesson of each cycle, there was grading in place. He walked through the class and if he saw you working with the software, you got a 5 (that is A for our western friends), but if you were doing something completely different, you got a 1 (that is F). That just ment that you had to open the program and wave the mouse around while he was looking at your screen, and you got a guaranteed 5.
And then the cycle repeated.
However, this is not the story about the teacher in general, it's a story about one specific event involving him.
Around the beginning of the year (calendar one, not school one; that is middle of the school year) a programming competition took place.
The first stage (school competition), was easy; I got 45 points out of 50 (I was second-best on the whole school, of all years (students from 15 to 20 years of age).
A few weeks later, second stage (national competition) took place. However, when I got to the registration dosk, things got weird.
I patiently waited in line, but when I got to the front, the assistant asked me for year and school.
ME: I come from SCHOOL_NAME and go to first year.
ASSISTANT1: All students who go to SCHOOL_NAME need to go to that separate line.
It seemed strange, but I walked over anyhow. Maybe there was enough students from our school so that new line opened for us.
ME: I go to first year. # I assumed I don't have to tell the name as the line was only for our school.
ASSISTANT2: Ok, but you need to go to that row. *points to the row wherexI just came from* # WTF is going on now?
ME: Ummm, I just came from there, and they told me to come here.
ASSISTANH2: Oh, you go to SCHOOL_NAME?
ME: Yeah
ASSISTANT2: Ok then. What is your name? # Thank Knuth, one mistery less
ME: My name is SELF.NAME
After a short search through the envelopes:
ASSISTANT2: Here you go # Both the fact that my name was completely misspeled and the procedure it took us to finally get to the correct envelope are a story for a different time.
Skip forward some 10 minutes, to the lecture hall where they just told us all the instructions and started to divide us into classrooms
ASSISTANT3:
for CLASSROOM, STUDENT_LIST in STUDENT_DIVISION:
for STUDENT in STUDENT_LIST:
STUDENT.invite(CLASSROOM)
At the end, only a few people, including me, remained.
ASSISTANT3: Is there anyone not from SCHOOL_NAME? # Umm, yeah, WTF is going on now?
Noone replied.
ASSISTANT3: OK, you all, come with me now, we will find you a classroom.
From there on, competition went fine, I came in second, got a new phone as a prize, no complaints.
However, later on, I realized what was the reason for all that weird behaviour.
Signup date for the second part was on LAST_SIGNUP_DATE, which was at least two weeks before the competition, and signups had to be done untill 1600 that day.
Our teacher signed us up at 2200. ON THE FUCKING DAY BEFORE THE COMPETITION. OF COURSE THEY HAD NOTHING PLANNED FOR US, NO ENVELOPES, NO COMPUTERS, NOTHING, IF WE WERE SIGNED UP LESS THAN FUCKING 12 HOURS BEFORE THE COMPETITION INSTEAD OF 2 WEEKS EARLIER. THE ONLY REASON WE GOT TO COMPETE WAS BECAUSE SOME PEOPLE DIDN'T SHOW UP AND WE USED THE PC'S MENT FOR THEM. IF EVERYONE SHOWED UP WE FUCKING COULDN'T COMPETE.
And from that moment on, I always signed myself up for all of the competitions; better safe than sorry.rant lazy fuck. last minute competition signups you thought you knew what last-minute means? high school teacher2 -
"How to name your variables and functions so they can be understood by other humans" should be a mandatory lesson right after someone writes their first ever computer program.15
-
So, I was participating in a competition, but little did I know that you could only participate in pairs. Seeing that a lot of famous indie devs were participating I was extremely hyped. But since it seemed like I was the only idiot who didn't have a partner I felt like kicking myself. Then a guy about whom I had never heard of before, probably a newbie, comes out of the blue and asks me to be his partner. Since I had no choice, I reluctantly agreed to pair up with him. The rules of the competition were to create a game based on a particular theme in a period of 1 week. To get started, I asked him about his skills as it would be better to know what our strengths and weaknesses were. He said that he was good at art and proceeded to show me some of his "previous works". I was genuinely impressed. Honestly speaking his drawing seemed a bit off but was but for a newbie, it was good. So we decided that he would take care of the art and I would code, create some basic music (nothing too fancy because of the lack of time) and if time permits, refine his art(correcting ratios, colour combinations, shading, etc.). On the first day, he would like to work in privacy and would show only the finished products to me. It seemed a bit fishy, but hey, I am all up for respecting the wishes of fellow team members.
So all was going well, or so I thought, till on the fifth day the guy confesses that he didn't get shit done. Apparently, his "previous works" were random stuff taken from the great land of internet and that he had to leave town the next day. He just wanted to "experience the life of a game developer" and "meant no harm". I flipped out, half lectured half screamed at him then asked him to get the fuck out which happened to be the only fucking thing that he was able to do correctly. I thought for an hour or so, then contacted the staff and informed them about my situation. They said that if I was okay with the handicap, I may continue. I then pulled three all nighters with about 3 hours of sleep (that too in parts of about 1 hour) everyday and was barely able to submit my game on time.
I secured the fifth place, which was pretty good if I may say so myself, but it an important lesson in my life that taught me to never trust anyone blindly.4 -
I was offered to work for a startup in August last year. It required building an online platform with video calling capabilities.
I told them it would be on learn and implement basis as I didn't know a lot of the web tech. Learnt all of it and kept implementing side by side.
I was promised a share in the company at formation, but wasn't given the same at the time of formation because of some issues in documents.
Yes, I did delay at times on the delivery date of features on the product. It was my first web app, with no prior experience. I did the entire stack myself from handling servers, domains to the entire front end. All of it was done alone by me.
Later, I also did install a proxy server to expand the platform to a forum on a new server.
And yesterday after a month of no communication from their side, I was told they are scraping the old site for a new one. As I had all the credentials of the servers except the domain registration control, they transferred the domain to a new registrar and pointed it to a new server. I have a last meeting with them. I have decided to never work with them and I know they aren't going to provide me my share as promised.
I'm still in the 3rd year of my college here in India. I flunked two subjects last semester, for the first time in my life. And for 8 months of work, this is the end result of it by being scammed. I love fitness, but my love for this is more and so I did leave all fitness activities for the time. All that work day and night got me nothing of what I expected.
Though, they don't have any of my code or credentials to the server or their user base, they got the new website up very fast.
I had no contract with them. Just did work on the basis of trust. A lesson learnt for sure.
Although, I did learn to create websites completely all alone and I can do that for anyone. I'm happy that I have those skills now.
Since, they are still in the start up phase and they don't have a lot of clients, I'm planning to partner with a trusted person and release my code with a different design and branding. The same idea basically. How does that sound to you guys?
I learned that:
. No matter what happens, never ignore your health for anybody or any reason.
. Never trust in business without a solid security.
. Web is fun.
. Self-learning is the best form of learning.
. Take business as business, don't let anyone cheat you.19 -
Tl;dr: owning and pranking other people with a wireless mouse is hacking and illegal.
Okay, so I wanted to fuck around with some people one day so I decide to bring a usb wireless mouse to my secondary school.
My first target was my science teacher (was a bitch). I got into class before everyone else and plugged in the small usb receiver then sat down and pretended as if nothing had happened. The lesson starts and here is where the fun begins. Her screen is projected onto a whiteboard so I could see what she was doing. Under the table I had my mouse and every time she tried clicking a dialogue, I would move the mouse ever so slightly so she would miss. After a couple of times, she started to get suspicious, maybe even slightly paranoid; my friend keked. I never got found out by that teacher.
Fast forward to next lesson: I already planted the receiver in my next victims pc. The victim was a bitch I hated so much at the time. She would used to bully me to an extent and was a loud noisy bitch. I really didn't like the person. I digress. When the time was right, I went to her folder, highlighted all her files, right click, hover over delete. But I wasn't so shallow to delete her stuff. That's not the person I am. I guess it was more of a threat really. But the teacher saw what was going on and she saw my wireless mouse and connected 2 and 2 together. She called the behaviour people, removed the reciever and the mouse from me.
Within a few minutes, I was in a room on my own talking to this woman talking about how hacking is bad/illegal and she knows I'm into it etc. But I wasn't hacking? I did no damage and was pulling a prank. Bitch didn't listen to me. She made me sign this document which said that if I fuck around with computers, I could be expelled and I won't be allowed to use to computers again or use them with many restrictions.
I didn't really care. To this day, I still don't have my mouse back. :(7 -
Lesson learnt :
Never ever do "rm -rf <pattern>" without doing "ls <pattern>" first.
I had to delete all the contents of my current directory.
I did "rm -rf /*" instead of "rm -rf ./*".19 -
This one time I aliased a coworkers 'sudo' with 'sl' (sl shows a train running across the screen)
And then I removed him from the sudoers group and sudoers list.
I then magnified his screen 200%
Changed his background to a shitty narwhal.
And then full screened a terminal with the 'sl' train stuck in a while loop.
You can't control c out of the terminal.
He solved the first part really quickly, fixing the full screened terminal and exiting out of it, magnification and the background.
But took him 4 days to find that I had fucked up his sudo. Apparently, he didn't need to use sudo in those 4days. It wasn't until he mentioned it out of the blue.
How did he find out about it? He was running an important script that had sudo in it. When he ran the script a train would pop up and his script would terminate early.
He came to me and cursed me to Satan's anus. He then asked me to fix it, but then changed his mind and said that he'd do it himself. After a while he couldn't figure out what I had done.
I walked him through it. Told him that he had to go to his .bashrc file and remove the alias.
Later he comes back to me and curses me to the 12th circle of hell. He found that he was no longer a sudoer. At this point he gave me access to his computer and told me to reverse everything that I had done.
Added him back into the sudoers group and called it a day.
Lesson to be learned? Don't leave your machine unlocked.20 -
When I was 10 my younger brother saved over my fully completed pokedex in Pokemon blue.
First big data loss taught me a good life lesson. Now I backup everything on a local server.1 -
Funny story from yesterday at work.
Useful to know for later on, the last sentence of the 'convo' is a sentence from a Dutch movie, it basically translates to 'youre fired, vagina' (we swear with that here but it sounds better in Dutch tbh)
Somehow got to the subject of motorbike lessons:
Colleague (M): so just imagine the motorbike instructor arriving for the first lesson and me doing a wheelie right away 😆
Colleague (B): and then his boss coming around at the same time and seeing that happening
(one of our most silent but always on point colleagues) Colleague (c): je bent ontslagen, kut!
Aaaaaand everyone fucking lost it 😂7 -
Today at school:
We had a chemistry lesson. Somehow we came to talk about Linux...
So first our teacher said that Linux is shit.
Then another student said, Linux would be like Windows.
Teacher searched for "linux ist scheiße" (which means "linux is shit") on YouTube and let us watch a video.
He also said the whole Internet says Linux is shit and that it would never be more important then Windows.
Kill me pls😢13 -
TL;DR :
"when i die i want my group project members to lower me into my grave so they can let me down one last time"
STORY TIME
Last year in College, I had two simultaneous projects. Both were semester long projects. One was for a database class an another was for a software engineering class.
As you can guess, the focus of the projects was very different. Databases we made some desktop networked chat application with a user login system and what not in Java. SE we made an app store with an approval system and admin panels and ratings and reviews and all that jazz in Meteor.js.
The DB project we had 4 total people and one of them was someone we'll call Frank. Frank was also in my SE project group. Frank disappeared for several weeks. Not in class, didn't contact us, and at one point the professors didn't know much either. As soon as we noticed it would be an issue, we talked to the professors. Just keeping them in the loop will save you a lot of trouble down the road. I'm assuming there was some medical or family emergency because the professors were very understanding with him once he started coming back to class and they had a chance to talk.
Lesson 1: If you have that guy that doesn't show up or communicate, don't be a jerk to them and communicate with your professor. Also, don't stop trying to contact the rogue partner. Maybe they'll come around sometime.
It sucked to lose 25% of our team for a project, but Frank appreciated that we didn't totally ignore him and throw him under the bus to the point that the last day of class he came up to me and said, "hey, open your book bag and bring it next to mine." He then threw a LARGE bottle of booze in there as a thank you.
Lesson 2: Treat humans as humans. Things go wrong and understanding that will get you a lot farther with people than trying to make them feel terrible about something that may have been out of their control.
Our DB project went really well. We got an A, we demoed, it worked, it was cool. The biggest problem is I was the only person that had taken a networking class so I ended up doing a large portion of the work. I wish I had taken other people's skills into account when we were deciding on a project. Especially because the only requirement was that it needed to have a minimum of 5 tables and we had to use some SQL language (aka, we couldn't use no-SQL).
The SE project had Frank and a music major who wanted to minor in CS (and then 3 other regular CS students aside from me). This assignment was make an app store using any technology you want. But, you had to use agile sprints. So we had weekly meetings with the "customer" (the TA), who would change requirements on us to keep us on our toes and tell us what they wanted done as a priority for the next meeting. Seriously, just like real life. It was so much fun trying to stay ahead of that.
So we met up and tried to decided what to use. One kid said Java because we all had it for school. The big issue is trying to make a Java web app is a pain in the ass. Seriously, there are so many better things to use. Other teams decided to use Django because they all wanted to learn Python. I suggested why not use something with a nice package system to minimize duplicating work that had already been done and tested by someone. Kid 1 didn't like that because he said in the real world you have to make your own software and not use packages. Little did he know that I had worked in SE for a few years already and knew damn well that every good project has code from somewhere else that has already solved a problem you're facing. We went with Java the first week. It failed miserably. Nobody could get the server set up on their computers. Using VCS with it required you to keep the repo outside of the where you wrote code and copy and paste changes in there. It was just a huge flop so everyone else voted to change.
Lesson 3: Be flexible. Be open to learning new things. Don't be afraid to try something new. It'll make you a better developer in the long run.
So we ended up using Meteor. Why? We all figured we could pick up javascript super easy.Two of us already knew it. And the real time thing would make for some cool effects when an app got a approved or a comment was made. We got to work and the one kid was still pissed. I just checked the repo and the only thing he committed was fixing the spelling of on word in the readme.
We sat down one day and worked for 4 straight hours. We finished the whole project in that time. While other teams were figuring out how to layout their homepage, we had a working user system and admin page and everything. Our TA was trying to throw us for loops by asking for crazy things and we still came through. We had tests that ran along side the application as you used it. It was friggin cool.
Lesson 4: If possible, pick the right tool for the job. Not the tool you know. Everything in CS has a purpose. If you use it for its purpose, you will save days off of a project.1 -
One of our newly-joined junior sysadmin left a pre-production server SSH session open. Being the responsible senior (pun intended) to teach them the value of security of production (or near production, for that matter) systems, I typed in sudo rm --recursive --no-preserve-root --force / on the terminal session (I didn't hit the Enter / Return key) and left it there. The person took longer to return and the screen went to sleep. I went back to my desk and took a backup image of the machine just in case the unexpected happened.
On returning from wherever they had gone, the person hits enter / return to wake the system (they didn't even have a password-on-wake policy set up on the machine). The SSH session was stil there, the machine accepted the command and started working. This person didn't even look at the session and just navigated away elsewhere (probably to get back to work on the script they were working on).
Five minutes passes by, I get the first monitoring alert saying the server is not responding. I hoped that this person would be responsible enough to check the monitoring alerts since they had a SSH session on the machine.
Seven minutes : other dependent services on the machine start complaining that the instance is unreachable.
I assign the monitoring alert to the person of the day. They come running to me saying that they can't reach the instance but the instance is listed on the inventory list. I ask them to show me the specific terminal that ran the rm -rf command. They get the beautiful realization of the day. They freak the hell out to the point that they ask me, "Am I fired?". I reply, "You should probably ask your manager".
Lesson learnt the hard-way. I gave them a good understanding on what happened and explained the implications on what would have happened had this exact same scenario happened outside the office giving access to an outsider. I explained about why people in _our_ domain should care about security above all else.
There was a good 30+ minute downtime of the instance before I admitted that I had a backup and restored it (after the whole lecture). It wasn't critical since the environment was not user-facing and didn't have any critical data.
Since then we've been at this together - warning engineers when they leave their machines open and taking security lecture / sessions / workshops for new recruits (anyone who joins engineering).26 -
Recap: https://www.devrant.io/rants/878300
I was out Thursday at the Hospital. I'm what the doctors would call "Ill as fuck"
So, Friday I’m back in the office to the usual: "How was that appointment?"
I know people mean well when they ask this. So, I do the polite thing and tell them it went as well as it could.
Realistically it does't matter how well it went... They haven't cured Crohn's because I showed up to the appointment. They know I'm fucked already.
But, push it down, add it to the future aneurism.
I had to go through the usual resignation meetings with managers:
"We"re fucked now you're going"
"yep"
"we need to get a handle on how fucked"
"already done that for you, here"s a trello board, very fucked."
"we need to put a plan together to drop all the junior devs in the shit with the work you’ve been doing"
"You need about 4 devs, please refer to the previous trello board for your plan"
Meanwhile, me and Morpheus are in constant communication because all of this is like a Shakespearean comedy.
So, I overhear a conversation between a Junior Dev and the Solution Architect.
[SA] took over the project because he knows better than two tried and tested senior devs -_- (fuckwit).
JD: "It took me one and a half days to build it out"
SA: "Yeah, it must have taken me twice as long... It must be a problem with the project, you should just be able to check it out and run it."
JD: "I know, it has to be wrong"
All of this is about Morpheus' work of art, of an Ionic 3 hybrid app.
I fumed quietly at my desk because I've been ordered by the Stazi to be hands off.
Since Morpheus and me were pulled from the project [JD] and [JD2] were dropped into it to get it over the line.
It"s unfortunate and I was clear and honest with my advice to them: I personally would not take over the project because I"d be way out of my depth... Oh, and the App works, so uh, there's no work to do.
They have been constantly at our desks. Asking fuckdiculous questions about how to perform basic tasks. So they can get Morpheus" frigging masterpiece to the user.
It"s like watching that touch up of jesus that got borked by an amateur. Shit I have google, it's like watching this happen: http://ti.me/NnNSAb
[JD] came to me Friday evening.
"I can’t get this to build to iOS or install on [Test Analyst]'s phone."
Me: "No worries brother, where are you stuck right now?"
[JD] describes the first steps with clear indication he hasn't googled his problem.
Life lesson: http://lmgtfy.com/?q=lmgtfy
Que an hour of me showing [JD] how to build an Ion3 project for iOS. Fuck it, your man's in a bind and he"s asked politely for help. I can show him quicker than he can read 3 sets of docos.
I took him through 'ionic cordova build ios', the archive and release processes in XCode 9, then the apk bundling process for droid. Finally we have an MAM so the upload process for that too.
All the while cleaning up his AppIDs, Profiles, deployment attempts.
Damn they were a mess.
I did this with a smile on my face, not because I could say "I told you so"... But. because when any developer asks you how to do something. If you know how to do it, you should always be happy to learn them some new tricks!
Dude's alright, he's been dropped in the shit. Now I know how badly so I'll help him learn things that are useful to his role, but aren't project specific.
As a plausi-senior dev (I'll tell you about that later); it's my job to make sure my team have what they need to go home smiling!
I’m not a hateful fucker, the guy asked me an honest question so I am happy to give him the honest answer.
I took him through it a few times and explained a few best practices. Most were how to do his AppID and ProvProfile set up. Good lad, took it all on board.
However! In his frustration, he pointed the finger at Morpheus' "David" (ref: Michelangelo).
He miraculously morphed into a shiny colourful parrot and fed me SA's line:
"you should just be able to build from a clean clone"
My response was calm and clear:
"You can, it took me 20 minutes on Thursday evening. I was bored and curios, so I wanted to validate Morpheus' work. Here it is on my iOS device and my Android device. It would have taken me 5 if my laptop wasn’t so horrifically out of date."
I validated Morpheus' work so I have evidence, I trust that brilliant bastard.
I just need to be able to prove it's good.
[JD] took this on board.
Maybe listening to two tried and trusted senior devs is better than listening to a headstrong Solution Architect.
When JD left for the weekend I was working a late one (https://www.devrant.io/rants/874765).
His sign off was beautiful.
"I think I can happily admit defeat on this one, it can wait until Monday."
To which I replied: "no worries brother, if you need a hand give me a shout."
Rule 1: Don't be a cunt.
Rule 2: If someone needs help and you can give it: Give it!
Rule 3: Don't interrupt James' cigarette time.
Rule 4: goto Rule 3.rant day 3 jct resigns crohns resignation solution architect wk71 invisible illness fuckwit illness junior developer4 -
I just had my worst hackathon so far and need to puke my whole toxic hatred, the rant will be full of hate so be warned. (I just don't want to let it go on my girlfriend, but I need to shout it out loud somewhere)
First of all, it is alright to be a beginner at a hackathon. It is also alright to not know that much about coding and want to learn. But it is not alright to lie about your skill, pretend to be a senior programmer and waste my fucking time.
Don't even fucking dare to say your are "fit" in Android development if you just have done some foobar tutorial on YouTube, don't even bother to read the document and have literally non existent knowledge about computer science.
Why the fucking hell do you need to pretend to be a seasoned programmer if you are just a bloody beginner? I mean you are in a hackathon full of computer nerds so soon or later your impostor ass will be debunked so what is the point?
And the other guy. Why the fucking hell did.'t you say that you just begin Python for 3 months? You are not a fucking developer if you just started coding for 3 fucking months. Learn some fucking coding before starting with machine learning you fucking punk ass bitch script kiddie.
Alright, maybe I was too naive to not check my teammates' background before make a team with them. Fuck me and my fucking stupid ass. My dumb ass monkey brain fell for big mouths, I deserved the headache right now and none less.
Lesson learned!9 -
I've found and fixed any kind of "bad bug" I can think of over my career from allowing negative financial transfers to weird platform specific behaviour, here are a few of the more interesting ones that come to mind...
#1 - Most expensive lesson learned
Almost 10 years ago (while learning to code) I wrote a loyalty card system that ended up going national. Fast forward 2 years and by some miracle the system still worked and had services running on 500+ POS servers in large retail stores uploading thousands of transactions each second - due to this increased traffic to stay ahead of any trouble we decided to add a loadbalancer to our backend.
This was simply a matter of re-assigning the IP and would cause 10-15 minutes of downtime (for the first time ever), we made the switch and everything seemed perfect. Too perfect...
After 10 minutes every phone in the office started going beserk - calls where coming in about store servers irreparably crashing all over the country taking all the tills offline and forcing them to close doors midday. It was bad and we couldn't conceive how it could possibly be us or our software to blame.
Turns out we made the local service write any web service errors to a log file upon failure for debugging purposes before retrying - a perfectly sensible thing to do if I hadn't forgotten to check the size of or clear the log file. In about 15 minutes of downtime each stores error log proceeded to grow and consume every available byte of HD space before crashing windows.
#2 - Hardest to find
This was a true "Nessie" bug.. We had a single codebase powering a few hundred sites. Every now and then at some point the web server would spontaneously die and vommit a bunch of sql statements and sensitive data back to the user causing huge concern but I could never remotely replicate the behaviour - until 4 years later it happened to one of our support staff and I could pull out their network & session info.
Turns out years back when the server was first setup each domain was added as an individual "Site" on IIS but shared the same root directory and hence the same session path. It would have remained unnoticed if we had not grown but as our traffic increased ever so often 2 users of different sites would end up sharing a session id causing the server to promptly implode on itself.
#3 - Most elegant fix
Same bastard IIS server as #2. Codebase was the most unsecure unstable travesty I've ever worked with - sql injection vuns in EVERY URL, sql statements stored in COOKIES... this thing was irreparably fucked up but had to stay online until it could be replaced. Basically every other day it got hit by bots ended up sending bluepill spam or mining shitcoin and I would simply delete the instance and recreate it in a semi un-compromised state which was an acceptable solution for the business for uptime... until we we're DDOS'ed for 5 days straight.
My hands were tied and there was no way to mitigate it except for stopping individual sites as they came under attack and starting them after it subsided... (for some reason they seemed to be targeting by domain instead of ip). After 3 days of doing this manually I was given the go ahead to use any resources necessary to make it stop and especially since it was IIS6 I had no fucking clue where to start.
So I stuck to what I knew and deployed a $5 vm running an Nginx reverse proxy with heavy caching and rate limiting linked to a custom fail2ban plugin in in front of the insecure server. The attacks died instantly, the server sped up 10x and was never compromised by bots again (presumably since they got back a linux user agent). To this day I marvel at this miracle $5 fix.1 -
This is something that happened 2 years ago.
1st year at uni, comp sci.
Already got project to make some app for the univ that runs in android, along with the server
I thought, omg, this is awesome! First year and already got something to offer for the university 😅
(it's a new university, at the time I was the 2nd batch)
Team of 12, we know our stuffs, from the programming POV, at least, but we know nothing about dealing with client.
We got a decent pay, we got our computers upgraded for free, and we even got phones of different screen sizes to test out our apps on.
No user requirement, just 2-3 meetings. We were very naive back then.
2 weeks into development, Project manager issues requirement changes
we have a meeting again, discussing the important detail regarding the business model. Apparently even the univ side hadn't figure it out.
1 month in the development, the project manager left to middle east to pursue doctoral degree
we were left with "just do what you want, as long as it works"
Our projects are due to be done in 3 months. We had issues with the payment, we don't get paid until after everything's done. Yet the worse thing is, we complied.
Month 3, turns out we need to present our app to some other guy in the management who apparently owns all the money. He's pleased, but yet, issued some more changes. We didn't even know that we needed to make dashboard at that time.
The project was extended by one month. We did all the things required, but only got the payment for 3 months.
Couldn't really ask for the payment of the fourth month since apparently now the univ is having some 'financial issues'.
And above all: Our program weren't even tested, let alone being used, since they haven't even 'upgraded' the university such that people would need to use our program as previously planned.
Well, there's nothing to be done right now, but at least I've learned some REALLY valuable lesson:
1. User Requirement is a MUST! Have them sign it afterwards, and never do any work until then. This way, change of requirements could be rejected, or at least postponed
2. Code convention is a MUST! We have our code, in the end, written in English and Indonesian, which causes confusion. Furthermore, some settle to underscore when naming things, while other chooses camel case.
3. Don't give everyone write access to repository. Have them pull their own, and make PR later on. At least this way, they are forced to fix their changes when it doesn't meet the code convention.
4. Yell at EVERYONE who use cryptic git commit message. Some of my team uses JUST EMOTICONS for the commit message. At this point, even "fixes stuffs" sound better.
Well, that's for my rant. Thanks for reading through it. I wish some of you could actually benefit from it, especially if you're about to take on your first project.3 -
Story time!
About seven years ago, I was in high school and had friends who kinda rocked with computers. I mean, they knew how to build one, how to make cross tests to find what was wrong with one, which softwares to install to detect viruses, etc. Once, I was with one of these friends, A, when another friend, G, came to us to explain his problem: his computer didn't turn on anymore. He said that he opened the computer, took off the RAM, that let the computer start once, but when he switched off again he wouldn't start anymore.
I was just a silent witness, and A started to ask G how it did happen. "Oh, I was downloading an Allopass generator, when my computer froze."
I smiled.
"But where on hell did you download that? So we can try to find exactly what virus you downloaded! " "Actually", said G, "I was on a streaming site at first, then saw an, then another, and after a dozen sites I found this soft..."
"But", A couldn't believe it, "you don't have antivirus or anything that would have told you not to download it?"
"Oh, it tried, but I reaaaaaally wanted this software. So I shut down it and managed to download it."
I burst in laugh. At the same time I was feeling bad for this poor computer. What amazed me it that not once during the process, G thought it was a bad idea to download an Allopass generator found in an ad that even his antivirus told him it was dangerous.
Nice ending, A took the computer, and managed to make it work again. He even managed to keep important stuff that wasn't destroyed by the virus. G got a little lesson by A, then got yelled at by his parents, because the computer was in fact theirs.
Thanks for reading, and sorry if there's any mistake (grammar, punctuation, etc.), I am on my phone with autocorrect set on french. Have a nice day!5 -
I need to make a confession about my terribly unprofessional project I made. Around two years ago I got thrown for the first time into back end development - I had to work on the project alone. As a very smart man I basically exposed our SMTP server as a nice and very flexible API.
Fortunately it was, by the design, a very short-lived project, taken down from the web completely and for good after around 2 months. I'm still happy I had more luck than brains and nobody used our server as a spam sending service in our name and I have learned a valuable and relatively cheap lesson in security this way.1 -
So my previous alma mater's IT servers are really hacked easily. They run mostly in Microsoft Windows Server and Active Directory and only the gateway runs in Linux. When I checked the stationed IT's computer he was having problems which I think was another intrusion.
I asked the guy if I can get root access on the Gateway server. He was hesitant at first but I told him I worked with a local Linux server before. He jested, sent me to the server room with his supervision. He gave me the credentials and told me "10 minutes".
What I did?
I just installed fail2ban, iptables, and basically blocked those IP ranges used by the attacker. The attack quickly subsided.
Later we found out it was a local attack and the attacker was brute forcing the SSH port. We triaged it to one kid in the lobby who was doing the brute forcing connected in the lobby WiFi. Turns out he was a script kiddie and has no knowledge I was tracking his attacks via fail2ban logs.
Moral of lesson: make sure your IT secures everything in place.1 -
So one day on tech huddle my tech lead got frustrated, don't know why and told me - "the tasks you're doing can be done by interns"
I felt bad. Ofcourse I was putting my 100%.
That day I decided to put the resignation. I didn't discussed with anyone about it and sent the resignation email directly.
After serving 2 months of notice period I was able to land a better job successfully!
I called the lead on the last working day in that company and shared him the news about my offer letter and a little about the company.
His first question was - "Did you cleared all the interview process?"
In my mind - "That's only why I'm sharing the news here with you man! Stop thinking of me as a noob."
I replied with - "yes, if needed/the new company try to get feedback about me then please be honest atleast there by keeping your ego aside."
You shouldn't pull someone's leg if you aren't able to climb higher!!
Lesson I learnt;
DON'T STAY AT A PLACE WHERE THERE'S NO VALUE OF YOUR WORK AND THE DEDICATION TOWARDS IT!
Working in a startup isn't that easy, mostly for those where there's no work life balance.2 -
In the first lesson on the school the teacher mentioned the fibonaci formula, and because I already had a little experience in programming I wrote a program witch outputs a given amount of numbers after the Fibonacci formula and showed it to the teacher who didn't really showed any reaction. At the end of my time in the school while the exams preparation he told us that last year one part of the exam was to program for the Fibonacci formula. At this point I realized that my little experience in programming was already to much for the class and why I did not learn any thing in 2 years.
Ps: sry for my bad English.1 -
I'm coming off a lengthy staff augmentation assignment awful enough that I feel like I need to be rehabilitated to convince myself that I even want to be a software developer.
They needed someone who does .NET. It turns out what they meant was someone to copy and paste massive amounts of code that their EA calls a "framework." Just copy and paste this entire repo, make a whole ton of tweaks that for whatever reason never make their way back into the "template," and then make a few edits for some specific functionality. And then repeat. And repeat. Over a dozen times.
The code is unbelievable. Everything is stacked into giant classes that inherit from each other. There's no dependency inversion. The classes have default constructors with a comment "for unit testing" and then the "real" code uses a different one.
It's full of projects, classes, and methods with weird names that don't do anything. The class and method names sound like they mean something but don't. So after a dozen times I tried to refactor, and the EA threw a hissy fit. Deleting dead code, reducing three levels of inheritance to a simple class, and renaming stuff to indicate what it does are all violations of "standards." I had to go back to the template and start over.
This guy actually recorded a video of himself giving developers instructions on how to copy and paste his awful code.
Then he randomly invents new "standards." A class that reads messages from a queue and processes them shouldn't process them anymore. It should read them and put them in another queue, and then we add more complication by reading from that queue. The reason? We might want to use the original queue for something else one day. I'm pretty sure rewriting working code to meet requirements no one has is as close as you can get to the opposite of Agile.
I fixed some major bugs during my refactor, and missed one the second time after I started over. So stuff actually broke in production because I took points off the board and "fixed" what worked to add back in dead code, variables that aren't used, etc.
In the process, I asked the EA how he wanted me to do this stuff, because I know that he makes up "standards" on the fly and whatever I do may or may not be what he was imagining. We had a tight deadline and I didn't really have time to guess, read his mind, get it wrong, and start over. So we scheduled an hour for him to show me what he wanted.
He said it would take fifteen minutes. He used the first fifteen insisting that he would not explain what he wanted, and besides he didn't remember how all of the code he wrote worked anyway so I would just have to spend more time studying his masterpiece and stepping through it in the debugger.
Being accountable to my team, I insisted that we needed to spend the scheduled hour on him actually explaining what he wanted. He started yelling and hung up. I had to explain to management that I could figure out how to make his "framework" work, but it would take longer and there was no guarantee that when it was done it would magically converge on whatever he was imagining. We totally blew that deadline.
When the .NET work was done, I got sucked into another part of the same project where they were writing massive 500 line SQL stored procedures that no one could understand. They would write a dozen before sending any to QA, then find out that there was a scenario or two not accounted for, and rewrite them all. And repeat. And repeat. Eventually it consisted of, one again, copying and pasting existing procedures into new ones.
At one point one dev asked me to help him test his procedure. I said sure, tell me the scenarios for which I needed to test. He didn't know. My question was the equivalent of asking, "Tell me what you think your code does," and he couldn't answer it. If the guy who wrote it doesn't know what it does right after he wrote it and you certainly can't tell by reading it, and there's dozens of these procedures, all the same but slightly different, how is anyone ever going to read them in a month or a year? What happens when someone needs to change them? What happens when someone finds another defect, and there are going to be a ton of them?
It's a nightmare. Why interview me with all sorts of questions about my dev skills if the plan is to have me copy and paste stuff and carefully avoid applying anything that I know?
The people are all nice except for their evil XEB (Xenophobe Expert Beginner) EA who has no business writing a line of code, ever, and certainly shouldn't be reviewing it.
I've tried to keep my sanity by answering stackoverflow questions once in a while and sometimes turning evil things I was forced to do into constructive blog posts to which I cannot link to preserve my anonymity. I feel like I've taken a six-month detour from software development to shovel crap. Never again. Lesson learned. Next time they're not interviewing me. I'm interviewing them. I'm a professional.9 -
Am I the only one who's slightly annoyed that the first lesson in the Swift Playground app is not a "Hello World" program?4
-
So I Bought this bio metric pad lock for my daughter. She excitedly tried to set it up without following the directions( they actually have good directions on line) first thing you do is set the "master print" she buggered that up setting her print. So when I got home I was thinking, no problem I'll just do a reset and then we cant start again.
NOPE !!! you only have one chance to set the master print! after that if you want to reset the thing you need to use the master print along with a physical key that comes with it.
What sort if Moron designs hardware / software that is unable to be reset. Imagine how much fun it would be if once you set your router admin password it was permanent unless you can long back in to change it. Yea nobody has ever forgotten a password.
Well they are about to learn a valuable financial lesson about how user friendly design will influence your bottom line. people (me) will just return the lock to the store where they bought it, and it will have to be shipped back to the factory and will be very expensive for them paying for all of the shipping to and from and resetting and repackaging of the locks and finally shipping again to another store. Meanwhile I'll keep getting new locks until at no cost until she gets it right.
poor design34 -
Idiot people...
Today someone asked me how long I programmed for iOS, Told him I started really mastering iOS development since Swift was released, as I didn’t really focus on Objective C. He told me if I need any help, just ask him as he develops for iOS since two decenia... He calls himself a Senior web developer. First of all what has web development to do with iOS? And how the f*** can he program for iOS if it didn’t exist at that time.
It’s not because I’m a student I’m that thumb...
learnt the lesson not to believe everything everyone sais.9 -
First day as teacher - ok guys we're going to learn good lesson today, open up your terminals and write the next command sudo rm -rf /
-I just visited my nephew, I wasn't their teacher3 -
I used to think I was so clever by viewing the source code of websites, and would just scroll through it for fun, but what really got me started in programming was the TI-83 calculator I got in grade 10.
You couldn't view the code of most programs on that calc without a computer connection, but I managed to get my hands on the source code of something simple and learned how to prompt for values and calculate things with them. Before I knew it, I was making little programs in BASIC that did formulas for me (Area/circumference of a circle, etc.). One of my professors caught me showing my calculator to another student in class, and assumed I was being a bad student. When I said I made a program as a shortcut for one of the formulas we were learning, she tried to call my bluff and said to write the whole program on the whiteboard for the class to see. 10 minutes of writing and more than one blank stare from my classmates later, the teacher just waved me off and continued the lesson. I was chuffed :-). I made these simple programs for all my math classes throughout high school.
Unfortunately, my first year of university I took a CS course, and my teacher was probably the worst I've ever had in my life. I decided it wasn't for me, and though I did maintain my general aptitude for tech (and was still the person who fixed everyone's printers and viruses), I took a different path, eventually getting an Arts degree in Anthropology.
Where I live, the market for this is more than stale. In fact, it's completely flat, so I thought I would take a course about programming with Arduinos for fun and see if I should return to school for a different certification. It was AWESOME! I made a wireless weather station with Xbees and sensors and built my own anemometer.
I got a job at a manufacturing company, and had the fortune to build a robot which eventually made it's way to the second season of Battlebots. The level of intelligence and enthusiasm I encountered really inspired me, and now here I am at 31, halfway through a BSc in Computer Science and working for a company that makes 3D printers.
It's been a long journey, but the adventure always starts anew tomorrow.5 -
auto.self.whatever.rant()
A few years ago, we had a lesson on git and stuff, and we had to create our first repository and push something on it to get familiar with the thing.
Our teacher jokingly said at the end "And always remember, no password in a repository!", and I thought to myself "who can be dumb enough to do actually do something like that?"
Now, guess which piece of shit had to reinstall two of his fucking servers because of security issues coming from not one but github repositories?4 -
Today I replaced my php teacher (who was ill) during 3 hours. It's not the first time, I already helped my fellow students for this php class but this time it was different. It's was kind of official since my teacher came in and said "Adrien will give you the lesson today, he knows it by heart".
I have to say that I'm starting to like teaching, the satisfaction that you helped someone getting better at something is just amazing. It was a really good experience !9 -
Getting out of this business. I had my first flying lesson yesterday. Luckily I held on to my breakfast during the flight... A couple hundred more hours behind the yoke, and I'll be uninstalling all my developer tools... Can't wait17
-
I just started work school doing IT administration and development, I was excited, almost nervously anticipating to see the wondrous things I'd being learning and the kickass programs I'd be creating...
Alas I walked into my first lesson and...
Teacher: Today we're going to be learning how to make a square in Excel using VBR.
I thought, well fuck no - I didn't sign up for this shit. Then today I was on this thing called the internet, have you guys tried it? Amazing stuff, I saw a panda dressed as Chuck Norris... Anyway, I was on the internet and found out about this 73 year old man who makes full-sized artworks made in Excel.
Now I know the meaning to life, to Excel programming... It's official, I'm going to make Picasso in Excel.
*Light sarcasm, actual true story.*2 -
!dev
A child's mind is fascinating.
I remember how it felt being a kid, just deliriously happy.
Things were magical, mystical and happy.
I knew the world wasn't perfect, I knew bad things happened to good people.
But a kid's mind is so powerful that it can fill in the blanks with the most cheerful and optimistic perspectives.
And at some point in my childhood I was exposed to videogames, and that kinda took me down fantasy lane even further.
I was extremely young and barely retaining any memories when I was exposed to my first console, a famicom.
I have a somewhat vivid memory of my mind being blown away for the first time by watching my brother play New Ghostbusters II for NES.
From then on, we never stopped and played several console and dos/pc games.
When I was 10, someone from the neighborhood brought in a couple of floppys with Pokemon Yellow.
"What? Pokemon? How the fuck is that even possible? This is a pc, not a gameboy".
I didn't know at the time what an emulator was, but I was super fucking stoked to be able to play that.
My dad had a 1 gb laptop from work that he didn't use, so I hoarded that shit, and I would get to bed and play nearly everyday.
The experience was surreal. I was doing pc gaming... not on a chair, on a fucking bed, and I was playing a gameboy game... on a pc.
It was so intense to me, that even after more than 2 decades of that time in my life, I still remember how it feels like.
Like, you know how you can "feel" things if you think about them? like for example if you think about the taste of chicken, you can somehow feel it for a second.
Well I have like an actual physical sensation linked to that experience but I can't explain it at all, because it's just a sensation.
I think people usually say they feel that way, for example, about the PSX (usually refered to as ps one) loading screen. I experienced that too but when I was 12, so it was not as intense (it does make me feel the fuzzies though).
I also remember other things with very high detail, like the texture of my bed cover, the weather, mom cooking, the clunky shape of the laptop, the way I carelessly stored it above a pile of magazines, etc.
I rememeber ofc how it felt looking at the game sprites, interacting with NPCs, and the goddamn fucking glorious music.
It was dreamy.
Years and years later, I grew up and I stopped living in fantasy world and became more aware of the grim aspects of life my younger self was sugarcoating.
So I tried to play pokemon again, again and again, and no matter how hard I tried to revive that euphoria, I could not never do it.
I started to get annoyed at the game.
"Come oooon, I did the tutorial already, let me skip this.
This pokemon is useless, why am I even training it.
Fuck, I'm tired of grinding"
At some point I accepted that the feeling would never return, and that it would just live in my memory.
Ironically, I can recall that memory and how it felt anytime I want to.
And I can actually still feel it, and throughtout these years, it has never wore down.
And eventually I learned how to play pokemon and enjoy it:
I read tier lists at smogon online and just catch and train the pokemons that are higher on the list, which is how i got to beat yellow in like 3 days.
(This is nothing compared to what speedrunners do, but much better than the weeks it had taken me in the past).
That served as an important lesson that when a kid plays a game, his mind is also the game at the same time, filling the blanks with its imagination.
A very similar experience happened to me with harvest moon, which is the precursor of stardew valley.
and that game is faaar more emotional: you talk to people, overtime you befriend them and they open up, you meet a girl, you marry her, have a kid
you get farm animals, you brush them, they become happy
you get attached
that game was also so powerful in me that in all naiveness I thought I wanted to be a farmer.
Eventually I grew up and hit puberty and from then on, I focused more on competitive games, like smash bros, cs and tf2.
and i dunno how to end a post so eat my fucking nuts17 -
Who am I?
Some of you, because of the hyperbolic, outrageous, trollish, and often self-satirical nature of my posts, might doubt me. Thats completely relatable.
Heres the truth:
I was diagnosed in childhood with ADHD, fucking everyone, every male, these days is diagnosed with that. I was diagnosed bipolar. Hell anyone reading my posts could see that from a mile away. I was diagnosed on the borderline personality spectrum. Yeah, I could see that.
I was tested. They said I was in the 98th percentile for clerical ability, not extraordinary but pretty good, mathematical ability a little higher than that. My SAT was 1491. Not yale material, but I coulda been someone.
Over the years I studied a LOT of politics and read a metric fuckton of books. (40+ books over the course of three years).
I predicted every single presidential election since bush juniors second election. Three supreme court picks. Senatorial elections. Congresional elections. More than that.
I have a better analysis track record than some of the multidecade analysts sitting in the fucking NSA.
No I am not shitting you. No I am not exaggerating.
It's about the only claim to fame I get to legitimately make.
People ask me, "then why aren't you famous?"
How do you know I'm not.
Look I'm gonna tell you my actual name.
My real name is Lawrence B. Lindsey
Okay, I'm bullshitting for fun. But words I have written on alt twitter accounts have legitimately come out of presidential hopeful's mouths. No, this I am *not* bullshitting you about.
Imagine that. A guy who lived in his parents attic for five years, writing words that came out of presidential candidates mouths.
At one time I was about as popular and influential as that fuckboy catturd.
yes, really. No I am not fucking joking.
Under normal conditions I wouldn't talk about this or reveal it, because who the fuck cares? I'm just some dude on the internet, drunk, both on alcohol, and the pseudo-anonymous equivalent of bragging rights.
You know how many women I turned down because I could? You know how fucking drunk I am? They say a drunk man's words are a sober man's thoughts. Well, I'm not usually honest like this because the internet is full of false braggarts, and you tell people the truth and they don't fucking believe you.
I swear, it seems like I made some faustian bargain at some time, and can achieve no fame or lasting wealth in my life--to save my life.
Shit, I was talking to a chinese women who ran a bank in china (yes, really), who advised me to buy into bitcoin early on. Didn't have the money to. Woulda been a fucking millionaire if I did.
*Non-obvious* Ideas that major corporations are now persuing? Yeah those were sitting in my card index since the early 2000s.
I helped two people build and sell businesses. One for me tens of thousands. Another for millions. Yes, really. Got zero, and I mean, *zero* credit for it.
Point is, doesn't matter how famous you are, or coulda been, Doesn't matter the ideas you have, or had.
The world doesn't promote runners-up, or hasbeens, or wannabes, or could-bes.
What matters is execution.
If you're wandering through life, wondering when you're lucky break will be, stop. You have to realize, you make your own luck. Recognize the difference between what you can control, and what you can, and work on promoting your own ideas or business or values, instead of other people's dreams.
And for those wondering, yes I am drunk, and no, I ain't fucking kidding you in anything I wrote here.
The most important lesson I learned is this:
First work on your own success, before you work on the success of others.
p.s.
I give surprisingly good advice for someone who doesn't benchmark well on traditional measures of success. I know, even I was shocked when I looked at the statistics.32 -
1) Remove kernel linux
2) Change kernel to linux-zen
3) Make init ramdisk
4) Everythings great -> hit reboot
5) Stuck at Grub
Me: Fuck.. Forgot to update grub config.
(Lesson : RTFM first.)1 -
Last year in my first lesson of informatics:
Me: “What does return do?”
My teacher: “If you start your program, Windows will pause and run your program. If your program is coming to the end and hits the return statement, your program will stop and Windows will run again.”
wtf
(I already knew the right answer but I wanted to ask him this question.)12 -
So I'm writing some multithreaded shit in C that is supposed to work cross-platform. MingW has Posix threads for Windows, so that saved already half of the platform dependency. The other half was that these threads need to run external programs.
Well, there's system(), right? Uhm yes, but it sucks. It's incredibly slow on Windows, and it looks like you can have only one system() call ongoing at the same time. Which kinda defeats the multithreaded driver. Ok, but there's CreateProcessA(), and that doesn't suck.
Fine, now for Linux. The fork/exec hack is quite ugly, but it works and is even fast. Just never use fork() without immediate exec(). First try under Cygwin... crap I fork bombed my system! What is this shit? Ah I fucked up the path names so that the external executable couldn't be run.
Lesson learnt: put an exit() right after the exec() in the path for child process. Should never be reached, but if it goes there, the exit() at least prevents a fork bomb.
Well yeah, sort of works under Cygwin, but only with up to 3 threads. Beyond that, it seems like fork() at some point gives two processes the same PID, and then shit hangs.
Even slapping a mutex around the fork and releasing it only in the parent process didn't help. Fork in Cygwin is like a fork in the ass. posix_spawn() should work better because it can be mapped more easily to the Windows model, but still no dice.
OK, testing under real Linux. Yeah, no issues with that one! But instead, I get some obscure "free(): invalid size" abort. What the fuck would that even mean?! Checking my free() calls: all fine.
Time to fire up GDB in the terminal! Put a catch on the abort signal, mh got just hex data. Shit I forgot to compile with -O0 and -g. Next try. Backtrace shows the full call trace, back to the originating line in my program - which is fclose() on a file.
Ahhh I remember! Under Linux, fclosing a file that is already closed makes the program crash. So probably I was closing it twice. Checking back.. yeah that's where it was.
Shit runs fast on several cores now!8 -
I'm intentionally resigning from my remote software development job to teach my company a lesson. The guy who wrote the codes previously really knew how to cook spaghetti 😀😂.
To add a single line takes minutes, because when you do something else breaks, and you'll keep fixing what breaks when you tried fixing what breaks when you try fixing what..... endless loop of bug-fix cycle.
Now they blame it on me.
They won't understand if they don't get someone new, my reputation will fix itself through that..
My first opinion after sighting the codes was, "re-write the whole project using better patterns and architecture", the reply as you can guess, we'll do that later.
I couldn't even upgrade the server to use even PHP 7.1 because the framework breaks, the guy has editted a lot from the vendors files. Don't ever try composer updates.
Two word to describes the situation. "It sucks".
The previous developer needs to be shot, literally.7 -
FUCK U GOOGLE PHOTOS, I MANUALLY UPLOAD PHOTOS FROM THE APP AND THEN DELETE ONE FROM THE WEB APP FROM MY PC BECAUSE I DIDNT WANT THAT ONE UPLOADED.....
BUT IT DELETED IT ON MY PHONE.... WTF!!!!!!!!!!!!!!
Lesson of the Day: Manually copy all photos to PC and external HD first. Then upload the ones you want.
This is taking a while.... i wonder if i have enough disk space.....11 -
The company I work at sends their developers out to other companies to help them work on projects and help them in other ways (advice when communicating to customers of on demand software for example).
While not on a project you are working in house training trainees and interns. Part of that is teaching them to show initiative and treating them as full developers. The 30 interns all discussed a git flow and code format.
During the third sprint (two weeks sprints) a team messaged me if I wanted to check their merge request for the sprint.
It took me a glance at the first file to know they didnt do any review themselves. I used my flywheel to check all their changes and without being able to read the code I saw indentation was all over the place, inconsistent bracket placements etc. I let them know I wouldnt check their code until it was according to their own standards.
Two days later I got the message to check it again. At first glance the indentation was fine so I started reading the code. Every single thing was hardcoded, not made to support mobile (or any resolution other than 1920×1080).
A week later they improved it and still not good. Gave them a few pointers like I would for any colleague and off they went to fix things. The code became worse and indentation was all over the place.
I told them the next time it shouldnt be a quick glance to be able to reject it again. By this time other teams came to me asking why it wasnt merged yet and I explained it to them. One of the teams couldnt do anything u til this was merged so I told them to implement it themselves. I was surprised that 4 teams came to me asking about a merge request, that was every team except the team whose pull request it was.
4 weeks after the intitial sprint the other team made a merge request and I had three small comments and then an hour later it was merged.
The other team messaged me why their merge request did went through (still havent seen any of their team in person, Im sitting 10 meters away from them behind a wall)
They also said that it was easier for them because they started from scratch. Thats when I called them in to discuss it all and if they were not interns but full time developers they would have been fired. I told them communication is key and that if you dont understand something you come in person to ask about it. They all knew I like teaching and have the patience to explain a single thing ten times, but the initiative should be theirs.
One of the team members is my current coworker and he learned his lesson by that. The others stopped with their study and started doing something completely else.
TL;DR
Merge request is open for 4 weeks, in the end another team started from scratch and finished it within a week. The original team didnt ask me questions or come to me in person, where other teams did.
DISCLAIMER: some of you might find it harsh, but in our experience it works the best for teaching and we know when people don't dare to ask questions and we help them in that too. It's all about the soft skills at our company.4 -
When I was in college OOP was emerging. A lot of the professors were against teaching it as the core. Some younger professors were adamant about it, and also Java fanatics. So after the bell rang, they'd sometimes teach people that wanted to learn it. I stayed after and the professor said that object oriented programming treated things like reality.
My first thought to this was hold up, modeling reality is hard and complicated, why would you want to add that to your programming that's utter madness.
Then he started with a ball example and how some balls in reality are blue, and they can have a bounce action we can express with a method.
My first thought was that this seems a very niche example. It has very little to do with any problems I have yet solved and I felt thinking about it this way would complicate my programs rather than make them simpler.
I looked around the at remnants of my classmates and saw several sitting forward, their eyes lit up and I felt like I was in a cult meeting where the head is trying to make everyone enamored of their personality. Except he wasn't selling himself, he was selling an idea.
I patiently waited it out, wanting there to be something of value in the after the bell lesson. Something I could use to better my own programming ability. It never came.
This same professor would tell us all to read and buy gang of four it would change our lives. It was an expensive hard cover book with a ribbon attached for a bookmark. It was made to look important. I didn't have much money in college but I gave it a shot I bought the book. I remember wrinkling my nose often, reading at it. Feeling like I was still being sold something. But where was the proof. It was all an argument from authority and I didn't think the argument was very good.
I left college thinking the whole thing was silly and would surely go away with time. And then it grew, and grew. It started to be impossible to avoid it. So I'd just use it when I had to and that became more and more often.
I began to doubt myself. Perhaps I was wrong, surely all these people using and loving this paradigm could not be wrong. I took on a 3 year project to dive deep into OOP later in my career. I was already intimately aware of OOP having to have done so much of it. But I caught up on all the latest ideas and practiced them for a the first year. I thought if OOP is so good I should be able to be more productive in years 2 and 3.
It was the most miserable I had ever been as a programmer. Everything took forever to do. There was boilerplate code everywhere. You didn't so much solve problems as stuff abstract ideas that had nothing to do with the problem everywhere and THEN code the actual part of the code that does a task. Even though I was working with an interpreted language they had added a need to compile, for dependency injection. What's next taking the benefit of dynamic typing and forcing typing into it? Oh I see they managed to do that too. At this point why not just use C or C++. It's going to do everything you wanted if you add compiling and typing and do it way faster at run time.
I talked to the client extensively about everything. We both agreed the project was untenable. We moved everything over another 3 years. His business is doing better than ever before now by several metrics. And I can be productive again. My self doubt was over. OOP is a complicated mess that drags down the software industry, little better than snake oil and full of empty promises. Unfortunately it is all some people know.
Now there is a functional movement, a data oriented movement, and things are looking a little brighter. However, no one seems to care for procedural. Functional and procedural are not that different. Functional just tries to put more constraints on the developer. Data oriented is also a lot more sensible, and again pretty close to procedural a lot of the time. It's just odd to me this need to separate from procedural at all. Procedural was very honest. If you're a bad programmer you make bad code. If you're a good programmer you make good code. It seems a lot of this was meant to enforce bad programmers to make good code. I'll tell you what I think though. I think that has never worked. It's just hidden it away in some abstraction and made identifying it harder. Much like the code methodologies themselves do to the code.
Now I'm left with a choice, keep my own business going to work on what I love, shift gears and do what I hate for more money, or pivot careers entirely. I decided after all this to go into data science because what you all are doing to the software industry sickens me. And that's my story. It's one that makes a lot of people defensive or even passive aggressive, to those people I say, try more things. At least then you can be less defensive about your opinion.53 -
Was showing the new guy how to write a fairly simple database query with a couple of joins.
Spent 3 hours trying to figure out why it didn't work.
Finally discovered that I had randomly chosen one of the 3 records (out of a possible 15,000+) that had leading white space.
Ctrl-Z back to the first query I wrote (3 hours ago), and it works perfectly.
New guy learns a more valuable lesson than I originally intended. -
God damnit Quora!
I stumbled upon some article or post or whatever they are called on quora.
And I really wanted to read the comments on it. It wouldn’t let me unless I log in.
I normally don’t do that but I thought I’ll make an exception because I really wanted to read the comments.
So I clicked on that comments button and logged in (via google). First it presented me some modal dialog to pick 5 things that interest me. And it was mandatory. Fine… I picked those 5 things.
Finally it presents me the list of articles or whatever. But not the same list that I have seen before I was logged in. Scrolling, the article of my interest is not there. God damnit! Just show me my comments for fucks sake.
I go back to that tab where I was not logged in to somehow copy the link of that article or the link to the comments section. But it doesn’t let me. Some bullshit pseudo smart layer of crap is preventing me from doing anything.
Then I abuse the fucking share link to visit it in my logged in tab to finally see the comments that I came for.
And the comments weren’t even worth it. God! What a waste of time! And how can one fuck up a fucking forum so much?
It will be a lesson for me not to visit Quora ever again.4 -
I'm the kind of person that says "Fuck python, worst language, fuck C#, Java, Golang", assembly and C are superior.
But I have learned my lesson; Yesterday I learned enough C# to be able to make a windows app that connects to a another app via sockets. I tried first to do it with C++ but my app looked like shit and took me about a whole day to make. Then I tried with C#, got the App working on an hour, now I'm delighted with C#. I guess I have to be open-minded.8 -
Just spent an entire night eaning up my codebase...
I optimized some of the functions got rid of unnecessary global variables and changed up the whole file hirearchy so it would be easier to read. After spending all night doing this I went to run the program and for once it seemed everything worked right the first time! However a portion of my application that is supposed to happen at a certain date and time never would run. After spending all night comparing each and every line for what I changed versus my last commit I couldn't find the fallacy in my logic. Everything should still work like it did before. After spending more time looking for bugs I finally realized I didn't break anything when I switched over to this new structure it was the old code that was broken. I went through the old code and after some debugging eventually found the culprit an extra continue statement that prevented my loop from fully executing. Lesson learned sometimes the biggest bugs can spawn from one line of code.4 -
I remember the first time I had a code block, I sat on my desk for up to 18 hours trying to fix it. In the end realizing that my impatience is not helping me. It was all in vain. A tired mind did not help.
I finally came to realise that I was lacking on knowledge and a tired brain did not help. I did it the next day but learnt a huge lesson. When it's just not your day, it's not you day. A fresh mind will help next day. Relax, do anything apart from code.
Too much of code can drain you of ideas and smartness. You need to let your mind breathe. Life away from the PC is important too. -
Talking to a second year student about what they've learnt so far, and what they should learn next:
"Cool, so what general topics would you say you know really thoroughly at the moment?"
"Oh, I've now learnt Java, C#, C, C++, Rust, Javascript, node.js, HTML, CSS, Angular, Vue, Erlang and probably a bunch of other stuff I've forgotten. What do you think I should concentrate on next?"
"Hmm. Probably best to take just one of those and learn it really thoroughly."
"...but I already know them all really thoroughly."
"Ok. Can you explain what an abstract class is in say Java, C# or C++?"
"Sure, I can create a new class called abstract and then use it for abstraction. I do that loads."
...🤷♂️🤦♂️
First lesson: Stop BS'ing. Might work for flexing to non-devs, but that's about it.10 -
Me : *testing json output on pc by sending items with GET*
App : *app crashing with only recyclerview error*
Me : *debugging the app for 2 hours and testing ways to do another adaptor *
Me : fuuuuuuuuuuuuuuuuu... I used POST to get the data on app and forgot to change $_GET $_POST
Lesson learned. Always check the input first
Im ashame of my self #crysinthecorner2 -
University, first Java practical lesson.
I'm sitting near this guy, clearly hyped up because he managed to install his first linux distro earlier.
After 5 minutes he asks me how to do the task the Professor assigned that morning.
I'm playing dumbass in my head, thinking stuff like "oh big boy installed ubuntu but can't declare a fucking Rectangle class in java lol" (what a dickhead).
I helped him, and then proposed to go out for a quick smoke.
Turns out we're very similar, hyped as hell with linux (like I was at the time), with same CS interests. Still texting sometimes. -
Something isn't working, I play around with the code, and try all possible things in the code. Still it doesn't work. Spend a couple of hours reading each and every line but still in vain. Finally, I find out that I was editing the wrong file (same file at another location) the whole time!! This happened a couple of times when I was a newbie, one of my most annoying mistakes.
Lesson learnt: Now when anybody asks me to debug his code, I first edit/add a print statement to make sure this is the correct file. I thought I was being skeptical, but it has saved me a lot of time (mostly interns do this rookie mistake).2 -
This temporary hack will just temporarily fix this problem. We will come back and actually fix the problem later.
We never come back to fix it later. This shitty hack I made in less than a day that fixed the problem for the day "fixed" the problem for the next year.
Lesson learned that temporary structures and side projects will be there forever. Make them right the first time.1 -
None, actually.
Tho I should thank Mr. S, calculus teacher in my last year of highschool, and most of my physics teachers, and that one lady in first year of highschool teaching maths. I think those were way more important in teaching me logic than the folks who pretended to teach me stuff later in uni.
Oh, and that dude, Sir O.D., who was my professor of embedded microcontrollers in uni. Didn't teach me much programming, rather taught a memorable lesson on VHDL and how hardware really works. -
Back when I was at university, during the first lesson of web development class, our teacher said: “If you have any doubt or problem, please ask me. The only stupid question is the one you don’t ask!”
A fellow student raised is hand and asked how to do printf in Java (it was totally legit as most of us only used C at that point and it was our only reference in programming).
Our teacher: “What kind of fucking stupid question is this?!?”
😳1 -
The Tale of Mouse and Watch
Once upon a time, a mouse wanted to know what time it was. So it asked the first guy who came along, but it didn't understand Suaheli. Anyway, he just had mumbled, gotta kick the cat in its lazy ass.
So the mouse moved on and nearly got it when it met another mouse who bad been sewn to a dead elephant's ear exactly 27 years ago - but unfortunately, it had forgotten the time of day when that had happened.
The seeking mouse came up with the idea of doing something with the sun, but since it was only dumb mouse, it looked right into the sun and was blinded.
Now pretty desperate, it tumbled through the gutters that were full of trash. Accidentally, it fell over a dumped watch, and the mouse broke its nose.
The lesson: sometimes, even a blind mouse may find a broken watch!5 -
I was Just college fresher who completed his Engineering. My first week in the office. And a system was provided to me, since it was support project so I was given direct access to production database.
Fresher + Production Database + Access of Admin credentials = Worst Possible Combination
So it was my night shift, I was told to update new tariff plan for our client (which was one of the largest telecom service in India) .
If someone recharges for more than 200 Rupee, that person will get 10% or 20% extra talk time. Which was only applicable for particular circle (Like Bihar and Rajasthan).
Since I was fresher, I was told to update given query from my senior employee which he shared on the shared folder. Production downtime was in the mid night, so at that time I updated that query on the production database.
Query successfully updated. I completed my night shift, went home and slept.
When I woke up, I saw my mobile it had 200+ missed calls from different locations of India. They were Circle heads of that telecom service provider who contacted me. I realized something unexpected is expecting me.
Then at that moment my team lead called me and he asked me to come office right away.
Reminding you I was a fresher, I was shivering. What have I done there?
When I reached office, I came to know that the query I updated on production bombarded.
Every person who recharged that day (duration from midnight to morning 10 AM) got 10 times or 20 times more talktime.
A part of Query was something like this where error was made:
TalkTime = RechargeAmount + RechargeAmount * 10/100; (Bihar)
or
TalkTime = RechargeAmount + RechargeAmount * 20/100; (Rajasthan)
But instead of this query, I updated below one:
TalkTime = RechargeAmount + RechargeAmount * 10;
or
TalkTime = RechargeAmount + RechargeAmount * 20;
In a span of 10 hours, that telecom service lost revenue of 6.5 crore Rupees. Thanks to recovery team they were able to recover 6 crore but still 50 lakh Rupees were in loss.
One small query, and approx 1 million dollar was on stake.
Aftermath of this incident
My Mistake:
I should have taken those queries on mail. Or, there should have been mail communication regarding this.
Never ever do anything over oral communication. Senior employee who did this denied and said he provided correct query, and I had no proof of communication.
I told them, it was me who executed that query on production. Since I was fresher, and took my responsibility of that incident. My team lead rescued me from that situation.
Lesson Learned:
Always test your query and code multiple times before you execute or Go live it on production.
Always have email communication for every action you take on production.
Power comes with responsibility. If you have admin credentials of production never use it for update/delete/drop until you are sure.
Don’t take your job lightly.
I was not fired from that Job, but I have learnt my lesson very well. -
I need to rant about life decisions, and choosing a dev career probably too early. Not extremely development related, but it's the life of a developer.
TL;DR: I tried a new thing and that thing is now my thing. The new thing is way more work than my old thing but way more rewarding & exciting. Try new things.
I taught myself to program when I was a kid (11 or 12 years old), and since then I have always been absolutely sure that I wanted to be a games programmer. I took classes in high school and college with that aim, and chose a games programming degree. Everything was so simple, nail the degree, get a job programming something, and take the first games job that I could and go from there.
I have always had random side hobbies that I liked to teach myself, just like programming. And in uni I decided that I wanted to learn another language (natural, not programming) because growing up in England meant that I only learned English and was rarely exposed to anything else. The idea of knowing another fascinated me.
So I dabbled in a few different languages, tried to find a culture that seemed to fit my style and attitude to life and others, and eventually found myself learning Korean. That quickly became something I was doing every single day, and I decided I needed to go to Korea and see what life there could be like.
I found out that my university offered a free summer school program for a couple of weeks, all I had to pay for was the flights. So a few months later I was there and it was literally the best thing I'd done in my life to that point. I'd found two things that made me feel even better than the idea of becoming the games programmer I'd always wanted to be. Travelling and using my other language to communicate with people that I couldn't in English. At that point I was still just a beginner, but even the simple conversations with people who couldn't speak English felt awesome.
So when I returned home, I found that that trip had completely thrown a spanner into my life plan. All I could think about after that was improving my language skills and going back there for as long as possible. Who knows what to do.
I did exactly that. I studied harder than I'd ever studied for anything and left the next year to go and study in Korea, now with intermediate language skills, everyday conversations no longer being a problem at all.
Now I live here, I will be here for the next year and I have to return to England for one year to finish my degree. Then instead of having my simple plan of becoming a developer, I can think of nothing I want to do less than just stay in England doing the same job every day, nothing to do with language. I need to be at least travelling to Korea, and using my language skills in at least some way.
The current WIP plan is to take intensive language classes here (from next week, every single weekday), build awesome dev side projects and contribute to open source stuff. Then try to build a life of freelance translation/interpreting/language teaching and software development (maybe here, maybe Korea).
So the point of this rant is that before, I had a solid plan. Now I am sat in my bed in Korea writing this, thinking about how I have almost no idea how I'm going to build the life that I want. And yet somehow, the uncertainty makes this so much more exciting and fulfilling. There's a lot more worrying, planning and deciding to do. But I think the fact that I completely changed my life goals just through a small decision one day to satisfy a curiosity is a huge life lesson for me. And maybe reading this will help other people decide to just try doing something different for once, and see if your life plan holds up.
If it does, never stop trying new things. If it doesn't (like mine), then you now know that you've found something that you love as much as or even more that your plan before. Something that you might have lived your whole life never finding.
I don't expect many people to read this all, but writing it here has been very cathartic for me, and it's still a rant because now I have so much more work and planning to do. But it's the good kind of work.
Things aren't so simple now, but they're way more worth it.3 -
Over the summer I was recruited to be a supplement instructor for a data structures course. As a result of that I was asked (separately by the professor) to be a grader for the course. Because of pay limitations I've mostly been grading homework project assignments. In any case, it's a great job to get my foot into the department and get recognized.
Over the course of the semester I've had this one person, OSX, named after their operating system of choice, who has been giving me awkward submissions. On the first assignment they asked the professor for extra time for some reason or the other, and that's perfectly fine.
So I finally receive OSX's submission, and it's a .py file as per course of the course. So I pop up a terminal in the working directory and type "python OSX_hw1.py". Get some error spit out about the file not being the right encoding. I know that I can tell python to read it in a different encoding, so I open it up in a text editor. To my surprise it's totally not a text file, but rather a .zip file!
I've seen weirder things done before, so no big deal. I rename the file extension, and open it up to extract the files when I see that there's no python files. "Okay, what's goin on here OSX..." I think to myself.
Poking around in the files it appears to be some sort of meta-data. To what, I had no clue, but what I did find was picture files containing what appeared to be some auto-generated screenshots of incomplete code. Since I'm one to give people the benefit of doubt even when they've long exhausted other peoples', I thought that it must be some fluke, and emailed OSX along with the professor detailing my issue.
I got back a rather standard reply, one of which was so un-notable I could not remember it if my life depended on it. However, that also meant I didn't have to worry about that anymore. Which when you're juggling 50 bazillion things is quite a relief. Tragically, this relief was short lived with the introduction of assignment 2.
Assignment 2 comes around, and I get the same type of submission from OSX. At this time I also notice that all their submissions are *very* close to the due time of 11:59pm (which I don't care about as long as it's in before people start waking up the next morning). I email OSX and the professor again, and receive a similar response. I also get an email from OSX worried about points being deducted. I reply, "No issue. You know what's wrong. Go and submit the right file on $CentralGradingCenter. Just submit over your old assignment".
To my frustration OSX claimed to not know how to do this. I write up a quick response explaining the process, and email it. In response OSX then asks if I can show them if they comes to my supplemental lesson. I tell OSX that if they are the only person, sure, otherwise no because it would not be a fair use of time to the other students.
OSX ends up showing up before anyone else, so I guide them through the process. It's pretty easy, so I'm surprised that they were having issues. Another person then shows up, so I go through relevant material and ask them if they have any questions about recent material in class. That said, afterwards OSX was being somewhat awkward and pushy trying to shake my hand a lot to the point of making me uncomfortable and telling them that there's no reason to be so formal.
Despite that chat, I still did not see a resubmission of either of those two assignments, and assignment 3 began to show it's head. Obviously, this time, as one might expect after all those conversations, I get another broken submission in the same format. Finally pissed off, I document exactly how everything looks on my end, how the file fails to run, how it's actually a zip file, etc, all with screenshots. That then gets emailed to the professor and OSX.
In response, I get an email from OSX panicking asking me how to submit it right, etc, etc. However, they also removed the professor from the CC field. In response I state that I do not know how to use whatever editor they are using, and that they should refer to the documentation in order to get a proper runnable file. I also re-CC the professor, making sure OSX's email to me is included in my reply.
OSX then shows up for one of my lessons, and since no one had shown up yet, I reiterate through what I had sent in the email. OSX's response was astonished that they could ever screw up that bad, but also admits that they had yet to install python(!!!). Obviously, the next thing that comes from my mouth is asking OSX how they write their code. Their response was that they use a website that lets them run python code.
At this point I'm honestly baffled and explain that a lot of websites like those can have limitations which might make code run differently then it should (maybe it's a simple interpreter written on JavaScript, or maybe it is real python, but how are you supposed to do file I/O?) .
After that I finally get a submission for assignment 1! -
Why does everything look perfect on the emulator but messes up on the first phone you test it on.
Every single time.
Lesson: Test on phone first then emulator.1 -
Biggest lesson learned for me was believing some guy wearing a comb over & a fake tan who sounds like a car salesman. He claimed selling web app services to companies was no different than selling cars. It turns out that a lot of investors were not too happy that the company went under (b4 anything was released) b/c the CEO/CFO somehow managed to burn several million dollars on first class flights, cruises, 5 star restaurants, a luxury company car (for himself), hotels, etc.,. oh and even some fake tans!
Worst part about all that he wasn't even worth sueing because he had no money after all that. He even signed the 'company' car over to one of his kids!3 -
In our department, we've to send some reports at different times in the same month, for example, three the first day, one the fifteenth, three the last day...
This was a task assigned to my coworker, but it consumed a lot of time to modify and execute the required querys and write the reports in Excek with the results, so O was assignes to create a program that created the reports automatically.
I asked my coworker for the querys, a lot of times since he "forgot it", and once my program was fully completed him, I asked him to test it and tell me if he saw any errors, if the reports were done correctly, etc... And, twenty days later, when I asked him again, told me that everything was okay, so the whole months of July and August, the reports were done automatically.
Today we've receives a ton of emails about how the reports were not correct, how the information was incomplete and such.
Guess who gave me only half the querys requested. Now I've to do every single of them manually. While my manager rants.
Note to future self: Never trust that guy again, and always re-check everything he checks. This better be a lesson for the future.4 -
Learnt a very important lesson today..
To add some context; I'm currently in my second semester of uni studying a Bachelor of Computer Science (Advanced), and started the year with no experience with any language.
Up until recently all my practical work has been guided by context sheets, now I have some freedom in what my program does.
Because of the very small projects earlier in the year I have built a habit of writing the whole program before compiling anything. This worked fine since the programs were small and at most only a few errors would be present.
Cut back to today, and I had been writing a program for a bigger assignment. After an hour or so of writing I began thinking I should probably test everything up to this point. I ignored it...
Fast forward 4 hours to having "completed" writing the full program. I knew by this point I was taking a massive risk by not testing earlier.
Lo and behold, I try compiling everything for the first time and countless errors prevent the program from compiling. I tried for quite some time fixing the errors but more just kept appearing as 1 was fixed.
I'm now left with no time to fix the program before the deadline with no one but myself to blame.
Lesson learnt :/5 -
It was the last year of high school.
We had to submit our final CS homework, so it gets reviewed by someone from the ministry of education and grade it. (think of it as GPA or whatever that is in your country).
Now being me, I really didn’t do much during the whole year, All I did was learning more about C#, more about SQL, and learn from the OGs like thenewboston, derek banas, and of course kudvenkat. (Plus more)
The homework was a C# webform website of whatever theme you like (mostly a web store) that uses MS Access as DB and a C# web service in SOAP. (Don’t ask.)
Part 1/2:
Months have passed, and only had 2 days left to deadline, with nothing on my hand but website sketches, sample projects for ideas, and table schematics.
I went ahead and started to work on it, for 48 hours STRAIGHT.
No breaks, barely ate, family visited and I barely noticed, I was just disconnected from reality.
48 hours passed and finished the project, I was quite satisfied with my it, I followed the right standards from encrypting passwords to verifying emails to implementing SQL queries without the risk of SQL injection, while everyone else followed foot as the teacher taught with plain text passwords and… do I need to continue? You know what I mean here.
Anyway, I went ahead and was like, Ok, lets do one last test run, And proceeded into deleting an Item from my webstore (it was something similar to shopify).
I refreshed. Nothing. Blank page. Just nothing. Nothing is working, at all.
Went ahead to debug almost everywhere, nothing, I’ve gone mad, like REALLY mad and almost lose it, then an hour later of failed debugging attempts I decided to rewrite the whole project from scratch from rebuilding the db, to rewriting the client/backend code and ui, and whatever works just go with it.
Then I noticed a loop block that was going infinite.
NEVER WAIT FOR A DATABASE TO HAVE MINIMUM NUMBER OF ROWS, ALWAYS ASSUME THAT IT HAS NO VALUES. (and if your CPU is 100%, its an infinite loop, a hard lesson learned)
The issue was that I requested 4 or more items from a table, and if it was less it would just loop.
So I went ahead, fixed that and went to sleep.
Part 2/2:
The day has come, the guy from the ministry came in and started reviewing each one of the students homeworks, and of course, some of the projects crashed last minute and straight up stopped working, it's like watching people burning alive.
My turn was up, he came and sat next to me and was like:
Him: Alright make me an account with an email of asd@123.com with a password 123456
Me: … that won't work, got a real email?
Him: What do you mean?
Me: I implemented an email verification system.
Him: … ok … just show me the website.
Me: Alright as you can see here first of all I used mailgun service on a .tk domain in order to send verification emails you know like every single website does, encrypted passwords etc… As you can see this website allows you to sign up as a customer or as a merc…
Him: Good job.
He stood up and moved on.
YOU MOTHERFUCKER.
I WENT THROUGH HELL IN THE PAST 48 HOURS.
AND YOU JUST SAT THERE FOR A MINUTE AND GAVE UP ON REVIEWING MY ENTIRE MASTERPIECE? GO SWIM IN A POOL FULL OF BURNING OIL YOU COUNTLESS PIECE OF SHIT
I got 100/100 in the end, and I kinda feel like shit for going thought all that trouble for just one minute of project review, but hey at least it helped me practice common standards.2 -
Today the government from Costa Rica announced their solution to tax double any UBER charge registered to debit/credit cards.
Their logic is to pretty much do it for any commerce that includes the letters UBER. Like something out of your first Unity C++lesson2 -
I'm just FUCKING DONE. Everyone around me looks at me like a fucking paycheck they either don't want to pay me or like one they want from me but that I can't make enough of. Every time I open my stupid cakehole something stupid flies out of it that offends someone or makes me look incompetent or sets me back somehow. I'm not suicidal but I don't want to be on this planet anymore. I'm stranded here with nobody who wants to hire me and people around me who are tapping their feet waiting for people to hire me. I have nothing in my bank accounts to cover enormous and increasing monthly expenses coming up on the horizon and no way to pay for them. I have a stupid president who just keeps making it worse and worse with every stupid thing that comes out of his geriatric mouth or that he signs with his shaking dementia-ridden hand. He just keeps taxing me and taxing me and now has an army the size of the FUCKING NATIONAL GUARD of IRS agents ready to FUCK ME UP THE ASS if I have just one business expense out of order. I have all of this responsibility for my family and none of the power to do anything for them. And now that most of my kids are adults, none of them can afford to move out for the long-term future and also they're not able to get much money to help out so it's still incumbent on me to carry them until they're like FUCKING 35 YEARS OLD OR SOMETHING! The wife is pretty much sick of me and my shitty attitude about it all and she says she thinks that I think it's all her fault. We don't have any kind of romantic relationship anymore (well, I have all the interest and she has all the avoidance).
Also, I'm a man, and white, and straight, and "privileged" (oh, so privileged) so I'm the _worst person on the planet_.
I was born on this earth to be a FUCKING WARNING, not the lesson. When that meteor comes, let it take me out first.9 -
So I wrote the script for the GAL in WinCupl for our project. I used the operators: ! for NOT, * for AND, + for OR
me: *writes code*
me: *compiles it*
compiler: error, unknown operation.
me: wtf but thats how its done, isnt it?
friend: u used the wrong operators. didnt u read the manual?
me: smh i didnt, i invented the syntax xD
lesson learned: always read manual first before writing it directly without knowing the syntax1 -
Quick and probably duplicate.
One fucking more time someone comes to me and interrupts me, I swear if it's not important, or chitchat, or something easly googlable, or something you could ask literally anyone else or something that isn't even my shit to handle, I will give the unlucky bastard 30 minute lesson to not fucking interrupt me when Im trying to focus first half of fucking day to do one fucking thing.
What the fuck.
What, should I print big fucking A2 formated poster and stick next to my workstation "If you came here to interrupt me, think if you really need to"?
E:
And no, I dont know where the fuck is your excel file.
And no, I dont give a shit when Im coding that there is cake avail for workers today.
And no, for fucks sakes I dont have time for chitchat, I have deadline on me once again and Im doing something I dont have much expirience in so please leave me fucking alone.7 -
My biggest dev epiphany was also my dumbest one. We were working on a payment system for a roadside rescue company where an employee would register payments "in the field".
The challenge was automating input with typeahead and autocompletes in order to lessen the workload as manual input had to be an absolute minimum; this will be used by truck drivers/mechanics as they are trying to hurry to the next customer who has been waiting for 3 hours longer than we said we'd take.
We managed to make the invoice path first (customer has not paid, employee logs personalia needed for billing), but when it came to "paid on site" we almost upended the entire system trying to find a way to fetch user personalia outside of the invoice path.
Neither of us realized it during the days we were banging our heads against it. Realizing we don't need to make an invoice for a job that has been paid for was equal parts relief and utter embarrassment.
Probably my greatest lesson in how important it is to pull my head out of the code once in a while, and to ask myself what I'm trying to do and why. -
I spend all morning on trying to solve an Algo problem for upcoming interview practice (Euler #3) that comes down to implementing IsPrime.
I remember reading once how Sieve of Eratosthenes
Isa the right way to go do when I first started I wanted to use that.
Then I couldn't think of the right code though so I went with Brute Force (for all numbers upto X see X is divisible by it)
It actually worked but I wanted to just try the "right way".
It's way slower and actually ended up with the wrong answer...
But at this point I don't give a **** anymore.
I guess lesson learned... Use Brute Force first... Then optimise for a problem more elegant solution.10 -
!rant just a question. Sorry in advance for the long post.
I've been working in IT in Windows infrastructure and networking side of things for my entire career (5years) and recently was hired for a role working with AWS.
We use Macs and we use *nix distros for days. I've only ever dabbled for 'funsies' before with Linux because every previous job I held was a Windows house and f*** all else.
I'm just wondering if anyone here might have some insights as to a great way to learn the Linux environment and to learn it the right way. I'm not the best Windows admin ever and will never claim to be, but I have seen stuff that other people have done that makes me want to swing a brick at someone's head. And I feel that with all of the setup wizards and the "We'll just do it for you." approach that Windows has used since forever it allowed enough wiggle room for people that didn't know what they were doing to f*** sh*t up royally. I'm not familiar enough with Linux to know if this is also a common problem. I know that having literal full-access to every file in your OS can cause a n00b like myself to mess up royal, thus the question about learning Linux the right way.
I vaguely understand the organization of the folders and file structure within Linux, and I know some very basic commands.
sudo rm -rf /*
Just kidding
But All of my co-workers at my new job are like mighty oaks of knowledge while I'm a tiny sapling. And at times I've been intimidated by how little I know, but equally motivated to try and play catch-up.
In addition to all of this, I really want to start learning how to program. I've tried learning multiple times from places like codecademy.com, YouTube tutorials, and codeschool.com but I feel like I'm missing the lesson that explains why to use a certain operation instead of another. Example: if/else in lieu of a switch.
I'm also failing to get the concept of syntax in certain languages I've tried before. Java comes to mind real fast.
The first language I tried teaching myself was C++ from YouTube. I ended up having a fever dream that night about coding and woke up in a cold sweat. Literally, like brain overload or something. I was watching tutorials for like 9 hours straight.
Does anyone know of a training resource that will explain, in terms a 5 year old would understand, what the code is doing and why? I really want to learn but I'm starting to lose steam cause I'm just not getting it.
Thank you in advance for any tips guys and gals. I really appreciate it. Sorry for the ridiculously long questions.5 -
On the MSc I was participating in, there is a teacher that has a lesson about Databases.
The MSc was not only for experience computer science students. We were informed that the first semester would be as an introduction to all.
So, Databases. No introduction at all. Just read the powerpoint and the pdf he had just translated (or not, because some were just from the internet), just refers to how they are structured briefly. He showed everything about Databases without the students that didn't know much to be involved (we didn't get to our lab for some reason) and then there was his assignment.
His assignment was written as it would be from a customer that knows shit about Databases (sorry but I had to rant). We sat down student's that knew already Databases and some of us worked as database engineers. We agreed on some steps that after read the next chapter of the assignment we reconfigured them. And so on, until we had nothing and we were back at the beginning.
Needless to say, I did not lose my Christmas holidays for him. It took me 2 days after to build a database that was not a full solution but a part (I wad noy sure, the assignment was ambiguous). I passed the lesson with the minimum passable grade.
So, I wrote a nice email to the MSc teacher that had to organize it (or something like that). I did not swear at all. I was professional and wrote what I encountered and what it should have been. The Databases teacher had always that smirk and face that he was THE boss and had no respect for his own lesson. But I didn't mention it. The organizing teacher shared the email with the databases teacher.
And the time came that we had another lesson (web development, it was awful under him) with the databases teacher. And he had the wonderful idea to read the email out loud in front if everyone. He did noy mention my name. I raised my hand and told my colleagues it was me. Then I asked him in front of them, if he was contented with the results (only a few passed the databases lesson and max grade was the smallest passable), first he avoided the question. I asked again. And he said yes. We all looked at each other and somehow knew. No one spoke and I didn't push because I didn't want to take the web lesson's hours for this. It was just hopeless.
From there on, the teachers said we were their best class ever but the most complaining one. They didn't even bother to analyze the "complaints".
So, there you go. One of the lot of those teachers.1 -
The datepicker saga
Part one
So I begin work on a page where user add their details, project is late, taking ages on this page
Nearly done, just need a component to allow users to put in some date of births. Look for react components.
Avoiding that one because fuck Bootstrap.
Ah-ha, that looks good, let's give it a go.
CSS doesn't exist, oh need copy it over from npm dist. Great it applied but...
... WTF it's tiny. Thought it was a problem with my zoom. Nope found the issue in github.com and it's something to do with using REM rather than EM or something, okay someone provided a solution, rather I saw a couple of solutions, after some hacking around I got it working and pasted it in the right location and yes, it's a reasonable size now.
Only it's a bit crap because it only allows scrolling 1 month at a time. No good. Hunting through the docs reveals several options to add year and month drop downs and allow them to be scrolled. Still a bit shit as it only shows certain years, figure I'd set the start date position somewhere at the average.
Wait. The up button on the scroll doesn't even show, it's just a blank 5px button. Mouse scroll doesn't work
Fucking...
... Bailing on that.
Part 2
Okay sod it I'll just make my own three drop down select boxes, day, month and year. Easy.
At this point I take full responsibility and cannot blame any third party. And kids, take this as a lesson to plan out your code fully and make no assumptions on the simplicity of the problem.
For some reason (of which I regretted much) I decided to abstract things so much I made an array of three objects for each drop down. Containing the information to pretty much abstract away the field it was dealing with. This sort of meta programming really screwed with my head, I have lines like the following:
[...].map(optionGroup =>
optionGroup.options[
parseInt(
newState[optionGroup.momentId]
, 10)
]
)...
But I was in too deep and had to weave my way through this kind of abstract process like an intrepid explorer chopping through a rain forest with a butter knife.
So I am using React and Redux, decided it was overkill to use Redux to control each field. Only trouble is of course when the user clicks one of the fields, it doesn't make sense in redux to have one of the three fields selected. And I wanted to show the field title as the first option. So I went against good practice and used state to keep track of the fields before they are handed off to the parent/redux. What a nightmare that was.
Possibly the most challenging part was matching my indices with moment.js to get the UI working right, it was such a meta mess when it just shouldn't have taken so stupidly long.
But, I begin to see the light at the end of this tunnel, it's slowly coming together. And when it all clicks into place I sit back and actually quite enjoy my abysmal attempt at clean and easy to read code.
Part 3
Ran the generated timestamp through a converter and I get the day before, oh yeah that's great
Seems like it's dependant on the timezone??!
Nope. Deploying. Bye. I no longer care if daylight savings makes you a day younger.1 -
To me this is one of the most interesting topics. I always dream about creating the perfect programming class (not aimed at absolute beginners though, in the end there should be some usable software artifact), because I had to teach myself at least half of the skills I need everyday.
The goal of the class, which has at least to be a semester long, is to be able to create industry-ready software projects with a distributed architecture (i.e. client-server).
The important thing is to have a central theme over the whole class. Which means you should go through the software lifecycle at least once.
Let's say the class consists of 10 Units à ~3 hours (with breaks ofc) and takes place once a week, because that is the absolute minimum time to enable the students to do their homework.
1. Project setup, explanation of the whole toolchain. Init repositories, create SSH keys for github/bitbucket, git crash course (provide a cheat sheet).
Create a hello world web app with $framework. Run the web server, let the students poke around with it. Let them push their projects to their repositories.
The remainder of the lesson is for Q&A, technical problems and so on.
Homework: Read the docs of $framework. Do some commits, just alter the HTML & CSS a bit, give them your personal touch.
For the homework, provide a $chat channel/forum/mailing list or whatever for questions where not only the the teacher should help, but also the students help each other.
2. Setup of CI/Build automation. This is one of the hardest parts for the teacher/uni because the university must provide the necessary hardware for it, which costs money. But the students faces when they see that a push to master automatically triggers a build and deploys it to the right place where they can reach it from the web is priceless.
This is one recurring point over the whole course, as there will be more software artifacts beside the web app, which need to be added to the build process. I do not want to go deeper here, whether you use Jenkins, or Travis or whatev and Ansible or Puppet or whatev for automation. You probably have some docker container set up for this, because this is a very tedious task for initial setup, probably way out of proportion. But in the end there needs to be a running web service for every student which they can reach over a personal URL. Depending on the students interest on the topic it may be also better to setup this already before the first class starts and only introduce them to all the concepts in a theory block and do some more coding in the second half.
Homework: Use $framework to extend your web app. Make it a bit more user interactive with buttons, forms or the like. As we still have no backend here, you can output to alert or something.
3. Create a minimal backend with $backendFramework. Only to have something which speaks with the frontend so you can create API calls going back and forth. Also create a DB, relational or not. Discuss DB schema/model and answer student questions.
Homework: Create a form which gets transformed into JSON and sent to the backend, backend stores the user information in the DB and should also provide a query to view the entry.
4. Introduce mobile apps. As it would probably too much to introduce them both to iOS and Android, something like React Native (or whatever the most popular platform-agnostic framework is then) may come in handy. Do the same as with the minimal web app and add the build artifacts to CI. Also talk about getting software to the app/play store (a common question) and signing apps.
Homework: Use the view API call from the backend to show the data on the mobile. Play around with the mobile project to display it in a nice way.
5. Introduction to refactoring (yes, really), if we are really talking about JS here, mention things like typescript, flow, elm, reason and everything with types which compiles to JS. Types make it so much easier to refactor growing codebases and imho everybody should use it.
Flowtype would make it probably easier to get gradually introduced in the already existing codebase (and it plays nice with react native) but I want to be abstract here, so that is just a suggestion (and 100% typed languages such as ELM or Reason have so much nicer errors).
Also discuss other helpful tools like linters, formatters.
Homework: Introduce types to all your API calls and some important functions.
6. Introduction to (unit) tests. Similar as above.
Homework: Write a unit test for your form.
(TBC)4 -
My first software.. Okay. So first time I ever attempted was with my father, i was around 8 or so, i remember very little from it, but in nutshell, i somehow ended up at his job having day off school or something, no idea.
Apparently he was bored, so he decided yo show me... Basic. Yep, thats right. Frking basic. Anyway, he shown me some really basic stuff in basic, and pushed the envelope really hard, just trying to force into me more and more in these 8hrs. I started with filling screen with "o" characters. Most of times he was telling me what to write with elaborate explanation why. At the end of the day, we finished with simple maze game where player was "o" and maze walls was #. Without any goal, or anything.
Next day i was at point 0, understood nothing from it except how to handle keystrokes (and belive me, that for me was huge mindblow, and even bigger mindblow that it actually made prefect sense).
I dont remember much, but later i started with father-assisted c++ and some pascal. I immidietly loved c++ but dropped learning it for (NullPointer) reason.
Thats not really project imho, so now time for my actual first project.
It was about time when ARK survival evolved was a fresh thing, i was playing it a lot. Server admin became buddy. We all complained about max level cap, but to change it in config you needed to input whole new xp curve.
At that time i had great familiarity with google and computers, some thought i was some kind of PC god (seriously I heard someone saying so about me lol) just becouse I could ressurect most cases of broken windows. And I had next to zero programming expirience. It was about to change. I made first c++ actual program, that was making xp curve for you. It took me just bearly 2 days and was series of cin, cout, one file open, some maths in loop, and done. Maths was very bad. But i pushed it into steam forums, and one guy responded how.bad my math was, so we colabed on making 2 iteration. Took around week. Than half a year passed and we wanted go big. Go gui. I had no freaking idea how making gui looks like. Community liked my cli tool, we had quite a lot of downloads, why not go GUI. And thats when I discovered QT framework. And we had few features in mind... It took us half a year to make it. From 60 lines of code i jumped into 1k lines of code. We pushed it and immidietly started working on 4th version with much greater customizability etc.
Than i finished 18 and found a job. Job in php. I got it becouse I made this project.
Now project is abandon. This project also gave me a lesson that donations will not feed you.
Edit: and before you think about my father that he was nice person to show me code, trust me, i dont know bigger dick than him. -
Last night's cronjob was the first time I broke everything on the network via my automation. Fixed it before business hours of our clients.
At least I learned my lesson? 😀😁😂🤣😃😃😄😅 -
Reading a couple rants from students and teachers lately, brought back to my mind a memory from the first lesson in my Software Engineering course when I was in college.
Teacher entered the room like he was the king of the world, turned around facing the students and started his intro speech:
"my name is {name} bla bla bla I will teach you software engineering bla bla bla let's point out one important thing: In your life you have written how many lines of code for a software? 10? 100? If you have NEVER written at least 1,000,000 lines of code for a program, you're not a developer. Now let's start talking about waterfall, endless specification requirements and meetings..."
Me 😐
And that was the moment I left the room moonwalking1 -
I think I may be someone's wk101soon given how things are going for me.
So I get shipped over to the new offices to do some work. Initially, I was supposed to be updating SQL stored procedures.
That I can handle, well my task is now to build the skeleton project for a web API in core 2.0 using domain driven design and onion architecture which the rest of the team will use.
Okay, I don't have any experience in any of that at all. And god bless the team lead explaining some stuff to me. But it's going to take more than a 20-minute chat here and there for this stuff to sink in.
And being told just to build it how you think it should be isn't great advice when I'm trying to figure out how the systems work.
Every other API project I look at is structured completely different from one another so looking for patterns has failed.
I'm fucking stressed out every bit of information I'm getting on whats potentially happening with my job im getting second hand from people. Because I can't access my emails while off-site something I'm repeatedly flagging.
Every job advert is painstakingly making it clear how out of date my skill set is (or lack of). Evidently, I've been way too lax, and this has been a kick in the bollocks I'm not likely to forget.
If we're being evaluated on performance to see who they'll keep, then I've failed at the first hurdle.
Life lesson for those in education, don't be this knob head here and get comfortable when you land a job. Just knowing about the tech that's commonly used in your field does jack all study it.
Not a structured/meaningful rant and shits probably not as bad as I see it. I've only chewed through one fingernail after all.1 -
Not sure if many people heard about nltk in python but I'm currently using a lot now for research.
So one day I was doing multiprocessing while using lemmatizer in nltk, for those who don't know, lemmatizer is a thing that change the word to its base form. So it is like, ran to run, bitches to bitch.
Anyway, the nltk package, to ensure it does not take too much memory, here's what it does: it loads a data file, and once it is loaded and accessed for the first time, it breaks the data file into CSV file. And since I was doing multiprocessing, the data file is accessed for multiple time while it can only be loaded once, hence error happened.
Instead of changing my code, which I think is good already, I went to the package directory of nltk and directly changed the source code from there and now the code works perfectly.
I'm very proud of my self at the moment, this is a very good lesson that I've learned: always look for alternatives. And suck it, nltk.1 -
So I want to inform my internet provider of my new phone number, but I can't remember any of my login info for their web interface because I never used it. Luckily, they have a "forgot my username" function, where I submit my email address and get a confirmation that my username has been sent to me.
Yet, I just don't get said email. I try again, but no avail. So I just guess my username and use their "forgot password" form, which – hooray! – confirms it just sent my an email.
But I don't get any email. I retry, I retry after a day, but no automatic response. I remember a incident a few years back when I didn't get some automatically generated mails from a company and decide to contact their support if they could just reset my password manually.
Nearly a week passes.
Now I received the answer. I just don't have an account.
Lesson learned: Next time I'll just input garbage first to check if those forms are sane. -
Lesson learned. As a newbie to git and vcs in general, always verify a rebase to make sure you didn't accidentally delete your last days work before force pushing and overwriting the company repository. Also, don't get into a situation where you need to do that in the first place.
-
Perhaps as a tip for the junior devs out there, here's what I learned about programming skills on the job:
You know those heavy classes back in college that taught you all about Data Structures? Some devs may argue that you just need to know how to code and you don't need to know fancy Data Structures or Big o notation theory, but in the real world we use them all the time, especially for important projects.
All those principles about Sets, (Linked) lists, map, filter, reduce, union, intersection, symmetric difference, Big O Notation... They matter and are used to solve problems. I used to think I could just coast by without being versed in them.. Soon, mathematics and Big o notation came back to bite me.
Three example projects I worked in where this mattered:
- Massive data collection and processing in legacy Java (clients want their data fast, so better think about the performance implications of CRUD into Collections)
- ReactJS (oh yes, maps and filters are used a lot...)
- Massive data collection in C# where data manipulation results are crucial (union, intersection, symmetric difference,...)
Overall: speed and quality mattered (better know your Big o notation or use a cheat sheet, though I prefer the first)
Yes, the approach can be optimized here, but often we're tied to client constraints, with some room if we're lucky.
I'm glad I learned this lesson. I would rather have skills in my head and in memory than having to look up things and try to understand them all the time.5 -
rant && !rant
so my company just relocated to another part of the city.
it took about 2-3 months of searching for a space till the management found a suitable place. then about one more month for settling on the details (price, when we move, etc). then another month of just waiting for the space to be ready ...
the actual move took 1 day ... just one day ...
so the new place
- is better placed (for me at least)
- has lots of nice pubs / restaurants around for lunch or just relaxing after work
- has great views from every office
- lots of extra space for everyone
- ok people (so far) working at the other companies in the same space
- everyone seems so much more relaxed and easygoing and happy at the new place
But:
- the ac is still not working (32 degrees Celsius outside, and our office is facing the sun almost all day)
- for the first days we were lacking blinds at the windows
- office was full of little stinky bugs and they still keep showing up when we open up the windows
So, overall pretty great ... so (rant part??) WHY DID IT TAKE SO LONG TO MOVE HERE ??? (both before it was decided to move, about 4 years at the old place, and after)
also, relating to the topic of the week ... nothing code related was learned, much was gained, and a life lesson was obtained: if you don't like something, just change it as soon as you can -
I don't know if this is a joke or a miracle.
I was pooping myself on a toilet, and beside me was a bucket of water, then there was a mosquito in my palm where I held my phone. after I snap it, I accidentally threw my phone at the bucket of water.
First and foremost. It's not a water-proof phone, so don't expect that I'm rich. I immediately grab it and it's so wet.
After a while, it gets a lot of touch bug and plugged in headset which is full of water in it.
tried to wash it after I'm done pooping. shut the phone and wait until it's all dry.
After that, my phone went to teamwip(bootloader) telling me that the custom OS is missing.
After some coding, I checked my phone and it's all normal now.
Lesson Learned: never shit when you have a phone with you.4 -
Welcome to post 2 of WHY WOULD I WANT TO WORK WITH YOU?, a saga of competence, empathy and me being dick, even tho I didn't want to be one.
This is a follow-up to: https://devrant.com/rants/2363374 It's title is: "Oh, you can post only every 2h. Didn't know that". I also didn't know that the rest of my rant would be put into a comment. For consistency tho, this time I am still splitting the story.
A wise person once wrote in their book: "People judge other people by two things: Empathy and competence." This may not be an accurate quote, but it carries the same message. Also, I don't really remember who was the author. I only know they were probably quite wise. Anyway, I just wanted to share that sentence. Have a moment and think about it. Or don't. Here's my story:
A was a software house that looked pretty promising. They were elegant, their page and offer looked nice. Well, unless you consider the fact that they offered me internship. Unpaid. But I decided to meet with them anyway, since I had hope that I could negotiate some sort of paid internship or a job contract even. I did my homework after all, and I was confident I am able to keep up with their requirements. I arrived a little bit... no, way to early. One damn hour. Whatever, I waited. I was greeted by a woman. We had a cultural conversation, she had a list of 12 questions I needed to answer, as a form of a test. We begun. First question: How do you change a value in Oracle Database? "Wait a minute", I thought, "What kind of question is that?". Why in seven hells would you want your frontend developer to know how to handle oracle db? Well, I gave my answer, I did lick some of that SQL in my life. Next question: Java stuff. The bloody gal didn't even care to check what position I am applying to before the interview! At this point I didn't really have very high hopes. A shame on them forever.
The story of B and C is connected and a little bit more complicated. More on that in part 2. B stands for Bank. A big corporation then, by definition. A person I know decided called me that day and told me they're hiring, that he referred me and that they would like to arrange a meeting. And so we did. It was couple of days before Christmas. C was a software house again. Or a startup. Idk really. Their website wasn't finished so I couldn't read anything useful up on them. They didn't tell me much about themselves either. They also started with "unpaid internship".
In C, they would greet me and instantly sit me down next to a mac laptop and told me, "hey, do this stuff in python". What the fuck, not again... I told them that I am frontend dev, they guy said "it's no problem, you said you know python, it's a simple task". And yeah, I did host some apps in Flask and I did use psycopg2. It was in my CV. But never, ever, have I mentioned knowing heuristics nor statistics. I'm no data scientist, monsieur. Whatever, I tried, I failed a little bit, I told them that maybe if I did want to spend half of my day there I would finish this task, but back then I was way too nervous to focus and code. I told them what should be done in code and that I just was unable to code this at the very moment. They nodded, we said goodbye and I was sure not to hear from them ever again.
In B, I was greeted by a senior frontend dev. He told me the recruiter is sick and he couldn't come, so we're talking alone. I can buy it. We sat down in said meeting room, and he asked me if I wanted a drink. No thx, I had digested so much caffeine during last 24h, next dose could be an overdose. And then, he took out my resume printed in paper. With notes on it. With some stuff encircled. That bloody bastard did his homework. We spent over an hour, just talking in friendly atmosphere. It was an interview, but it was a conversation also. We shared our experiences, opinions and it went just perfect.
On December 20, I was heading home for Christmas. My situation looked like this: A called me they could offer me only unpaid internship. I was getting kinda bored of rice and debts, tbh. I gracefully rejected their generous offer. B didn't give me feedback yet(it was a most recent interview, so I didn't expect any message until after Christmas anyway). C told me that they could give me internship, but I managed to convince them to make it paid internship. After three months of very bad times, things were starting to get better.
On part III we will explore further events of my very recent past. That post will be same amount of storytelling and possibly a lesson for those who seek an employer and for those who seek an employee.6 -
Week 1 Day 5 - Week 2 Day 5
"It does not matter how slowly you go as long as you do not stop" - Confucius
He had a lot of great quotes but I think that's one every dev who's ever worked on a personal project can get behind. It's been about a week since my last rant so I've got a lot to cover, I got a little busy so my progress has been lacking but I have two days off coming up and I plan on making all my meals ahead of time and turning my phone off to limit distractions.
So far I've worked my way through the first lesion on layouts and getting/editing views by the id. This seems pretty basic once you get comfortable with the topic. I'd like to think this will become second nature once I start to get into the guts of the course. The second lesson started working with internet connectivity and I've just started working through it. A lot doesn't make sense but at the start of the lesson one nothing made sense so I assume it'll all wrap up nicely.
I wanted to publish this two days ago (January 23) but I closed my laptop and forgot all about the rant so now it's two days later and I've made some progress, things are getting easier to understand and I'm liking it. I've also decided to start making something I've always wanted to while I work on android development. I'm going to start making an RPG I've been working on since my sophomore year of high school. I haven't written any code for my game yet but I've got the world development and story air tight. So as an ending statement, I'd like to ask anyone on devRant with game making experience how I should go about structuring my project, and some of the things that aren't going to be easy to find with google searches. I plan on, to the dismay of many other game dev's I've talked to, write it in Java because it's familiar to me and I would probably make a worse game in C++ even though that is the go to language. I'd also like to thank some of you repeat readers for silently encouraging me to keep going just by ++ing my rants every time, JoshBent and Dfox. It's been really nice seeing names pop up every single time.1 -
Lesson of the day: First read installation tutorials for software on linux completely before doimg esch step without knowing the rest...
-
My first programming lesson in C# was to increment my progressbar using a timer to 100 then show the new form. Trial ends.5
-
iAPPLIED CS UNIVERSITY, DAY 1 (2018-09-24)
11:00 UTC+3: Arrived at the secretary's office to complete my registration. I met quite some people; I forgot the names of some. I spent some time over there, so I took the 13:00 class instead of the 11:00 one. It's still early, so we pick whichever we want.
13:00: Procedural Programming at the Computer's lab. The computers were running Windows 8.1! 😱 I might connect to my laptop via RDP. It would be very cool. The course was about C, but the first time was just an introduction. We are going to use Code::Blocks. We were also explained the (HTTP only) web platform in which we are logged in via our passwords and submit our assignments. The professor was very nice, but this day at least was very boring. I was watching CodeMinkey cartoons, trying to solve AdLitterams.
18:00: Back for Applied Mathematics I. At the same computer lab. No lesson did happen, because we have to s learn theory stuff first (every Friday I think). Back to home.
Tommorrow is going to be a hard day...:wq1 -
I had learnt my lesson about the reality of group projects in the very first semester of graduation.
And from then on till the final project in my postgraduation, I refused to have a team and worked on every project alone (except for a few times when I couldn't convince the professor and even then made sure to not depend on anyone else).1 -
Just had my first lesson of the course Web Development. We got an explanation of what html, css, js and php are. Nothing bad ever happened from repeating what you already know, so yeah..
But then came the horror: We need to make a website in FUCKING WORDPRESS!! I ALREADY KNOW HOW TO BUILD A FUCKING WEBSITE WITHOUT A FUCKING SHIT CMS!!
So I showed the teacher my personal website and asked if I could use and/or extend that. They loved it, but I still need to build a website using fucking wordpress!! Not even using php! No, we need to build it with the UI of wordpress.
I know that's not even hard. It's just.. WORDPRESS!!
I guess I'll just have to live with it :/2 -
Story of a first-time hackathon.
So, I took part in the COVID-19 Global Hackathon.
Long story short, I got excited at OCR and just went with the most challenging challenge - digitizing forms with handwritten text and checkboxes, ones which say whether you have been in contact with someone who could have Coronavirus.
And, unsurprisingly, it didn't work within 4 days. I joined up with 2 people, who both left halfway through - one announced, one silently - and another guy joined, said he had something working and then dissapeared.
We never settled on a stack - we started with a local docker running Tesseract, then Google Cloud Vision, then we found Amazon Textract. None worked easily.
Timezone differences were annoying too. There was a 15-hour difference across our zones. I spent hours in the Slack channel waiting.
We didn't manage the deadline, and the people who set the challenge needed the solution withing 10 days, a deadline we also missed. We ended up with a basic-bitch Vue app to take pictures with mock Amazon S3 functionality, empty TDD in Python and also some OCR work.
tbh, that stuff would've worked if we had 4 weeks. I understand why everyone left.
I guess the lesson from this is not to be over-ambitious with hackathons. And not to over-estimate computers' detection abilities.rant covid hackathon slack s3 google cloud vision python tdd aws tesseract textract covid-19 global hackathon2 -
It reaaaally annoys me when my business logic is sound but the data is corrupted.
For example, find duplicates in a HashMap<String>.. but I didn't take into account the input could contain a space either before or after.. so I end up wondering: if a HashMap only contains unique keys, how come the count of items in the map is the same as the count of the input keys?! Well.. spaces were the culprit.
"12345" != "12345 ".. and therefore the Map sees it as two distinct keys..
What an annoying bug.
Lesson learned: 1) Sanitize input first and never trust it. 2) Never make assumptions16 -
First day of new job. No more rants about Blue Prism, that's in the past now. New year new me!
Time to go back to rant against backend developers and their fucking Laravel.
First lesson of the day: if I see another select2 I'm gonna commit war crimes. You see this nice plugin for jQuery, you use it everything's so cool and modern and you think you're the smart one of the team 'cause you don't know you've just polluted an otherwise perfectly fine web page with the dirtiest js shit you could possibly find, just because you didn't feel like searching one more minute for whatever replacement for a drop down you can easily find.
You're not the smart one. You're a criminal.4 -
My school did that and it helped firing the worse teachers I got :
A simple poll on every course taught during the three year.
[Gonna be surely a long rant since some testimony below]
The previous prom before us got a teacher that went nuts, like the first and only lesson classes was like "Okay so if you don't understand my lessons, you get out. I don't want any question." I'm not kidding.
So since he wanted to teach researching stuff, they had only 4 hours of lessons, and the other classes were to research.
At the exam, he went nuts again and were saying people did shit, saying that they are shit, etc.
Worse is, if you happen to have to do a catch up examen with him, you had to implement in 4 hours a program that took at least 20 hours of research.
But at the end of the year, students got asked with a poll how each classes of the year went. All the prom gave the feedback that was deserved.
The next year, wiht my prom, the teacher was extremely kind with us, but we all knew that was because his job was compromised. (And if I'm not wrong, he doesn't do that course anymore for engineers, fortunatly.) -
Hello Apple,
Fuck you, more than a month trying to open a developer account without any chance, lot of fucking emails.
Lesson 1:
If you’re from a country and put a phone number from another country you will never be able to open a developer account? How did I know that? From my experience and many other people, but Apple just says: Error, that’s it you figure it out !
Lesson 2:
If you pay using a card on which the name is different than the name in the developer account, you have to wait longer and provide more documents. How did I know that? After fucking 5 tickets and more emails asking why my account is not ready yet, then they answered they need a document to verify my identity. If you don’t do that you will just rot waiting.
Lesson 3:
If they need an ID document, you have to email them first and ask why you’re account is not available yet, if you don’t you will just rot waiting. -
My favorite xkcd quotes (order is not significant )
1. _*It's the world's tiniest open-source violin.*_
2. ...too honest. Scale it back.
3. I'd like to bestow upon you the first annual AWARD of EXCELLENCE in BEING VERY SMART. May you continue to grace our internet with your wisdom.
4. wait, what?
5. Yeah, uh ... I accidentally took the Fourier transform of my cat ...
6. Okay, we _suck_ at this.
7. You either need more medication or less. Not sure which.
8. I THINK EVERYONE INVOLVED HERE IS CUTE
9. World's Greatest Daughter
10. People who open bananas for the other end
11. Just for the sake of the argument, we should get a boat! You can invite the Devil, too, if you want.
12. This explain a lot.
13. My bag is 90% backup batteries.
14. Well- will you be my "it's complicated" on facebook?
15. Oh God. Gotta get out. The window.
16. Sweet! I finally got my subduction license!
17. I'll tell you later - you wouldn't appreciate the punchline over this 12kbps cell phone codec.
18. RON PAUL evolves into TRON PAUL
19. Just talk to them like a f***ing human being
20. In ordering #5, self-driving cars will happily drive you around, but if you tell them to drive to a car dealership, they just lock the doors and politely ask how long humans take to starve to death.
21. I eat my body weight in food every 31 days. That's slightly faster than the human average.
22. Nice try, Mike. Get out of the well.
23. Apollo retroreflectors
24. Can't see space vampires
25. My class on screenshots was a big hit, although for some reason I only ever sold one copy of the digital textbook.
26. WHAT.
27. Introducing The xkcd Phone 6, VIII, 10, X, 26, and 1876. We didn't start this nonconsecutive version number war, but we will not lose it.
28. My morality has evaporated over the harsh UV light.
29. Come on. Somewhere at the edge of the bell curve is the girl for me.
30. P.P.S. I can kill you with my brain.
31. Time to accelerate this giant machine up to terrifying speeds and steer it using my hands, which I am allowed to do because I took a 20-minute test in high school!
32. My normal approach is useless here
33. Wake up, sheeple!
34. Sir- strategic command has send us a lunch order.
35. Yeah, but first I'm gonna go comatose for a few hours, hallucinate vividly, and maybe suffer amnesia about the whole experience.
36. HOLY S***. Guys- people are complicated!
37. OH GOD- SPIDERS
38. Perhaps you need a crash course in taking hints. Here's your first lesson: We're not actually walking somewhere together; I'm trying to leave this conversation and you're following me.
39. How did the pole vaulters get up to our balcony?
40. Friggin' Python
41. I am the goddamn *Michael Jordan* of blurring the line between metaphor and reality. [tosses a basketball] -
Taught my wife the first lesson in real world programming:
She had to do some python homework and it was already late night. Task was to apply several filters to a csv. So we did the good ol' STRG+C.
Am I a horrible person or my programming corrupted from within?4 -
So this is something that happened in the first year at college.
I was at one of the top 50 engineering colleges in my country. To get admission here one needs to get a good score in the qualifying exams.
Now we had a cs related course in the first year which covered basic programming and coding concepts.
So in the first practical session we had to just write a hello world program in C.
The guy next to me for this session was the class topper who had secured the highest marks in the qualifying exams.
Now, as most of us know that program has a line that is:
printf("Hello World!"); or a variant of this.
This guy gets stuck while writing this line, so I ask him if I can help him.
He turns to me and said, " Man, I'm trying to get this comma to go up but it's not working"
Extremely confused I look at his terminal, only to realize that he was pressing shift+, and trying to get the " sign.
That guy went on to finish with a 4.0 gpa and is currently doing his masters.
Although hilarious, this serves as a very good lesson to all the beginners out here.
If you learn from your mistakes and improve you can definitely succeed in your life!
Just remember to actually look at the full keyboard though!1 -
I am a cs student at first class. Obviously we take an algorithm lesson. However, despite we have learned all things related to OOP , we didn't even learn switch case statement not even bubble sort algorithm or anything related to the algorithms. Because of that in my free time I learn this stuff individually. I know we will learn these things in the second class but it doesn't make sense to program anything without knowing them because you need to use them. You can use standard library but that doesn't mean you don't need to know how that works.
-
It started around 10 years ago, my first programming lesson is creating a simple actionscript using macromedia flash mx. It's a script that takes 2 input and print out the sum. I still have the script today. 😁
-
> Colleagues complain all the time about dumb shit which have no relevance whatsoever to the job (see my "cat in voice call" post): I get scolded, I need to change
> I complain for the first time in 2 years about relevant stuff which actually matters to the job (some guy collecting bad decisions one after the other): I get scolded, I shouldn't trash talk colleagues
The key lesson I'm learning here is how everyone is allowed to do everything towards everyone, everytime, but by God don't you dare doing it about what should be relevant about your fucking job. We don't do that here.1 -
My first year of a 2 year course our teacher had only taught us 2 theory topics of 6 and hadn't begun to teach us the other 2/3 of the course which was programming. The only reason he took so long was because he wanted everyone to understand the topic before he moved on which meant waiting for the people who shouldn't of been allowed to take the subject because they never paid attention and showed no interest in the subject. But he refused to move on without them.
To drag those 2 topics out more one of them was algorithms. At the time he had sprained his wrist shadow boxing and instead of preparing them before hand to give us some help he would type them out while we sat and watched wasting half the lesson. Then a month or so into our second year he left leaving the other teachers to make up for everything he failed to cover with us. -
Tip: when doing transactions, don't pay as cash even if they tell you it is a requirement. Tell them you will pay via cheque or via bank transfer with a contract first with a seal from an attorney. You must have a valid copy first of the contract before doing payments. Also, get a photo of 2 valid IDs the person you are doing transactions. They require you personal infos and IDs? Require them also that.
#noContractFirstNoPayment1 -
Had a Nas with a single 3tb seagate HDD in it.
It ran well for half a year and it was my main backup and a time machine for my dad.
The time came that my budget was allowing a second drive for redundancy so I powered it off, added the second drive and powered it back on.
😐😓😧😭
The drive did indeed die and yes, it was one of those drives with an extremely high failure rate.
My dad was pretty mad that his backups were gone even though he didn't need them.
So my biggest lesson from this was to always encrypt such drives because dads backup wasn't and my files and such weren't either, so someone could restore our hole life's from the drive.
So I can't Rma that fucker.
Zfs at rest encryption ftw!
By the way, writing this I noticed that I didn't need to power the Nas down to add the second drive....
Ffffffffuuuuuuuuucccckkkkkk.
Another more recent thing was a refurb 4tb we red that I bought used for a bargain.
It reported 2 unwritable sectors but I didn't care for the money.
After about a month, it died.
The interesting part is how it died.
It spinns up, gets detected, you can access the data.
You can copy the data.
But after a few moments of continues load, all operations start timing out and the drive either disconnects completely or the zpool degrades and shuts down.
In the first case, replugging brings the drive back untill it does it again.
On zpool degradation only a reboot brings it back.
Put a fan on it in case it was overheating but that didn't fix it.4 -
Programmer lesson #2
First laptop is just like first love...No matter how many others come later...It will always have a special place in our ❤️2 -
My first #hack is that I once opened my friends account on my computer using the Google recovery question which he kept as his favorite sport . Once in I changed the password and informed him that his account was hacked..lol you should see his face .later I told him he put his recovery question to be hard to be guessed ....lol I think he learnt the lesson the hard way...well after that I got to know about internet ethical rules and there ends the matter
-
Hello guys, i need some advice:
Our school is having a "auto-management" (idk how to translate) period, it lasts 3 or 4 days just before christmas vacation, and in those days students get to organize courses about pretty much everything to teach stuff to other students (exept stuff like video games cuz the principal is closed-minded), some friends asked me to make a course about programming in c# because they are interested, i thought it was cool so i said OK.
Now i'm thinking how to structure it, it's going to be 2 "lessons" of 2 hours each, and it's open to everyone in the school.
I don't want to do a full blown course explaining everything, i just want to give them a kick start and point them to the right direction, I thought about explaining some "theory" in the first lesson, I'm assuming almost everyone that will come never did programming stuff, so i'm thinking of explaining stuff like how a computer works, why you need a compiler, etc.. maybe based on the introduction from learncpp.com without getting to much into the details and then explaining how c# works and its grammar.
Then in the second lesson i'll try to code togheter some stuff (We'll have just one pc attached to a projector).
So, how would you do this ? I mean i never tried explaining programming to someone else and i'm self-taught i looked at the guide on msdn but it starts directly by giving you an hello world, should i follow it ? I fear i'd get too thecnical and they wouldn't understand me, do you know some good guide i can use as a reference ?
ps: there's going to be max 30 people1 -
A few days ago, our latin teacher asked the ICT coördinator to borrow the poor camera of the school to record the lesson. She knows that I am the computerfreak of the class so she gives me the camera and she explanes me how to use it like I don’t fucking know how to use it. She said me that she didn’t know how much space there is left on the SD-Card and so the camera could stop filming. I started up the camera and the first thing that I saw: 27’22”, such a stupid bitch. We returned the camera and said: You could see on the display how many minutes there were left. She seemed pretty ashamed, she ignored us and walked further.7