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 - "abort"
-
We should totally be able to use try/ catch irl, especially in social situations
try{
riskyText();
} catch (InappropriateTextError e) {
abort();
}6 -
rant
When you start a new project.
You create a new directory.
You start the IDE and create a new application project.
You type just 5 lines of code for testing it.
Then you compile and run.
Nothing happens...
You abort and retry.
Nothing happens...
Half a minute later a window pops up and Norton reports you that an executable has been removed because its suspicious and has a lack of reputation!!!11 -
Today, during an update from senior management, I was casually sitting in the corner filling in my CV to get out of here lol.3
-
Sad to abort a nice Minecraft session with fellow devranters in order to drive to work... Hopefully I am back before 4AM.18
-
The millisecond after the ENTER you realise you are pushing directly to master. Now you are trying to abort (just did it)2
-
Fuck you cock sucking turd licking MS Teams.
What kind of assrat did code you into the marooned abomination you are?
I will take the timeachine and retroactively abort your devs.19 -
So I'm writing some multithreaded shit in C that is supposed to work cross-platform. MingW has Posix threads for Windows, so that saved already half of the platform dependency. The other half was that these threads need to run external programs.
Well, there's system(), right? Uhm yes, but it sucks. It's incredibly slow on Windows, and it looks like you can have only one system() call ongoing at the same time. Which kinda defeats the multithreaded driver. Ok, but there's CreateProcessA(), and that doesn't suck.
Fine, now for Linux. The fork/exec hack is quite ugly, but it works and is even fast. Just never use fork() without immediate exec(). First try under Cygwin... crap I fork bombed my system! What is this shit? Ah I fucked up the path names so that the external executable couldn't be run.
Lesson learnt: put an exit() right after the exec() in the path for child process. Should never be reached, but if it goes there, the exit() at least prevents a fork bomb.
Well yeah, sort of works under Cygwin, but only with up to 3 threads. Beyond that, it seems like fork() at some point gives two processes the same PID, and then shit hangs.
Even slapping a mutex around the fork and releasing it only in the parent process didn't help. Fork in Cygwin is like a fork in the ass. posix_spawn() should work better because it can be mapped more easily to the Windows model, but still no dice.
OK, testing under real Linux. Yeah, no issues with that one! But instead, I get some obscure "free(): invalid size" abort. What the fuck would that even mean?! Checking my free() calls: all fine.
Time to fire up GDB in the terminal! Put a catch on the abort signal, mh got just hex data. Shit I forgot to compile with -O0 and -g. Next try. Backtrace shows the full call trace, back to the originating line in my program - which is fclose() on a file.
Ahhh I remember! Under Linux, fclosing a file that is already closed makes the program crash. So probably I was closing it twice. Checking back.. yeah that's where it was.
Shit runs fast on several cores now!8 -
La me working on a new chrome extension:
- ok, this page has some hidden divs, I need to tell the extension to make windows scroll to the bottom while there are still elements with a hidden class
- creates a while(1) loop with a condition inside it to break if no elements with hidden class are longer there.
- happy with the code
- uploads the extension
- goes to page
- brings out developer tools
- goes to console
- clicks on extension on chrome
- right clicks the extension and then inspect
- ok here we go: la me click on button inside extension popup
- console shows some logs
- nice it's still looking.
.
.
.
- wait! Why is the page not scrolling ???
- looks at logs, WTF nothing changes in logs .....
- OMMMMG a infinite loop .... infinite loop inside chrome ....
- OMMMMMG my pc's gonna crash .
-stop please stop stop.
- wait! how do I stop this?
- tries CTRL+C ... nothing
- tries CTRL+Z ... nothing ...
.
.
.
.
Abort abort Aboooooort.
.
.
.
- Deletes extension from chrome.
-..... loop still running
- clicks on X to close Chrome.....
- not closing O_o
- Oh God, i need to do something before Chrome sucks all the RAM left.
- remembers the savior...
.
.
.
- Task Manager heeeelp me.
- opens Task manager
- chrome is consuming ~ 2 GB of RAM.
- WTF! Kills chrome.
Thanks for reading my lil adventure 😅5 -
Merge VS Rebase:
- Did you pick a side?
- Practical tips? Like dealing with merge conflicts
- Have you ever regretted using either?
My answer
* My team squash-merges all branches to master so we don't really care what the branch history looks like. Master history should be pretty - but a branch history can be ugly and filled with a dozen commits.
* Practical tip 1: use `git config rerere.enabled true`. rerere stands for "reuse recorded resolution" and this means if you rebase often you don't have to resolve the same merge conflict twice.
* Practical tip 2: use `git commit --fixup oldcommithash` and then rebase with `--autosquash`
* I like using Rebase. But I have regretted the amount of time I've spent on trying to rebase old branches with many commits only to give up and to `git rebase --abort` since I realised I couldn't handle trying to reapply all the commits chronogically as the changes in the 1st commit were no longer relevant.46 -
Today we learned:
Don't run a backup integrity check on terabytes of data in multiple jobs your cpu can't handle.
And i cannot abort the process...
Guess i have to go outside, in the cold, brrrr.1 -
!Dev
In Malaysia for some reason Chinese and Indians are considered as outsider. Some Malays are considering themselves are native (actually the Orang Asli are the native). Many politicians attempt to even startled a racial fight against the non- Malays. My country is operated by a closed system. Most Dutch , US companies are leaving Malaysia due to the unfairness.
Before this I worked in a Dutch company in Malaysia , where lately the company declare bankruptcy as my respectable boss told me what happened. Later I learnt, in order for a foreigner to start a company in Malaysia , a transaction of transfering have of the company assets and name under an assigned Malay man by the government.
The racism here is real and crazy. It is no surprise most Malaysian migrating to Taiwan, China Singapore , Thailand and some western countries.
I hate racism. Recently I heard news about western countries still have the hatred against Asians which I abort the idea of migrating there. But in my country Asians are hating other kind of Asians before for being different Asian.
May be I should just get my arse back to Mongolia (where my ancestors will be )6 -
Dear other developers,
Don't throw exceptions in async callbacks goddammit. It doesn't abort the outer function where you think it does, and it crashes the app because you can't catch it.4 -
Quotes are paraphrased (unless *) to protect the incompetent and stupid (or more the case: client and I'm reducing risk of exposure)
Situation: We have a program that opens sqlite database files. Occasionally new versions of the program needs to upgrade these files.
Program UI: To proceed you need to upgrade your database. It is recommended you backup your database before proceeding. Hit Yes to continue or No to abort.
Client: How do you back up a model once it has upgraded? If I hit No the program closes leaving me no option to backup the model.
Support: *The easiest way of backing up a model before upgrading is creating a copy of the file and keeping it in a separate folder*
Client: *Haha forgot about being able to do that outside of* <program name>
TL;DR: engineer in technical role who is probably getting paid $150k+ forgets it is possible to make a copy of a file.1 -
I recently started learning Erlang. This is the story of how I got trapped into it.
When I code, I usually use my trusty text editor and a terminal to either compile my code or run tests in the language interpreter. The interpreter, erl, works fine, but when I wanted to close it, I ran into a small issue.
Because I never know what the command is to close an interpreter, I usually use the EOF character (^D), that is widely recognized. Except erl does not react to it, not even a tiny message saying it won't close or doesn't recognize the output.
Alright then, let's try quit. That's an atom, it does not behave how I want.
quit() is an undefined shell command, exit() terminates the shell process but the interpreter automatically starts a new one...
But I get the welcome message, telling me to abort with ^G! Some progress, finally... except ^G redirects from Erlang interpreter to user switch command. Damn, another interpreter...
I ended up killing the process from an other terminal.4 -
A long time ago in a decision poorly made:
Past me: hmm we're having trouble getting IT to give us a new build machine with the new compilers.
Past me: I know we'll just use one of the PCs that belongs to a member of the team to tide us over.
[2 months pass]
Present me: that's odd, Jenkins is really slow today.
[Several minutes pass]
Present me: holly shit fuck; it's building the whole weekends worth of builds at 9am on a workday and eating licenses like a cast away that suddenly teleported to an all you can eat buffet.
Present me: [abort, abort, for the love of fuck abort]
Present me: contacts IT, they can't find any problems, wtf happened.
Present me: discovers team member turned off his machine on Friday and builds had been stacking up all weekend.
Lessons learnt: disable power button on team members pc and hire a tazer guy to shoot whenever someone goes near the wall socket.
1 hour lost and no build results for the last 3 days.
It's looking like a bad morning -
So fun fact about message-passing plugin APIs, everything becomes a parallel programming problem. My lexer (the part of an interpreter that recognizes fundamental syntax elements) spawns a callback thread with request and reply channels, and then messages a plugin which is able to either talk to the callback thread or message the original thread with a successfully parsed token or an abort.
It has just occurred to me that plugins are under no obligation to sequence their requests to the callback thread, which means that having one channel for requests and one for responses no longer suffices; the requests need to each contain their response channel. -
Was thinking of some missing features for everyone's favorite source control software:
git blame problems --all
git wtf this_branch
git just_do_it_ffs
git just_fkin_merge_it branch
git abort --mylife -
Turns out composition over inheritance won't save you from downcast hell, it just becomes `_ => abort()` hell.4
-
How do you do your CI/CD pipeline? Sorry if this is a dumb question. Just wondering how the tests and deployment usually runs. Is it on a per team basis? Is it the whole release getting deployed to Test many times per day? What happens if too many automated tests fail or there is not enough coverage, does it abort the deployment? If so, how can every team get delayed by every issue - is that actually a good policy?
My pipeline is very slow and requires a team of 12 people working in shifts to complete it. I’m not an expert but I know it does a lot of steps and never completes without manual intervention. I would like to help but I’m not sure how bad it is.3 -
Samba feels like a boat.
You sail along and everything is fine. But when you abort 7zip you hit an iceberg and shit is about to go down. -
I made a very obvious realization since the last time I rewrote Orchid; the 3 year project that has now become an eloquent documentation of my learning process; Types aren't free. Sure they're free at runtime, in fact the more you have the less the language has to work to separate values, but they generate significant cognitive load.
Oftentimes it's better to have one enum with 12 variants 3 of which are specific to a narrow case to be able to define operations for this enum once, than it is to have 3 distinct enums of 10, 11 and 8 variants respectively, and to have to define common operations (or the dispatch part anyway) thrice.
As for my previous observations about catchall abort acting like the new type abort, I still think that, and I still think that this is only justifiable if the number of invalid variants is low enough in every case that you can list all of them before the abort.4 -
does anybody of the alexa skill tester actual read the additional test instructions given by the developer?
please be aware that this and that can be used likewise. pleade provide information why the utterance abort invokes default even if i keyed it to stopintent
'given this, expected that. cancel doesn't an abort'
you don't fucking say!
(sorry for being repetitive but this is my current project. four weeks full of shitty 'feedback')