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 - "toolchain"
-
What an absolute fucking disaster of a day. Strap in, folks; it's time for a bumpy ride!
I got a whole hour of work done today. The first hour of my morning because I went to work a bit early. Then people started complaining about Jenkins jobs failing on that one Jenkins server our team has been wanting to decom for two years but management won't let us force people to move to new servers. It's a single server with over four thousand projects, some of which run massive data processing jobs that last DAYS. The server was originally set up by people who have since quit, of course, and left it behind for my team to adopt with zero documentation.
Anyway, the 500GB disk is 100% full. The memory (all 64GB of it) is fully consumed by stuck jobs. We can't track down large old files to delete because du chokes on the workspace folder with thousands of subfolders with no Ram to spare. We decide to basically take a hacksaw to it, deleting the workspace for every job not currently in progress. This of course fucked up some really poorly-designed pipelines that relied on workspaces persisting between jobs, so we had to deal with complaints about that as well.
So we get the Jenkins server up and running again just in time for AWS to have a major incident affecting EC2 instance provisioning in our primary region. People keep bugging me to fix it, I keep telling them that it's Amazon's problem to solve, they wait a few minutes and ask me to fix it again. Emails flying back and forth until that was done.
Lunch time already. But the fun isn't over yet!
I get back to my desk to find out that new hires or people who got new Mac laptops recently can't even install our toolchain, because management has started handing out M1 Macs without telling us and all our tools are compiled solely for x86_64. That took some troubleshooting to even figure out what the problem was because the only error people got from homebrew was that the formula was empty when it clearly wasn't.
After figuring out that problem (but not fully solving it yet), one team starts complaining to us about a Github problem because we manage the github org. Except it's not a github problem and I already knew this because they are a Problem Team that uses some technical authoring software with Git integration but they only have even the barest understanding of what Git actually does. Turns out it's a Git problem. An update for Git was pushed out recently that patches a big bad vulnerability and the way it was patched causes problems because they're using Git wrong (multiple users accessing the same local repo on a samba share). It's a huge vulnerability so my entire conversation with them went sort of like:
"Please don't."
"We have to."
"Fine, here's a workaround, this will allow arbitrary code execution by anyone with physical or virtual access to this computer that you have sitting in an unlocked office somewhere."
"How do I run a Git command I don't use Git."
So that dealt with, I start taking a look at our toolchain, trying to figure out if I can easily just cross-compile it to arm64 for the M1 macbooks or if it will be a more involved fix. And I find all kinds of horrendous shit left behind by the people who wrote the tools that, naturally, they left for us to adopt when they quit over a year ago. I'm talking entire functions in a tool used by hundreds of people that were put in as a joke, poorly documented functions I am still trying to puzzle out, and exactly zero comments in the code and abbreviated function names like "gars", "snh", and "jgajawwawstai".
While I'm looking into that, the person from our team who is responsible for incident communication finally gets the AWS EC2 provisioning issue reported to IT Operations, who sent out an alert to affected users that should have gone out hours earlier.
Meanwhile, according to the health dashboard in AWS, the issue had already been resolved three hours before the communication went out and the ticket remains open at this moment, as far as I know.5 -
Python, the language, is fine.
Some aspects of it are even kind of elegant.
But Python, the VIRTUALENV ANACONDA BLEEDING ASSHOLE WHEELING PIPPING FUCKING TOOLCHAIN IS MORE RAGE INDUCI̵N̵G̵ THAN ANY O̶͔̔̄T̶̊̆ͅH̵̥͒Ȇ̶̥̓R̷̹̳̎̒ ̴M̴o̸d̵u̷l̸e̶N̴o̷t̴F̸o̸u̸n̶d̶E̵r̷r̴o̵r̴:̵:̶̼̳̙̾̈ ̷̧̲̗̓́̾͂N̶̙̆ó̵̱ ̷͔̔m̴͇̔ơ̸͕ď̷̲ư̷̢ḻ̷̉ê̷̼ ̸̗̓n̷̝̔a̷̙̓m̶̖̄è̷̡d̸̳̋ ̷̝̍ ̷͎̚'̷̻̌ḋ̷͔i̴͓͌ṡ̵͍t̵̘̽ṵ̵̊t̷̹͝i̴̛̦l̴̒͜s̸̩͝.̸̱̚u̵̪͆t̵̥͑ỉ̸͍l̵͚͠'̶͚͘14 -
I'm the only one working on this anymore and every toolchain supporting the system (remember, we're using an ARM9 [initial strap CPU] AND an ARM11 (give or take an ARM7 slaved to the ARM9 that we don't have support for yet), all in tandem, and the only toolchain that remotely works is for ARM6 for some reason) hates the Linux kernel. Current goals: SD R/W support (currently RO), X, GNUTools, maybe a better fucking softkey driver (i'll have to find whoever made this one and fucking beat him), and a working joy2mouse/touch2mouse driver. Oh, and figure out if Swap would work either with the New 2DS/3DS' Bonus Drive (unused 64MB partition on NAND) without killing the NAND as the SD access is max. 1.2 MB/s read/write speed or so, which isn't fast enough for swap AND other things.
Currently working:
Busybox
Read-only SD support
Weston (term only, can't click)
Standard 3DS/Standard 2DS/New 3DS (Models before 2017, the non-foldables, rebranded standard 2DSes) features only, not yet New 3DS/New 2DS-enhanced
Currently failing final compile because toolchain:
Preliminary custom R/W SD support4 -
So haven't been on devRant in awhile but it's a new year and I definitely have some new goals. For starters, I'm building my first LFS system (on phase 2 of my toolchain atm), which I thought would be way over my head. Apparently, all these arch experiences have paid off xD I've always wanted to truly understand what went on under the hood of linux and maybe after going through this over and over I'll at least understand a little more.3
-
I got an interview with a big multinational software company as a senior dev - the kind of place I never thought I would be privileged or knowledgeable enough to work for and wasnt expecting to get In to...
I aced it. They gave me an offer but - FOR DEVOPS 😬
basically my skills fit in perfectly with the server/ scaling issues they have and are far more valuable there. I know they do, I also know I can fix the issue and will have alot of fun coding it - I just dont think I want to monitor it or anything else.
I mean I do devops stuff all the time in aid of anything I code but their stack is a full time job- im scared that once the toolchain is automated ill be pulled towards sys admin like duties and lose touch with my craft... what do you guys think? Anyone shifted from dev to devops?9 -
ARGH the next person to tell me how X is the best toolchain is getting their fucking head cut off! Holy fucking shit, this is even more annoying than the whole IDE debate. At least with IDEs everyone has a favourite one and they hate others accordingly, with build toolchains there's always a huge group of fucktards sucking each other's dick by adding new features, and they're always too busy wanking their sparkling features for small projects to realise how fucking inefficient their polished dings and dongs are for any bigger job.
For the millionth time, no, we're not switching to this popular toolchain just because it gave you a blowjob with your pet project (although that would indeed be a tempting offer), so stop talking how fast and flexible it is. Until you can show how it compiles a 500 MB project faster than our current setup, I don't give a shit how many people jerk on that nookie.3 -
Front-end web development in 2018 is a fucking dumpster fire. 4 month old blog post guides are out of date, hipster toolchain APIs change monthly, npm can't find a module that is literally right there in its entirety in the fucking node_modules directory. JavaScript is love. JavaScript is life.5
-
I'm a TA myself and just yesterday wanted to defend my fellow TAs and CS/IT teachers from some of the rants here. Of course not all of the rants are but I found a few quite unfair towards us and I can fully understand a TA getting confused and tired after 5-7 hours of helping and wrapping your head around some of the harder problems the students run into.
However, I'm also a student myself and right now I'm fucking fed up with the shit my supervisor gives me regularly .. So let the rant flow!
(disclaimer: the following text uses “you” to address the rant recipient. So, dear reader, don't feel offended)
First of, why do you fucking care when and especially where I'm working on your project when you know I'm only working part time since I'm usually tutoring students by daylight. Having me come in after my TA shift to work on your project instead of letting me go home, get some rest and food, and start working with a fresh head is neither helping you nor very productive. Also, if you want me to be productive and use your fucking tools to get going faster you better not make me fucking debug your fucking tools. For instance, I don't even have the same first name so all your fucking paths are invalid on my fucking machine! Also, I get that your machine is more powerful than mine and I don't really care about it as long as you don't fucking push convoluted messy timing sensitive scripts and make me search for the correct values on my machine. And, if a file your script is trying to delete is not there aborting is not an valid exception handling!
And don't get me started on the scripts that actually do some work besides setting up your fucking toolchain! -
Almost gave up on my first LFS build but I re-read the first 5 chapters and used my backed up toolchain to continue chapter 6. Luckily, I have passed the point I was stuck at :) glad I didnt give up or start 100% over.3
-
>compiling a toolchain for my phone
>compiling gcc
>segfault
wtf, i have like 8GB RAM and 32GB Swap on an SSD
>rerun make w/o clean
>continues, no segfault
ok?
>segfault a few minutes later
FUCK
rinse and repeat like 30 times
why10 -
Linux on the 3DS is going well. Others have no issue at all, but I've gotta fix issues with the toolchain executables being named wrong, the provided, precompiled toolchain everyone else uses being the wrong one and being incompatible...
Fuck my life. -
One time I had to review some SAP / Excel / Visual Basic toolchain.
It was a huge mess with like 10 layers of if-then cases in around 1000 lines of code analyzing excel sheets, resolving error codes etc. in maybe two functions.
It turned out that I programmed that code about 8 years ago :/ -
Why the hell did someone remove the wacom kernel module in android since 4.x? It wasn't hurting any body and instead gave people the ability to connect their wacom tablets to USB OTG compatible devices. As a result we have few apps that have wacom support in play store and shitty reputation that the rotten apple is better for all things media.
And for me it means I have to:
* Figure out a way to root my device
* locate correct version and configuration of currently running kernel.
* set up cross compilation toolchain
* build the kernel module
* transfer it to the device
* insmod it manually
* say a few prayers
.... All I wanted to do was paint 😢 -
“Everyone is busy building stuff for right now, today, rarely for tomorrow. But it would be nice to also have stuff that lasts a little longer than that.... You don’t have to be a genius to write fast programs. There’s no magic trick. The only thing required is not building on top of a huge pile of crap that modern toolchain is.”
—Nikita Prokopov, “Software disenchantment”, retrieved from http://tonsky.me/blog/...5 -
It takes courage to use npm as a product. The inability of its leader, Isaac Schlueter, to communicate the reasoning behind decisions pose a risk as a choice for long term toolchain.
My company will move to yarn for now and jump ship to Deno as soon as it reaches all of my check marks.5 -
To me this is one of the most interesting topics. I always dream about creating the perfect programming class (not aimed at absolute beginners though, in the end there should be some usable software artifact), because I had to teach myself at least half of the skills I need everyday.
The goal of the class, which has at least to be a semester long, is to be able to create industry-ready software projects with a distributed architecture (i.e. client-server).
The important thing is to have a central theme over the whole class. Which means you should go through the software lifecycle at least once.
Let's say the class consists of 10 Units à ~3 hours (with breaks ofc) and takes place once a week, because that is the absolute minimum time to enable the students to do their homework.
1. Project setup, explanation of the whole toolchain. Init repositories, create SSH keys for github/bitbucket, git crash course (provide a cheat sheet).
Create a hello world web app with $framework. Run the web server, let the students poke around with it. Let them push their projects to their repositories.
The remainder of the lesson is for Q&A, technical problems and so on.
Homework: Read the docs of $framework. Do some commits, just alter the HTML & CSS a bit, give them your personal touch.
For the homework, provide a $chat channel/forum/mailing list or whatever for questions where not only the the teacher should help, but also the students help each other.
2. Setup of CI/Build automation. This is one of the hardest parts for the teacher/uni because the university must provide the necessary hardware for it, which costs money. But the students faces when they see that a push to master automatically triggers a build and deploys it to the right place where they can reach it from the web is priceless.
This is one recurring point over the whole course, as there will be more software artifacts beside the web app, which need to be added to the build process. I do not want to go deeper here, whether you use Jenkins, or Travis or whatev and Ansible or Puppet or whatev for automation. You probably have some docker container set up for this, because this is a very tedious task for initial setup, probably way out of proportion. But in the end there needs to be a running web service for every student which they can reach over a personal URL. Depending on the students interest on the topic it may be also better to setup this already before the first class starts and only introduce them to all the concepts in a theory block and do some more coding in the second half.
Homework: Use $framework to extend your web app. Make it a bit more user interactive with buttons, forms or the like. As we still have no backend here, you can output to alert or something.
3. Create a minimal backend with $backendFramework. Only to have something which speaks with the frontend so you can create API calls going back and forth. Also create a DB, relational or not. Discuss DB schema/model and answer student questions.
Homework: Create a form which gets transformed into JSON and sent to the backend, backend stores the user information in the DB and should also provide a query to view the entry.
4. Introduce mobile apps. As it would probably too much to introduce them both to iOS and Android, something like React Native (or whatever the most popular platform-agnostic framework is then) may come in handy. Do the same as with the minimal web app and add the build artifacts to CI. Also talk about getting software to the app/play store (a common question) and signing apps.
Homework: Use the view API call from the backend to show the data on the mobile. Play around with the mobile project to display it in a nice way.
5. Introduction to refactoring (yes, really), if we are really talking about JS here, mention things like typescript, flow, elm, reason and everything with types which compiles to JS. Types make it so much easier to refactor growing codebases and imho everybody should use it.
Flowtype would make it probably easier to get gradually introduced in the already existing codebase (and it plays nice with react native) but I want to be abstract here, so that is just a suggestion (and 100% typed languages such as ELM or Reason have so much nicer errors).
Also discuss other helpful tools like linters, formatters.
Homework: Introduce types to all your API calls and some important functions.
6. Introduction to (unit) tests. Similar as above.
Homework: Write a unit test for your form.
(TBC)4 -
Real story:
Started fixing one file in one repo, build, doesn't build, go into other repo fix just one file there, but first I need to make myself a toolchain, making of toolchain fails because it depends on some dirty fix in the file I was fixing, refactor and clean that to a proper state, fuck yeah toolchain builds, source toolchain run make now, breaks with undefined reference, no time to debug plus fuck this automake, remove it, make a makefile, builds fuck yeah, shit now unittest are failing because why not, refactored that makefile as well, everything compiles, automate the test fully so that they are ran on the target out of make just because I'm a nice guy, fuck yeah everything works, commit this repo, commit other repo, review time, one of the guys gave up, the other one did it properly, found some shit there, fix that, done, merge, triggers CI fucking pass
All of this was done in 3h, Talk about efficiency -
yo imagine if the most common and best toolchain for, say, Intel PCs was "mid-source": You can have the buildscripts, and a few extra seldom-useful bits, but nothing else.
Welcome to devkitPro: it's too hard to maintain a toolchain package for all the systems you develop on, so we'll maintain a modded copy of pacman you HAVE to use to get the only toolchain for Nintendo consoles for all systems. Oh, and it's not normal pacman, no, it's hardcoded to only be used for their shit.
Even on Windows.
why do they do this to us again?16 -
Have we all been brainwashed to use VS Code? Is there anyone who doesn’t like it? Everywhere I go it’s “you should use VS Code because ‘plugins’ and you don’t have to switch windows when using Terminal. And, we’re moving our toolchain to work with it.”
Well, it sounds to me like you’re trying to hack a Visual Studio IDE on a non-Windows platform, but I digress…
I was going to return to Atom the other day when I discovered that project died near 6 months ago. I’m sad.15 -
fuck lazarus
fuck pascal
please people you get C, C++, rust, java, javascript EVEN BRAINFUCK is better than this fucking stupid and obsolete language.
The toolchain is just horrible. fpc, fp-compiler, lazarus...
Even in repos 3.0.0 is not the latest one. Like who the fucking cares about improving this language, please think of people who don't give a shit and freeze it already
language is slow
language is horribly verbose
language is CRYPTIC to debug
nobody sain would ever want to learn this language
10 years ago as a student I would pit on lazarus
today I still pit on it
now about lazarus...
The IHM is one of the most shittiest interface we could ever dream of.
Even gimp does it better
you get to download fucking Mbs for a condensated pack of windows all over the places
fuck that2 -
Worst: Having Toolchain Problems while responsible colleague is on sick leave and a software release is tightly planned
Best: Fixing that fucking toolchain, delivering in time and getting commendation from SW Project Lead -
I wanted to automate the install of a toolchain which had just a manual install script. Piped `yes` into the installer and it worked just fine. Only downside, it always installs to 'y' 😅
-
So yesterday, I got a call from some cousins saying my aunt broke a toenail and (since she's diabetic) she could now either lose both legs due to gangrene or die if they amputate. 2 hour drive to get them and me up to see her, 2 back, all the while having to be stone-faced to console 2 grown men. Today is finals week, and I could also get a call any moment from the hospital to tell me she's either dead or now unable to take care of herself. Could even be mid-class with one of those "well put it on speakerphone" teachers.
On the tech front, i'm trying to compile a toolchain from source. But, oh wait, one of the binaries it needs to configure (pkg-config) is self-calling so it crashes my machine. Let's build it from source, then? Nope, it requires a working copy... of... itself? Well, fuck. A "yum reinstall" doesn't help as it just reinstates the self-calling version, and I can't outright remove it because systemctl needs it. Well, apparently it's like a binary but is a text script, somehow, so I removed the recursive line and configuring works. Now though, I'm worried it might be broken, so i'm gonna try and compile from source. But, despite it needing itself, it also needs a SUPER FUCKING SPECIFIC version of libtool, so that's gotta be compiled...
I really wanna fucking shoot myself.3 -
CUDA is a fucking bitch when it comes to configure projects
Creating my first CUDA project it yelled at me it doesn't support my current gcc version, ended up with me yelling back "OY SHUTUP" and slapping some flag for it to use clang instead — basically what it advised but I didn't listen first. Fine now.
Working on this project on another fresh environment, and now it doesn't detect anything and dumbly tries to reload my CMake project with the LATEST installed gcc when I already told it to use version 8 TWICE. First by setting up a toolchain with compilers pointing to this specific version and second by passing the -DMAKE_C_COMPILER pointing to it again. Still this stubborn piece of shit tries with latest everytime.
The most applauded solution was to use update-alternatives to make gcc point to the version I want CUDA to use. Thank you genius, but what if I don't want to use a deprecated gcc version with normal Cxx projects ?
And cherry on the top of this bullshit, I'm fixing this dumb configuration issue (can't stress enough how much I hate this shit) to be able to fix an EVEN MORE annoying issue with CUDA being a bitch AGAIN and not letting me use std functions where I'm allowed to
Fuck CUDA. Fuck CMake. Fuck C. Fuck everything3 -
> trying to make project using old version of specialized toolchain, exposes toolchain issue
> fix toolchain issue
> fix small typo issue in code
> linking spews ALL the errors at me and fails -
Feels pretty good when you chroot into your first LFS enviornment and nothing breaks (yet..). Also my toolchain seems to be compiling packages correctly so that's a plus :)
-
I learned to code on a jailbroken iPod touch around 2009. I wanted to compile some random project for jailbroken devices, but I had a windows comp (with dialup!!!), so I was like "why not do it on the iPod itself?". I didn't even have wifi, so I'd sneak out of my parents' house at night and steal the neighbor's (hey, I was 11 w/ overprotective parents who would freak out if I occupied the phone line w/ internet) to go read up on compilers, jailbreaking, etc etc. Eventually I got a working compiler and toolchain, but when I went to compile the project I wanted to use (and not just a test project that I found), it spat out errors. So I learned C/ObjC on my iPod. Turned out the project I was trying to compile was a load of BS, so I implemented my own version and put it on github. From a fuckin iPod. Win. It was some SBSettings control. Once upon a time, you had to jailbreak to get those cool slide up/down menus with the toggles for wifi, bluetooth, location, etc!!!1
-
Dug up decrepit FSF code from 2001 from a random Apple FTP that was indexed online, throw into toolchain from 2004 that doesn't provide extensions, and it fucking worked.
This was last week.
I don't know how the fuck DOS programs are still made for the original machines, the only decent toolchain is DJGPP but it needs 32-bit DOS extenders and a Pentium 3 with 128MB RAM minimum to run anything compiled with it, which sure as shit doesn't target appropriate DOS hardware (which is, on average, prolly a 386 with 4MB of RAM or so, considering most hardware still running meets DOOM minimum spec?)2 -
So who at Xilinx decided that their toolchain should only support a years old Ubuntu version which is buggy and one minor release behind LTS?6
-
Babel fails about 10% of the time, but if I re-run it it works. What the fuck did I even get myself into, and why aren't elements of a modern javascript toolchain completely deterministic? (webpack, babel, typescript, react)1
-
Every work call you have is a workaround. On call, if you explain something related to code or toolchain, it’s your failure at either documentation or choosing abstraction level. If you explain processes and task priorities, it’s your failure at management. If you discuss deadlines, it’s your failure at estimation.
If you’re an IT manager and do your job right, you should barely have calls.3 -
Picking up a project from 9 years ago someone abandoned and trying to bring it up to the new toolchain. First thing to try: pre-existing everything and just make it. Immediate toolchain flaw exposed ("internal error converting unsigned int to int" in a header file in the chain, huzzah!)1
-
Few issues with my PS3 N64 project:
the linker is dying on functions I just can't fucking find anywhere in either the code or toolchain, but the compiler just kinda accepts it...?
Example:
what the fuck is "find_func"1 -
All those complaining about getting interrupted while coding/debugging. Imagine getting interrupted twice in every 3 minutes during your anyways short working time (talk 2 to 5 hours) 'cause your actual job is to tutor people in using a toolchain and not developing it (at least not during that time)...
-
tfw you find a bug in a toolchain using unmodded 10 year old code that's so bad it needs an entire branch to test on
https://github.com/ps3dev/PSL1GHT/...
This is probably the biggest contribution i'll make to anything