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 - "versioning"
-
Today I learnt from a more experienced Dev that using git as versioning system makes the code open source.18
-
Fuck the memes.
Fuck the framework battles.
Fuck the language battles.
Fuck the titles.
Anybody who has been in this field long enough knows that it doesn't matter if your linus fucking torvalds, there is no human who has lived or ever will live that simultaneously understands, knows, and remembers how to implement, in multiple languages, the following:
- jest mocks for complex React components (partial mocks, full mocks, no mocks at all!)
- token cancellation for asynchronous Tasks in C#
- fullstack CRUD, REST, and websocket communication (throw in gRPC for bonus points)
- database query optimization, seeding, and design
- nginx routing, https redirection
- build automation with full test coverage and environment consideration
- docker container versioning, restoration, and cleanup
- internationalization on both the front AND backends
- secret storage, security audits
- package management, maintenence, and deprecation reviews
- integrating with dozens of APIs
- fucking how to center a div
and that's a _comically_ incomplete list; barely scratches the surface of the full range of what a dev can encounter in a given day of writing software
have many of us probably done one or even all of these at different times? surely.
but does that mean we are supposed to draw that up at a moment's notice some cookie-cutter solution like a fucking robot and spit out an answer on a fax sheet?
recruiters, if you read this site (perhaps only the good ones do anyway so its wasted oxygen), just know that whoever you hire its literally the luck of the draw of how well they perform during the interview. sure, perhaps some perform better, but you can never know how good someone is until they literally start working at your org, so... have fun with that.
Oh and I almost forgot, again for you recruiters, on top of that list which you probably won't ever understand for the entirety of your lives, you can also add writing documentation, backup scripts, and orchestrating / administrating fucking JIRA or actually any somewhat technical dashboard like a CMS or website, because once again, the devs are the only truly competent ones - and i don't even mean in a technical sense, i mean in a HUMAN sense of GETTING SHIT DONE IN GENERAL.
There's literally 2 types of people in the world: those who sit around drawing flow charts and talking on the phone all day, and those WHO LITERALLY FUCKING BUILD THE WORLD
why don't i just run the whole fucking company at this point? you guys are "celebrating" that you made literally $5 dollars from a single customer and i'm just sitting here coding 12 hours a day like all is fine and well
i'm so ANGRY its always the same no matter where i go, non-technical people have just no clue, even when you implore them how long things take, they just nod and smile and say "we'll do it the MVP way". sure, fine, you can do that like 2 or 3 times, but not for 6 fucking months until you have a stack of "MVPs" that come toppling down like the garbage they are.
How do expect to keep the "momentum" of your customers and sales (I hope you can hear the hatred of each of these market words as I type them) if the entire system is glued together with ducktape because YOU wanted to expedite the feature by doing it the EASY way instead of the RIGHT way. god, just forget it, nobody is going to listen anyway, its like the 5th time a row in my life
we NEED tests!
we NEED to know our code coverage!
we NEED to design our system to handle large amounts of traffic!
we NEED detailed logging!
we NEED to start building an exception database!
BILBO BAGGINS! I'm not trying to hurt you! I'm trying to help you!
Don't really know what this rant was, I'm just raging and all over the place at the universe. I'm going to bed.20 -
With all the major library/framework overhauls in the JS community, I feel we may need to start versioning in our resumes:
angular@2.4
react-router@4.0.0-alpha.5
jest@19.0.2
..6 -
Just joined a new job. Got into a team of 10+ devs working on one code base. Its spread across many cities and few devs sit together.
They've been versioning their code by mailing each other .zip files of the entire 400MB code base at the end of each day.
Me: Can we have git or svn please?
Manager: SVN? Don't worry about that now, we'll get SVN when the project is finished.
Managed to get an SVN repo running after 2 weeks. FML.17 -
Holy donkey nuts, I get too scared to leaved unpushed code when I take a coffee break.
https://webcache.googleusercontent.com/...19 -
Just started my new position and discovered that company's tasks, bugs & versions are managed in single Google Doc 😐8
-
FUCK VISUAL STUDIO ANBD EVERYTHING IT FUCKING STANDS FOR. PIECE OF SHIT IDE CANT HANDLE MORE THAN THREE FUCKING WINDOWS AT A FUCKING TIME WHY CANT A BILLION DOLLAR MOTHERFUCKING COMPANY MAKE COMPETENT SOFTWARE FOR ONCE? WHY IS MICROSOFT SO FUCKING AWFUL IN EVERYTHING IT DOES? WHY THE FUCK IS THERE NO AUTOMATIC VERSIONING LIKE EVERY CIVILIZED BASIC FUCKING IDE THAT EVER EXISTS? WHY DO I HAVE TO FUCKING MANUALLY VERSION MY FUCKING FILES? WHY THE FUCKING FUCK IS VISUAL STUDIO FUCKING GOING TO A FILE I USED 300 YEARS AGO WHEN I DEBUG AN APPLICATION? MOST USELESS, UNINTUITIVE PIECE OF SHIT SOFTWARE IVE EVER USED. IF YOU ARENT USING SOME GODDAMN SERVER SOLUTION TO KEEP TRACK WITH YOUR PROJECT VERSIONS, GOOD EVER FUCKING LUCK RECOVERING LOST CODE BECAUSE FUCKING MICROSOFT CANT DO WHAT FUCKING INTELLIJ DID 5 MILLION FUCKING YEARS AGO24
-
COVID variants should adopt a semantic versioning, rather than using greek alphabetics.
COVID v.19.2.34
COVID V.22.1 Beta (testing in US)
COVID v.22 release 1 (being tested somewhere in London)
COVID v.22 nightly builds (still brewing in China)6 -
Manager: "We can't have new releases breaking older versions of the mobile app!!!!! We'll lose all our customers!!!!"
fullStackChris: "That's fine, we can do API versioning, but it will take some time to implement, I'll have to be quite careful and write some tests to implement it. Probably 2-3 weeks..."
Manager: "NO WAY, THAT TIME ESTIMATE IS WAY TOO LONG, WE DON'T HAVE TIME FOR THAT!!!"
fullStackChris: "So how do you wanna support multiple versions of the app without doing any sort of versioning?"
Manager: "...we'll think of something!"
Dev: "..."
And with 99% certainty, I expect to hear this in a week or two:
Manager: "fullStackChris, we'd like to introduce you to the highly technical concept, API versioning. It's a way to version the API so we can support multiple versions of the application our customers use! It's amazing! Please implement this immediately so we can support multiple versions of the application!"
Sigh... each day managers learn a bit more how physical reality works... you can't have your cake and eat it too.7 -
Fuck npm and the whole npm community!
Seriously, what a piece of completely uncontrolled cat litter!
First experience was getting malware from an npm package which I ranted about a while ago. That it can even happen is beyond my imagination.
Second experience was today when our app broke because a fucker who wrote a library doesn't understand semantic versioning.
If you're gonna publish an npm library, please do the whole fucking world a favour and learn how to version your shit correctly, so my app doesn't break! If you do BREAKING CHANGES don't change the fucking last version number you filthy piece of garbage!
Phew, that felt good 😧3 -
Developer came to our area to rant a bit about a problem he was having with Xamarin. A particular android device was receiving a java runtime error trying to de-serialize data from a WCF contract. What he found was not to use WCF and use WebAPI (or a simple REST service that sent back/forth JSON).
When he proposed changing the service (since the data transport didn’t really matter, he could plug the assembly into a WebAPI project in less than an hour), the dev manager shot down the idea pointing him to our service standard that explicitly stated no WebAPI (it’s in bold letters).
I showed him the date on the “standard”, which was 5 years ago. We have versioning on our sharepoint server, so I also him my proposal notes on the change request document (almost two years before that) stating we should stop using WCF in favor of REST based web standards. Dev manager at the time had wrote in his comment “Will never use REST. Enterprise developers prefer RPC.”
He just about fell over laughing when I showed him this gif.2 -
College can be one of the worst investments for an IT career ever.
I've been in university for the past 3 years and my views on higher education have radically changed from positive to mostly cynical.
This is an extremely polarizing topic, some say "your college is shite", "#notall", "you complain too much", and to all of you I am glad you are happy with your expensive toilet paper and feel like your dick just grew an inch longer, what I'll be talking about is my personal experience and you may make of it what you wish. I'm not addressing the best ivy-league Unis those are a whole other topic, I'll talk about average Unis for average Joes like me.
Higher education has been the golden ticket for countless generations, you know it, your parents believe in it and your grandparents lived it. But things are not like they used to be, higher education is a failing business model that will soon burst, it used to be simple, good grades + good college + nice title = happy life.
Sounds good? Well fuck you because the career paths that still work like that are limited, like less than 4.
The above is specially true in IT where shit moves so fast and furious if you get distracted for just a second you get Paul Walkered out of the Valley; companies don't want you to serve your best anymore, they want grunt work for the most part and grunts with inferiority complex to manage those grunts and ship the rest to India (or Mexico) at best startups hire the best problem solvers they can get because they need quality rather than quantity.
Does Uni prepare you for that? Well...no, the industry changes so much they can't even follow up on what it requires and ends up creating lousy study programs then tells you to invest $200k+ in "your future" for you to sweat your ass off on unproductive tasks to then get out and be struck by jobs that ask for knowledge you hadn't even heard off.
Remember those nights you wasted drawing ER diagrams while that other shmuck followed tutorials on react? Well he's your boss now, but don't worry you will wear your tired eyes, caffeine saturated breath and overweight with pride while holding your empty title, don't get me wrong I've indulged in some rough play too but I have noticed that 3 months giving a project my heart and soul teaches me more than 6 months of painstakingly pleasing professors with big egos.
And the soon to be graduates, my God...you have the ones that are there for the lulz, the nerds that beat their ass off to sustain a scholarship they'll have to pay back with interests and the ones that just hope for the best. The last two of the list are the ones I really feel bad for, the nerds will beat themselves over and over to comply with teacher demands not noticing they are about to graduate still versioning on .zip and drive, the latter feel something's wrong but they have no chances if there isn't a teacher to mentor them.
And what pisses me off even more is the typical answers to these issues "you NEED the title" and "you need to be self taught". First of all bitch how many times have we heard, seen and experienced the rejection for being overqualified? The market is saturated with titles, so much so they have become meaningless, IT companies now hire on an experience, economical and likeability basis. Worse, you tell me I need to be self taught, fucker I've been self taught for years why would I travel 10km a day for you to give me 0 new insights, slacking in my face or do what my dog does when I program (stare at me) and that's just on the days you decide to attend!
But not everything is bad, college does give you three things: networking, some good teachers and expensive dead tree remnants, is it worth the price tag, not really, not if you don't need it.
My broken family is not one of resources and even tho I had an 80% scholarship at the second best uni of my country I decided I didn't need the 10+ year debt for not sleeping 4 years, I decided to go to the 3rd in the list which is state funded; as for that decision it worked out as I'm paying most of everything now and through my BS I've noticed all of the above, I've visited 4 universities in my country and 4 abroad and even tho they have better everything abroad it still doesn't justify some of the prices.
If you don't feel like I do and you are happy, I'm happy for you. My rant is about my personal experience which is kind of in the context of IT higher education in the last ~8 years.
Just letting some steam off and not regretting most of my decisions.15 -
I've optimised so many things in my time I can't remember most of them.
Most recently, something had to be the equivalent off `"literal" LIKE column` with a million rows to compare. It would take around a second average each literal to lookup for a service that needs to be high load and low latency. This isn't an easy case to optimise, many people would consider it impossible.
It took my a couple of hours to reverse engineer the data and implement a few hundred line implementation that would look it up in 1ms average with the worst possible case being very rare and not too distant from this.
In another case there was a lookup of arbitrary time spans that most people would not bother to cache because the input parameters are too short lived and variable to make a difference. I replaced the 50000+ line application acting as a middle man between the application and database with 500 lines of code that did the look up faster and was able to implement a reasonable caching strategy. This dropped resource consumption by a minimum of factor of ten at least. Misses were cheaper and it was able to cache most cases. It also involved modifying the client library in C to stop it unnecessarily wrapping primitives in objects to the high level language which was causing it to consume excessive amounts of memory when processing huge data streams.
Another system would download a huge data set for every point of sale constantly, then parse and apply it. It had to reflect changes quickly but would download the whole dataset each time containing hundreds of thousands of rows. I whipped up a system so that a single server (barring redundancy) would download it in a loop, parse it using C which was much faster than the traditional interpreted language, then use a custom data differential format, TCP data streaming protocol, binary serialisation and LZMA compression to pipe it down to points of sale. This protocol also used versioning for catchup and differential combination for additional reduction in size. It went from being 30 seconds to a few minutes behind to using able to keep up to with in a second of changes. It was also using so much bandwidth that it would reach the limit on ADSL connections then get throttled. I looked at the traffic stats after and it dropped from dozens of terabytes a month to around a gigabyte or so a month for several hundred machines. The drop in the graphs you'd think all the machines had been turned off as that's what it looked like. It could now happily run over GPRS or 56K.
I was working on a project with a lot of data and noticed these huge tables and horrible queries. The tables were all the results of queries. Someone wrote terrible SQL then to optimise it ran it in the background with all possible variable values then store the results of joins and aggregates into new tables. On top of those tables they wrote more SQL. I wrote some new queries and query generation that wiped out thousands of lines of code immediately and operated on the original tables taking things down from 30GB and rapidly climbing to a couple GB.
Another time a piece of mathematics had to generate all possible permutations and the existing solution was factorial. I worked out how to optimise it to run n*n which believe it or not made the world of difference. Went from hardly handling anything to handling anything thrown at it. It was nice trying to get people to "freeze the system now".
I build my own frontend systems (admittedly rushed) that do what angular/react/vue aim for but with higher (maximum) performance including an in memory data base to back the UI that had layered event driven indexes and could handle referential integrity (overlay on the database only revealing items with valid integrity) or reordering and reposition events very rapidly using a custom AVL tree. You could layer indexes over it (data inheritance) that could be partial and dynamic.
So many times have I optimised things on automatic just cleaning up code normally. Hundreds, thousands of optimisations. It's what makes my clock tick.4 -
Why do people version their code like they're learning to count? 3.0.0, 3.0.1, ..., 3.0.9, 3.1.0, 3.1.1, ...
And then I'm sitting there with 50+ websites, wondering if updating a plugin from 3.6.5 to 3.6.6 will patch my bugs, or completely break everything because of syntax changes11 -
My favourite devTool is VS Code, especially since the last update. But considering that versioning should be more important than a specific IDE, Gitlab is THE tool. I couldn't live without it. <3
-
This is something I'll never forget.
I'm a senior UI engineer. I was working at a digital agency at the time and got tasked with refactoring and improving an existing interface from a well known delivery company.
I open the code and what do I find? Indentation. But not in the normal sense. The indentation only went forward, randomly returning a bunch of tabs back in the middle of the file a few times, but never returning to its initial level after closing a tag or function, both on HTML and JS.
Let that sink in for a minute and try to imagine what it does to your editor with word wrapping (1 letter columns), and without (absurd horizontal scrolling).
Using Sublime at the time, ctrl+shift+P, reindent. Everything magically falls beautifully into place. Refactor the application, clean up the code, document it, package it and send it back (zip files as they didn't want to provide version control access, yay).
The next day, we get a very angry call from the client saying that their team is completely lost. I prove to the project manager that my code is up to scratch, running fine, no errors, tested, good performance. He returns to the client and proves that it's all correct (good PM with decent tech knowledge).
The client responds with "Yeah, the code is running, but our team uses tabs for version control and now we lost all versioning!".
Bear in mind this was in 2012, git was around for 7 years then, and SVN and Mercury much longer.
I then finally understood the randomness of the tabs. The code would go a bunch of tabs back when it went back to a previous version, everything above were additions or modifications that joined seamlessly with the previous version before, with no way to know when and so on.
I immediately told the PM that was absurd, he agreed, and told the client we wouldn't be reindenting everything back for them according to the original file.
All in all, it wasn't a bad experience due to a competent PM, but it left a bad taste in my mouth to know companies have teams that are that incompetent, and that no one thought to stop and say "hey, this may cause issues down the line".4 -
I don't know why I'm having this conversation so often lately.
Someone: "Hey, did you know that Microsoft said that Windows 10 would be the last version of Windows?"
Me: "Yes."
Someone: "But isn't that ridiculous? It would get old at some point, right?"
Me: "...have you heard of macOS X? It's also »the last version« of macOS. But it has still undergone a lot of changes."
Someone: "Hm... I haven't thought about that."
Seriously, just because a company says something would be the last version of a product, it doesn't mean they don't update it anymore, they just take that version, make it a brand and use a different number for versioning (macOS Mojave 10.14, Windows 10 1809, ...).
Companies really try confusing their users as much as possible, and it seems to work, because the convo mentioned above is just repeating so often at this point that it just has to be intentional confusion.7 -
@Apple iPadOS an iOS teams: you puZies.
You release one buggy iOS / iPadOS after another, each piling on features and bugs, without fixing crowd documented long standing defects.
But what really pisses me off is when you don't have the balls to own up to your mistakes. This is at least the 3rd time you have re-released an iOS / iPadOS update under the same version number. This time it is 14.5.1
I have iPadOS 14.5.1 installed and the iPad is now telling me I need to update to 14.5.1. Just own up to it, you released buggy shit and you need to release another bug fix days after... call it 14.5.2. Call it like it is and we respect you. Try to hide it and you lose our respect, you pussies.
If Microsoft did one thing right, they defined the release sequencing:
X.Y.Z
Changing X means rewrite the manual it is so new and improved (🖕🏻 you Adobe and FileMaker)
Changing Y means it is an update with more features than bug fixes but not a generational change that constitutes a rewrite of anything (🖕🏻 you macOS team for bastardizing with 10.X.Y)
Changing Z means you fixed your stuff, we respect you for owning up to your mistakes.
Man-up Apple, grow some balls and stop confusing people with trying to cover up your screw ups. It's all about the Z.3 -
One of my project managers wanted a feature where the user can save over files without having to delete all information of the previous file and that they could go through previous versions. So I told him, "Okay, what you want is a versioning system." Then he proceeded to say no and describe the exact same thing as a versioning system. I wanted to yell at him that that's exactly what he wanted but kept my mouth shut because there is no point in continuing the conversation.2
-
Why is it that pretty much zero package & framework maintainers understand semantic versioning?
1. If you do a complete rewrite of your package, but the resulting API is identical, you don't need to bump to the next major version. As a user, I'm thankful for your increased performance or cleaner internal code, but it doesn't really affect my update process.
2. If your package required some-framework 6.0.0, and now ALSO supports some-framework 7.0.0 but is still compatible with 6.0.0, you don't need to bump to the next major version. As a user, I can now upgrade the framework, and know that the package will keep working, but otherwise it doesn't really affect me.
3. Following your versioning along with the framework/language version is super annoying, especially if your library really doesn't need to differentiate between framework versions because it's not actually utilizing new framework functionality.
4. On the other hand, if you stop supporting a certain language, framework or shared library version, or change the public methods, exceptions, fields, etc, you MUST bump to a new major version.
Yet everyone gets this wrong.
For example, many of Laravel's underlying subpackages (for collections, filesystem, database, config, http, mail, etc) do not change their code in a breaking way, or do not even change at all between major framework versions.
Yet they follow along with the major framework version.
Now if someone makes a library "laravel-elasticsearch" which uses the support libraries and collections from laravel, they need to update their package to move along with the versions as well, and often they choose to number their library along with the framework in turn.
This means that to update the framework, you also need to update over 9000 dependencies.
FOR NO FUCKING REASON. THE ONLY CHANGE IN THOSE FUCKING DEPENDENCIES IS TO UPDATE COMPOSER.JSON TO BE COMPATIBLE WITH THE FUCKING FRAMEWORK.
Meanwhile, Laravel itself breaks repeatedly on minor/patch version updates, because breaking changes slip through their review process.
Ugh.3 -
(New account because my main account is not anonymous)
Let's rant!
I'm 3 exams away from my CS degree, I've chosen to do some internship instead of another exam, thinking was a great idea.
Now I'm in this company, where I've never met anyone because of pandemic. A little overview:
- No git, we exchange files on whatsapp (spicy versioning)
- Ideas are foggy, so they ask for change even if I met their requirements, because from a day to another they change
- My thesis supervisor is not in the IT field, he understands nothing
The first (and only) task they gave me, was a web page to make request to their server, fetch data etc.
Two months passed trying to met their requests, there were a lot of dynamic content changin on the page, so I asked if I could use some rendering framework to make the code less shitty, no answers.
I continued doing shitty code in plain JS.
Another intern guy graduated, I've to mantain his code. This guy once asked me "Why have you created 8 js modules to accomplish the web page job?", I just answered saying that was my way of work, since we're on the same level in the company I didn't felt to explain things like usability, maintainability etc. it's like I've a bit of imposter syndrome, so I've never 100% sure that my knowledge is correct.
Now we came at the point where I've got his code to mantain, and guess what:
900 lines of JS module that does everything from rendering to fetching data..
I do my tasks on his code, then a bug arises so the "managers" ask him what's happened (why don't you ask to me that I'm mantaing is code!?!?), he fixes the bug nonetheless he finished his intership. So we had two copies of the same work, one with my job done and still with his bug, and another one without my work and without the bug.
I ask how to merge, and they send me the lines changed (the numeration was changed on my file ofc, remember: no git...)
Now we arrive today, after a month that they haven't assigned any task to me and they say:
"Ok, now let's re-do everything with this spicy fancy stunning frontend framework".
A very "indie" Framework that now I've to study to "translate" my work. A thing that could be avoided when I've asked for a framework, 2/3 MONTHS AGO.1 -
hey google, make my life harder. let's have an SDK version, then a corresponding android version, and finally a clown name like cotton candy or oreo or whatever so I always know exactly what version I'm working with without confusion 🙄🤡1
-
Soooo it's Monday........ 🤯
@C0D4 started the day fixing current projects defects (4 tickets smashed before coffee 💪)
Then after coffee, run a test coverage report and see a significant decline over the past few months, so spends a couple hours adding more tests to get some areas filled in - meh, nothing like 50+ lines per test... to test a if() statement but whatever - complex scenarios will be complex to get too, but no my tests break and I'm missing data I didn't know about🤦♂️
So let's comment all that out, and go to lunch ... mmmm lunch.
Get back, start working on those again, and then get handed a new issue, so comment that all back out again, ( ok I know what you're thinking, but I'm working in an environment that does not use git for deployments - don't ask, real pain in the ass I haven't had time to invest into yet - but as code versioning only) anywho, starts to workout this new issue but don't figure it out, enter a 30 minute meeting.................. yea that was 2 hours later but was a very practical whiteboard session only to work out I have something like 16-20 weeks of work over 4-5 projects to get out in like 6 weeks... hahahahahahaha fml..... oh and that's excluding another project which had a 6 weeks of work in the pipeline to get to somehow.... I'm not seeing this one happening, and probably conflicting projects needed on top of that down the track... but we'll leave those out for now!
Whoot is fucking home time!!!
🤷♂️I'm starting to think I'm like a team of 5-10 devs right now, maybe I should start asking for 5-10x more 😏
#letsBringOnTuesday!!!!4 -
QA: “not accepted since text differs from specs.”
Me: “but... the text comes from specs, I copy pasted it yesterday, wtf?”
*checking specs versioning*
Specs updated 1 hour ago
Having to input text from jira to the language strings cause design’s too lazy to do it themselves is stupid enough, but the good old “specs changed after the feature is done” gig is a must... to remember you why you hate working for someone.13 -
Colleague: No the logic is stored in post_2.php but before you edit it make sure you make a post_2.bk.php just in case we need to revert the change.
Me: ....k4 -
Ok. FUCK MySQL Workbench.
Most of our products built on MySQL and we just had enough of the tools that we are using for our mysql databases...
We decided to make our own tool :)
If it goes well, we plan to open source it. Would you guys be interested in it?
We planned the following features:
1. Schema editing
2. Schema versioning
3. Update/downgrade script generation to move easily between schema versions
4. Manual/auto sync
5. Might include our own replication solution too...
What do you think?10 -
Versioning that raises no questions for most of the world. The majority can't be wrong, eh?
1.0
2.0
2.1
3.0
3.1
3.2
95
98
2000
1000 (M)
10 (X)
5 (V)
7
8
8.1
10
1110 -
SVN.
Nothing good comes with GUI for version control except for the graphs of branches. And this little tortoise thinks it's the shit.6 -
I like js and node in general.
But there's this thing I hate about NodeJs...
The blogs. The goddamn blogs.
Every goddamn blog post. Is code. Dozens of lines of code.
Oh, so you want X feature? Just copy paste this shit.
I swear to god, blog posts are the source versioning system to these people.
What they should instead is
a) Create a package.
b) Add tests to it.
c) Present the package to the reader with some minimal code.
But I'm a getting a huge impression that node blog writers want you to copy the code in their post, paste it in your project, and be happy with it.
Now, I'm not assuming that every person posting in medium.com is a software engineer (and by engineer I mean an engineer, not some fuckwad who begs for github stars on dev communities).
The problem to me is that they fucking SATURATE the goddamn search results.
The same goes for finding an npm package for your need, because there are so many low quality packages it's saturated too, you have too plow this stinking pile of projects that have very low quality,
and there's not a really good npm finder out there. Half of them are dead, some look and load like shit, and npm search has a low barrier for good code.
Me on rails, OTOH "ok, I need this thing", I google that and I swear to [-∞,+∞] I find GOOD packages, well designed, no cookie cutter bullshit, no obscure marketing shit on the README.md, it is very clear what this shit does, and the api is designed for HUMANS.
and it actually takes very little time to know if there's no such package.
I don't have to read dozens of fucking my-fuck-blog.io (jesus christ, the io domain has become such a fucking joke, it got fucking abused to death, there are some cool sites out there using it, but my god, James H. Marketing likes to just absorb everything he can, and the internet was not going to be a fucking exception)
does all of this make sense?3 -
Employer: Hey, we are moving an API update live tomorrow morning that could affect our apps. Can you regression test the apps to make sure they all work?
Me: The API team is pushing code overtop of live endpoints that can break them?
Employer: Yes, we need the updates to work with a new product we are developing.
Me: And nobody thought about versioning these endpoints so we guarantee uptime on all existing services using them now?
Employer: We looked at that but it cost extra and required us to use the cloud solution so we don’t use versioning.
Me: Okkk… I also take it that the API’s don’t have integration tests written?
Employer: What are integration tests? Are unit tests the same thing?
Me: No, so when do I need to regression test all 7 production apps?
Employer: The API’s are moving to production at 4am and we need it signed off by 7am.
Me: I only have 3 hours to regression test 7 production apps at 4am? Each app, if I just skim over them, would take me 2 hours each. I will do my best but that’s a very short time to ensure complete functionality.
Employer: Don’t you have unit tests?1 -
Okay...
I can understand, that you´ve never used a file versioning system.
But why the everloving fuck would you commit EVERYTHING BUT the files you have added or edited???
Don´t you have some common sense?
The hell is wrong with you?
(My thoughts after seeing the last commit of the new intern...)9 -
Constructors, generics, collections, package versioning, immutability, syntactic sugar, option types? Meh.
Unused imports? NEVER!
#golang -
Fuck me. I have to update an Android app I have built 2 years ago. So much have changed, I need to update pretty much every dependency I have and no library seems to compile with the latest Android SDK yet.
I feel like Dr. Strange living the 14,000,605 possibilities when trying different library versions.
It's probably easier to rewrite everything. Now in Kotlin.1 -
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 -
Not really a rant and not very random. More like a very short story.
So I didn't write any rant regarding the whole Microsoft GitHub topic. I don't like to judge stuff quickly. I participated in few threads though.
Another thing is I also don't use GitHub very much apart from giving 🌟 to repos as a bookmark. Have one hobby project there. That's all. So I don't worry that much. I'm that selfish and self concerned. :3
I was first introduced to version control system by learning how to use tortoisesvn around 2008. We had a group project and one of the guys was an experienced and amazing programmer unlike the rest of us. He was doing commercial projects while we were at our 1st and 2nd year. Uni had svn repo server. He taught us about tortoisesvn. He also had Basecamp and taught us how to use it as well. So that's how I learned the benefits of using versioning tools and project management tools. On side note, our uni didn't teach any of those in detail :3
After that project, I was hooked to use versioning tools. So until school kicked me out, I was able to use their svn server. When I was on my own, I had to ask Google for help. I found a new world. There are still free svn services that I can use with certain limited functions. That's not the new world; I found people saying how git is better than svn in various ways. It was around 2010,2011.
At first I was a bit reluctant to touch git because of all the commands in terminal approach. But then I found that there is tortoisegit. I still thank tortoisesvn creator for that. I'm a sucker for GUI tools. So then I also have to pick which git servers to use. Hell yeah, self hosted gitlab is the way to go man. Well that's what the internet said. So I listened. I got it up and running after numerous trial and error. I used it briefly. Then I came back to my country on 2012-2013; the land of kilobytes per minute (yes not second, minute).
My country's internet was improved only after 2016. So from 2013 to 2016, I did my best not to rely on internet. I wasn't able to afford a server at my less than 10 people, 12ft*50ft office. So I had to find alternative to gitlab which preferably run on windows. Found bonobo and it was alright. It worked. Well had crazy moments here and there when the PC running Bonobo got virus and stuff. But we managed. We survived. Then finally multi national Telecom corporates came to our country.
We got cheaper and faster mobile data, broadband and fiber plans. Finally I can visit pornhub ... sorry github. Github is good. I like it. But that doesn't mean I should share my ugly mutated projects to the rest of the world. I could keep using Bonobo but it has risks. So I had to think for an alternative. I remembered that gitlab didn't have cloud hosting service when I checked them out in the past. So I just looked into Bitbucket and happy with their free plans of 5 users and unlimited private repos. I am very very cheap and broke.
That's why I said I don't really care that much about the whole M$GitHub topic at the beginning. However due to that topic, I have visited GitLab website again and found out they have cloud hosting now and their free plan is unlimited users and unlimited repos. So hell yeah. Sorry BB. I am gonna move to cheaper and wider land.
TL;DR : I am gonna move to GitLab because of their free plan.4 -
I was working with a stable installation of an elaborated platform. Some plugins were installed. After upgrading the installation by 2 patch level the customer registration was not working anymore.
In these two patch level a method in an interface got an additional optional parameter which had a major impact on the behaviour the implemented method. A plugin decorated the implementation without knowing about the new parameter. Therefore when calling the method the decorating class did not pass the new parameter in to the decorated implementation and the fallback value was given instead.
The caller expected the method to do something and did not branch into an alternative way but the default value disables the expected behaviour. Eventually nothing happened.
Breaking changes in patch levels woop di fucking do.2 -
Colleagues of mine, even though they show signs of versioning their api by having "v1" in the URL, keep committing breaking changes to that version. 😂1
-
Does anyone else find it super-confusing how Microsoft refers to SQL Server versions by both product year and version number?
For instance, we primarily use SQL Server 2012, 2014, and 2017, which are versions 11, 12, and 14 respectively.
The slight mismatch between the product year and the version number creates a lot of ambiguity. If someone refers to SQL Server "14," we always have to double-check: do you mean 14 as in version 14 as in 2017, or 14 as in 2014 as in version 12? Does SQL Server "12" mean 12 as in version 12 as in 2014, or 12 as in 2012 as in version 11? It's ridiculous!3 -
hey... can I build a FUCKING android image that uses a camera library?
react-native-camera: deprecated, no longer maintained
react-native-vision-camera: it's like globalthermonuclear war with versioning and patches and support and splat splat bullshit in that repo, don't even dare look at the issues there, trust me, please
react-native-camera-kit: doesn't compile for targetSdk 33, no matter what the FUCK you do
jesus christ i want to scan a fucking QR code with my app and my gradle configs have turned into world war III where the fuck did we go wrong folks8 -
Working on another SaaS product, and now I've run into a "fun" conundrum that is hard to determine cleanly in an automated fashion.
I'm certain it's stupid bullshit opinionated conventions like this as to why so many devs are driven to burnout and bitterness...3 -
So, I spent the last two days hunting down a bug about some of the static assets not getting versioned.
It turned out to be a mistake by some newbie missing a quote in html. The html parser responsible for versioning the assets broke once it ran into that bad html.
Somehow, I don’t feel satisfied. I guess I shouldn’t hope for big reasons for seemingly big problems. -
Hello all,
I am an apprentice, 19. I joined this software developer apprenticeship to leave college as it was not particularly great for my mental health, and programming is the only thing I can do reasonably well.
The company that I find myself in is a strange one. It has about twenty or so employees, but we all instructed to operate as if we are a giant company—our sales person, for example, will tell our clients that we have hundreds.
The development team is a collection of software developers. There is no database administrator, network administrator, software engineer (not in name only), test engineer, requirements engineer, etc. There are just several software developers. Of these developers, one has left by now. When he joined, he was promised to be working on a new system: he left after spending seven years on an old system. A new developer has just arrived to replace him: he was told he would be working with Raspberry Pis; it was interesting to see his face after we informed him that we do not use Raspberry Pis.
The codebase is fourty-years-old and written in Delphi, which is some kind of cousin of pascal, from what I understand. Code is not peer-reviewed. Instead, it is self-reviewed, and you just push whatever changes you make. The code is very much spaghetti, and there is a whole array of bugs that, at least to me, look impossible to track down and fix. I have a bug assigned to me at the moment were someone appears somewhere when they are not supposed to. After asking seniors about this, I learn of this huge checking mechanism and all of its flaws: a huge, flawed checking mechanism... for toggling a single boolean value. This isn't a complicated boolean value, by the way, this is just a value to say whether someone has clocked in or clocked out of a building, via a button.
In terms of versioning, we have several releases, and we often do development work in older releases (or new releases and then write them into older releases) because our clients are larger than us and often refuse to upgrade, and the boss does not want to lose any contracts. We also essentially have multiple master branches.
With the lack of testers, bizarre version control, what appears to be unfiffled promises to staff, etc. I must ask that, since this is my first gig as a software developer, is any of this normal?2 -
Project: Angular 11
Package doc 2.1: For Angular 13+
Package release 2.1: For Angular 12+
Me: Well, this package solve our problem but it need Angular 12 or 13 to run, so do we go for 13 ?
Team: yep,the update is on schedule so take it and update it later.
Me: We can also go to 14 directly.
Team: No, we prefer LTS version
...some weeks later...
Team: Update to 13 complete !
Me: Yes ! Let's go !
...Install package 2.1...
... Compilation...
🚫 Angular 14 is required for version 2.1
Me: are you fu***** kidding?
Final word: please, keep a good documentation on version requirements 😁
(The package has currently a 3.x in beta to solve the 2.1 angular 14 problem because why not 🤷) -
dear perl devs,
WTF is wrong with you.
some of your version numbers look like someone uses floats for money without knowing the dangers of it.
Some Examples:
2.000006
2.0030044 -
Old story, happened some way back. I worked part-time for a small web development company that did between other things something called SharePoint development, basically .net webforms with shit glitter on top of it.
The most weird part of it, was the fact that we were working on vms that hosted the app, it was our dev, test and staging environment, as well as were we showed the client the polished turd.
Did I say that it was on a vm? Well it was on a remote vm, that each of use had access to it, through our domain accounts, and they couldn't configure the windows server to accept more than two or three users at once to be connected.
That was our test enviroment and dev enviroment, sooo showing the app to the client meant for the rest of us to not write any code because it might crash or get stuck.
The app was accessible and discoverable by url and through google search from outside, I dont think that should have been allowed.
The most disastrous part was that we had NO source versioning whatsoever, just plain old copy and paste in different folders.
Deploying to client meant remoting to the clients host or whatever it was, and manually copying the source files
If someone wanted to debug the application you had to shout, and you also could hear it, in the office: "I'm debugging!" or "I'm deploying!". Because we were on the same machine, there was only one process with the server and it meant that if you debug or deployed it would block it for the others.
Should I talk about code quality? Maybe not.1 -
Someone asked for help to solve some errors on an angular app.
Me: sure np, send me the repo link to see what is the issue.
She: *proceeds to send me a 250mb rar*
Me: what is that? I prefer the repo so I can see the history please
She: got me there, haven’t versioned yet
Me: WHAT? You’ve been working for three weeks without versioning anything?
She: yep, because I can’t make it work so, why would I?
I really ask myself sometimes if we are in this world just to suffer.19 -
REST apis. More than you think it is.
Just because you can access a resource by a uri, doesn't mean you have a good api.
Hypermedia that shit and let websites reuse your links from api responses, then we are getting somewhere.
Also, Fucking api versioning.. Learned the hard way that /v1/ doesn't mean Shit in most cases -
I said I wanted Ubuntu, and I got Ubuntu 18.04
Why you might ask? Because the older LTS has features that have had more time for bugs to be fixed.7 -
How would you support multiple versions of an API and why?
- Multiple version instances behind a load balancer.
- Versioned controllers behind a proxy.
Curious to hear yours thoughts and reasoning.2 -
Long time ago I worked with a few developers on some relatively simple web project. We were using php and smarty and we used svn for versioning. At one point some dude joined the project as a php developer (with a few years of experience).
After a few days without any commits, we found out that he doesn't know what a SVN is or how to use it. After he learned how to use it we found out in our repo bunch of files with a following naming scheme:
filename.php
filename_1.php
filename_2.php
filename_3.php
filename_4.php
filename_5.php -
Longtime reader, first time ranter!
I'm just here to complain about how everyone at my company sets "latest" for every dependency.
This wouldn't be the worst thing in the world, expect that no one fucking manages their version numbers...everything is still 1.0.X where X is the build number. Even if there have been breaking changes. Even if it's been like 5 years since the repo was created... -
I wrote a tech book several years ago for O'Reilly, which itself was a dream come true. I'm still amazed I got that deal done, and the fact that my name was on a title with a unique animal on the cover is SUPER cool.
Back then, their publishing system was based on Git with their own markup language, and it was sort of a chore to use. Easy and straightforward, but laborious. I spent 3 entire days just (re)formatting my drafts to their code. They've upgraded it since, I see, based on the same fundamental versioning idea and still using Git. Neat!
I've also done tech writing for .NET Magazine, which used Word's change tracking, and penned articles for other publications using Google Docs, or even drafts in WordPress.
Have all of you run into interesting systems used by publishers to manage content?2 -
We are at the end of the school year, at least in France.
This is my recap of this shitty year.
My school try to teach programming, and that’s just a try.
Some of the dudes do not event know what a variable was.
For a second year university diploma, they don’t teach OOP, no Git, no DP, no JS, no clean code or whatever.
So at the end of the year, you’ll be able to code in procedural, no versioning, spaghetti code and a big mess in folder structure, lack of interactivity because of poor JS knowledge.
Well a codebase which makes you crying blood, literally.
And that’s what a second year university diploma ...
Fortunately for the most curious there’s so much to learn out of the school but, damn, why are some schools so retarded ?
For almost 8k€/year you just receive a piece of paper and you’re still a shit in your *suppose to be* job.8 -
I'm crying internally. The project(s) i work on have configuration files with dev and prod-info, the prod is just commented out. But thanks to reasons everyone has a different dev environment so there are many dev-config-blocks. I just use mine and carry on, BUT SOMEONE ALWAYS COMMITS THOSE FILES. I JUST THOUGHT OF IT NOW, BUT I'LL PUT THOSE FILES ON A BLACKLIST. FROM NOW ON YOU CAN ONLY COMMIT THESE FILES DURING A FULL MOON.
There's also this codebase to create licenses for our products. The license data fpr every customer is there, commented out. If you wanted to create another license, comment something and comment out another thing and you're good to go. THAT'S NOT WHAT VERSIONING IS FOR.4 -
Envy me. The fnew position I am getting spun up on has me assigned to take over the work of a guy who uses no versioning methodology and updates directly to production code. and I have to get it into CM!!!2
-
I really like my position as the head of my department. But I am most definitely hitting walls(and in some way breaking them) concerning the way the CTO(my direct boss) deals with a lot of the things that his management team wants to do.
For example, the previous manager could only do so much in terms of directing a software team since she did not have a formal background in computer science or engineering, thus the developers that she had would tell her the different deals with many things and she would have to take their word for it. Nothing necessarily bad with this, but it just meant that a lot of things could have gone smoother had she the knowledge to fix said items. Whenever she would try to use resources(dev time or such) the CTO will resort to the all powerful manthra of "if it ain't broke don't fix it!".
but it was about more than fixing things that were breaking, our internal services and admin boards were built using all of the WRONG proper development practices, it feels as if they took the book of best practices.....and said fuck it and did whatever the fuck they wanted. It is the worst PHP/Java/JS code I have ever seen in my entire life and the reason why even though I do not concur with it I will always understand the dislike from other developers. Our services look like something that came out from the 90s, no style, no engineering concepts in place, no versioning no testing NADA zip(these are all web based services)
One in particular, it was an admin board used internally to let students evaluate their professors, the entire app is shit, and it was broken, for some UNGODLY reason, the original dev decided to use some weird external libraries he got from some blog somewhere and as such something that would take about 5 or 6 files is now a mess with over 200 php/js files all over the fucking place. The CTO insisted on fixing them, they were all broken, and I continuously told him that redesigning the application would be faster.
Mofo fought me on it, and in the end I did what I wanted and rebuilt the app.
It took me one afternoon. One fucking afternoon, over possibly 2 weeks of fixing it.
See, I am not one to just do whatever he pleases, but I am firm in my belief that if I know a better way I will do it and save precious time. The dude had to agree with me on this and promised to consider this shit on other items that will undoubtedly come up. He was lying out of his ass but oh well..........
W3 -
Do you guys version pre-release projects (Beta, Alpha) as for instance “Beta 0.9”, or “Beta 1.9”? I’m asking because I don’t know which one seems more clear5
-
Angular 5 was just released! *Yay*
on a completely unrelated note: does anyone get the versioning/naming scheme of angular?8 -
so when someone in the office finds a funny design or absurd code on our sites we play a game we named roulette: we check the versioning system and find who did it... there is no price in this game, that shame is enough :)3
-
"Dear" tech lead... Editing Cloud Function with GCP's online IDE is not equivalent to versioning your code. Use a proper VCS dammit. It's fucking sprint 3 already... Ugh3
-
I just "had to" send a tutorial on semantic versioning to my boss the other day. he was like, wait, i thought we were further along than 1.1.1, didn't we release 1.0.11 before?
idiot.3 -
Facepalm Monday...
My collegue denies to provide breaking changes in our login API in a separate version to the other teams depending on it.
What is the reason for his stubborn rejection?
It's scrum. We haven't planned the effort for realising a versioning concept for our API.
Let's build it in the next sprint as a part of live deployment strategy.
The point he miss is that the ProductOwner wants his API change deployed during the next sprint.
Additionally, it is best practice, having a compatible, deployable product after each sprint, without any risks.
Furthermore, another best practice to provide your API is one URI without a version part holding the current development of the API. And URIs with a version part in it to keep a specific request/response structure and behavior.
What really grind my gears are sayings like 'if the other teams had well programmed their software, modifying our API won't have any effect on them'
C'mon dude. That's far from reality, as anybody knows.
I can't accept, we provide unprofessional API builds, as he is going to do.
So, i have to spend my time and energy to change his mind, together with other software-architects, planning the big thing API-Gateway *sigh*2 -
Looking to sharpen and pursue a SysAdmin/DevOps career, looking at online job offers to get the big picture of required skills and I say FUCK. It would take me a lifetime.
Azure, AWS, Google cloud platform.
CD tools: Ansible, Chef or Puppet
Scripting ninja with Python/Node and Shell/Power shell.
Linux & Windows administration
Mongo, MySQL and their relatives.
Networking, troubleshooting failure in disturbed systems
Familiarity with different stacks. Fuck. (Apache, nginx, etc..)
Monitoring infrastructure ( nagios, datadog .. )
CI tools: jenkins, maven, etc..
DB versioning: liquibase, flyway etc.
FUCK FUCK FUCK.
Are they looking for Voltron? FUCK YOU FROM THE DEEPEST LEVEL OF MY DEEP FUCK.1 -
We are working on an AngularJs 1.x project for a long time now. Maybe we’ll use it forever because we will never be allowed to rewrite the whole app with much timely tools 💆🏻♀️
-
I had to build a few packages today from a git source.
Everything just plain text or shell scripts - so no fancy shit, no buildsystem... Nothing.
I was painfully reminded why I had forgotten a lot about dpkg package builds.
Fun facts:
- seems like impossibro to define an output directory for debuild (../ from source which must be pwd/cwd)
- i used /opt/<vendor_name>... Purging the deb from system deletes opt too, as it is empty
- reprepro (or whateva it is called) fails with an "uncommon GPG error" instead of saying "I don't know which key to use"
- creating rolling release numbers (as the packages won't have a real versioning system...) is fun - when you remember that date isn't sufficient, as the time part is necessary to build multiple packages (versions) per day
Compared to an Gentoo ebuild, this was really rocket science....
Guess as soon as someone does not follow the debian way, he must be shunned and exiled. At least it felt like this ....
But it works now. Woohoo. *cries internally* -
Here comes my rant about versioning.
Why don't you use semver? Or something that makes fucking sense?
I've been banging my head against this lib that was required, wondering why the thing was crashing everywhere, for hours. Then I had to dig through its code, for a while too.
And then I finally discover that, from 1.3.9 to 1.4.0, half of the API changed and was backwards incompatible. Yay. Also, one would think that's a thing worth of mention in the docs, but why bother right?
Uggggh -
I've been working with Node and Typescript for a while now, and I wrote a wide array of very general utility functions. Examples include:
- Array.filter but you also get the residue array, it can also leave holes in both arrays if you want to join them later
- Array zipping and unzipping to and from tuples (especially valuable when you're manipulating the prop set with Object.entries() in a HOC
- Array maximum selection, with an optional mapper
- Cancelable promises, lazy promises, a promise that resolves when a given function on an object is called (excellent for DOM events), a timeout promise.
- A typed event with both immediate and microtask listeners depending on whether you need state guarantees (this idea I took from a Github gist and upgraded it)
I want to put them on NPM so I don't have to write them and their tests again, and so that if I ever think of an improvement it's easier to propagate it. Do you think I should release them as tiny individual packages which would be nice from a versioning standpoint, or should I make them into a compilation which would be a lot less work for me (and therefore would probably result in better documentation and more tests)?4 -
Here is a gem I found when looking at the previous offshore team's database.
So apparently they didn't know that SQL has an ALTER TABLE command to add new columns. So they created a brand new table, version 2, THEN migrated all the data over, every single time a new field was needed.
Then of course they had to update all their code that previously looked at the original table and the clients had to resync data onto the tablets as well.
Maybe they thought it was a good solution since they don't know what database versioning is (something they also manually implemented) or that ORMs exist.
**Sanitized the table names but kept the general structure, casing, etc
CREATE TABLE [dbo].[TVP_NameHere] AS TABLE(
[NameTime] [datetime] NULL,
[NameId] [int] NULL,
[somethingId] [int] NULL,
[fooId] [int] NULL,
[Time] [int] NULL
)
CREATE TABLE [dbo].[TVP_NameHereV002] AS TABLE(
[NewColumnHere] [int] NULL,
[NameTime] [datetime] NULL,
[NameId] [int] NULL,
[somethingId] [int] NULL,
[fooId] [int] NULL,
[Time] [int] NULL
)3 -
Java jdk 10 just came out, but I only just started moving my projects over to build under jdk 9.0.4.
Oh Java 11 is out in beta as well?
Version numbers mean nothing to me anymore.2 -
My manager asks, in Slack, if we can change the auto-tagger to update the patch instead of the minor version. I respond by saying, "Yes, it's in the Jenkisfile. Really we should switch to just <major.minor> and drop patch."
My manager asks why and I go on to say the last number is useless (unless you ship software externally and need to hotfix or security patch a minor release; internally they serve little purpose).
At my last job we dropped three numbers for two, and most other teams here only use two numbers.
He sends a link to the semantic versioning website.
The next day one of the other developers sends it to me in a private chat as a joke. 😂😅 I'm glad I'm not the only one who thinks our manager shouldn't be a manager. -
Drupal is such a fucking wortless and infuriating hinder in software development.
I've been a software developer for the past 6 years, I have worked with many different frameworks and technologies in both backend and frontend, such as .net, react, php, you get the idea.
In my current project, we have been forced to use Drupal as backend. Initially I had no complaints, but after trying to use it for the past month, I'm beyond mad at the ridiculous and overly complicated way of doing the most basic tasks in existence.
Not only is installing Drupal such a dependency hell, that we had to modify our entire ecosystem just to accommodate for Drupal's versioning, but it's just a crutch that we have to carry around and make ridiculous exceptions for.
I've seen other projects made in Drupal by professional companies, and not a single one of them actually makes use of the CMS that is meant to be the entire point of this piece of shit.
Instead, we have to make a regular backend database, force the PHP code into Drupal's modules and then try for the impossible of making use of the pointless structure system integrated in Drupal.
It's almost pointless since we still had to make a react application to actually do the pages, since Drupal is limited as hell when it comes to personalization.
Just to end up with this error message: "The website encountered an unexpected error. Please try again later." no explanation, no nothing, just going after an endless debugging using [drush] commands.
Anyway, I fucking hate Drupal7 -
When I said: "version numbers are cheap", I did not expect you to append new digits and identifiers to the existing versioning scheme.
-
My boss that push the code on production without versioning it.
I deleted all the changes, and the fault was mine, of course.1 -
Extremely frustrated with the release process and versioning system at my current company. Don't know if this is same everywhere or the half ass release managers can't think of a better way here.
Basically for any client raised issue that can't wait for next release are built as a hotfix. However hotfixes are never bundled togather or shiped to other clients. This is causing a vicious chain, two clients raise two separate issues on same version. Instead of fixing them as single hotfix (however minor the issues) we create two hotfix versions for each with only their issue. A week later same clients come back with the issue the other raised. Once again instead of bundling what is now effectively same code we build hotfixes on top of the clients respective branches. We now have two branches to maintain with same codebase. No matter how serious issue, the hotfix is never made generally available and always created on client's specific hotfix version.
Now that was an example for only two clients, in reality we have released five patch versions of a product in last 2 years. Each product version contains about a dozen artifacts (webapps, thick clients, etc) with its own version. Each product version being shipped to various clients. Clients being big banks never take a patch of product even if it fixes their issues and continues requesting hotfix. We continue building hotfixes on client branch and creat ever increasing tech debt. There is never a chance to clean up or new development. Just keep doing hotfix after hotfix of same things.
To top if all off, old branches are still in svn while new in git. Old branches still compile with ant new with maven. Old still build with java 5,6,7 while current with 8. Old still build from old jenkins serve pipelines while new has different build server. Old branches had hardcoded integration db details which no longer exists so if tou forget to change before releasing it doesn't work.
Please tell me this is not normal and that there are better ways to do this? Apologies I think I rambled on for too long 😅5 -
did on my last project:
1 .Using QA env as dev env
2. Deploy in production not completely tested stuff (90% tested)
3. Run with errors in prod
4. Manual fix in prod
5. Git versioning1 -
Random thoughts on more out of the box tools/environments.
Subject: Pharo
Some time ago I had shown one of my coworkers about Pharo and he quickly got the main idea behind it but mentioned how he didn't like the idea of leaving behind his text editor to deal with source code.
Some time last week I showed the dude some cool 3d animations you can do with Pharo while simultaneously manipulating the code to change them in real time. Now that caught his attention particularly and he decided he wanted to know more about the language but in particular the benefits of fucking around with an image based environment rather than a file based.
Both of us reached the conclusion that image based makes file based dev enviroments seem quaint in comparison, but estimated that it was nothing more than a sentiment rather than a fact.
We then considered what could be the advantage/disadvantages of such environments but I couldn't come up with anything other than the system not having something like Vim or VS Code or whatever which people love, but that it makes up for it with some of the craziest IDE tools I had ever seen. Plugins in this case act like source code repos that you can download and activate into your workflow in what feels something similar to VS Code being extended via plugins written in JS, and since the GUI is maleable as it is(because everything is basically just subsets of morp h windows) then extending functionality becomes so intuitive that its funny
Whereas with Emacs(for example) you have to really grind your gears with Elisp or Vimscript in Vim etc etc, with Pharo your plugin system is basicall you just adding classes that will convert your OS looking IDE into something else.
Because of how light the vm machine is, portability is a non issue, and passing pharo programs arround is not like installing Java in which you need the JVM.
Source code versioning, very important, already integrated into every live environment and can be extended to do pushes through simple key bindings with no hassle.
I dunno, I just feel that the tool is too good to be true. I keep trying to push limits into it but thus far I have found: data visualization and image modeling to work fine, web development with Teapot to be a cakewalk and work fine, therr are even packages for Arduino development.
I think its biggest con would be the image based system, but would really need to look into how this is bad by any reason other than "aww man I want vim!" since apparently some psychos already made Emacs and VS code packages for interfacing with Pharo source trees.
Embedded is certainly out of the question for any real project since its garbage collected and not the most performant cookie in the jar.
For Data science I can see some future, seems just as intuitive and interesting as a Jupyter Notebook actually, but the process can't and will not be the same since I still don't know of a way to save playground snippets unless you literally create classes for it, in which case every model you build gets saved inside of an object, sounds possible but, strange since it is not a the most common workflow in jupyter.
Some of the environment is sometimes glitchy, but it does have continuos development and have not found many hassles.
There is a biased factor from my side: I seem to be wired to understand the syntax and simple object model better than in other languages. To me this feels natural as if I was just writing ideas rather than code, mostly because I feel that there really ain't much in terms of syntax, the language gets out of my way and the IDE feels like the most intuitive environment in the world to me. I can see why some people would find it REALLY weird of counterintuitive tho.
Guess I really am a simple dude. -
Dependency hell - when you have a package you want to update and then you find out 3 other things depend on that version of that dependency and then your pretty much screwed so you just leave the original version of the package you were trying to update in place.
-
Folks, it's happening!
Look at this shit: they managed to create a web editor / infrastructure technology which enables you to write backends blazingly fast. No deploy time, no git (versioning with feature flags).
Sadly, this comes with the worst vendor lock-in ever. But it is still a great idea to take the approach to drastically remove complexity out of today's software.
https://darklang.com/
I am torn. But I would prefer if it was OSS of course (to be able to self-host it).7 -
When your colleague saves over your stylesheet wiping out hours of work...
Browser cache came to the rescue but still...5 -
Every fucking time I execute a program I’m popped up with yet another motherfucking update available, then after I wait for the fucking download to finish and the install to proceed I have to ‘voluntarily’ restart the system… and guess what? Windows needs to update now!!! AH! Fucking cocksuckers… If that can compare to harassment was Firefox does its plain old gang bang rape as it now forces the fucking updates.
I remember a time not long ago (I’m not that old motherfuckers) when the only update was a fucking major update namely one that allow software to either run on a new OS or work at all. Not a goddamned typo fix on the about page… FUCK OFFFFFFFFFFFFFF!!!!!2 -
I recently tried to prototype a few pages for a new webapp I'm working on and--because I'm a masochist--decided to try something other than Bootstrap. It seems that no one can support backward compatibility and even Foundation's examples don't work with their current version.
Folks, add new stuff all you want, but don't break what works. If you do, at least update your damn example code! -
3 release branches for version 3.4. All of which are both behind and ahead of the other. Newest version of app. 2.1.5. Because versioning.
-
* Create S3 Bucket
* Enable versioning
* Setup lifecycle to delete small temporary objects after 7 days
* Wait 7 years
* Say "Wow, I was fucking stupid, and I've learned a lot since then."
* Write devRant post
* Profit with lower monthly AWS bill1 -
npm has to be the single worst package manager on the planet... Trusting devs to use semantic versioning properly and forcing devs to trust authors of dependencies to use it properly is nothing short of insane. The package-lock that is "supposed to be version controlled" causes *constant* merge conflicts. Using shrinkwrap in its place is borderline useless because it Doesn't. Lock. High. Level. Dependencies.
I don't know who designed this, but I want to give them a very bad day for every hour I've spent trying to lock versions correctly on a live project.
Not to mention requiring root by default to install things that can just run whatever they want is ludicrous.2 -
Next job I find has to be entertaining somewhat. I thought I could deal with boring work but I'm tired of it.I It's just so damn boring. I'm not even writing new code anymore, I'm just updating dependency versioning and restructuring tests. It's bumming me out seriously. The mental fatigue from struggling to keep my eyes open every day leaves me struggling to get out of bed in the morning.6
-
Aka... How NOT to design a build system.
I must say that the winning award in that category goes without any question to SBT.
SBT is like trying to use a claymore mine to put some nails in a wall. It most likely will work somehow, but the collateral damage is extensive.
If you ask what build tool would possibly do this... It was probably SBT. Rant applies in general, but my arch nemesis is definitely SBT.
Let's start with the simplest thing: The data format you use to store.
Well. Data format. So use sth that can represent data or settings. Do *not* use a programming language, as this can neither be parsed / modified without an foreign interface or using the programming language itself...
Which is painful as fuck for automatisation, scripting and thus CI/CD.
Most important regarding the data format - keep it simple and stupid, yet precise and clean. Do not try to e.g. implement complex types - pain without gain. Plain old objects / structs, arrays, primitive types, simple as that.
No (severely) nested types, no lazy evaluation, just keep it as simple as possible. Build tools are complex enough, no need to feed the nightmare.
Data formats *must* have btw a proper encoding, looking at you Mr. XML. It should be standardized, so no crazy mfucking shit eating dev gets the idea to use whatever encoding they like.
Workflows. You know, things like
- update dependency
- compile stuff
- test run
- ...
Keep. Them. Simple.
Especially regarding settings and multiprojects.
http://lihaoyi.com/post/...
If you want to know how to absolutely never ever do it.
Again - keep. it. simple.
Make stuff configurable, allow the CLI tool used for building to pass this configuration in / allow setting of env variables. As simple as that.
Allow project settings - e.g. like repositories - to be set globally vs project wide.
Not simple are those tools who have...
- more knobs than documentation
- more layers than a wedding cake
- inheritance / merging of settings :(
- CLI and ENV have different names.
- CLI and ENV use different quoting
...
Which brings me to the CLI.
If your build tool has no CLI, it sucks. It just sucks. No discussion. It sucks, hmkay?
If your build tool has a CLI, but...
- it uses undocumented exit codes
- requires absurd or non-quoting (e.g. cannot parse quoted string)
- has unconfigurable logging
- output doesn't allow parsing
- CLI cannot be used for automatisation
It sucks, too... Again, no discussion.
Last point: Plugins and versioning.
I love plugins. And versioning.
Plugins can be a good choice to extend stuff, to scratch some specific itches.
Plugins are NOT an excuse to say: hey, we don't integrate any features or offer plugins by ourselves, go implement your own plugins for that.
That's just absurd.
(precondition: feature makes sense, like e.g. listing dependencies, checking for updates, etc - stuff that most likely anyone wants)
Versioning. Well. Here goes number one award to Node with it's broken concept of just installing multiple versions for the fuck of it.
Another award goes to tools without a locking file.
Another award goes to tools who do not support version ranges.
Yet another award goes to tools who do not support private repositories / mirrors via global configuration - makes fun bombing public mirrors to check for new versions available and getting rate limited to death.
In case someone has read so far and wonders why this rant came to be...
I've implemented a sort of on premise bot for updating dependencies for multiple build tools.
Won't be open sourced, as it is company property - but let me tell ya... Pain and pain are two different things. That was beyond pain.
That was getting your skin peeled off while being set on fire pain.
-.-5 -
After being here for some time already, it astounds me how many organizations still don't use git or any form of versioning tool.
-
When a vendor asks you to implement their API on a client site and you spend half a day reading documentation they send you to realise the API is nothing like the documentation.
Contact vendor who replies with:
"Oh, did I send you the link to the v2 API docs? We are on v3 now."1 -
That feeling when you go back to a project you haven’t touched in months, upgrade one of the dependencies to a new major version (come on how many breaking changes will actually affect this tiny project), and find nothing is compiling because the library maintainers renamed everything and introduced a lot of breaking changes that are actually relevant2
-
Good deed done for he day, my friend was versioning his application by using zip folders with the date as the name of the folder. Introduced him to git because the university hasn't thought us how to use it yet and now he is delighted! Note I'm in my final year and college has barely mentioned using version control
-
Still not using versioning even though I'm the only coder. I have a dev and a live version of the site and once in a while (like early this morning) I update the live site by mistake, writing over the safe file with the development one :S4
-
Today I have learnt how important versioning is, changing half the program to diagnose an issue only to realise that you were making a typo and changing the wrong control. Time to ctrl+z.1
-
At the company I work today, looking at some repositories from hardware and firmware engineers I found this folder structure.
project_root
| - 1.0
| - 1.1
| - 1.2
| - 2.0
... and so on1 -
I consider myself very skillfull in versionning tools.
In almoust every project I've had, both in school and work, I' ve dealed with different tools to track file changes.
However, in my personal projects I haven't used any dev oriented versioning tool, except the ones existent in cloud/platform services like google drive, dropbox or others similar.
Looking back.,I wish I would do more github projects instead of random folders shattered in every service I know2 -
To the electronic/hardware devs here: do you know a (good - optional) diff tool for schematics/PCBs that is independent of a certain ECAD tool?
So far I know of cadlab.io, but I'd really like to have another possibility than an online service.3 -
I think we should ask the CDC to start versioning viruses. I mean we started with COVID-19. From what I hear it should be COVID-19.1 or COVID-19.2 by now.1
-
One of the truth no one wants to say because what can not be can not be.... but...
Maven is fuck... bullshit... failure by design.
For each project I need an own settings.xml. Always something not working. The same artifactory password 10 times there. Null pointer exceptions all over the place. Basics like versioning not really solved.
In all my years with Ant I never had so much problems than with Maven.
This settings.xml is really a design failure. Crap.1 -
New strategy to combat managers:
If you claim we can't afford the additional time for the tests that come with the feature, I won't build the feature.
If you claim we can't afford the additional time for the proper API versioning that comes with the feature, I won't build the feature.
And finally, if the internationalized texts, designs, and image assets are not complete when it comes time for development, I won't build the feature.
It's time to rise and stand against the "You're an engineer! do it all!" notions. I'm not a designer. I'm not a translator. I'm not a by-hand manual customer tester. And I'm certainly not going to take any more of your shit.2 -
Do you think that's a good idea to work with 4 developers on a shared development server without functional or technical specs and versioning software or testing methods/environment?
Just asking for a friend, not for my future employer...2 -
Why are big software documentations versioned by url rather than adding the most current update to relevant sections and signifying it as such?
1) only select parts of the software is updated in between major version updates. Why duplicate the entire docs for only sparingly updating those parts?
2) references hold versioned urls that could go out of date. I imagine it takes some effort to have a banner on each page indicating whether this is the most up-to-date version of the software
3) deprecated documentation is redundant since it's no longer maintained. Why does it continue to exist? Not everyone has upgraded, you say. That, and I guess, it costs the maintainers nothing to have an idle folder 6 major versions behind the most recent
I already have a folder for my v1 but I'm considering pulling them into a permalink. What challenges or disadvantages are there to doing so?6 -
Me: We're going to use git for its versioning to document the changes to these documents because doing this non-electronically would be resource intensive and use a lot of paper.
(One year later.)
Boss: Can you show me the steps on how to do this?
MFW boss doesn't know how to git: 😧1 -
Swift versioning is a really shitty bit. But not as bad the unreadable mashed together bastardized horseshit that is objective-c
-
How do you handle your configurations of your prompt, ide, etc especially when changing or reinstall the pc? Do you use something similar to git repos with dot files or are there other good methods to manage all of this?1
-
i just learnt how much clearcase sucks the hard way. i always used git for personal projects and am used to finding a simple solution to any problem at most one stackoverflow away, i just messed up my local repo, and experienced people could not manage to undo it. i mean come on, this is a f**king versioning software, how hard can it be to delete everything local and re-pull from remote without messing up configuration files? either clearcase has some serious design shortcomings for my understanding of a versioning software, or it is so overly complicated that nobody actually knows how to revert this mistake.2
-
Hello, I am doing master in Pharmacy, but I like programming and consider to switch or connect somehow industries. I could write simple scripts and small programmes in Python, but I want to write code with good practice from beginning.
So my question what should I know and put in use, maybe some resources if someone has them or just terms for further search. At this moment I use gitlab for VCS (my commits sucks and my whole usage of Git sucks, but at least I use branches), I am trying to separate control from model (MVC but I guess I do it poorly), also I use keepchangelog rules for changeling, and semantic versioning for versions, PEP8 and Pokemon names for my variables and functions as it helps read code later.7 -
Trying to...
- Visual Studio 2017 released in 2016 with internal version number 15.9.38 with MSVC v14.0
- CUDA 8.0 with NVidia Nsight VS integration 5.3
- GTX 1080 GPU with compute capability 6.1
- Windows 10 SDK with 10.0.17763.0
Will it work? I don't fucking know because your versioning and documentation SUCKS!
For some time now it has become a number one mission for basically every tech company to rebrand, reversion and what not their products. It's obviously done with the purpose of confusing the customers, leading them on to buy/work with the wrong item, which of course leads to another purchase and hours of frustration and wasted time. This is not how business should be conducted, you dumbasses! -
Who should be setting the versioning and features it should come along with? The dev team or perhaps the product manager?1
-
This guy nails it!
https://youtu.be/5Sl5C-5fX1M
A talk about (semantic) versioning and breaking updates which make you spend countless hours to just adapt to a new library upgrade and how we can do it with a bit less PITA.
tl;dw: The answer is codemods. -
Say you have some CMS webapp/site and you want to automate versioning of templates/ theming so you can do reliable rollbacks & more, and have the changes you make deployed to the webapp/site without further intervention.
How would you do it, in rough lines, from source change to auto-deploy?
I am wondering whether this is a good devops question and am curious about actual answers3 -
What's it called when you count down to 0 for your versioning instead of up. Once you get to 0 your software updates freezes. I tried searching online but I keep getting counting for "for loops." This is eating at me lol.
-
What's your routine for versioning pre-releases?
While working on a big change, like "milestone 2.0", how do you, while working on it, version it before the main release? To keep it being 2.0.0 on release and not for example 2.130.0 (since it was "2.130.0-pre" just before release)?
Or is it my fantasy that when released to public it "should" always be *.0.0?1 -
so we want to use this software for document mangement (versioning and stuff). i totally understand why the developer used rtf for document templates. but it took me freaking 6 hours to create a simple document header while finding out 500 designs and methods that didn't work due to the rtf format corset that differs more from word formatting abilities that i expected.