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 - "non-interactive"
-
This codebase reminds me of a large, rotting, barely-alive dromedary. Parts of it function quite well, but large swaths of it are necrotic, foul-smelling, and even rotted away. Were it healthy, it would still exude a terrible stench, and its temperament would easily match: If you managed to get near enough, it would spit and try to bite you.
Swaths of code are commented out -- entire classes simply don't exist anymore, and the ghosts of several-year-old methods still linger. Despite this, large and deprecated (yet uncommented) sections of the application depend on those undefined classes/methods. Navigating the codebase is akin to walking through a minefield: if you reference the wrong method on the wrong object... fatal exception. And being very new to this project, I have no idea what's live and what isn't.
The naming scheme doesn't help, either: it's impossible to know what's still functional without asking because nothing's marked. Instead, I've been working backwards from multiple points to try to find code paths between objects/events. I'm rarely successful.
Not only can I not tell what's live code and what's interactive death, the code itself is messy and awful. Don't get me wrong: it's solid. There's virtually no way to break it. But trying to understand it ... I feel like I'm looking at a huge, sprawling MC Escher landscape through a microscope. (No exaggeration: a magnifying glass would show a larger view that included paradoxes / dubious structures, and these are not readily apparent to me.)
It's also rife with bad practices. Terrible naming choices consisting of arbitrarily-placed acronyms, bad word choices, and simply inconsistent naming (hash vs hsh vs hs vs h). The indentation is a mix of spaces and tabs. There's magic numbers galore, and variable re-use -- not just local scope, but public methods on objects as well. I've also seen countless assignments within conditionals, and these are apparently intentional! The reasoning: to ensure the code only runs with non-falsey values. While that would indeed work, an early return/next is much clearer, and reduces indentation. It's just. reading through this makes me cringe or literally throw my hands up in frustration and exasperation.
Honestly though, I know why the code is so terrible, and I understand:
The architect/sole dev was new to coding -- I have 5-7 times his current experience -- and the project scope expanded significantly and extremely quickly, and also broke all of its foundation rules. Non-developers also dictated architecture, creating further mess. It's the stuff of nightmares. Looking at what he was able to accomplish, though, I'm impressed. Horrified at the details, but impressed with the whole.
This project is the epitome of "I wrote it quickly and just made it work."
Fortunately, he and I both agree that a rewrite is in order. but at 76k lines (without styling or configuration), it's quite the undertaking.
------
Amusing: after running the codebase through `wc`, it apparently sums to half the word count of "War and Peace"15 -
When a Coursera course is way better than the one offered by your university…
A university student's rant...
I study Electrical and Computer Engineering and during the first semester of the second year I selected an optional course: Web Programming. It was believed among students that the course would be really easy, and it was. All the student had to do was build a very simple website using HTML, CSS and a few line of JS. A website containing three or four pages all of which had to be validated using a markup validation service.
Yeah, sure, I passed the course just like everyone else who bothered enough to spend an hour or two working on the project. Oh, I almost forgot! We had an one-hour workshop on Dreamweaver!
So, by that point, everybody was a front-end developer, right?!
That happened over three years ago, and because of that course web-development didn’t impress me…
Thankfully, the last few months I’ve became interested in Web Development, and I’ve been reading some articles, spending time on smashing magazine, making some progress on FreeCodeCamp and taking relevant courses on Coursera!
In fact, a few days ago I completed the Coursera course “HTML, CSS and Javascript for Web Developers”.
Oh boy, the things I didn’t know that I didn’t know…
<sarcasm>Did you know there was a term called “responsive design” and that there are frameworks like bootstrap?</sarcasm>
Well, I d i d n ’ t k n o w ! ! ! (even though I had taken the university’s course).
I understand that bootstrap was introduced in 2011 and I took the university course in late 2012, but by that time, bootstrap was quite popular and also there were other frameworks available before bootstrap that could have been included in the course! (even today, there is no reference in responsive design in the university’s course).
In just five weeks the coursera course managed to teach me more, in a more organized and meaningful way than my university’s course in a whole semester!
When I started the coursera course I shared it with a friend of mine. His response: “yeah, sure, but web development is pretty easy… I didn’t spend much time to complete that project three years ago!”
That course three years ago gave birth to misconceptions in students' minds that web development is easy! Yeah, sure, it can be easy to built a simple, non responsive, non interactive website! But that's not how the world works nowadays , right?!
A few months ago, in the early days of August, I attended Flock, the Fedora community conference. During a break I spent some time speaking with a Red Hat employee about student internships. He told me, and I paraphrase: “We know that students don’t have a solid background and that they haven’t learned in the university what we need them to!”
Currently I’m planning to apply for a front-end developer internship position here in Greece.
Yesterday I wrote my CV, added university courses relevant to that position and listed coursera courses under independent coursework… While writing those I made these thoughts…
What if that course 3 years ago was as good as the coursera course… all the things I’d know by now…6 -
== Internship Interview Rant ==
This is the weirdest interview I've been to to be honest because it wasn't really ABOUT ME. It's like the boss is not really interesting in knowing what I can do, what I am capable of doing. He asked me about my educational background for 5 minutes and started explaining about the startup for 45 minutes. He explained how he came up with the idea like it was a children's bedtime story. He explain what the job is, BUT he didn't mention what programming languages they use. All he said was it required knowledge about different programming languages. I tried asking but he seemed to dodge the question for some reason by saying everyone needs to know a little bit of everything. (Srsly i don't even know what to start learning for this) After listening to him talk and talk and talk and talk, he finally said "hey, think about it and send me an email if you are willing to take it up!"
He works with STUDENTS. The team is composed of him and 5 students. o.O They all seem so..... quiet in the office. Is that normal ???? Or like shouldn't everyone be kinda "interactive" sometimes?
So there is a girl working there too for 3 weeks now but SHE IS IN ROMANIA like wtf, gr8 then i guess ill be the only girl there but hey perks of being a girl, u get to be spoiled sometimes XD it happens a lot !
Internship ad ----> Main language: English
Me: *rages internally during the interview and thinks: BRUHH WHY ARENT U SPEAKING IN ENGLISH i prepared what I was gonna say in english for an hour*
I wonder if the code is in english or maybe its not :(( But I wish it were because it would be soooo much easier in english.
And there you go, I guess I have one week to find a better internship or decide to deal with this talkative boss. This isn't exactly a story of my last job cause my last job is totally non-dev related. This is a story of (maybe) my future job unless I actually find a better internship.2 -
!devButAlsoKindaIsDev
Alright, time to do some explanation.
TL;DR: JavaScript is a fucking nightmare. May god help every web developer out there. Essentially, I was gone because of JavaScript.
Q: where tf are you bruh
A: in your mo-uhhhhh alright, so I was chosen to be the main developer for an interactive promotional video for my school (every year the school holds something called an open day, where kids from 8th grade can come to the school and have a tour in the school first hand. Because of the coronavirus (just gonna call it “the rona” from here) this is now impossible so we are losing the interest and the first impressions so the school decided to make an interactive virtual one). They asked me if I want to do it and I said yes.
Boy, was that ever a mistake... (hint: it was a huge mistake)
So the guy who talked to me and asked if I wanted to do this was my grade’s manager, and he gave me the phone number of my PM. So we talked and stuff, and then this happened: (bruh = PM)
bruh: I’ll send you the API and documentation for the thing that we are working with! They have lots of examples and stuff and they’re Israeli too!
Me: Okay! What language are we talking about here?
bruh: JavaScript.
Me: (questioning life choices) Okay!
I didn’t write any JavaScript for the last 3 years or so. It had to be done because I promised and I can’t let down people who count at me and ask me to show where I shine.
So, what was the objective for me? Build a Firebase client that sends the user’s score and choices to Firestore after he chooses something in the interactive video (for example, go to chemistry or go to physics) while learning JavaScmeme (ECMEMEScript) as I go.
Deadline? A week and a half.
After working almost 12 hours a fucking day, I made it work. Sorta. In order to reconcile with small exceptions and edge cases in the interactive video, I had to hard-code some IDs in the code. I had no choice, since I couldn’t allow myself to spend more and more time to make my code more dynamic than it was because I simply didn’t have time. The code absolutely STINKS but it works.
Today is the day where we (aim) to finish all of the cosmetic things that we need to fix. All of them are non-essential for everything to work, but we want to make this thing presentable because we want to put this on the school’s website.
CONCLUSION:
JavaScript is literal shit. Dynamic weakly-typed languages are cursed AF and need to die in a fire.7 -
Client: hey, we need to build an interactive campaign page. Something that can be fun on mobile too..
Developer: o...kay... such as?
Client: how about a 360 environment and mobile can make use of the gyroscope?
Developer: should be fine but may I know what is the browser support we need to cater to?
Client: IE 9
Developer: .... ok we may need a fallback for non-supported. May I know how about the timeline?
Client: 1 month.
FML.6 -
the one that exists (c#) seems underused compared to where it could (or even should) be used. and the place that uses it the most (enterprise) butchers and mangles its use, just as enterprise tends to do with everything.
the one that i'm designing... the fact that it doesn't exist yet, and that even as i'm zeroing in on syntax and philosophy that i'm very much starting to be proud of, i still don't have a proper idea of how to implement even the most basic parser/interpreter for it, not because it's in any way difficult or unusual, but just because... i've never done that before, so i get into weird circular thought paths that produce weird nonsensical code...
... on top of that, i still only have a very, very fuzzy idea of how will it (sometime in extremely distant future) actually implement the most interesting and core feature - event-based continuous (partial) re-parsing of the source code and the fact that traversing the tokens at the leaf level of the syntax tree should result in valid machine code (or at least assembly) that is the "compiled" program.
i *know* it's possible, i just don't yet know enough to have a contrete idea how exactly to achieve it.
but imagine - a programming language where interactive programming is basically the default way of working, and basically the same as normal programming in it, except the act of parsing is also the (in-memory) compilation at the same time, so it's running directly on the hardware instead of via interpretrer/vm/any of that overhead crap.
also then kinda open-source by definition.
and then to "only" write an OS in that, and voilá! a smalltalk-like environment with non-exotic, c-family syntax and actual native performance!
ahhh... <3
* a man can dream *2 -
I just created a wolpertinger.
https://en.m.wikipedia.org/wiki/...
We have the problem that the number one build tool for scala / java is sbt.
Sbt sucks.
There are many nice plugins for maven.
Sbt can generate a POM from an SBT build.
But the plugins need to be set up, so the generated POM must be modified...
... a POM is XML.
So Python, Pexpect (as SBT needs a PTY and is very cranky regarding exiting properly and running non interactive)… POM XML modification....
Maven - Plugin run.
But we need to do this on... Larger scale.
So, as I'm a lazy mofo, I wrapped the python thingy in bash, mostly because it was simpler than dealing with async / threading in python. Just spawning per project...
So we have Bash, Python, Java, SBT / Maven, hand in hand....
... Is it normal to feel sorry for the build server?1 -
Like age 8?
As a kid I really liked flash games and animations and wanted to get into it. I couldn't do flash, it looked too complicated but I found a little software by the name od KoolMoves that was just a simpler flash animation tool.
I did a bunch of shitty stick figure animations in it (hello to everyone from stick figure death theatre) but eventually I realized that I can make it do things (interactive menus, choose your story kinda things, move the player around, shoot...!)
I fell in love with AS1 and later AS2.0 and made bunch of demos and proof of concepts for systems and games. Most are lost to time and datarot by now)
Age 12
Eventually I found out I can make the entire Windows machine do what I want using first Batch files and later Visual Basic script (made a skype bot!) At this point I was also really into graphics and logo/web design
Age 15 - 20 or so
Then it was pretty natural to move to actual Visual Basic, then C# and finally I to C++. And I had the C family in my heart forever. I managed to get a but into 3D graphics too and got a part-time in archviz
Even by this point I never believed I could be a programmer as a profession. I thought of it just as something I love, but have no chance getting into compared to some of the names out there. I half expected to be either doing graphics (cause I found it simple at the time) or some shitty random job in an office.
20+
Finally I decided to go to uni and study software development, see if I can touch the future I always dreamed of! And... Well... I found out more than 80% of the people there never touch a language up until now and most people are just as retarded as I thought..
For a while I also worked as a game designer (still not being comfortable calling myself a programmer, so I chose a non programming position) but I ended up going into the code and improving and fixing game designer tools (it was unity and C#)
After seeing actual programmers at work in a company, and talking to a bunch of them I realized I already have everything I need to do this seriously and with that experience out of the way I breezed through uni, learned to love Linux and landed a proper job :)
I kinda hope my experience with long lasting self doubt will be useful for someone -
Could someone help me find a good NON BORING tutorial on Redux? By non boring I mean one that’s more active, interactive and not a boring snooze fest watching the instructor build the project while giving vague explanations of concepts. And I could always google but most courses aren’t free and i can’t shell out only to realize the unlocked content isn’t what I want2
-
Trying to write a program a la `man` in ncurses and just, is this hell?
I just want a floating header, a scrollable main body that reads from a file, and a command line footer, why is that so difficult? I finally got it to handle resizing terminals but now I need to try to compile it for windows, which does have unofficial ports of ncurses, but I have no idea how to use them.
Should I just restrict the windows version to a non-interactive command instead of a TUI like I want?2