Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "package managers"
29-year veteran here. Began programming professionally in 1990, writing BASIC applications for an 8-bit Apple II+ computer. Learned Pascal, C, Clipper, COBOL. Ironic side-story: back then, my university colleagues and I used to make fun of old COBOL programmers. Fortunately, I never had to actually work with the language, but the knowledge allowed me to qualify for a decent job position, back in '92.
For a while, I worked with an IBM mainframe, using REXX and EXEC2 scripting languages for the VM/SP operating system. Then I began programming for the web, wrote my first dynamic web applications with cgi-bin shell and Perl scripts. Used the little-known IBM Net.Data scripting language. I finally learned PHP and settled with it for many, many years.
I always wanted to be a programmer. As a kid I dreamed of being like Kevin Flynn, of TRON - create world famous videogames and live upstairs my own arcade place! Later on, at some point, I was disappointed, I questioned my skills, I thought I should do more, I let other people's expectations make feel bad. Then I finally realized I actually enjoy a quieter, simpler life. And I made peace with it.
I'm now like the old programmers I used to mock 30 years ago. There's so much shit inside my brain. And everything seems so damn complex these days. Frameworks, package managers, transpilers, layers and more layers of code. I try to keep up. And the more I learn, the more it seems I don't know.
Sometimes I feel tired. Yet, I still enjoy creating things and solving problems with programming. I still have fun learning. And after all these years, I learned to be proud of my work, even if it didn't turn out to be as glamorous as in the movies.34
> installs devRant app on my iPhone
> too lazy to type my 18-char random password on mobile
> password manager app not on App Store yet
> dig up my old Macbook
> install XCode & homebrew package manager
> install 2 other package managers using homebrew
> install App deps from the 2 package managers
> query stackoverflow for why my deps fail to install
> open App in XCode
> setup Apple provisioning profile
> trust my certificate on my iPhone
> dig up an old router & setup a local WiFi network
> start a server on my laptop to serve my PGP keys
> download my PGP keys to my iPhone
> app crashes
> open an issue on github with steps to reproduce & stacktrace
> type my 18-char random password
> rant on how I wasted an entire afternoon13
Watching a cookery program and it made me think it must be hard being a chef.
Then it made me think that being a web developer is a bit like cooking.
You have your ready meal equivalent with WordPress and Wix.
You have your cook at home kits with front-end frameworks like bootstrap and foundation.
Then you have your own home made cooking using vanilla js, CSS and HTML made to your own liking.
Just like being a good chef, being a good web developer is about knowing what ingredients and methods to include, but also what to leave out, to get the best result!5
I met some guys who were Computer Engineering students who were studying web platform as a hobby aside from IoT lessons at school, they met me at my school's library coding stuff and I noticed one of them messing around with yum
"Is that Fedora?" I said, because I wasn't familiar what are the package managers of every distro.
"No, it's CentOS" the guy replied, he also noticed I was coding in a cloud IDE, so he was amazed. He asked if he can use C# there, can he share his workspace, etc.He also asked what's my course. I replied " i'm jsut a senior high student". And they were out of words.
after that, I always think that my skills are way ahead of my age. I don't know my brain anymore, but I felt badass3
because why use an:
IDE / editor,
when you can make your website as a photo, slice it up and export to html. EASY PEAZY6
"Geez this project has a lot of dependencies. I know, I should use a package manager!"
I spent over a decade of my life working with Ada. I've spent almost the same amount of time working with C# and VisualBasic. And I've spent almost six years now with F#. I consider all of these great languages for various reasons, each with their respective problems. As these are mostly mature languages some of the problems were only knowable in hindsight. But Ada was always sort of my baby. I don't really mind extra typing, as at least what I do, reading happens much more than writing, and tab completion has most things only being 3-4 key presses irl. But I'm no zealot, and have been fully aware of deficiencies in the language, just like any language would have. I've had similar feelings of all languages I've worked with, and the .NET/C#/VB/F# guys are excellent with taking suggestions and feedback.
This is not the case with Ada, and this will be my story, since I've no longer decided anonymity is necessary.
First few years learning the language I did what anyone does: you write shit that already exists just to learn. Kept refining it over time, sometimes needing to do entire rewrites. Eventually a few of these wound up being good. Not novel, just good stuff that already existed. Outperforming the leading Ada company in benchmarks kind of good. At the time I was really gung-ho about the language. Would have loved to make Ada development a career. Eventually build up enough of this, as well as a working, but very bad performing compiler, and decide to try to apply for a job at this company. I wasn't worried about the quality of the compiler, as anyone who's seriously worked with Ada knows, the language is remarkably complex with some bizarre rules in dark corners, so a compiler which passes the standards test indicates a very intimate knowledge of the language few can attest to.
I get told they didn't think I would be a good fit for the job, and that they didn't think I should be doing development.
A few months of rapid cycling between hatred and self loathing passes, and then a suicide attempt. I've got past problems which contributed more so than the actual job denial.
So I get better and start working even harder on my shit. Get the performance of my stuff up even better. Don't bother even trying to fix up the compiler, and start researching about text parsing. Do tons of small programs to test things, and wind up learning a lot. I'm starting to notice a lot of languages really surpassing Ada in _quality of life_, with things package managers and repositories for those, as well as social media presence and exhaustive tutorials from the community.
At the time I didn't really get programming language specific package managers (I do now), but I still brought this up to the community. Don't do that. They don't like new ideas. Odd for a language which at the time was so innovative. But social media presence did eventually happen with a Twitter account that is most definitely run by a specific Ada company masquerading as a general Ada advocate. It did occasionally draw interest to neat things from the community, so that's cool.
Since I've been using both VisualStudio and an IDE this Ada company provides, I saw a very jarring quality difference over the years. I'm not gonna say VS is perfect, it's not. But this piece of shit made VS look like a polished streamlined bug free race car designed by expert UX people. It. Was. Bad. Very little features, with little added over the years. Fast forwarding several years, I can find about ten bugs in five minutes each update, and I can't find bugs in the video games I play, so I'm no bug finder. It's just that bad. This from a company providing software for "highly reliable systems"...
So I decide to take a crack at writing an editor extension for VS Code, which I had never even used. It actually went well, and as of this writing it has over 24k downloads, and I've received some great comments from some people over on Twitter about how detailed the highlighting is. Plenty of bespoke advertising the entire time in development, of course.
Never a single word from the community about me.
Around this time I had also started a YouTube channel to provide educational content about the language, since there's very little, except large textbooks which aren't right for everyone. Now keep in mind I had written a compiler which at least was passing the language standards test, so I definitely know the language very well. This is a standard the programmers at these companies will admit very few people understand. YouTube channel met with hate from the community, and overwhelming thanks from newcomers. Never a shout out from the "community" Twitter account. The hate went as far as things like how nothing I say should be listened to because I'm a degenerate Irishman, to things like how the world would have been a better place if I was successful in killing myself (I don't talk much about my mental illness, but it shows up).
I'm strictly a .NET developer now. All code ported.6
Refactored an authentication library a while back and teams are now getting around to updating their nuget packages.
It is a breaking change, but a simple one. The constructor takes a connection string, application name, and user name.
A dev messages me yesterday saying ...
Tom: "I made the required changes, but I'm getting a null reference exception when I try to use the authorization manager"
Odd because the changes have been in production for months in other apps, so I asked him to send me a screen shot of how he was using the class (see attached image below).
Me: "Send me a screenshot of how you are using the class"
<I look at what he sent>
Me: "Do you really not see the problem why it is not working?"
<about 10 minutes later>
Tom: "Do I need to pass a real connection string? The parameter hint didn't say exactly what I should pass."
<not true, but I wasn't going to embarrass him any more>
<5 minutes later>
Tom: "The authorization still isn't working"
Me: "Do you still have 'UserName' instead of the actual user name?"
<few minutes later>
Tom: "Authorization is working perfect, thanks!"
A little while later my manager messages me..
B:"I'm getting reports from managers that developers are having a lot of problems with the changes to the authorization nuget package. Were these changes tested? Can you work with the teams to get these issues resolved as soon as possible? I want this to be your top priority today."
Me: "It was Tom"
B: "Never mind."11
Updating PHP from 5 to 7.2 on windows server at work the other day... Thought it would be easy, but I really find software management for windows a pain in the ass compared to package based solutions like apt, brew or pacman. It ended up taking way too long due to dependcies with the website, that weren't really documented, and setting up all the software that depended on PHP over again... I ended up writing 10 pages of documentation about how to updated PHP on windows, so the next programmer would have some idea of how to approach the problem.
Of course I suggested switching over to Chocolatey for windows, but my boss is skeptical since it's not the traditional way, and it seems like it will take too many resources. So now I have to make a presentation for her to convince her that package managers are superior to downloading stuff from phps website.
Wish me luck.4
I’m a team lead in the tech team, myself and another team lead manage the on call processes for the department, so when stuff breaks we need to fix it. I assume there is sufficient documentation available for me to fix a process that is not mine.
one of the other managers processes breaks. He’s on annual leave and is away for another week. I attempt to fix the process. No documentation. What do i do?
I go to my manager the next day and tell her the process is broken and I can’t fix it because there’s no documentation and I don’t know what the full impacts are. She agreed we should leave it until he comes back from AL.
He comes back a week later. I tell him the process is broken and it’s been failing since he went on AL.
Him: we had a handover before I went on holiday
Me: no, you showed me where the ‘documentation’ was. Said documentation is not defined enough and is out of date. I didn’t want to break it further by trying to repair it when it’s not completely critical
Him: but it is critical, it has to run every day
Me: so why doesn’t it say that in the documentation?
Me: can you fix it please
Him: no, I’ve got too much to do having just come back from holiday
Me: more critical that a process that has to run EVERY DAY and has been failing for the past 10 DAYS??
Him: I’ll see if I have time
2 hours later...
Him: Lets put in some time for handover so you can understand the process. Is an hour long enough?
Me: I don’t know, you tell me, it’s your process, you know what’s involved and how long it should take to explain
Him: well is an hour long enough?
Me: I don’t know, it takes however long it takes you to explain it
Him: I’m asking you
At this point I’m getting more and more angry, how can you not know how long your process is gonna take to explain when you’re the one that wrote it?! I fully well know that it’s gonna take longer than an hour because it’s an SSIS package that looks like a plate of spaghetti, you spend 15 minutes working out what box flows to where before even looking at any SQL, and he’s still asking me how long it’s gonna take and distracting me from my ACTUAL critical work
Man is a waste of space, so quick to give you work that isn’t his but never takes responsibility for his own... honestly have no clue whatsoever how he became a manager....
This rant doesn’t seem like much reading it back but I swear it’s the last in a looooonnngggg like of his fuck ups that other people have had to deal with 🙄🙄3
I was talking with some of my co-workers about the rise of all these package managers (and one I came across for Windows), and this thought occurred in my silly head:
It kills me that a lot of people on here choose Linux distros based solely on desktop environments. Its Linux guys, you can make it whatever you want. You should decide between distros because of package managers or frequent updates or active communities, not because of how pretty it is out of the box. You can make it as pretty as you want.5
Hey guys, I created this application for Linux users that lets you download and install multiple essential softwares/tools at once. It's something like Ninite (in Windows) but for Linux. So I called it Linite! It's still new, so it doesn't support many distros yet.
Now, I know there are many package managers and stuff, but I just wanted to make something really simple/basic and user friendly that can help even new Linux users. I was learning Python so I just thought it'd be nice to do some project.
Please do check it out and I'd love to get some feedback. Link's below!
I love python, but I hate dealing with python dependencies, especially on Windows.
I was tinkering and researching with neural networks, so I wanted to try out pybrain. I wrote my project, with pybrain installed via pip, and tried to build it.
Oh, what's that? Pybrain doesn't work with python 3? Well I'll download the version that's supposed to. Oh, that version has a deprecated numpy api? Let me just install those other resources. Oh, that requires a broken module that has no publicly available source?
Let's try python 2. Oh, now that's working, I just need to export environment variables for some "bls source". Some quick Google searching and the only solution that would work is building a bunch of cywgin modules by hand. That's fine, I have an ubuntu partition.
An hour later I'm compiling FORTRAN dependencies on Ubuntu.
Coding time: 1 hour
Dependency time: 3 hours6
I either get way better in math, or find a good opportunity to drop out of college. Both would be equally good.
Nvidia dies the cruel death it deserves.
All DEB and RPM package-managers, get replaced by pacman.4
First Happy new year, now lets get put on the dancing shoes... (I have another one coming, but this one is fresh)
As a PHP developer (yeah I am and I like it, if you gonna hate on me... go fuck yourself) I expect to not be required to reinvent the wheel when I have to use something that is not too mainstream (in my case was producing JSON and XML HAL responses). Now there are 2 (fairly active and somewhat mature), one of which does not produce XML responses, so off I went with the other one, but for fucks sake it does not produce XML that is compliant with the (draft)RFC (https://tools.ietf.org/html/...)
So as I need that, I decided to write one myself, since extending the one that provided XML would've been a waste of time, since it is NOT documented and for some reason depends on about 4 packages (also developed by the same maintainer), why the whining you ask, eh? Well fuck this shit. It took me 2(+2 classes) to achieve everything (according to standard as far as I can tell) + went with using a "hydrator" as opposed to reflection (the lib used reflection and didn't care too much for the access modified on the property of the object being serialized) so got a pretty solid performance boost, cleaner and simple code (I wrote it for a few hours and it is ugly, but hey KISS and it works perfectly)...
So with the more ranty part of this rant... Why the fuck so many people don't write independant packages for the simple parts... I don't hate it when I need a package and end up downloading half of the codebase of symfony or whatever fancy framework the dev decided to use, wasn't it the point of having 'package managers' (composer, npm, etc.. you get the deal..) instead of promote our projects and not force others to use our favorite framework that is absolutely out of scope for their projects...
Fuck you, fuck me and fuck everybody... If this continues I will continue writing my own packages from scratch, because "you" asshole are too lazy to learn and apply SOLID and common sense; even if your life depends on it you cannot write a meaningful piece of code without "the fancy framework of the month" holding your hand and allowing you to continue being a dumbass that has enough brain cells to walk straight and remember that you have to go to the toilet and not shit all over the place....
FML.... Fuck this shit and that is the main reason my gears grind the most when I head "you should use *framework name* instead" or "don't reinvent the wheel", fuck that guy I refuse to work my ways around a framework in order to get things done, my boss aint happy for that shit you know, I don't get paid to deal with your crappy code or uninformed opinion..3
Any individual project that made me learn cool stuff...
Maybe the kernelcheck project? It's a shell script that I wrote 2 years ago (it's still on my GitHub but the code looks kinda horrible tbh), and it really made me respect the stability of package managers, and the effort that package maintainers must put into it. Even a single package (the kernel) that you have to maintain the integrity of the .config for (the configuration file that tells you what options to compile in, as a module, or not at all) while on every new minor release, the config changes ever so slightly.. at some point I figured that I'd really need to do those compilations manually, to be able to supervise (and if necessary adjust) it in real-time. The ability for distribution maintainers to do this for thousands of packages.. it boggles my mind. Respect!
Here by I introduce you the new Java Script framework and package manager that is going to change your life forever. We have considered all the problems developers are facing during their everyday career. We use latest techniques used in configuration files (xml, yaml, json, etc.), package managers (npm, gulp, yawn, etc) and other frameworks (require-js, vuejs, reactjs, etc) into consideration to bring you a framework that has them all together in ONE BIG PACKAGE! HAHAHAHAAHAAA!
Nope. I'm just kidding :-D1
6 different package managers to keep up to date.
Good thing bash scripts and cron jobs exist5
Challenge: please install all incompatible versions of all compilers and interpreters for all languages in a single VM. I want python2, python3, gfortran, clang, gcc, jdk 1, java se 10, php5.5, php7, cuda 1, cuda 7, glsl 110, glsl 460, brainfuck, piet, and so on. I'd like to readily parse and run any symbolic representation devised over the 70 years since Plankalkül. I'd just like each language version in a neat little directory with its own properly configured compiler/interpreter, package managers, and libraries. Thanks in advanced. Monday is fine.3
More emarassing than frustrating..But I was applying to a couple internal positions recently and decided to bring in a sample package to demonstrate some of what I had been working on in my current team. They seemed to like the example and the interview seemed to go well...A couple hours later one of the managers came by my cubicle and asked "is that the real password?" and pointed to a line in the code. Sure enough, I had left a plain text password in the script I had just handed out to 10 panelists at 2 interviews..proceeded to collect the packets back. In the future I'll be paying closer attention to what I include lol.
Still frustrated we keep the passwords in the script though >.> any suggestions for better storage of passwords and the like in Perl scripts?3
So I actually prefer npm to most other package managers (with the exception of go's package handling).
Like you need to look no further than to pip's hell of package management, to start appreciating how clean npm is.
I will never fully understand why some people think command line package managers are "more complicated" than searching for and downloading software through the web browser.
I feel like the only reason why they think this is because the command line is not a user-friendly tool to them. All of my friends on Discord use Windows, and after showing them what a fantastic tool the Chocolatey package manager is, they don't want to have anything to do with it, because it involves entering commands.
I give up. If they don't want to use this amazing tool, that's their loss, not mine. I will just continue to run
> choco upgrade outdated -y
and update all of my programs with a single command, while they have to download installers and manually go through the setups.10
So I had someone question why their system was broken after they installed my software and all of its dependencies to /usr by hand... ._.
i'm waiting for a package manager to come out that compiles everything you have it install from source to "guarantee" it runs on your machine, then have it autopost a SO question when it fails (not if, WHEN) and autotest answers given, then if it didn't work it'd reply saying it didn't work and giving the new error (if appropriate). This'd shut up the "lol it works on my side" and "lol compiling's easy" douchebags and also probably help drive home the importance of providing binaries for things and making them well.
also fuck devkitPro, it's not unreasonable to provide packages for other package managers than Arch's pacman since EVERYONE ELSE DOES IT. And no, "lol just compile from source" doesn't help as it doesn't work when you do. And it doesn't work BECAUSE you don't WANT it to so we HAVE to patchwork pacman into our other distros to get your shitty dev tools. you could also just provide a fucking zip of everything compiled, since then there'd be less effort than maintaining your own copy of pacman and servers and shit just to try and help people desperate enough to try crippling their Windows/Mac/Linux install all because they haven't drank the Arch koolaid.
Fuck those douchebags, fuck devkitPro and... probably fuck you too? Probably? Maybe?
holy shit i really needed to get that shit off my chest i apologize for that3
In all fairness to macOS. To it's weird design choices, both Linux and Windows should copy way of installing most of macOS programs. Downloading and mounting .DMG file, drag & dropping the app into Applications folder and done! Life would be so much simpler with it. And yes, I know apt install/pacman -S/dpkg -i/any other package manager is quicker, but average Joe doesn't care about it!
Then again, it would create yet ANOTHER package managing method supported by two distros that no one really cares for...6
So, I have worked with two different package managers. Sbt and npm. And I don't get them. Let's take npm. I install a module. That module has its own package.json and npm runs for that, too. And it drops it into the same node_modules directory, just like the modules of my main application.
Sbt constantly gives me warnings about possible binary incompatible versions and I have to exclude packages and hope that those packages work together nicely.
I don't get it. This is how I would build a package manager and please tell me if I am just naive or why it is not done like it.
1. All packages get their own namespace, consisting out of the namespace and the version in a global folder.
2. If a submodule has installed a package in version 1.5, then it will be symlinked to that package. If another submodule needs 2.5, it is symlinked to the 2.5 version.
3. If I want to minimise the build I can try to override the packages to see if they are still working when they are all given the same version.
Seems pretty simple to me. So why the fuck are those package managers constantly loading everything in a global namespace not differentiating it by version?8
When they decided to deprecate the old app that went back to early DOS, they decided to use VB.NET because they'd used some VBA and were familiar with it. Except they had a vague idea that C# was faster and decided to write the OpenGL code in that. Also they had some C++ code and decided to write more of it, accessed by the main program via COM.
I come in and the decision is made to integrate some third-party libs via a C++/CLI layer. On one hand screw COM, but on the other we're now using two non-standard MS C++ extensions. Then we decide we need scripting, so throw in some IronPython.
I'm the build engineer for all this, by the way. No fancy package managers since almost all the third-party dependencies are C++; a few of them are open source with our own hacks layered on top of the regular code, a few are proprietary. When I first started here you couldn't build on a fresh SVN checkout (ugh) without repeatedly building the program, copying DLLs manually, building again, ad nauseum. I finally got sick of being called in to do this process and announced that I was fixing it, which took a solid week of staring at failed compiler output.
Every so often someone wants to update that damn COM library and has to sacrifice a goat to figure out how the hell you get it to accept a new method. Maybe one day I'll do a whole rant just based on COM.
After switching distros ~ every 6 months for years, I came to the conclusion that one of the main factors to decide if I like it or not is its package manager..
Not saying that some are better or worse than others, just that i have my preferences..
How important is the package manager to you guys, do you even use it via terminal or are you using a GUI (in which case it doesn’t really matter, does it?..)
Kind of a random question but would be interesting for me to know..
I like pacman, not even sure why, it just feels right to me and apt-get just because I know it best😅3
Am I the only person in this world that hate package managers?
I can live perfectly without any of them1
I've been trying to find a linux distro/de that "just works" for like a week and honestly, I'm kinda giving up and going back to Windows.
Everyone single one I've tried had some weird quirks, mostly audio and video related. Screen tearing everywhere, mic not working, distorted audio, jittery animations and very low responsiveness.
I really wanted to use Linux as my main OS, at least for work. I love the simplicity of package managers and the terminal. But honestly, I don't understand how something like that could be depicted as better than Windows. I'm sorry but Windows runs waaaaaaaay better on my desktop and PC it blows linux out of the water. Zero issues with drivers, no screen tearing, no distorted audio flying smooth animations and responsiveness.
I'm very disappointed, I was expecting Linux to be quicker and less bloated but god those hardware compatability issues just destroy everything good that linux has to offer.
Guess I'm going to install some background VM since I only really need to run terminal stuff and daemons for work.28
I guess these days I work with Golang, gRPC, and Kubernetes. I guess that's a dev stack. Or turning into one at the very least. The only thing that annoys me about this stack, is how different deployments for kubernetes are different for CSPs. The fact that setting up a kubernetes/Golang dev environment is take a lot of time and effort. And gRPC can be a pain in the ass to work with as well. Since it's fairly new in large scale enterprise use, finding best practices can be pretty hard, and everything is "feet in the fire" and "trial by error" when dealing with gRPC.
And Golang channels can get very hairy and complicated really really fast. As well as the context package in Golang. And Golang drama with package managers. I wish they would just settle on GoDeps or vgo and call it a day.
And for the love of God, ADD FUCKING GENERICS! Go code can be needlessly long and wordy. The alternative "struct function members" can be pretty clunky at times.
I need to stop messing with all the new vim plugin package managers. The plugins themselves were already distraction enough. ;_;