AboutI became a dev because I'm sick of using buggy, unstable software, and the internet said I could make my own buggy, unstable software if I just tried, so here I am.
Joined devRant on 6/27/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
For those of you who are into retro games, I finally got Simcity 3000 to work on Ubuntu with Crossover. I did NOT use Gog.com's distribution, but an old iso plus patched exe's from back in the day.
For those who tried before, and know, this game is notoriously hard to get running.5
I just had a feeling passing by this station that the devRant community would have seen similar experiences in software.
So please: caption this photo.
(Yes, the "barrier" is bolted on the left side, so it can't move, and has a padlock on the right.)12
Pros and cons, if so?
I just learned there are a number of libraries for converting Ruby to JS, with the goal of having just Ruby across the entire stack.4
Tasked with fixing a bug. Discovered several more unreported in the particular mess of code responsible for the reported one. Pared the logic down from 50 or so 100-column lines to a dozen, using Real Simple Logic. Studied the logic intensely, tested extensively, got it shipped to production, was proud of myself.
Later someone reported a bug in that area of code (bug predated my changes). In the interim, another dev had added something in the code I rewrote, but it escaped my notice. The original author of the code I rewrote proceeded, as part of the latest bug fix, to roll back my updates, and proceeded to write more defensive code-mess to compensate.
I am pissed as this guy didnt bother asking me about how my new changes worked (I used a switch statement to replace compound nested ifs) and seems he just assumed my code was buggy.
Sure if I was him I'd be secretly miffed some new dev came in to my territory and made stuff better, but I get over that shit. people add on my code all the time and I don't lose sleep over it.
I am too fuckin angry to go to him and ask him why he rolled back my changes -- which took me a good 2 days of focus, and this bug was high visibility. I am already trying hard to put in a few Big Hits and make a small name for myself there.
I thought lean code that works better was The Ideal (TM) and all. 🤷🏽♀️
After all that work, I come out looking like a time-waster that writes bad code. No one had said that yet to me, but that's my worry.
Do I go to management and say wtf is this guy doing rolling back my code?
Or just stfu and Get Over It?14
I'm seeing companies giving web app developer applicants the type of tests that are more geared towards CS students, namely, here's some horribly mangled input, now write the algorithm to extract the name of the user's second child.
These kind of tests annoy me as the input isn't realistic (what team would purposely mangle user input like that?) and the short time frame to come up with a solution (15 min). You know if there's a bug, likely a dev gets to estimate the time needed to complete; likewise if the frontend is designed to filter all user input through a TextMangler class, something had to go horribly wrong in the design process...
I would like to see some more web dev-related coding tests, like:
- reduce the number of DB lookups in these api calls (give example)
- find the logic bugs in some code and pinpoint possible short circuits in the logic
- explain why returning 200 on POST when resource creation failed is bad practice
- explain the pros and cons of agile
- write an ajax call that updates displayed data without using .then or async.
I get that the convention is to do a coding test, and everyone wants to "crack the coding interview", but I feel like sometimes the interview requirements are out of touch with the work that's being done.
Other ideas? How would you test someone's web dev skills versus testing someone's software development skills? Or is there no other reliable way than to stress test coding "ability"?7
Thoughts on edX micromasters? I'd like to fill in some of my CS blanks since I came to web development from an arts background. There seem to be some good offerings for web devs and software engineers.
An actual MsC from a university seems too time consuming and expensive. I'm working full time and doing a master's via night classes seems like it'd take years.
I'm more curious about the quality of edX stuff, if anyone's tried them before. My goal is to get better at algorithms and learn as much as possible. I know of a few code exercise sites that have tons of problems that scale in difficulty. But I feel like I'm ready for add'l formal training.1
Someone wrote out html markup, where each element of the markup is a string in an array. Then this mess is joined using '' all wrapped by jquery $( ... ).
What the 💩.
var iDontGiveAFuck = $( [
'<span class="bullshit">Copied from stack overflow',
'<a href="/some/more/bullshit.lol">I\'m an overachiever</a>',
Except theirs is like 40 lines of this.
THIS IS WHAT TEMPLATES ARE FOR.
I'm outside channeling my aneurysm into an anime ball of energy I'll release when the time is right (never).6
Fucking tired of ghost bugs that can't be consistently reproduced, yet they appear anyway. Also tired of this lazy attitude of "We cant reproduce this so we're canceling it (the bug)."
"I'm going slightly mad
I'm going slightly mad
It finally happened
Fucking Ubuntu snaps. Devs are hijacking well-known applications and repackaging them as Snaps. They get their own special "snaps" folder which fucks up trying to uninstall them via "apt-get". Fuck me for not knowing the Thunderbird I installed was a snap version.3
If you are currently working for an awesome company, what questions did you ask at interview time to screen them to make sure they'd be a good fit for you?5
If software worked perfectly, never had any bugs, ran fast, and consistently, and was simple to extend, how many of us would still have jobs? 🤔2
Had to break apart some nice streamlined code, that I built a few weeks ago, to support a corner case where an object coming out of the db defies expectations -- you see, all other objects have a name and description field, and all get rendered the same way, thru the same tempates, but some special fucknuggets decided THEIR db objects are going to have the description in the NAME column! and fuck the description column, just leave that shit empty .. tee hee!
and not just that. all these special-case db objects need to be collected together on the side and rendered via templates so they end up in the same target file, not individually like every. other. object. So that automatically fucks with iterating thru things sensibly.
and there's no way to tell the objects are any different from each other without making 2 db lookups just to check properties on related db records.
I guess it's "fuck me" for writing performant, functional code that now looks like a manic Elon Musk went into the codebase at 2am with the keyboard equivalent of a reciprocating saw.
this is what happens when there are no ongoing code review processes and devs have no clue / visibility into what the fuck the other devs are writing until that shit is committed to the repo.2
Sometimes workplace conversations seem more like skillful contests of interrupting / talking over each other, than actual listening and waiting for others to finish talking.
Bonus points for interrupting with "So, ..."2
Alan Kay. Helped develop Smalltalk which was used to program the computer at PARC which inspired Steve Jobs to make a GUI for Apple systems. Also came up with the term OOP.
I admire Kay's thoughts and his idea that "the computer revolution hasnt happened yet." And his ideas about educating kids with computers, and inventing domain specific languages to keep codebases as small as possible.
Smalltalk programs can also be edited while they are running and the dev gets updates in realtime.
Tonight I resorted to using a hack to complete a requirement by a deadline.
How do I purify my soul after this?5
RIP my sanity.
Devs keep adding bugs along with their features.
I go into work each day not knowing what is going to be broken.3
What Linux-compatible GUI applications take advantage of extended file attributes? I'm looking to organize my files using extended attribs but web search is coming up with nada.
There are a few Mac apps that can do this.1
OOP seems in many cases really to be OOOP:
Obscured Object Oriented Programming: or, how to code in such a way as to make things as cryptic as possible for others to decipher. Examples:
- Methods not taking args because the desired arg is actually a property of the class, set with a "setter" by another class
- Protected/private status for vars and methods to block other devs from using the class how they wish, and only the way the creator wants
- Initializing a var as null, conditionally setting to the desired value, then littering the codebase with null checks and "isset" and wondering why there are so many bugs
- Have varying implementations of getters and setters so as to be totally unpredictable, where setters' implementations range from a basic "store x" to 700 lines of logic and db lookups, and the same for getters
- Break general implementations of things by creating references to commonly used objects, then doing operations on those references, making it impossible to text search all implementations of a method/class
If you aren't using at least these 5 antipatterns, you're not doing OOP right.10
Sup with all these people in the office arguing that writing documentation is pointless because it will just become out of date? I even heard one dev say it'd be so problematic that the company would need to hire someone full time.
That sounds like BS to me. Sounds like some people culturally think documentation isn't cool. That maybe they don't know how to do it.
So, I'd like to hear opinions on the topic. Mine is that documentation is useful and even if it gets out of date, it provides some value.
What's better: out of date documentation, or no docs at all?9
Last night I finally dug out the hardware I ordered to replace my iBook g3 clamshell hard disk with a compact flash drive. I got an ATA to CF adapter and an industrial 16GB CF card. The spinning HD of the laptop was insanely loud and I wanted more storage space and hoping to extend the short battery life a bit.
I had a torx kit from when I had swapped out the display for my 2009 imac, and was doubtful I needed them to service this thing from '99. I did quickly run into some torx screws but most were Philips.
Saw that the torx screws in the iBook were better quality case screws than the tiny Philips screws Apple used for my 2008 Macbook.
Most interesting thing about taking apart this laptop from '99 is it had no dust in it.
Boots and runs absolutely silently.
Went online on my other machine and found a huge archive of Mac Classic games.
Spent an hour and a half playing Sim Farm in 256 colors.10
Working on my first feature at work involves adding on to a massive legacy feature. I come from TDD & functional programming. This code is old school OOP where naming is unclear, functions are hundreds of lines long, and even though i have Xdebug to step thru the execution, every day that passes I dread standup because I feel like an incompetent fool more and more.
Asking for help really isnt working because the 1 person who wrote the code X years ago is a senior dev overloaded with his own new features to work on.
Feels like I'm drowning, even though I know that I will get it done, somehow.
~800 LOC all starting the indent from the edge at col 7.. had to select all, switch editor tab size to 1, shift them all over to start at col 6, and pick through the rest to make sure everything is indented evenly.
Looks like someone's IDE started the code indent at the same level as the end of a block comment.1
Joined a fantastic small software company. I love the team. Office is beautiful. Benefits are stellar. Commute is very short.
Codebase is legacy. 15+ years old. No unit tests. Files of 10-15k lines, no comments/useless comments. Inconstistent file locations/structure patterns. unclear/not useful variable names. Not using Git.
I need tools and strategies to thrive and do well. I know Martin Fowler has a book on refactoring legacy code. I'd also appreciate any mindsets you all have for thinking about working with legacy codebases.3
Somebody set up automatic versioning for builds and the builds keep failing because the versions keep getting bumped. and my sanity is gone for the night.
Shit needs to Just Work(tm) and at least give a clue as to how to fix it in the message.
Back to the black hole that is Jenkins documentation.
Need to run my Python app on a server with no internet access. Fine. Windows machine. Fine.
I'm developing in Cygwin in Windows. Damned nearest thing to Linux, development is a lot easier.
Turns out Cygwin is its own build environment. Fine, I switch to Power Shell, install Python, set up virtualenv, pip install everything.
Copy entire repo folder to target system. Copy Python installer. Install 3.6 fine. Create virtualenv in copied folder. Run python, pip modules are all installed. Fine. Test run works.
Run my shit. "No module named...." It wont see my submodule.
I wont even tell you what a fucking pain in the ass it is to try and convert Python scripts to exe files. This shit does not need to be so damn complicated.11
Inbox: 1282 of 3561 are unread
Deleted items: 41335
92% of emails I receive are irrelevant to my work. Most of them are automated system notifications as a result of being a member of six or so groups. I am guessing no one else is reading them either. Too bad about all that cloud storage getting used up with virtual confetti.1