Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "iii"
We all have that one friend.
Person: Windows 8 is kinda lame
Friend: Switch to linux.
Person: Need to make pc light
Friend: Switch to linux
Person: Hey should i get assassins creed III or Witcher 3
Friend: Switch to linux
Now I know how Quake III Arena got those high-res textures with better lighting and shading -- the developers conjured evil spirits to do some bit-level hacking to quickly calculate the inverse square root, which meant more calculations in less time, which meant more iterations for high-res rendering!9
In my first summer at my internship I was fixing up a PHP script that a previous developer wrote... It collected our customer's emails and sent them to MailChimp for marketing.
The SQL query to get the emails was pretty standard, but what he did next was not.
There were for loops nested 3 deep. The outer loop's counter was i. The inner was ii. And the deepest was iii. That alone made it hard to read, but for a couple years some iii's and ii's were mixed up when getting values for arrays. So it was even harder to tell what it was supposed to do.
The inner loop also started at i-20. This was so he could look through and see if an email was already included from that query and skip it. But he didn't check the bounds, so the first 20 times through the outer loop, the inner loop would throw `undefined index -20` errors.
In order to fix all this I did an order by on the query, and kept a last email variable that I used for comparison. Pretty basic. This also lowered it to just one loop.
I talk about it on a regular basis with my coworkers and we all laugh about it. I also bring it up when upper management thinks they can code, because that ex developer is now an executive.
MENTORS - MY STORY (Part I)
I've had several great mentors during my career. This is the story of the three most important.
1.- Professor E.
When I was on my first year (University - Computer Science), all my professors were 'normal' except for this one.
E. was the Programming I - Laboratory professor. And the most important thing he teached us was to think. To be independent, and to look for answers beyond simple solutions.
He was always pushing us beyond what was requested and to try new things, to try to improve our own solutions and to look at them as always improvable.
In a regular class, this would happen:
Student: Hey E. How can I do this X requirement?
E.: Use function xyz with A and B parameters.
S: Ok thanks...
...10 minutes later...
S: Hey E. that function doesn't work very good for my case.
E.: You have a book, you have internet connection. Don't waste 10 minutes trying to abide what I told you. Investigate, find a way or even a better way; use your resources.
Other example, in the first year all projects were requested to be delivered with text based interface (console projects).
What about E.?
"Well, you CAN deliver your project with a text based interface BUT you definitely SHOULD try to make a GUI, something simple but effective. Just so you learn more in the process"
Good E. He gave me strong foundations for this industry.4
Steam Winter Sale is on, and I just got myself Dark Souls III.
Done downloading, game started and....
*dies within first 3 minutes*9
Yes. I have done it. Cobra MK III welcome to my hangar !
What a gorgeous ship.
So if you see cobra near eravate then that's me.
MENTORS - MY STORY (Part III)
The next mentor is my former boss in the previous company I worked.
3.- Manager DJ.
Soon after I joined the company, Manager E.A. left and it was crushing. The next in line joined as a temporal replacement; he was no good.
Like a year later, they hired Manager DJ, a bit older than EA, huge experience with international companies and a a very smart person.
His most valuable characteristic? His ability to listen. He would let you speak and explain everything and he would be there, listening and learning from you.
That humility was impressive for me, because this guy had a lot of experience, yes, but he understood that he was the new guy and he needed to learn what was the current scenario before he could twist anything. Impressive.
We bonded because I was technical lead of one of the dev teams, and he trusted me which I value a lot. He'd ask me my opinion from time to time regarding important decisions. Even if he wouldn't take my advice, he valued the opinion of the developers and that made me trust him a lot.
From him I learned that, no matter how much experience you have in one field, you can always learn from others and if you're new, the best you can do is sit silently and listen, waiting for your moment to step up when necessary, and that could take weeks or months.
The other thing I learned from him was courage.
See, we were a company A formed of the join of three other companies (a, b, c) and we were part of a major group of companies (P)
(a, b and c) used the enterprise system we developed, but internally the system was a bit chaotic, lots of bad practices and very unstable. But it was like that because those were the rules set by company P.
DJ talked to me
- DJ: Hey, what do you think we should do to fix all the problems we have?
- Me: Well, if it were up to me, we'd apply a complete refactoring of the system. Re-engineering the core and reconstruct all modules using a modular structure. It's A LOT of work, A LOT, but it'd be the way.
- DJ: ...
- DJ: What about the guidelines of P?
- Me: Those guidelines are obsolete, and we'd probably go against them. I know it's crazy but you asked me.
Some time later, we talked about it again, and again, and again until one day.
- DJ: Let's do it. Take these 4 developers with you, I rented other office away from here so nobody will bother you with anything else, this will be a semi-secret project. Present me a methodology plan, and a rough estimation. Let's work with weekly advances, and if in three months we have something good, we continue that road, tear everything apart and implement the solution you guys develop.
- Me: Really? That's impressive! What about P?
- DJ: I'll handle them.
The guy would battle to defend us and our work. And we were extremely motivated. We did revolutionize the development processes we had. We reconstructed the entire system and the results were excellent.
I left the company when we were in the last quarter of the development but I'm proud because they're still using our solution and even P took our approach.
Having the courage of going against everyone in order to do the right thing and to do things right was an impressive demonstration of self confidence, intelligence and balls.
DJ and I talk every now and then. I appreciate him a lot.
Thank you DJ for your lessons and your trust.
MENTORS - MY STORY (Part II)
The next mentor was my first boss at my previous job:
2.- Manager EA
So, I got new in the job, I had a previous experience in other company, but it was no good. I learned a lot about code, but almost nothing about the industry (project management, how to handle requirements, etc.) So in this new job all I knew was the code and the structure of the enterprise system they were using (which is why the hired me).
EA was BRILLIANT. This guy was the Manager at the IT department (Software Development, Technology and IT Support) and he was all over everything, not missing a beat on what was going on and the best part? He was not annoying, he knew how to handle teams, times, estimations, resources.
Did the team mess something up? He was the first in line taking the bullets.
Was the team being sieged by users? He was there attending them to avoid us being disturbed.
Did the team accomplished something good? He was behind, taking no credit and letting us be the stars.
If leadership was a sport this guy was Michael Jordan + Ronaldo Nazario, all in one.
He knew all the technical details of our systems, and our platforms (Server Architectures both software and hardware, network topology, languages being used, etc, etc). So I was SHOCKED when I learned he had no formation in IT or Computer Science. He was an economist, and walked his way up in the company, department from department until he got the job as IT Manager.
From that I learned that if you wanna do things right, all you need is the will of improving yourself and enough effort.
One of the first lessons he taught me: "Do your work in a way that you can go on holidays without anyone having to call you on the phone."
And for me those are words to live by. Up to that point I thought that if people needed to call me or needed me, I was important, and that lessons made me see I was completely wrong.
He also thought me this, which became my mantra ever since:
LEARN, TEACH AND DELEGATE.
Thank you master EA for your knowledge.
PART I: https://devrant.com/rants/1483428/...1
My first dev project. That is a toughie. Years ago (1998) I did some BASIC programming in HS. Then a few years after that (somwhere between 2002 and 2006) I did a lot of video game editing with hex editors and other tools to replace dialog to translate video games from Japanese to English, but there was not much coding there.
The first one I remember in recent times that involved any kind of coding was back in 2012/2013, there was a save state editor for Final Fantasy III on android (it didn't work for the iOS saves) but the editor was in Chinese. I ended up working with someone else to change it to English, so that others could use it easier. After that, I decided to code one from scratch for a different game.
I spent weeks working on it, and finally released a save editor for Final Fantasy Dimensions (I made sure it worked for both iOS and Android save files). It was my first great achievement, however it was way to many lines of code (I didn't know about loops or arrays back then, so I had a lot of repeating code). I eventually ended up making ones for Final Fantasy IV and VI, however those were never released to the public, as I had trouble getting the CRC to calculate properly every time.
This led me down the path I am now, going for my Bachelor's in IST with a specialization in Programming.1
Trying to setup a ltsp server for fun. Neve done server things before.
The server and the thin client are in VMs. So I start, install openssh, and them when I try to ssh... WHY CAN’T I FUCKING CONNECT, I CHECKED THE IP WITH IFCONFIG, oh shit, forgot to configure the vm network... so ssh works! Then I setup dhcp (I really don’t know what I’m doing, just following the tutorial), the ltsp configs thing, build the client image and then, I HAVE NO FUCKING INTERNET CONNECTION. Continues, boot up the thin client... WHY CAN’T YPU FUCKING FIND THE SERVER!! Then I realise the vm is not an ubuntu one, so delete it and make a new one... WHY DOES IT STILL DOESN’T WORK!!!!!! Oh wait forgot to connect to the network! Goes to put the network adaptor, and: wait! I don’t need NAT! So I replace the NAT by the correct network, and: Wait it lets me choose the weird thingy intel/pce thingy, oh I remember now! It said we needed the “...III FAST...”! Activate it and... IT WORKS ! !!!! CONNECTS TO THE SERVER!!! GOT THE DHCP!!! WAIT!!!!! What is THAT 🤬 TFTP LOADING THING!!!:
TFTP open timeout
Any other IT company is like:
* Task -> Designer -> Markup coder -> Backend -> Finish
Our IT company:
Act I: "Art of setting up contact with idiots".
*Cave scripts (aka "typical task")
Designer: -- "DAFUQ?"
Customer: *gives another interpretation*
Designer: -- "Erm... really? White text on white background?"
Customer: -- "Make a decision by yourself. I was expecting much more independence from you. You are an expert after all."
Designer: -- "Well. I'm making decision by myself. The text will be placed *here* and will be gray-colored, because *bla-bla-bla*"
Customer: -- "I disagree."
Designer: *1 hour of silence later* -- "Well...k."
Act II: "Design meets ar(u)tist"
*Something, that was drawn by dumb kid while smashing his own head against desk. (PSD layout)
* Salt (to pour it on open wounds)
Designer: -- "I'm seeing this task *this way*"
Markup: -- "And how do u think i should get this done? Have you even seen what you made?? This is bullshit!"
Designer: -- "It's not bullshit! It's a sci-fi themed layout!"
Markup: -- "With gameplay elements and graphics from Alien Shooter??"
Designer: -- "Well, I don't care." *brings new edits and changes*
Markup: -- "????"
Designer: *smug face* -- "!!!"
Act III (7 days later, 9 hours till deadline): "Short story about boy, who was trying to hang himself, but instead fell out from window."
*Markup, smelling like it went through hell and back (x1)
* Markup coder with fried butt (x1)
Backend: -- "What. Is. THAT?"
Markup: -- "It's a work we should complete in 9 hours."
Backend: -- "WE?? I know u mean me, but that's a nightmare. What the f*ck were you doing all this time?"
Markup: -- "Well..." *finds out that he was only watching films and sleeping* "I was making this thing up..."
Backend: -- "You mean "f*cking" *this* thing "up"?"
Markup: -- "Not without it"
(*3 hours of edits and changes of color from white to white later*)
Backend: -- "Well, let's do this."
*Picks PHP and tries to bundle it up with MongoDB. After some time tries to rewrite everything to JS and starts shouting something like "F***CK" and looking for window to walk through. Figures out that he is on first floor. And that he is too lazy to go upstairs*
Act IV (3 days after deadline): "Pain and misery":
*Something covered with insul(t)ating tape. (Final product)
Customer: -- "Really?"
Team: -- "Kinda."
Customer: -- "Well, thanks for your work anyway. It feels like it's going to disassemble right in my hands but it just works. Oh, also, you didnt made this in time, so your payment will be over9000 times lower. That's all"
Backend, on fluids: -- "Well...yeah..."
Markup: -- "Don't look at me like that. I really was doing my job."
Designer, with twitching eye: -- "Huh, I see. You worked so hard that we have nothing to eat now. Thanks for that."
did i just read the
i. terms of service
ii. acceptable use policy
iii. cancellation policy
well that was boring…1
On a 8088 Acer 500+ with a whopping 640KB RAM with Clipper and dBase III+ on MS-DOS 3.30 back in 1988.
I remember my father letting us touch his beast, with windows 95 and a Pentium III (we thought Pentium 3 was a big deal). He had some games for us like the first Prince of Persia and another where you ski and have to avoid trees.1
Since day 0, I have been fond of computers. One of my first plush was called "DataDog" and looked like a CRT screen with dog ears around. According to my mum I was "addicted" to it.
At year 2, my dad was arranging some music on some software while I was watching him on his lap. Quick jump to the present: nowadays and since 10 years I run my own home studio with three guitars, two keyboards, one bass, three monitors, a microphone, an amp and a cabinet... coincidence? I think not!
Fast forward 5 years later (so I'm 6-7 years old), and I was playing with the legendary pinball game on Win95, as well as Flight Simulator. Then I was hogging mum's laptop to play settlers II (<3 that game), I eventually got my computer, and got into Quake III Arena being aged 10 (and had to tell my mum that game was safe for my age haha - I eventually removed the blood effects).
The Quake 3 Arena chapter is interesting: it got me into router configuration as I wanted to open a port through the router to host my own dedicated games with friends, it got me into DNS configuration (I was running a no-DNS client that allowed friends to join me through a DNS while having a dynamic IP) and eventually... to modifying .cfg files to tune my server as I wanted it. No programming here but a nice intro into :)
Then I hated the fact everybody would point their finger at me and say "geek" - I was only 13, fragile, sensitive, and I wanted everything but a bad image on me.
Meanwhile I continued on getting interested in hardware and configure my own computers, and investing myself into music production.
Then, university. "What do you want to study?" I thought of everything but IT, fleeing the image of a "geek". Turns out it was a waste of time, and at 21 yo I got into web development (well, just html and css), then learned a bit of PHP, finally got a specialized 2-year training and now here I am!
I was bound to be in IT either way since day 0, and funny fact, I've used every windows edition since Win95.