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 - "tooling"
-
Its that time of the morning again where I get nothing done and moan about the past ... thats right its practiseSafeHex's most incompetent co-worker!!!
Today I'd like to tell you the story of "i". Interesting about "I" is that he was actually a colleague of yesterdays nominee "G" (and was present at the "java interface" video call, and agreed with G!): https://devrant.com/rants/1152317/...
"I" was the spearhead of a project to end all projects in that company. It was suppose to be a cross-platform thing but ended up only working for iOS. It was actually quite similar to this: https://jasonette.com/ (so similar i'm convinced G / I were part of this but I can't find their github ID's in it).
To briefly explain the above + what they built ... this is the worst piece of shit you can imagine ... and thats a pretty strong statement looking back at the rest of this series so far!
"I" thought this would solve all of our problems of having to build similar-ish apps for multiple customers by letting us re-use more code / UI across apps. His main solution, was every developers favourite part of writing code. I mean how often do you sit back and say:
"God damn I wish more of this development revolved around passing strings back and forth. Screw autocomplete, enums and typed classes / variables, I want more code / variables inside strings in this library!"
Yes thats right, the main part of this bullshittery was putting your entire app, into JSON, into a string and downloading it over http ... what could possibly go wrong!
Some of my issues were:
- Everything was a string, meaning we had no autocomplete. Every type and property had to be remembered and spelled perfectly.
- Everything was a string so we had no way to cmd + click / ctrl + click something to see somethings definition.
- Everything was a string so any business logic methods had to be remembered, all possible overloaded versions, no hints at param types no nothing.
- There was no specific tooling for any of this, it was literally open up xcode, create a json file and start writing strings.
- We couldn't use any of the native UI builders ... cause strings!
- We couldn't use any of the native UI layout constructs and we had to use these god awful custom layout managers, with a weird CSS feel to them.
What angered me a lot was their insistence that "You can download a new app over http and it will update instantly" ... except you can't because you can't download new business logic only UI. So its a new app, but must do 100% exactly the same thing as before.
His other achievements include:
- Deciding he didn't like apple's viewController and navigationBar classes and built his own, which was great when iOS 7 was released (changed the UI to allow drawing under the status bar) and we had no access to any of apples new code or methods, meaning everything had to be re-built from scratch.
- On my first week, my manager noticed he fucked up the login error handling on the app I was taking over. He noticed this as I was about to leave for the evening. I stayed so we could call him (he was in an earlier timezone). Rather than deal with his fucked up, he convinced the manager it would be a "great learning experience" for me to do it ... and stay in late ... while he goes home early.
- He once argued with me in front of the CEO, that his frankenstein cross-platform stuff was the right choice and that my way of using apples storyboards (and well thought out code) wasn't appropriate. So I challenged him to prove it, we got 2 clients who needed similar apps, we each did it our own way. He went 8 man weeks over, I came in 2 days under and his got slated in the app store for poor performance / issues. #result.
But rather than let it die he practically sucked off the CEO to let him improve the cross platform tooling instead.
... in that office you couldn't swing a cat without hitting a retard.
Having had to spend a lot more time working with him and more closely than most of the other nominees, at a minimum "I" is on the top of my list for needing a good punch in the face. Not for being an idiot (which he is), not for ruining so much (which he did), but for just being such an arrogant bastard about it all, despite constant failure.
Will "I" make it to most incompetent? Theres some pretty stiff competition so far
Tune in later for more practiceSafeHex's most incompetent co-worker!!!6 -
Welcome back to practiseSafeHex's new life as a manager.
Episode 2: Why automate when you can spend all day doing it by hand
This is a particularly special episode for me, as these problems are taking up so much of my time with non-sensical bullshit, that i'm delayed with everything else. Some badly require tooling or new products. Some are just unnecessary processes or annoyances that should not need to be handled by another human. So lets jump right in, in no particular order:
- Jira ... nuff said? not quite because somehow some blue moon, planets aligning, act of god style set of circumstances lined up to allow this team to somehow make Jira worse. On one hand we have a gigantic Jira project containing 7 separate sub teams, a million different labels / epics and 4.2 million possible assignees, all making sure the loading page takes as long as possible to open. But the new country we've added support for in the app gets a separate project. So we have product, backend, mobile, design, management etc on one, and mobile-country2 on another. This delightfully means a lot of duplication and copy pasting from one to the other, for literally no reason what so ever.
- Everything on Jira is found through a label. Every time something happens, a new one is created. So I need to check for "iOS", "Android", "iOS-country2", "Android-country2", "mobile-<feature>", "mobile-<feature>-issues", "mobile-<feature>-prod-issues", "mobile-<feature>-existing-issues" and "<project>-July31" ... why July31? Because some fucking moron decided to do a round of testing, and tag all the issues with the current date (despite the fact Jira does that anyway), which somehow still gets used from time to time because nobody pays attention to what they are doing. This means creating and modifying filters on a daily basis ... after spending time trying to figure out what its not in the first one.
- One of my favourite morning rituals I like to call "Jira dumpster diving". This involves me removing all the filters and reading all the tickets. Why would I do such a thing? oh remember the 9000 labels I mentioned earlier? right well its very likely that they actually won't use any of them ... or the wrong ones ... or assign to the wrong person, so I have to go find them and fix them. If I don't, i'll get yelled at, because clearly it's my fault.
- Moving on from Jira. As some of you might have seen in your companies, if you use things like TestFlight, HockeyApp, AppCenter, BuddyBuild etc. that when you release a new app version for testing, each version comes with an automated change-log, listing ticket numbers addressed ...... yeah we don't do that. No we use this shitty service, which is effectively an FTP server and a webpage, that only allows you to host the new versions. Sending out those emails is all manual ... distribution groups?? ... whats that?
- Moving back to Jira. Can't even automate the changelog with a script, because I can't even make sense of the tickets, in order to translate that to a script.
- Moving on from Jira. Me and one of the remote testers play this great game I like to call "tag team ticketing". It's so much fun. Right heres how to play, you'll need a QA and a PM.
*QA creates a ticket, and puts nothing of any use inside it, and assigns to the PM.
*PM fires it back asking for clarification.
*QA adds in what he feels is clarification (hes wrong) and assigns it back to the PM.
*PM sends detailed instructions, with examples as to what is needed and assigns it back.
*QA adds 1 of the 3 things required and assigns it back.
*PM assigns it back saying the one thing added is from the wrong day, and reminds him about the other 2 items.
*QA adds some random piece of unrelated info to the ticket instead, forgetting about the 3 things and assigns it back.
and you just continue doing this for the whole dev / release cycle hahaha. Oh you guys have no idea how much fun it is, seriously give it a go, you'll thank me later ... or kill yourselves, each to their own.
- Moving back to Jira. I decided to take an action of creating a new project for my team (the mobile team) and set it up the way we want and just ignore everything going on around us. Use proper automation, and a kanban board. Maybe only give product a slack bot interface that won't allow them to create a ticket without what we need etc. Spent 25 minutes looking for the "create new project" button before finding the link which says I need to open a ticket with support and wait ... 5 ... fucking ... long ... painful ... unnecessary ... business days.
... Heres hoping my head continues to not have a bullet hole in it by then.
Id love to talk more, but those filters ain't gonna fix themselves. So we'll have to leave it here for today. Tune in again for another episode soon.
And remember to always practiseSafeHex13 -
"Hey, Root, someone screwed up and now all of our prod servers are running this useless query constantly. I know I already changed your priorities six times in the past three weeks, but: Go fix it! This is higher priority! We already took some guesses at how and supplied the necessary code changes in the ticket, so this shouldn't take you long. Remember, HIGH PRIORITY!"
1. I have no idea how to reproduce it.
2. They have no idea how to reproduce it.
3. The server log doesn't include queries.
4. The application log doesn't include queries.
5. The tooling intercepts and strips out some log entries the legendary devs considered useless. (Tangent: It also now requires a tool to read the logs because log entries are now long json blobs instead of plain text.)
6. The codebase uses different loggers like everywhere, uses a custom logger by default, and often overwrites that custom logger with the default logger some levels in. gg
7. The fixes shown in the ticket are pretty lame. (I've fixed these already, and added one they missed.)
8. I'm sick and tired and burned out and just can't bring myself to care. I'm only doing this so i don't get fired.
9. Why not have the person who screwed this up fix it? Did they quit? I mean, I wouldn't blame them.
Why must everything this company does be so infuriatingly complicated?11 -
Started working at a large company with promises of a great framework, stable environment and bleeding edge tools, decentralised working environment, only to find visual studio 2010, no git, no project management tooling whatsoever, all documentation stored on svn, no slack or other modern communications platform, still using uploaded word documents as documentation for projects and meetings, so yeah I can truly say :/11
-
I hate all of these rants about JavaScript being a terrible language.
In reality, it's one of the easiest languages to work with. This makes it easier for new programmers to write messy code, but is it the language's fault?
People get mad about the things that happen when you multiply "undefined" and a string...what do you expect?
You also have the freedom to choose from a variety of tools the community has created to solve existing problems. People just don't realize that they don't *have* to learn everything, you just learn as you need them.
Don't blame JavaScript for you bad programming, terrible type conversion needs, and great tooling.23 -
Absolutely :|
Build systems
Testing tools
Performance tools
Debugging tools
Automation tools
.
.
.
:|5 -
I've been working on updates to a react app for a few hours today. Everything's been peachy except this shit job, this inane change demand list, my headache, my lack of quiet places to work, ... okay, so basically everything is terrible. But I've done lots of builds, and made lots of progress.
Then suddenly: my build script failed. 30 seconds after a successful build, with no (tooling) changes in between.
Reason? Incorrect version of Sass.
How? Fucking npm.
Isn't package-lock.json supposed to prevent this crap?
FAKDLKAUSUK.13 -
Don’t you love when you put a lot of blood, sweat, and tears into a company and then you get fired because your wife got a flat tire and you had to go help fix it?
When I got to this company they were not using version control, had no tooling in place, and most of our day was spent merging projects by hand and going through a long process to deploy our applications (this company is a primarily Salesforce company).
I got everyone using git and built a node client to transpile JavaScript and SASS, lint code, package everything together, and deploy it to Salesforce. Productivity jumped and the amount of time all of us spent merging code by hand dropped significantly.
A few weeks after finishing this CLI I was moved to another team and subsequently let go because I had to leave early to help my wife fix a flat tire. Now I am freelancing and actually doing pretty damn well for myself. Bonus: I no longer have to work with the disaster that is Salesforce!2 -
Some 'wk306' highlights from different people:
Walk around the office in his underwear, because he forgot he left his trousers in the bathroom
Run a red light outside the office due to not wearing his required glasses. When questioned by co-workers, replied "I don't follow those facist rules"
Asking if we work less will we get paid more, because the project will take longer to do (while in a startup with no funding trying to secure some)
Tell a senior dev to stop testing in his spare time, as we won't be able to release on time if he keeps finding critical security bugs
Telling me "your timezone is not my concern", when asking for help with new tooling so we don't have to be online at the same time
Blaming my team for requesting too much help, leading to his team missing deadlines, in a meeting with very senior managers. When the reason we were requesting help was the handover doc we were given was filled with lies about features being finished and "ready to ship" and lacking any unit tests
Being accused of bullying and harassment to the CEO, because someone asked "did you follow up with X about the partnership they emailed us about". The person who was responsible, forgot 4 times, and saw it as an "attack" to mention it in team meetings
Telling an entire office/building mid November they've secured funding for at least the next year, then announcing in January after the Christmas break that its cheaper to move to India, so they are closing the office in 30 days2 -
"Older versions are more stable"
The whole concept of LTS in development pisses me off.
Delayed upgrading, whether it's the language itself, dependencies or tooling, does just one thing: It makes future upgrading way more difficult, often to the point where the company eventually runs into this maintainability wall, and gets stuck in old, unsupported versions.
"But... stability!" — The tiny chance that the newer version has such serious stability regressions that it negatively impacts your own product doesn't weigh up against the clusterfuck you fall into if you push the task too far into the future.
You can relatively easily assess a new major language version using benchmarks and unit tests. Predicting the repercussions of staying on PHP 5.4 or Python 2.7 for another year, predicting the impact of upgrading the codebase later, that is almost impossible.
I'm not saying you should live on the bleeding edge in production, but as soon as a new stable version of a core technology is released, just fucking drop everything you're doing and port those deprecated methods!7 -
Upon a certain angry Germans recommendation I started getting into flutter.
Best fucking decission ever. Shit is simple and makes sense.
I ain't tagging him cuz he don't like being tagged.
But thanks man!! You know who you are!
The code makes sense, the widget tree hierarchy makes sense, knowing the native counterpart helps whenever the flutter portion ain't doing it(has not happened yet) and dart is really a good language.
The tooling is fucking genius, funny enough the emulators open quicker with vs code than android studio or xcode(fuck those two btw, 2 fucking years of hate towards them ain't going away) and building designs programatically make waaay more sense.
Flutter gave me back my hope for mobile development. This is google knowing that they fucked up Android development and fixing it and schooling IOS development for taking a good set of languages(obj c and swift) nd fucking them up with their shit way of development.
I am in love.9 -
Structure: decades of programming in too many languages to enumerate. I lean functional, but only when the language doesn't fight it. No matter what I'm doing, my code is immutable in practice, if not paradigm.
Syntax: No one thing in particular. I code differently depending on the language.
When I start learning a language, I'll find the standard style checker and create a project where I write an example of every single rule.
The end result is generally a quick intro to the language and a bonus understanding of the hot sports opinion in said language. I call this an ocean boiler.
I lean heavily into autoformatting because I've worked on too many projects to care, and I have a general expectation that something which is important enough to make a code standard is important enough to be enforced in tooling. I'd rather spend my time solving problems that thinking about stylistics.5 -
The more I use Go, the more i start to like it. I didn’t realize how nice being able to generate binaries for every OS that matters was, until I had that power. It beats the hell out of trying to distribute a Python app for sure.
Sure, it has its warts.
It’s overly bureaucratic in the same way Java is.
I hate that you can’t import something without using it (most people I’d wager preemptively import libraries they know they’re gonna need even if the code isn’t written yet)
I really wish there was a way to just say “See this JSON blob? All those keys and values are strings, trust me, you don’t need me to tell you the type of each one individually.”
Generics would be nice.
I’d kill for exceptions - any decently sized go program is going to have very many if err checks where most could be condensed down to a single try/catch in most other langs.
I wish the tooling was better. Dependency management was a solved problem when Go was released and yet they chose to ship without it. There’s still no standard. Many hours of time have been wasted dinking with this.
But ya know what? Even with those warts, it’s still easier to write than Java. It’s still write once run anywhere, it’s blazing fast, and doesn’t require your end user to install an entire freakin runtime.
<3 Go2 -
I've been using microsoft dev stack for as long as i remember. Since I picked up C#/.NET in 2002 I haven't looked back. I got spoiled by things like type safety, generics, LINQ and its functional twist on C#, await/async, and Visual Studio, the best IDE one could ask for.
Over the past few years though, I've seen the rise of many competing open source stacks that get many things right, e.g. command line tooling, package management, CI, CD, containerization, and Linux friendliness. In general many of those frameworks are more Mac friendly than Windows. Microsoft started sobering up to this fact and started open sourcing its frameworks and tools, and generally being more Mac/Linux friendly, but I think that, first, it's a bit too late, and second, it's not mature yet; not even comparable to what you get on VS + Windows.
More recently I switched jobs and I'm mainly using Mac, Python, and some Java. I've also used node in a couple of small projects. My feeling: even though I may be resisting change, I genuinely feel that C# is a better designed language than Java, and I feel that static type languages are far superior to dynamic ones, especially on large projects with large number of developers. I get that dynamic languages gives you a productivity boost, and they make you feel liberated, but most of the time I feel that this productivity is lost when you have to compensate for type safety with more unit tests that would not be necessary in a static type language, also you tend to get subtle bugs that are only manifested at runtime.
So I'm really torn: enjoy world class development platform and language, but sacrifice large ecosystem of open source tools and practices that get the devops culture; or be content with less polished frameworks/languages but much larger community that gets how apps should be built, deployed, monitored, etc.
Damn you Microsoft for coming late to the open source party.11 -
I'm so fucking sick of the lack of great modern open source DB tooling.
MySQL Workbench can go suck a big fat herpes-ridden cock, it's horrible.
Dbeaver is a clunky 90's tool, which charges two Netflixes (yes, that is a valid $/month monetary unit) just to connect to a NoSQL DB.
Datagrip is nice, but has the same outrageously expensive pricing. I paid for it, and couldn't use it for my local docker DB during my holiday because it couldn't connect to the license server. Fuck you, Jetbrains. Your software is nice, but your DRM makes me hate you.
And then ERD software... It's either some hard-to-use afterthought piece of crap bundled with the DB IDE, some generic diagramming tool which makes DB-specific work needlessly unergonomic, or some vendor-locked online tool.
Fuck this shit, I'm making my own DB admin tool. With blackjack. And hookers. 😡12 -
Godammit Homebrew.
It's bad enough having to develop C on a Mac, now Homebrew is refusing to let me install a package that needs root privilege. Support simply says "no package needs root privileges" and "run as an admin". BITCH, THIS PACKAGE NEEDS IT.
So now I'm downloading homebrew source just to add a "--fuckingdoit" flag that skips their shitty "no sudo" rule.
Tooling should save me time, not WASTE it.1 -
I propose that the study of Rust and therefore the application of said programming language and all of the technology that compromises it should be made because the language is actually really fucking good. Reading and studying how it manages to manipulate and otherwise use memory without a garbage collector is something to be admired, illuminating in its own accord.
BUT going for it because it is a "beTter C++" should not constitute a basis for it's study.
Let me expand through anecdotal evidence, which is really not to be taken seriously, but at the same time what I am using for my reasoning behind this, please feel free to correct me if I am wrong, for I am a software engineer yes, I do have academic training through a B.S in Computer Science yes, BUT my professional life has been solely dedicated to web development, which admittedly I do not go on about technical details of it with you all because: I am not allowed to(1) and (2)it is better for me to bitch and shit over other petty development related details.
Anecdotal and otherwise non statistically supported evidence: I have seen many motherfuckers doing shit in both C and C++ that ADMIT not covering their mistakes through the use of a debugger. Mostly because (A) using a debugger and proper IDE is for pendejos and debugging is for putos GDB is too hard and the VS IDE is waaaaaa "I onlLy NeeD Vim" and (B) "If an error would have registered then it would not have compiled no?", thus giving me the idea that the most common occurrences of issues through the use of the C father/son languages come from user error, non formal training in the language and a nice cusp of "fuck it it runs" while leaving all sorts of issues that come from manipulating the realm of the Gods "memory".
EVERY manual, book, coming all the way back to the K&C book talks about memory and the way in which developers of these 2 languages are able to manipulate and work on it. EVERY new standard of the ISO implementation of these languages deals, through community effort or standard documentation about the new items excised through features concerning MODERN (meaning, no, the shit you learned 20 years ago won't fucking cut it) will not cut it.
THUS if your ass is not constantly checking what the scalpel of electrical/circuitry/computational representation of algorithms CONDONES in what you are doing then YOU are the fucking problem.
Rust is thus no different from the original ideas of the developers behind Go when stating that their developers are not efficient enough to deal with X language, Rust protects you, because it knows that you are a fucking moron, so the compiler, advanced, and well made as it is, will give you warnings of your own idiotic tendencies, which would not have been required have you not been.....well....a fucking idiot.
Rust is a good language, but I feel one that came out from the necessity of people writing system level software as a bunch of fucking morons.
This speaks a lot more of our academic endeavors and current documentation than anything else. But to me DEALING with the idea of adapting Rust as a better C++ should come from a different point of view.
Do I agree with Linus's point of view of C++? fuck no, I do not, he is a kernel engineer, a damn good one at that regardless of what Dr. Tanenbaum believes(ed) but not everyone writes kernels, and sometimes that everyone requires OOP and additions to the language that they use. Else I would be a fucking moron for dabbling in the dictionary of languages that I use professionally.
BUT in terms of C++ being unsafe and unsecured and a horrible alternative to Rust I personaly do not believe so. I see it as a powerful white canvas, in which you are able to paint software to the best of your ability WHICH then requires thorough scrutiny from the entire team. NOT a quick replacement for something that protects your from your own stupidity BY impending the use of what are otherwise unknown "safe" features.
To be clear: I am not diminishing Rust as the powerhouse of a language that it is, myself I am quite invested in the language. But instead do not feel the reason/need before articles claiming it as the C++ killer.
I am currently heavily invested in C++ since I am trying a lot of different things for a lot of projects, and have been able to discern multiple pain points and unsafe features. Mainly the reason for this is documentation (your mother knows C++) and tooling, ide support, debugging operations, plethora of resources come from it and I have been able to push out to my secret project a lot of good dealings. WHICH I will eventually replicate with Rust to see the main differences.
Online articles stating that one will delimit or otherwise kill the other is well....wrong to me. And not the proper approach.
Anyways, I like big tits and small waists.14 -
Rant!
Been working on 'MVP' features of a new product for the past 14 months. Customer has no f**king clue on how to design for performance. An uncomfortable amount of faith was placed on the ORM (ORMs are not bad as long as you know what you are doing) and the magic that the current framework provides. (Again, magic is good so long as you understand what happens behind the smoke and mirrors - but f**k all that... coz hey, productivity, right?). Customer was so focussed on features that no one ever thought of giving any attention to subtler things like 'hey, my transaction is doing a gazillion joins across trizillion tables while making a million calls to the db - maybe I should put more f**king thought into my design.' We foresaw performance and concurrency issues and raised them way ahead of the release. How did the customer respond? By hiring a performance tester. Fair enough - but what did that translate into? Nothing. Nada. Zilch. Hiring a perf tester doesn't automagically fix issues. The perf tester did not have a stable environment, a stable build or anything that is required to do a test with meaningful results. As the release date approached, the customer launched a pilot and things started failing spectacularly with the system not able to support more than 15 concurrent users. WTF! (My 'I told you so' moment) Emails started flying in all directions and the hunt for the scapegoat was on (I'm a sucker for CYA so I was covered). People started pointing in all directions but no one bothered to take a step back and understand what was causing the issues. Numero uno reason for transaction failure was deadlocks. We were using a proprietary DB with kickass tooling. No one bothered to use the tooling to understand what was the resource in contention let alone how to fix the contention. Absolute panic - its like they just froze. Debugging shit and doing the same thing again and again just so that management knew they were upto something. Most of the indexes had a fragmentation of 99.8% - I shit you not. Anywho, we now have a 'war room' where the perf tester needs to script the entire project by tonight and come up with some numbers that will amount to nothing while we stay up and keep profiling the shit out of the application under load.
Lessons learnt - When you foresee a problem make a LOT of noise to get people to act upon it and not wait till it comes back and bites you in the ass. Better yet, try not to get into a team where people can't understand the implications of shitty design choices. War room my ass!3 -
<rant>
The current state of WordPress developers:
😠 everything that came before me was completely broken
😴 everything that comes after me is unnecessary (i.e. npm, Node, React)
😱 everything I work with now is perfectly fine don't effing touch it (i.e. Gutenberg, Build tooling)
</rant>6 -
love-hate relationship with Python semi-rant
The year is 2020.
I have already grown accustomed to the idea that in order to do ML without worrying too much about having to completely jump through hoops with the tech stack I have chosen that I would have to settle with Python, which I like.....for small scripts that don't do much other than piping data around or doing simple admin tasks, that is generally our use of Python at work.
For anything bigger I would prefer something else. Not because I find anything inherently horrible in Python, I find it to be a nice language overall, that has made it possible for many to find a passion inside of the world of development and possibly an interesting in overall engineering and computer science principles. Much respect Python, good game Guido VR, what you did changed the world.
But it is that damn whitespace that gets me, the need to use it as a way to properly write blocks, I just can't make myself like syntactical whitespace no matter what I do. I can do without static typing, shit I did it for the longest time with JS way tf before Node and Typescript were a thing, and I have done it before PHP's attempt at having type hints, which still leave much to be desired. Ruby(imho) the most elegant language around doesn't have it and that is fine really, it does not bother me as much, if mypy gets powerful and widely adopted enough it will then be a non-issue.
But another thing that the 4 languages i mentioned before have is non-existent syntactical whitespace......I just can't stand it.
So, why am I saying all of this nonsense? Today I wanted to recreate a conda environment and landed on the use of YAML............which has syntactic whitespace and I lost my shit.
I seldom bitch about languages and technologies, shit, I used VBScript before, not only did I get paid handsomely for it, but I fucking enjoyed it(probably cuz I am a masochist).
But two things I cannot abide: VBA and syntactic whitespace.
Once I get enough knowledge for it I will push for the same level of tooling in Python to be ported to Scala.
Thank you for coming to my whiny post about something as small as bitching about syntactic whitespace.8 -
Customer: I want the test-results. Format doesn't matter.
*sending xml report-files and screenshot of pipeline tooling report*
Customer: the files are hard to read. can you make html?
*creating html output and sending a screenshot of browser*
Customer: Thx for the screenshot. Ill take it.
🤦♂️2 -
More like a sub company/department inside a company: Android.
I still use it as my main driver, but every time I try to get back into development with it(did it professionally for 2 years nearing on 3 and was a lead Android dev, mind you not necessarily by merit....) I end up hating everything about it.
The tooling is meh, the API is hideous and even with the addition of Kotlin, which I do find a nicer language over Java I still dislike it. The ammount of shit needed to make something as simple as store data, manage fragments, integrate with the NDK, make JSON API calls or even shake motions is just ludicrous and counter intuitive. I can see why people would hate Java based on Android, a language that I generally love and defend.
I firmly believe that people extend frameworks or tooling for 2 reasons only:
1 the stack is so awesome that you just want to create packages and libraries to extend the functionality of a powerful environment, like gems for Ruby, python packages, Node packages, php composer, nuget etc
2 the stack is so fucking hideous that people need to fix shit: the entire android square utility framework, butterknife, flutter, react native, codenameone, etc etc
The case with Android is the second. I have not met a professional Android developer that completely likes everything about Android, but will seldom find people that HATE other frameworks or environments.
Android it is for me. Still my daily driver and I love every Android phone I have ever owned. It just makes me feel lots of more compassion for fellow Android devs.4 -
A little late but whatever.
About half a year ago, I started working on setting up self hosted (slippy) maps. For one, because of privacy reasons, for two, because it'd be in my own control and I could, with enough knowledge, be entirely in control of how this would work.
While the process has been going on for hours every day for about half a year (with regular exceptions), I'll briefly lay out what I've accomplished.
I started with the OpenMapTiles project and tried to implement it myself. This went well but there were two major pitfalls:
1. It worked postgres database based. This is fine but when you want to have the entire world.... the queries took insanely long (minutes, at lower zoom levels) and quite intimate postgres/tooling knowledge was required, which I don't have.
2. Due to the long queries and such, the performance was so bad that the maps could take minutes to render and when you'd want that in production... yeah, no.
After quite some time I finally let that idea sail and started looking into the MBTiles solution; generating sqlite databases of geojson features. Very fast data serving but the rendering can take quite some time.
After some more months, I finally got the hang of it to the point that I automated 50-70 percent of the entire process. The one problem? It takes a shitload of resources and time to generate a worldwide mbtiles database.
After infinite numbers of trial and error, I figured out that one can devide a 'render' (mbtiles aka sqlite database) into multiple layers (one for building data, one for water, one for roads and so on), so I started doing renders that way.
Result? Styling became way more easy and logical and one could pick specific data to display; only want to display the roads? Its way more simple this way. (Not impossible otherwise but figuring out how that works... Good luck).
Started rendering all the countries, continents and such this way and while this seemed like a great idea; the entire world is at 3-4 percent after about a month. And while 40-70 percent generates 10 times as fast, that's still way too slow.
Then, I figured out that you can fetch data per individual layer/source. Thus, I could render every layer separately which is way faster.
Tried that with a few very tiny datasets and bam, it works. (And still very fast).
So, now, I'm generating all layers per continent. I want to do it world based but figured out that that's just not manageable with my resources/budget.
Next to that, I'm working on an API which will have exactly the features I want/need!13 -
Angular is still a pile of steaming donkey shit in 2023 and whoever thinks the opposite is either a damn js hipster (you know, those types that put js in everything they do and that run like a fly on a lot of turds form one js framework to the next saying "hey you tried this cool framework, this will solve everything" everytime), or you don't understand anything about software developement.
I am a 14 year developer so don't even try to tell me you don't understand this so you complain.
I build every fucking thing imaginable. from firmware interfaces for high level languaces from C++, to RFID low level reading code, to full blown business level web apps (yes, unluckily even with js, and yes, even with Angular up to Angular15, Vue, React etc etc), barcode scanning and windows ce embedded systems, every flavour of sql and documental db, vectorial db code, tech assistance and help desk on every OS, every kind of .NET/C# flavour (Xamarin, CE, WPF, Net framework, net core, .NET 5-8 etc etc) and many more
Everytime, since I've put my hands on angularJs, up from angular 2, angular 8, and now angular 15 (the only 3 version I've touched) I'm always baffled on how bad and stupid that dumpster fire shit excuse of a framework is.
They added observables everywhere to look cool and it's not necessary.
They care about making it look "hey we use observables, we are coo, up to date and reactive!!11!!1!" and they can't even fix their shit with the change detection mechanism, a notorious shitty patchwork of bugs since earlier angular version.
They literally built a whole ecosystem of shitty hacks around it to make it work and it's 100x times complex than anything else comparable around. except maybe for vanilla js (fucking js).
I don't event want todig in in the shit pool that is their whole ecosystem of tooling (webpack, npm, ng-something, angular.json, package.json), they are just too ridiculous to even be mentioned.
Countless time I dwelled the humongous mazes of those unstable, unrealiable shitty files/tools that give more troubles than those that solve.
I am here again, building the nth business critical web portal in angular 16 (latest sack of purtrid shit they put out) and like Pink Floyd says "What we found, same old fears".
Nothing changed, it's the same unintelligible product of the mind of a total dumbass.
Fuck off js, I will not find peace until Brendan Eich dies of some agonizing illness or by my hands
I don't write many rants but this, I've been keeping it inside my chest for too long.
I fucking hate js and I want to open the head of js creator like the doom marine on berserk19 -
If hiring managers really want to hire based on skill, what they should be doing is testing for one thing:
The ability to take a specification, written in general language, notice deficiency, communicate with the 'client' (manager) to hash out what needs done, and the (explicit) ability to read documentation on libraries or tooling outside the dev's core skillset.
If a dev can read a spec, talk to a client to work out whats lacking, and then identify what they need to know and where to find it, thats 90% of the skills they need from what I can see.
tl;dr version of it, is they should be explicit about the requirements for reading/implementing specs and finding the correct documentation.
Something along the lines of
"can you form your letters? Are you able to follow instructions on the back of a cake box? Then there may be a position waiting for you!"8 -
My current job at the release & deploy mgmt team:
Basically this is the "theoretically sound flow":
* devs shit code and build stuff => if all tests in pipeline are green, it's eligible for promotion
* devs fill in desired version number build inside an excel sheet, we take this version number and deploy said version into a higher environment
* we deploy all the thingies and we just do ONE spec run for the entire environment
* we validate, and then go home
In the real world however:
* devs build shit and the tests are failed/unstable ===> disable test in the pipeline
* devs write down a version umber but since they disabled the tests they realize it's not working because they forgot thing XYZ, and want us to deploy another version of said application after code-freeze deadline
* deployments fail because said developers don't know jack shit about flyway database migrations, they always fail, we have to point them out where they'd go wrong, we even gave them the tooling to use to check such schema's, but they never use it
* a deploy fails, we send feedback, they request a NEW version, with the same bug still in it, because working with git is waaaaay too progressive
* We enable all the tests again (we basically regenerate all the pipeline jobs) And it turns out some devs have manually modified the pipelines, causing the build/deploy process to fail. We urged Mgmt to seal off the jenkins for devs since we're dealing with this fucking nonsense the whole time, but noooooo , devs are "smart persons that are supposed to have sense of responsibility"...yeah FUCK THAT
* Even after new versions received after deadline, the application still ain't green... What happens is basically doing it all over again the next day...
This is basically what happens when you:=
* have nos tandards and rules inr egards to conventions
* have very poor solution-ed work flow processes that have "grown organically"
* have management that is way too permissive in allowing breaking stuff and pleasing other "team leader" asscracks...
* have a very bad user/rights mgmt on LDAP side (which unfortunately we cannot do anything about it, because that is in the ownership of some dinosaur fossil that strangely enough is alive and walks around in here... If you ask/propose solutions that person goes into sulking mode. He (correctly) fears his only reason for existence (LDAP) will be gone if someone dares to touch it...
This is a government agency mind you!
More and more thinking daily that i really don't want to go to office and make a ton of money.
So the only motivation right now is..the money, which i find abhorrent.
And also more stuff, but now that i am writing this down makes me really really sad. I don't want to feel sad, so i stop being sad and feel awesome instead.1 -
So, for the past...what, week or so? I've been working on a side project with @gianlu. It's the PretendYoureXyzzy fork - our attempt to rejuvenate an old shitty piece of software.
I had started working on a fork alone, and then he asked to team up so I was like "Sure, I got nothing better to do." So, he's working on the backend (and hooking JS up to the backend) and I'm developing the frontend.
I don't know why I thought tech would stand still. Google says they're putting MDL on life support and replacing it with a much more complex successor, MDC. It's not hard to use, but what really bugs me is the lack of notice on getmdl.io. If you are switching to another project as your main focus, why the fuck wouldn't you advertise in the most places possible?
Granted, I don't do web design and/or development on the daily. Yes, I can do it, but I'm not always as up-to-date with web technologies as I'd like to be.
However, the screencap captured is the third time I've taken the knife to the UI. MDC is great tooling, at least to me. That dialog? Not something MDL would've had out the box on the first day. You'd have to work for that.
I don't have an issue with MDC, I have an issue with the lack of PR around it.6 -
My productivity has gradually increased untill now by using:
Linux-server+VSCode (+Git+Terminal)+tmux+tmux-resurrect
Any further suggestion on dev tooling setup would be appreciated.
I primarily work on DevOps projects - bash scripts, linux server apps, containers, kubernetes,11 -
!Rant
The Eve V is a Community Developed Windows Tablet which will be released in Ocotober this year.
The best specs you can get is i7 6th Gen, 16 GB Ram and 500 GB SSD for around 1400$.
He wants 32 GB RAM in such a slim and small Tablet. Also wants a 7th Gen Intel CPU and 1 TB SSD in it. He's ready to pay 1000 $ more for his special edition.
The Eve V is already finished with tooling and they are wating for the screens to arrive. They already have all the other parts.
Dude you're crazy and that specs just for VM's? What are you running? 10x WinShitBox?
He's insulting everyone on the forum with a different opinion and says, retooling will be such easy.
That guy is a real douchebag and doesn't know shit. If you would build in different parts like this, you would need to remodel the whole tablet. You can stick your 1000$ in your ass, retooling would cost more than 10'000$
If it's so easy you shithead, then do it yourself and dont say it's possible and say to other people they should do! 😂😂2 -
More companies need to clamp down on hard-coding secrets. It’s not difficult to store them somewhere else, and there’s swathes of free tooling to stop you doing it in the first place.
Heck, set up a pre-commit hook. Link it to a shock collar.4 -
So I picked up learning perl.
Mostly using it for tooling and admin.
Kinda looks insane, but in a fun way.
Have I made a terrible mistake?7 -
Did your motivation ever suffered for company enforced tooling/stack?
I'm striving to be as adaptable as possible to not bitch if I have to use Angular insted of React or Java instead of Go but the stack which I was forced to use for the last two years is killing the joy I find in programming.
I'm talking about Spring WebFlux a stack which in theory is very promising (IO performances of NodeJS but in Java) but in practice is a pain to use: it makes polymorphism very hard forcing to rewrite tons of code, it significantly reduces your library choice, even after studying a damn book about it debugging remains a huge headache, unit testing often requires hacks and workarounds to be done...
Programming with it always feels like trying to fit a square peg in a round hole and I'm catching myself in procrastinating more and more, initially I feared I was burning out or losing my passion for the field but I noticed which the rare times I get to use a more canonical stack like .NET my motivation instantly returns but sadly I can use it only for few hours and then I return to WebFlux and my passion flees again.
I'm considering to look for another job but sadly lately I neglected my GitHub so I might have hard times in finding it.2 -
I just finished designing an entire asset management pipeline and christ on a fucking pogo stick, if it isn't convoluted.
Theres a lot of game engines out there, but all of them do it a little different. They all tackle a slightly different problem, without even realizing it.
1. asset management
2. asset change management
3. behavior change management
4. data management
5. combinatorial design management.
6. Combinatorial Behavior management
7. Feature completion
ASSET MANAGEMENT is exactly what it says on the tin.
ASSET CHANGE management can be thought of handling the import, export, formatting, platform specific packing, and versioning (including forking) of an asset.
BEHAVIORAL CHANGE management is a subset of asset management, because code is a subset of assets (depending on how you define 'assets'). The oldest known example of this is commenting and uncommenting code.
Or worse, printf debugging.
This can be file versioning, basic undo services, graph management of forks and mergers, toggles for features or modules, etc.
DATA management is about anything that doesn't fall into the other categories, everything from mission text to npc dialogues, quests, location names, item stats, the works. Anything you'd be tempted to put in a database, falls under this category. Haven't yet seen many engines offer this as an explicit built in tool as of yet, because the other problems are non-trivial as is, so this is a bit of low hanging fruit that gets handled by external tools, or loaded from formats as simple as json.
COMBINATORIAL DESIGN management is the idea of prefabbing, blueprints of broader object design using nested prototypes of existing game objects, to create more complex, reusable set pieces. Unity did this well. GM does this in part.
COMBINATORIAL BEHAVIOR management is entity-component systems, plus tooling to make it easy to add, remove, and configure components and their values on entity blueprints, also not uncommon. Both stencyl and unity do this. GM has a precursor to this in the form of configurable fields, but these fields are not based on component scripts attached to objects.
FEATURE COMPLETION is that set of gameplay mechanics or styles of design that an engine naturally makes easier to include or build in a game.
I don't think I'm aiming for all that, but I think at minimum a good engine has to do asset management, behavioral change management, prefabs, and entity-component systems with management tools for that. And ideally, asset change management.8 -
I promised myself not to fuck too much with new JS frontends. But Sveltes premise seems interesting enough to check it out and the concept of reactive blocks of code in JS sure is interesting.
This language keeps evolving as well as its tooling. I think shit is pretty amazing.14 -
Why are people behaving like communist dramaqueens on every OSS repo?
Why do OSS libraries and frameworks have to be political cunts and insert *the current thing* into every god damn console message of their tooling and on their websites?
Stop it. Get some help.
I want to code, not be a aborted political SJW fetus. Let me fucking code in peace.5 -
So, I've had a personal project going for a couple of years now. It's one of those "I think this could be the billion-dollar idea" things. But I suffer from the typical "it's not PERFECT, so let's start again!" mentality, and the "hmm, I'm not sure I like that technology choice, so let's start again!" mentality.
Or, at least, I DID until 3-4 months ago.
I made the decision that I was going to charge ahead with it even if I started having second thoughts along the way. But, at the same time, I made the decision that I was going to rely on as little external technology as possible. Simplicity was going to be the key guiding light and if I couldn't truly justify bringing a given technology into the mix, it'd stay out.
That means that when I built the front end, I would go with plain HTML/CSS/JS... you know, just like I did 20+ years ago... and when I built the back end, I'd minimize the libraries I used as much as possible (though I allowed myself a bit more flexibility on the back end because that seems to be where there's less issues generally). Similarly, any choice I made I wanted to have little to no additional tooling required.
So, given this is a webapp with a Node back-end, I had some decisions to make.
On the back end, I decided to go with Express. Previously, I had written all the server code myself from "first principles", so I effectively built my own version of Express in other words. And you know what? It worked fine! It wasn't particularly hard, the code wasn't especially bad, and it worked. So, I considered re-using that code from the previous iteration, but I ultimately decided that Express brings enough value - more specifically all the middleware available for it - to justify going with it. I also stuck with NeDB for my data storage needs since that was aces all along (though I did switch to nedb-promises instead of writing my own async/await wrapper around it as I had previously done).
What I DIDN'T do though is go with TypeScript. In previous versions, I had. And, hey, it worked fine. TS of course brings some value, but having to have a compile step in it goes against my "as little additional tooling as possible" mantra, and the value it brings I find to be dubious when there's just one developer. As it stands, my "tooling" amounts to a few very simple JS scripts run with NPM. It's very simple, and that was my big goal: simplicity.
On the front end, I of course had to choose a framework first. React is fine, Angular is horrid, Vue, Svelte, others are okay. But I didn't want to bother with any of that because I dislike the level of abstraction they bring. But I also didn't want to be building my own widget library. I've done that before and it takes a lot of time and effort to do it well. So, after looking at many different options, I settled on Webix. I'm a fan of that library because it has a JS-centric approach. There's no JSX-like intermediate format, no build step involved, it's just straight, simple JS, and it's powerful and looks pretty good. Perfect for my needs. For one specific capability I did allow myself to bring in AnimeJS and ThreeJS. That's it though, no other dependencies (well, at first, I was using Axios because it was comfortable, but I've since migrated to plain old fetch). And no Webpack, no bundling at all, in fact. I dynamically load resources, which effectively is code-splitting, and I have some NPM scripts to do minification for a production build, but otherwise the code that runs in the browser is what I actually wrote, unlike using a framework.
So, what's the point of this whole rant?
The point is that I've made more progress in these last few months than I did the previous several years, and the experience has been SO much better!
All the tools and dependencies we tend to use these days, by and large, I think get in the way. Oh, to be sure, they have their own benefits, I'm not denying that... but I'm not at all convinced those benefits outweighs the time lost configuring this tool or that, fixing breakages caused by dependency updates, dealing with obtuse errors spit out by code I didn't write, going from the code in the browser to the actual source code to get anywhere when debugging, parsing crappy documentation, and just generally having the project be so much more complex and difficult to reason about. It's cognitive overload.
I've been doing this professionaly for a LONG time, I've seen so many fads come and go. The one thing I think we've lost along the way is the idea that simplicity leads to the best outcomes, and simplicity doesn't automatically mean you write less code, doesn't mean you cede responsibility for various things to third parties. Those things aren't automatically bad, but they CAN be, and I think more than we realize. We get wrapped up in "what everyone else is doing", we don't stop to question the "best practices", we just blindly follow.
I'm done with that, and my project is better for it! -
I think JavaScript is great actually
Though I don't like the community
But that's not saying much, aside from maybe c++ people (who I don't actually understand so maybe that's what's going on there) I don't seem to like any communities
Mostly because they're wrong and fight over irrelevant things and don't realize they're wrong so they just keep going wrong and it makes me cringe
But javascript is nice because it's intuitive, and if it isn't intuitive to you right now just look into the thing and it'll be a second language to you later... Isn't that a skill issue?
Easy to start hard to master, perfect difficulty curve. Exploits that sunk cost fallacy. It isn't overwhelming either you only run into the edge cases slowly over time.
But there can be a point made that an easily accessible anything is just always going to turn into a cesspool because unskilled people keep contributing and thinking themselves experts, so it over time reduces quality of secondary tooling =[6 -
I would like to stop and genuinely thank the devs and anyone that contributed to NW.js for allowing users to work outside the sandbox. Fucking sandboxes these days make developing editors and tooling a bunch of bullshit hassle. I understand why, but it makes an entire class of software that much more difficult to develop.
And on a semirelated note, I decided to go with nw.js because unlike electron, I don't have to tell users "just install these two gigabytes of npm dependencies *from off the net after already downloading the main application*, dependencies that could break at any time at all for any reason."
Does anyone even bundle their dependencies any more or is this something only clinically insane people like myself do?
Because last I checked most users still don't know how to debug console autobarf when a single command goes awry due to something obscure like a version conflict between two brittle cogs in the organ grinder known as package management.
Edit: also, nw.js startup times and memory requirements are relatively sane compared to electron.3 -
I was talking to a friend about the current state of machine learning through tensorflow and commented about the use of Javascript as a language.
He discarded the idea as he views Javascript as something that should only be used as a frontend technology rather than something to build backends or deep learning models.
I am thorn. I have always liked Javascript but will admit that I have used it mostly in the area of front end with very few backend instances(i did create a full stack intranet app in Express once, major success for the application it was hosting, it was a very basic api which had its own nosql db with no need to interact with the company's relational data, it was perfect for the occasion and still help maintaining it from time to time)
My boi states that node's biggest issue has always been npm and the quality of packages. I always contradict those statements by saying that if one uses community standards and the best packages then one does not need to worry about the quality(i.e mongoose over some unmaintained mongo wrapper etc)
I sometimes catch myself finding that my way of thinking adapts better to JS than it even does Python (which is his preference for deep learning) and whilst there are some beastly packages for python in terms of quality and usefulness such as matplotlib etc that one can do great things with the equivalent JS.
I mean, tensorflow.js came from the same wizards that did tensorflow (obviously) and i find the functional approach of JS to be more on par with how we develop solutions.
I am no deep learning expert, and sadly I have no professional experience with machine learning. But I venture to say that we should not cast aside the great strides that the JS community has done to the language in terms of evolution and tooling. Today's Js is not your grandaddy's Js and thinking that the language is crippled because of early iterations of the language would be severely biased.
What do you guys(maybe someone with professional experience) think of Js as a language for machine learning?
Do you think the language poses something worth considering in terms of tooling and power for ml?2 -
Best:
Got a role change to automation engineer, which is sort of a 'just fix problems' position, like with tooling, get rid of manual work, remove as many spreadsheet as we can.
I started looking into rust.
Worst:
People think we depend heavily in javascript because our products are extensions, our golden product is an extension, so a few members of my team insist in depending in our core team and use their javascript stuff, even for string parsing, even if we do have a python package that does rhe same thing that is officially maintained too.
I refuse.
The good again:
My boss let's me refuse, I am not forced into javascript, they let me use whatever I want as long as it is reasonable.2 -
Well I can say one thing for sure. The tooling found for Flutter in the form of IntelliJ and Android Studio is far superior than fucking around on a text editor das for sure.
Not really into the continuous nesting of widgets. But then again I was not a big fan of having jsx either.
Both options still better than fucking around with the Java Android api....and I fucking love Java.
Still feels like Google realized that such approach was better, else I don't think they would have justified the creation of the Flutter lib. And yes. I know that it is not a complete replacement for Android Java, but the interfacing between Dart and the Java api feels more natural at least to me and the widgets look native af so we go on with them big plus digits.2 -
Here comes lots of random pieces of advice...
Ain't no shortcuts.
Be prepared, becoming a good programmer (there are lots of shitty programmers, not so many good ones) takes lots of pain, frustration, and failure. It's going to suck for awhile. There will be false starts. At some point you will question whether you are cut out for it or not. Embrace the struggle -- if you aren't failing, you aren't learning.
Remember that in 2021 being a programmer is just as much (maybe even moreso) about picking up new things on the fly as it is about your crystalized knowledge. I don't want someone who has all the core features of some language memorized, I want someone who can learn new things quickly. Everything is open book all the time. I have to look up pretty basic stuff all the time, it's just that it takes me like twelve seconds to look it up and digest it.
Build, build, build, build, build. At least while you are learning, you should always be working on a project. Don't worry about how big the project is, small is fine.
Remember that programming is a tool, not the end goal in and of itself. Nobody gives a shit how good a carpenter is at using some specialized saw, they care about what the carpenter can build with that specialized saw.
Plan your build. This is a VERY important part of the process that newer devs/programmers like to skip. You are always free to change the plan, but you should have a plan going on. Don't store your plan in your head. If you plan exists only in your head you are doing it wrong. Write that shit down! If you create a solid development process, the cognitive overhead for any project goes way down.
Don't fall into the trap of comparing yourself to others, especially to the experts you are learning from. They are good because they have done the thing that you are struggling with at least a thousand times.
Don't fall into the trap of comparing yourself today to yourself yesterday. This will make it seem like you haven't learned anything and aren't on the move. Compare yourself to yourself last week, last month, last year.
Have experienced programmers review your code. Don't be afraid to ask, most of us really really enjoy this (if it makes you feel any better about the "inconvenience", it will take a mid-level waaaaay less time to review your code that it took for you to write it, and a senior dev even less time than that). You will hate it, it will suck having someone seem like they are just ripping your code apart, but it will make you so much better so much faster than just relying on your own internal knowledge.
When you start to be able to put the pieces together, stay humble. I've seen countless devs with a year of experience start to get a big head and talk like they know shit. Don't keep your mouth closed, but as a newer dev if you are talking noise instead of asking questions there is no way I will think you are ready to have the Jr./Associate/Whatever removed from your title.
Don't ever. Ever. Ever. Criticize someone else's preferred tools. Tooling is so far down the list of what makes a good programmer. This is another thing newer devs have a tendency to do, thinking that their tool chain is the only way to do it. Definitely recommend to people alternatives to check out. A senior dev using Notepad++, a terminal window, and a compiler from 1977 is probably better than you are with the newest shiniest IDE.
Don't be a dick about terminology/vocabulary. Different words mean different things to different people in different organizations. If what you call GNU/Linux somebody else just calls Linux, let it go man! You understand what they mean, and if you don't it's your job to figure out what they mean, not tell them the right way to say it.
One analogy I like to make is that becoming a programmer is a lot like becoming a chef. You don't become a chef by following recipes (i.e. just following tutorials and walk-throughs). You become a chef by learning about different ingredients, learning about different cooking techniques, learning about different styles of cuisine, and (this is the important part), learning how to put together ingredients, techniques, and cuisines in ways that no one has ever showed you about before. -
The CI infrastructure and external tooling at the company I work at is a complete joke. Feels like it was designed by an intern left alone.
95% of the time a build fails or hangs, it's because we are getting race conditions or a hanging VM with our crappy Windows jenkins slaves. Quite possibly because we are not using proper tooling for monitoring those VMs as well. Anyways, I don't have access and control on it and it's not even my job to fix it.
Though, I am being asked to monitors these pieces of junk jenkins jobs outside of my work hours because company devs all over the world use it... but there is no fucking way to know it failed unless I log onto jenkins every hour and check everything manually... which is stupid as fuck for a software engineer.
I can't even implement slack hooks to get notifications or something when it fails because we will stop paying for it soon, so I have to connect to my freaking VPN on my PC and check everything.
And what's the fucking ghetto solution instead of fixing it properly? Restarting VMs and rerunning a build. Because someone in management wants to see a passing build, even though it means jackshit. Half of these jobs are tagged as unstable, so what's the fucking point?
Pisses me off when people work like morons and pressure others to do the same.1 -
When you have to debug a system made by a freelance agency that only had to get it working and not maintain and support it, leaves you with that feeling;
Their stack: https://m.xkcd.com/1636/
Their tool chain: https://m.xkcd.com/1579/
The actual resulting code: https://m.xkcd.com/1185/
And nobody can see why performance is suffering — it's all so simple and beautiful...undefined front end web dev tools stack wars my stack is bigger than yours tooling other people suck -
Over 100+ learning about, and configuring my i3 .config, .vimrc, .bashrc, etc. Exactly how I want it. Then one day: "Meh, time to reinstall and delete all configs!"
I have a serious problem.4 -
I just released my first NPM package that is actually functional and used in a private project (https://npmjs.com/package/@lbfalvy/...) and I have to say, the quality of debug tooling for Node is abysmal. I spent 4 hours just on Webpack's "Field browser doesn't contain a valid alias configuration" error which simply means "package not found", and then getting Rollup to output a working compiled javascript _and_ a d.ts was its own day-long ordeal.4
-
Theres so many motherfucking command line utilities in web development that I'm surprised there isn't a 128 megabyte NPM install for a leftpad CLI.
God damn people who develop tooling for web development are some navel gazing cunts.
"How can I feel more self important? Lets put a CLI in front of this web bundler!"
Dumbasses.
What happened to the days of purity? Of cleanliness? Of kosher compliant web development, where all you had to do was include a script tag?
Gone are those days. Welcome to Babel(on)!
I put a CLI in your CLI so you can masturbate while you masturbate!3 -
The worst of Agile and Sc(r)um: All those people knowing the right way(™) to do it. Endless discussion about useless tooling: the proper use of the custom workflow in Jira, on when and how to create sub tickets. The hour-less meta-discussions on what should be discussed where and when (what's subject of the backlog refinement, retro, etc), the roles: the PO's, what he should do, cannot, the PM's. Who is allowed to pull a ticket to the sprint or not. How many reviewers need to acknowledge a pull request. To and fro. Pointless, but fought with heart and blood, full of sound and fury, signifying nothing.
And everywhere I hear: "In my previous company, we did Scrum like.. and it worked perfectly!"
Some of you might remember my rants on Mr. Gitmaster, with whom I thought I'd made my peace. Guess what? He's now a team member and turning into Mr. Agile - a more severe reincarnation! As our company starts flogging that dead horse of Agility, he seems to feel strong tailwind. Our team lead would constantly cut his monologues, but he's now on holiday, so we have no escape from the never ending: "In my previous company..."
If it was so great, why didn't you stay?
We are not allowed to pull a ticket to the sprint unless every team member is notified? I don't fucking care. If our software fails on customer's machines and I can fix it, I will do if there is a ticket, if it's in the sprint or not. Screw Scrum, if it is getting in the way of it. You can waste your hours discussing horseshit, I want to sit at my desk, deep in the test-compile loop and ship some fucking code.3 -
It seems google index this link: https://devrant.com/search/...
for that query:
The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. -
Some of you know I'm an amateur programmer (ok, you all do). But recently I decided I'm gonna go for a career in it.
I thought projects to demo what I know were important, but everything I've seen so far says otherwise. Seems like the most important thing to hiring managers is knowing how to solve small, arbitrary problems. Specifics can be learned and a lot of 'requirements' are actually optional to scare off wannabes and tryhards looking for a sweet paycheck.
So I've gone back, dusted off all the areas where I'm rusty (curse you regex!), and am relearning, properly. Flash cards and all. Getting the essentials committed to memory, instead of fumbling through, and having to look at docs every five minutes to remember how to do something because I switch languages, frameworks, and tooling so often. Really committing toward one set of technologies and drilling the fundamentals.
Would you say this is the correct approach to gaining a position in 2020, for a junior dev?
I know for a long time, 'entry level' positions didn't really exist, but from what I'm hearing around the net, thats changing.
Heres what I'm learning (or relearning since I've used em only occasionally):
* Git (small personal projects, only used it a few times)
* SQL
* Backend (Flask, Django)
* Frontend (React)
* Testing with Cypress or Jest
Any of you have further recommendations?
Gulp? Grunt? Are these considered 'matter of course' (simply expected), or learn-as-you for a beginner like myself?
Is knowing the agile 'manifesto' (whatever that means) by heart really considered a big deal?
What about the basics of BDD and XP?
Is knowing how to properly write user-stories worth a damn or considered a waste of time to managers?
Am I going to be tested on obscure minutiae like little-used yarn/npm commands?
Would it be considered a bonus to have all the various HTTP codes memorized? I mean thats probably a great idea, but is that an absolute requirement for newbies, or something you learn as you practice?
During interviews, is there an emphasis on speed or correctness? I'm nitpicky, like to write cleanly commented code, and prefer to have documentation open at all times.
Am I going to, eh, 'lose points' for relying on documentation during an interview?
I'm an average programmer on my good days, and the only thing I really have going for me is a *weird* combination of ADD and autism-like focus that basically neutralize each other. The only other skill I have is talking at people's own level to gauge what they need and understand. Unfortunately, and contrary to the grifter persona I present for lulz, I hate selling, let alone grifting.
Otherwise I would have enjoyed telemarketing way more and wouldn't even be asking this question. But thankfully I escaped that hell and am now here, asking for your timeless nuggets of bitter wisdom.
What are truly *entry level* web developers *expected* to know, *right out the gate*, obviously besides the language they're using?
Also, what is the language they use to program websites? It's like java right? I need to know. I'm in an interview RIGHT now and they left me alone with a PC for 30 minutes. I've been surfing pornhub for the last 25 minutes. I figure the answer should take about 5 minutes, could you help me out and copypasta it?
Okay, okay, I'm kidding, I couldn't help myself. The rest of the questions are serious and I'd love to know what your opinions are on what is important for web developers in 2020, especially entry level developers.7 -
An internal error occurred during: "Initializing Java Tooling".
java.lang.NullPointerException
-.-"1 -
so... is ReScript just a bunch of butthurt javascript developers who couldn't hack it to learn TypeScript (older, better tooling, better community, massive support with library typings, etc.)
seems like just a lot of extra, seemingly pointless and useless differentiating syntax rules
why do we need to keep reinventing the wheel?
"Our type system is guaranteed to *never* be wrong."
seen statements like this way too many times in my career... welcome to programming pain world, i should just read the rescript issues on github just to get a laugh here
but again, just a 🤡 giving his two cents
update: confirmed, all i've found on the web is rescript shillers trying REALLY HARD to defend it, and mostly failing3 -
Rant.
Our dev tooling is not in order.
Names of classes do not represent what they do.
Filename is different from class name and there are multiple classes per file.
I try to fix this hot spaghettis mess and off course our outdated source control gives another barrier! FFS6 -
Out of the frying pan, into the fire:
So in my first job, I thought it's just us operating so crazy: meddling with arcane C/C++ code from the 80's, shooting our code to production without testing, fixing hundred of customers data base entries by hand, letting an intern alter some core component (to have more logging) and directly push it to prod...
Silly me.
I mean I suspected, that maybe it's not only this tiny little company acting wild, that also the bigger companies with all their ISO certified processes, agile blabla, professional tooling whatsoever - will also have their skeleton in the closet,.. like some obscure assembler part buried in the heart of your code base nobody dares to touch...
How Pieter Hintjens asked about the state of the industry and all the fads so bluntly put it:
"It's all bullshit."
But we are humans, so we better jump on the bandwagon if we want to keep our jobs... and somehow try to keep that trashy house of cards from crashing down. -
The challenge of interesting side projects is that it's not just the thing. It's the thing then a whole-ass visualisation library. Or tooling for whatever stupid thing I want to do.
Also then I get bored and start on the next thing.9 -
Me: "I think I'd like to try out the new Ubuntu version. I really liked Gnome before, maybe the OS is better now?"
A couple days later...
"Man, it's really nice not having to emulate bash. I'm so much more productive now with Linux tooling! Wait, why did everything freeze?"
A week after install...
"What do you mean 'I need to recompile wireless adapter drivers'? Why isn't that included or updated through 'apt'!? Who's the person sitting at their desk saying 'yup, that's a reasonable solution?'"
Two weeks after install...
Me: "Oh, so it's not Chrome eating up system resources, there's a memory leak in gnome-shell.... WHAT!? WHY!? How do I switch back to Unity?"
One month after install...
Me: "Yeah, so I tried it out, but then I threw my computer in a river and I'm *so much* better off now."3 -
So I figure since I straight up don't care about the Ada community anymore, and my programming focus is languages and language tooling, I'd rant a bit about some stupid things the language did. Necessary disclaimer though, I still really like the language, I just take issue with defense of things that are straight up bad. Just admit at the time it was good, but in hindsight it wasn't. That's okay.
For the many of you unfamiliar, Ada is a high security / mission critical focused language designed in the 80's. So you'd expect it to be pretty damn resilient.
Inheritance is implemented through "tagged records" rather than contained in classes, but dispatching basically works as you'd expect. Only problem is, there's no sealing of these types. So you, always, have to design everything with the assumption that someone can inherit from your type and manipulate it. There's also limited accessibility modifiers and it's not granular, so if you inherit from the type you have access to _everything_ as if they were all protected/friend.
Switch/case statements are only checked that all valid values are handled. Read that carefully. All _valid_ values are handled. You don't need a "default" (what Ada calls "when others" ). Unchecked conversions, view overlays, deserialization, and more can introduce invalid values. The default case is meant to handle this, but Ada just goes "nah you're good bro, you handled everything you said would be passed to me".
Like I alluded to earlier, there's limited accessibility modifiers. It uses sections, which is fine, but not my preference. But it also only has three options and it's bizarre. One is publicly in the specification, just like "public" normally. One is in the "private" part of the specification, but this is actually just "protected/friend". And one is in the implementation, which is the actual" private". Now Ada doesn't use classes, so the accessibility blocks are in the package (namespace). So guess what? Everything in your type has exactly the same visibility! Better hope people don't modify things you wanted to keep hidden.
That brings me to another bad decision. There is no "read-only" protection. Granted this is only a compiler check and can be bypassed, but it still helps prevent a lot of errors. There is const and it works well, better than in most languages I feel. But if you want a field within a record to not be changeable? Yeah too bad.
And if you think properties could fix this? Yeah no. Transparent functions that do validation on superficial fields? Nah.
The community loves to praise the language for being highly resilient and "for serious engineers", but oh my god. These are awful decisions.
Now again there's a lot of reasons why I still like the language, but holy shit does it scare me when I see things like an auto maker switching over to it.
The leading Ada compiler is literally the buggiest compiler I've ever used in my life. The leading Ada IDE is literally the buggiest IDE I've ever used in my life. And they are written in Ada.
Side note: good resilient systems are a byproduct of knowledge, diligence, and discipline, not the tool you used. -
Developing front-ends used to be about translating a business use case to an interface. Now I spend days and weeks getting tooling to integrate properly: webpack, babel, React, Vue, SSR, Nuxt, NPM packages, build & CI pipelines, storybooks, and resolving incompatibilities. It's become such a grind I haven't had a single satisfying, productive workday since 4 months.2
-
Today I spent 9 hours trying to resolve an issue with .net core integration testing a project with soap services created using a third party soap library since .net core doesn't support soap anymore. And WCF is before my time.
The tests run in-process so that we can override services like the database, file storage, basically io settings but not code.
This morning I write the first test by creating a connected service reference to generate a service client. That way I don't need to worry about generating soap messages and keeping them in sync with the code.
I sent my first request and... Can't find endpoint.
3 hours later I learn via fiddler that a real request is being made. It's not using the virtual in-process server and http client, it's sending an actual network request that fiddler picks up, and of course that needs a real server accepting requests... Which I don't have.
So I start on MSDN. Please God help me. Nope. Nothing. Makes sense since soap is dead on .net core.
Now what? Nothing on the internet because above. Nothing in the third party soap library. Nothing. At this point I question of I have hit my wall as a developer.
Another 4 hours later I have reverse engineered the Microsoft code on GitHub and figured out that I am fucked. It's so hard to understand.
2 more hours later I have figured out a solution. It's pure filth..I hide it away in another tooling project and move all the filth to internal classes :D the equivalent of tidying your room as a kid by shoving it all under the bed. But fuck it.
My soap tests now use the correct http client with the virtual server. I am a magician.4 -
Got VS running, SDL up and running and outputting, and angelscript included. Only getting linker errors on angel at the moment, not on inclusion, but on calling engine initialization.
Who knows what it is. Devs recommended precompiling but I wanted to compile with the project rather than as a dll (maybe I'm doing something stupid though, too new to know).
Goal is to do for sdl, cpp, and angelscript, what LOVE2d did for lua. Maybe half baked, and more just an experiment to learn and see if I can.
Would be cool to script in cpp without having to fuck with compilers and IDEs.
As simple as 1. write c++, 2. script is compiled on load, 3. have immediate access to sdl in the same language that the documentation and core bindings are written for.
Maybe make something a little more batteries-included than what lua and love offer out of the box, barebones editors and tooling and the like, but thats off in the near future and just a notion rather than a solid plan.
Needed to take a break from coding my game and here I am..experimenting with more code.
Something is wrong with me.8 -
/rant on
React Native is BS for Android. Outdated as hell Gradle builds (1.x for certain plugins I mean wtf) and it targets outdated SDK and build tools... Why no simply code for system your software is meant to work :P
/rant over
In seriousness, I get the concept of build once deploy on all platforms ala Electron but better but hell why is the tooling so outdated?1 -
Ok, so: I have a macbook for work. And for the most part, I love it. Its a good looking device that has a fast cpu, enough ram to run stuff locally for testing, even multiple services / environments at the same time without getting overly sluggish.
And, the best thing: It isn't Windows. I have a good, working shell (zsh), so I can use all the command line tooling I could wish for, I have a somewhat working package manager and everything.
But there are just some little things I really can't wrap my head around. And since everything is so locked in by Apple, there are no sensible ways to fix those things without having a bunch of extra programs / services running all the time, introducing overhead, configuration for things I neither want nor need, and so on.
First of all, why the hell did you think the normal way of typing "@" on a german iso keyboard is the key combination for closing the currently focused application? I am a daily user of macos for over 2 years now, and I still keep quitting applications regularly, almost every day.
Or, scroll direction: I use a mouse (g pro wireless) and not just the touchpad, but when I am in a meeting or something (or when I take my macbook with me to configure a switch that isn't accessible over the network), I don't want to take the mouse with me, the touchpad is pretty good, it is big, precise and everything. But for some dumb reason, they decided to reverse the scroll direction for the mouse by default, so if you change that to use the mouse like a normal person, it also changes the scroll direction for the touchpad. And, the worst part is: there doesn't seem to be ANY easy way to separate those two settings, or to automatically set the scroll direction when a mouse is connected.
So every time I use my laptop somewhere else, wich also happens regularly, the scroll directions is wrong, which means I have to go into the settings, change it, then change it back when I am at my desk again.
It just doesn't make any sense, stop trying to "know what our customers want", and please, dear Mr. Tim Apple, give your customers the freedom to know for themselves what they want.
Thanks for listening to my TED Talk.8 -
we're seriously still using EPS files in 2024?
i don't have tooling for this BECAUSE I'M NOT A FUCKING BOOMER!5 -
Still not sold by OO, but I'm hook line and sinker for pharo/smalltalk.
It actually seems to share a lot of fundamentals with Lisp namely extremely tight syntax and live code reloading.
My opinions of a productive language being dependant on a specific paradigm might be changing in favour of the tooling supplied with a technology/language. -
Here's a fucking challenge:
Generate an MD5 hash in React Native!
crypto - NOPE deprecated, react native throws when you try to import it anyway
react-native-crypto - NOPE, needs to make use of a shim that recursively edits node_modules... hmmmm yeah you think thats a good thing to have?
react-native-fast-crypto - NOPE, no TypeScript types, no documentation in general, only supports sha512?! WTF
garbage fucking idiot tooling stupid dumbass stupid splat splat barf splat22 -
Don't write tests for work code.
It started off because i couldn't because of the tooling but now i can don't have the time. -
I know local dev is hard in a complex system, but if tooling prevents you from working for an entire day something is seriously wrong.13
-
You can make WSL and VSCode fight over how a csproj should be written. VS2017 doesn't care and runs no matter who was previous.
-
Webpack? More like Fudgepack 😡
OK sure, I know it's cool to rip on Webpack without taking 5 minutes to understand it, but I really have tried. Every time I want to do anything which used to be trivial with grunt, gulp or brunch, it requires a whole bunch of sorcery and every post I see online around the same topic inevitably ends with something like "that's not modular", "WebPack doesn't work like that", "you're holding your phone wrong" etc. And it's not like I'm someone who is afraid of new or uncomfortable things. I try new languages almost as often as there are new JavaScript fads (OK maybe not THAT often). I use "weird" keywords and experiment with different key maps all the time. I swap my daily window manager on an almost quarterly basis (and xmonad is no picnic as an introduction to Haskell). But what the fuck is it with so many people in positions of influence in the frontend world always taking one step forward, two steps back and an occasional hop sideways when it comes to tooling (and dragging everyone else along with them)?
How did such a turd of a tool become defacto for so many frontend frameworks? Do hard core JavaScripters just really really hate outsiders and want to deter others from their precious as much as possible? Fuck Webpack and fuck everyone responsible for helping it permeate so thoroughly through the software development industry.2 -
Guys, I want to get into a DevOps role.
I'm already looking into Linux, Terraform, Ansible and k8s.
If you are a DevOps Engineer, what kind of tooling or knowledge do I need to know before applying to companies?
Any tip is welcome and I would greatly appreciate it! Thank you!9 -
That one time the management du jour asked devs to quantify why they needed new machines after five years on third-rate hardware...
-
Atm, the most painful tooling is Rational ClearCase for version control (wtf?!) and IBM DOORS for reqs and test specs on a Windows machine.
Productivity = -13 -
The biggest things I’ve probably learned working on side projects are patience and planning. Side projects are a great place to hone your skills of negotiation with other people, but I’ve personally learned a great deal about the process of architecture, simply by doing side projects where I’ve experienced scoping and tooling problems later on. Being patient lends itself to getting better at planning. Working with others on side projects has given me insight into “when to hold em and when to fold em”...and again, this patience education has often helped me be a better planner for a multitude of tasks.
-
I would appreciate if the language server wouldn't crash constantly, it's getting rather annoying.
Why is it that most C(++) tooling I have used feels like a half assed barely working project?3 -
I just witnessed Microsoft trolling preview setup.
Let me set the scene for you. I was in Visual Studio and saw the notifications and I had a minute so I decided to check them and saw there were updates, this one being one of them. I went to update and first it asked me to close all instances of VS. Fair enough, I close VS and continue. Instead of taking a minute at most to install it took ~10 minutes which is insane, but fine, I stopped my work for it... And then I'm greeted by this gem. Restart your computer for freaking .NET core and trolling.. I'm sorry, tooling... Preview... What the actual fuck Microsoft?2 -
I feel there aren't enough tutorials on "best practices" when it comes to combining server/client tooling in a monorepo.
Having done so this weekend, the tasks involved were:
* using graphql w/ express to serve requests and expose a "graphiql" ide instance
* differentiating build steps in prod vs. dev
* applying middleware in prod vs. dev
* working with a single heroku dyno
Still missing:
* hot reloading
* my general sense of direction -
I stopped using SourceTree as soon as Atlassian got their dirty paws on them because I knew they wouldn't be able to resist ruining it.
Fast forward just over 7 years. I'm forced to work in a Windows environment without my usual git tooling so I see what options I have out there for making life a bit easier. I see SourceTree is still free - maybe I was being too cynical?
Download... install... first thing I see is this shit.
For the same reason I dropped Bitbucket so many years ago, thanks but no thanks. Fuck you Atlassian. Fuck you, fuck your "Atlassian account", and anything you own.12 -
What makes a good programming language isn't its features, but its build system.
Shit tooling makes for shitty development every time.6 -
Every time I have to touch a webpack config I remember Geocities much more fondly. Hell, even Frontpage wasn't so bad really.
-
GODAMNFUUUCKIIIT
WHICH EVER IDIOT PROGRAMMED HALYARD SHOULD DIE A SLOW DEATH IN HELL!!!
A CD TOOL HAVING THE WORST INSTALLER EVER IS THE BIGGEST FUCKING JOKE YOU COULD COME UP WITH!!! FUCK NETFLIX FUCK SPINNAKER FUCK EVERY BIT OF SHIT TOOLING THAT COMES FROM IT!!!!! -
I don't understand all the hate for JS.
Yeah I know it's in a very weird place and has a lot of weird problems that don't exist in any other language , but it's getting alot of better with age and so forth .
It has great tooling, huge ass amount of libraries etc etc.
Why the hate?2 -
During my small tenure as the lead mobile developer for a logistics company I had to manage my stacks between native Android applications in Java and native apps in IOS.
Back then, swift was barely coming into version 3 and as such the transition was not trustworthy enough for me to discard Obj C. So I went with Obj C and kept my knowledge of Swift in the back. It was not difficult since I had always liked Obj C for some reason. The language was what made me click with pointers and understand them well enough to feel more comfortable with C as it was a strict superset from said language. It was enjoyable really and making apps for IOS made me appreciate the ecosystem that much better and realize the level of dedication that the engineering team at Apple used for their compilation protocols. It was my first exposure to ARC(Automatic Reference Counting) as a "form" of garbage collection per se. The tooling in particular was nice, normally with xcode you have a 50/50 chance of it being great or shit. For me it was a mixture of both really, but the number of crashes or unexpected behavior was FAR lesser than what I had in Android back when we still used eclipse and even when we started to use Android Studio.
Developing IOS apps was also what made me see why IOS apps have that distinctive shine and why their phones required less memory(RAM). It was a pleasant experience.
The whole ordeal also left me with a bad taste for Android development. Don't get me wrong, I love my Android phones. But I firmly believe that unless you pay top dollar for an android manufacturer such as Samsung, motorla or lg then you will have lag galore. And man.....everyone that would try to prove me wrong always had to make excuses later on(no, your $200_$300 dllr android device just didn't cut it my dude)
It really sucks sometimes for Android development. I want to know what Google got so wrong that they made the decisions they made in order to make people design other tools such as React Native, Cordova, Ionic, phonegapp, titanium, xamarin(which is shit imo) codename one and many others. With IOS i never considered going for something different than Native since the API just seemed so well designed and far superior to me from an architectural point of view.
Fast forward to 2018(almost 2019) adn Google had talks about flutter for a while and how they make it seem that they are fixing how they want people to design apps.
You see. I firmly believe that tech stacks work in 2 ways:
1 people love a stack so much they start to develop cool ADDITIONS to it(see the awesomeios repo) to expand on the standard libraries
2 people start to FIX a stack because the implementation is broken, lacking in functionality, hard to use by itself: see okhttp, legit all the Square libs, butterknife etc etc etc and etc
From this I can conclude 2 things: people love developing for IOS because the ecosystem is nice and dev friendly, and people like to develop for Android in spite of how Google manages their API. Seriously Android is a great OS and having apps that work awesomely in spite of how hard it is to create applications for said platform just shows a level of love and dedication that is unmatched.
This is why I find it hard, and even mean to call out on one product over the other. Despite the morals behind the 2 leading companies inferred from my post, the develpers are what makes the situation better or worse.
So just fuck it and develop and use for what you want.
Honorific mention to PHP and the php developer community which is a mixture of fixing and adding in spite of the ammount of hatred that such coolness gets from a lot of peeps :P
Oh and I got a couple of mobile contracts in the way, this is why I made this post.
And I still hate developing for Android even though I love Java.3 -
I've been using go for two days and I'm already pissed at it. Don't get me wrong, I like the language itself, I love the simplicity, the tooling and frameworks are the problem. Like, why does everything have to be so hard?
Why do I have to spend around 4 hours in total just to configure a fucking linter?
Why does everything have to live inside the fucking GOPATH?
Why the fuck can't I put a src/ folder in my project so I don't mix code with config files, docker files, etc?
Why the hell does documentation for frameworks/libraries/tools suck so much? Looking at you Gin and Gorm.
Why can't gin-swagger just find out what routes I have?
I must be either dumb or chosen the wrong frameworks and libraries, but the "development experience" I'm having sucks. Nothing works first try and documentation is shit and vague.
I want to like the language, but I can't, at least not if it's always going to be shit like this. Does it get better? Am I just a noob? Or should I just jump ship and look for something else?4 -
I'm in kind of a clutch between learning Ruby or Python.
I did some stuff with Ruby (Hello World, a little RoR) but I like it a lot ao far.
However, support for it isn't that big (packages, tooling, etc) as for Python :/
Which one to pick?2 -
tictactoe squared. An online game build on top of the idea of tictactoe. I build this app with a friend back in the days when we used to go to school using plain html,js and express.js. no fancy frameworks or other tooling8
-
Trying to understand why there is an absurd amount of tooling for most nodejs apps. Is this present in other languages as well? Is it worth learning? From my viewpoint as a new developer, it seems like there should be more consolidation there. Or a more elegant way to build1
-
As a front-end developer who has a firm grasp on web tooling, I still think the sheer amount of knowledge needed for dev-ops/deploy tools is staggering.
-
Let's do a story mapping session! Ok cool. PO asks the team: so guys what do you think? *silence*... *more silence*.... PO: come on guys, please respond. *silence*.... Then someone finally responds.
I'm starting to hate this big time. It's almost always like that, no matter the type of session (story mapping, refinement) And there's someone in the team that thinks he always knows best, so if ever someone speaks up, it will always be challenged and lead to useless discussions. He always wants the perfect solution. A good solution is good enough, it doesn't have to be perfect. PO is happy with a good solution (good = maintainable, scoring at least x on our code quality tooling), so why the fuck would you want to go for the 'perfect' solution, which may score just slightly higher in regard to quality, cost much more to develop and people have a hard time maintaining it due to the high level of abstraction? He's always refactoring stuff because it's not future proof. Well, why completely reimplement parts that have been working properly for 2 years and have a very very small chance of needing a change, which then still only needs to be done in just 1 place?
And you know what? All these fancy structures, patterns etc are in there but will their flexibility ever really be used? In my 20 years experience haven't seen such flexibility being really used. Some exceptions of course.
Once it's built, it will keep running, yes, changes will need to be made, but in most cases they never touch all these expensive fancy structured components. Just because most changes are in content or small changes in functionality.1 -
for the 3rd time ive tried introducing some version control on a project that really needs it because it has multiple people working on it.
And because the last time my efforts got shut down because in practice people thought it was too much of a hassle to develop locally rather than on the shared development server directly, I made a feature that would let people checkout branches on said server...
Apparently the action of; saving > committing > pushing to your feature branch > merge after aproval, is still too much for people to comprehend; "I think this is too convoluted can't we just keep pushing to the production server to check our work and then commit and push to the master branch"
So I just got pissed and said fuck it, no more git then, I'm not even going to put any effort into changing tooling here anymore, and this is a massive project where we have to manually remove code that isnt ready yet from the staging environment.
Are the people I'm working with just this stupid or am I really overengineering this solution because I think 4 people should not be working on the same file at the same time without any form of version control and just direct upload to FTP.
(and yes, I know I should leave this job already, but social anxiety of starting at a new company is a big obstacle for me)3 -
We recently pulled in a developer onto the devops team, and also our manager was fired a month ago. Everything devops is Python/Go but all our developers are in Clojure or Node. He's recently been writing a lot of stuff on Clojure and I didn't get an opportunity to bring it up at the last retro.
Recently he changed all our old Go projects to use a CI-pipeline he built, even though I wrote a build tool, with tests, that does everything his pipeline does, in Python .. over two years ago. When I asked him why he doesn't just use our existing builder, he responds saying he doesn't know why he should use some tool/script just because it exists ... um, everything we've built uses it?! 😡
Our last manager was a dick and I understand why they let him go, but he also would put this guy in his place. He's literally made is own little "devops roadmap" for himself and shared it out with the team. It's all about his personal goals and what he wants.1 -
Colleague from a remote office emails me to ask what version of some tooling is installed on a build machine. Generally I wouldn't mind, but for the fact they're literally sat next to said build machine in the remote office. I mean... why get up and look yourself, when you can just IM somebody to look for you... right?
-
Still as a scholar who has had his intership I decided that I was finally confident enough in my ability to apply for a small part-time programming job. I had an internship at a cool exhausting place with tons of expertise and I've proven myselve over there. So now I wanted a job on the side. Nothing special, just something that would make a little money with programming instead of washing dishes at the restaurant.
So I started at this small internet based startup (2 or 3 progammers) as a backend-oriented programmer. The working hours were amazingly compatible with my school schedule.
The lead dev also sounded like a smart guy. He had worked as a backend guy for years and had code running on verry critical public infrastructure that if it were to fail we'd be evacuated from our homes.
As a first asignment I got an isolated task to make an importer for some kind of file format that needed integration. So I asked for access to the code. I didn't get it since they were going to re-do the entire backend based on the code I wrote. I just needed to parse the file in a usable object structure. So I found out that the file format was horrible and made a quite nice set of objects that were nice. At the end of the first week or so I asked if I could get access to the code again, so I could integrate it. Answer was no. The lead dev would do that. I could however get access to my private repository.
Next week a new intern was taken to build a multiplatform responsive app. Only downside was that all the stuff he had ever done was php based websites. It wasn't going anywhere anytime soon, but I figured that that was where internships were for. So I ended up helping him a lot and taught him some concepts of OOP and S.O.L.I.D. and the occasional 30 minute rants of IndexOutOfRangeException, ArgumentException and such.
So one day he asked me how to parse a json string and retrieve a specific field out of it.
I gave him something like the following to start with:
"
JObject json;
if(!JObject.TryParse(jsonString, out json))
{
//handle error
}
string value;
if(!json.tryget("foo", out value).../// code continues
"
but then the main dev stepped in and proposed the following since it wouldn't crash on an API change:
"
dynamic json = new JObject(jsonString);
string value = json.myJsonValue;
"
After me trying to explain to him that this was a bad choise for about 15 minutes because of all kinds of reasons I just gave up. I was verry mad that this young boy was forced to use bad programming pracises while he was clearly still learning. I know I shouldn't pick up certain practises. But that boy didn't.
Almost everytime the main dev was at the office I had such a mindboggling experience.
After that I got a new assignment.
I had to write another xml file format parser.
Of course I couldn't have any access to our current code because... it was unnecesary. We were going to use my code as a total replacement for the backend again.
And for some reason classes generated from XSD weren't clear enough so after carefull research I literally wrapped xsd generated code in equivalent classes.
At that moment, I realized I made some code that was totally useless since it wasn't compatible with any form of their API or any of the other backend code. (I haven't seen their API. I didn't have access to the source.) And since I could've just pushed them generated XSD's that would've produced thesame datastructure I felt like I was a cheat. I also didn't like that I wasn't allowed to install even the most basic tooling. (git client or, Ide refactoring plugins, spelling checker etc...)
Now I was also told that I couldn't discuss issues with the new guy anymore since it was a waste of my valuable time, and they were afraid that I taught him wrong concepts.
This was the time that my first paycheck came in so I quitted my job.
I haven't seen any of the features that I've worked on. :) -
Currently the only good tooling for c# is on windows. Things are looking optimistic with .net core, but it's no where close to what's available on windows.2
-
Looking at jest errors and loads of GitHub and StackOverflow issues, it's no surprise that people claim they don't like testing.
Maybe they would if we got our tooling right.
import { foo } from 'bar';
Nah, that's an unexpected token, jest does not like this syntax.
Using require, like in jest's getting started tutorial isn't compatible with my existing JS libraries exports.
Adding type: "module" in package.json just makes another error message appear instead.
Fucking developer experience!
Why bother with unit tests at all?
How come PHP is 10 years superior to JS when it comes to code quality, unit tests, and static code analysis?
I don't even care about "ES modules". I don't want to "mock" anything either. All I want to do is import a handful of JavaScript functions into another file.
Overengineered web dev stack sucks!3 -
75% of the meetings with tech management (CTO and alike) could be efficient and effective if only they used proper tooling with Issues and Milestones as provided by their *self-hosted* GitLab instance.
They just use emails instead. -
I'm in love with F#, the tooling can be a little buggy if you're used to TypeScript or Java but before learning it I've never been able to solve a real life problem with less than 10 lines of code7
-
Once a React aficionado, twice the frustration we endure,
In the realm of libraries, React's problems seem impure.
With Svelte's elegance and grace in our sight,
Let's vent about React, as day turns into night.
Boilerplate Overload, a monotonous affair,
Classes, constructors, lifecycle steps we declare.
In Svelte's simplicity, we find a breath of fresh air,
Just markup and magic – a coder's love affair.
Complex State Management, React's Achilles' heel,
Redux, Mobx, and their massive code appeal.
Svelte's state handling is a cinch, for real,
No more tangled webs of logic to conceal.
Unnecessary Re-Renders, React's performance woe,
Countless updates, like a never-ending show.
Svelte updates what's needed, like a pro,
Efficiency and speed, in its radiant glow.
Verbose Syntax, JSX's verbosity on display,
HTML in JavaScript, causing dismay.
Svelte's concise template syntax lights our way,
No more endless tags, just code that's here to stay.
Lack of Truly Reactive Behavior, React's hurdle high,
Hooks to wrangle, state to satisfy.
Svelte's reactivity, no need to question why,
It just works, oh my, oh my.
Ecosystem Complexity, React's sprawling sprawl,
Choices galore, making us bawl.
In Svelte's world, simplicity is the call,
A coherent ecosystem, it has it all.
Learning Curve, React's mountain to climb,
Classes, hooks, context, a hill of time.
Svelte's gentle curve feels sublime,
A smoother path to code, so fine.
Tooling Overkill, React's complex array,
Build tools, linters, configs in disarray.
Svelte's streamlined setup leads the way,
No more intergalactic code buffet.
Debugging Headaches, React's mysterious realm,
Complex state, intricate components overwhelm.
Svelte's predictable model, a soothing helm,
Debugging becomes a peaceful realm.
In the end, React, a complex labyrinth we explore,
Svelte's elegance and simplicity we adore.
If only React could learn, its problems to deplore,
A brighter future, for React we'd implore.3 -
I hate tooling around Scala with libGDX so much - Gradle, Gradle Android plugin and ProGuard are just awful.
For example today I got during compilation: "Warning: Exception while processing task java.io.IOException: Please correct the above warnings first."
Grepping build log for (case insensitive) "warn" returns only the message above to correct warnings.
What the hell? I am required to correct not existing or invisible warnings or what? I hate you Gradle and ProGuard, I really do! >:( -
So I was tooling through the same dumb crap again looking at the same posts and watching as people just for some reason do the same things as we no longer try to solve the problem of the country getting bankrupted which they cause and I feel an almost total lack of any or all motivation to do anything.
why should I ?
people are chomping at the bit to ruin our country and have succeeded for some time now.
our courts are corrupt
our government is bullshit
the young and old are all garbage
and noone seems interested in time progressing because there is always some other dumbshit
age group reaching maturity being told the most obscene explanations for things.
its like i'm mad max discovering the airplane cult !
and yeah I like what i'm looking at exactly this moment, but its not worth what it costs in the absence of a real economy.
I want to move forward with life and retain a life the only way these bastards coerce people to engage in their weird ordered tyranny is by removing their ability to have a normal life.
fuck you people.
additionally, fuck your arranging the most obsene aspect of your whore trade beside the one normal people would want !1 -
Dear real estate industry,
if you define a horrible exchange format as CSV file. Then fucking stick to that specification or give me access to your horrible 90s style tooling so I can at least figure out why every crap tool exports in a slightly different way.
How in the world am I supposed to map your data if you keep changing the field count (which is the only way of validating an exported file).
You pretend to be innovative by specifying an industry wide standard but you aren't able to stick to it.
Fuck you, and the one guy "developing" the specification. Seriously... One guy has the responsibility? Do you really think that's a good idea.
Get your shit together!
Yours,
every developer working in your industry3 -
[opinions welcome]
I'm just furious right now!!!
So I'm on this project where we have to make a whole *very old* website look like it's brand new.
Thing is, the whole point of the project is to make exactly the same pages as on the existing website smh. No UX or UI suggestions.
Just put the navbar in a component that looks like a tab bar, who cares anyway!?
Btw, I'm in charge of the UI.
My colleagues and I (mostly my colleagues) made a react components library and we use it for this project.
Fucking inputs get thrown into tables and all that, but hey, that's what the client asked for.
So here I am with my shiny new page, and I just hand it over to the front-end dev who just arrived.
She's supposed to feed in the data.
I don't give a fuck you use flow or redux or whatever fancy tooling.
Just call your back-end, get the data, format it and feed my damn table with it. That's it.
So today, after 5 weeks she's in, she calls a meeting where she's screening a presentation to the team complaining about how long it took her to understand what I did and change it completely.
Pieces of code on screen, saying it's crap and it shouldn't be like that.
I'm not responsible for inputs in fucking table, the client is!
Of course I have nested components with data passed through all the way: it's a series of fucking radio buttons within a table within a form!
During 5 weeks, yoy didn't even come to me once saying it's not what you expected or you're having trouble with my work!
And there we blaming my job like I'm the bad guy?!
Tonight, everyone's going home thinking I'm no good at what I do and completely lost, all because of her.
If you got this far, I'd like to hear from you on how I should act with her and how to tell her what she did is awfully wrong?4 -
Projects with more tooling than Tim Alan and more magic in it than Aladins lamp ... #autoGenetateAllTheThings1
-
When a non-dev manager invites you to a 'brainstorm' so that you can tell him how to design his team's architecture and tooling.
I didn't realize you wanted to promote me and give me a raise first.... -
Is there anyone who switched from Java backend (Spring Boot) to Nodejs? If yes what was your experience? Some people say it's a downgrade because of lower performance and less specialized tooling want do you think about that? Also what about salary? Is it the same level?11
-
So apparently my code went to prod more or less all right. Phew, the deadline was this week-end. This project have been sitting there for month, they gave me the technical requirement and never bothered to ask the stakeholders about it. When the contract went in, they started to freak out it wasn't usable.
The thing is, this project had way more moving part and trying to threat video in the frontend is not the easiest. But now is REFACTOR TIME.
I dream of getting rid of the browser video api (too flaky), download the bitmap directly and render it in requestAnimationFrame. I call it just-in-time rendering. I think i'd need to put a decoder in aws, I did it already with ffmpeg. I could not manage to put it in streaming mode though, so it was still a bit slow, but i could decode, write and re-encode faster than the video player speed.
What do you lads think? Doable or not? I at least need to general tidy up (this codebase have grown organically without any fucking direction from above, like this project took all my time on the technical side, I did not have time to run after people to get specs), centralizing state, improve monorepo and tooling, perfs,...
Hopefully they understood i cant keep adding whatever feature they want today. -
Everyone else complains about the lack of tooling, shitty online tools or technical analphabetic coworkers. While all of these happen to devs, they're much, much rarer.
-
So I've been working with heavily data centric applications for 15 years or so. And I must say moving our data warehouse into the G Cloud was the worst idea ever. No tooling, everything is barely working, debugging is a nightmare.
If you are thinking about it, just don't.3 -
That no one can agree to write code the same way, use the same framework, or use the same tooling. Thank you js fatigue.
-
Wanted for once use FireFox for dev / tooling.
Welp, it only took 1 page load to see why devs don't use it :
There is NO information on how long an ajax request took.
A lot of useless stuf like "Destination IP" (Who the fuck cares?) or "Initiator" (I already know where it started, I want to iknow how long it took).
That concludes my try to work with a non chromium browser and i'm sad. because chromium is a new IE6.
Don't belive me ? Look how websites manages checkboxes. Yes that's right with ::before and ::after.
These pseudo elements SHOULD NOT work in <input>. But they do in chromium. Which basicly a deal break to use firefox for our users.
Fuck you chromium. IE6 bis i'm gonna call you now
And FireFox : Please, just COPY dev tools of chromium, yours are unusable.
Ok, I feel better, going back to my bug.2 -
Area of focus: Tooling
Why?: Because I don't like to work on big projects. It is fun to create tools from scratch by myself