45 comments

[ 4.5 ms ] story [ 89.3 ms ] thread
Thank you HN for being so valuable <3 It is truly a gold mine what I find in this website every day.
For me it's (sikulix)[http://sikulix.com/]

An underappreciated amalgamation of java robot, opencv and Jython has literally automated away thousands of inane man hours for me and some clients.

When I was in college, our online class registration process for each semester was very crude

When the time of year came, you'd be put into a group. Groups would be staggered across a series of days so as not to overwhelm the system. Very early on your group's morning (like 5am I think?), the floodgates would open and it was a mad (online) dash to grab slots so that you could hopefully get good times (avoiding 8am's, etc, or at least getting the credits you needed!). This all happened through a web portal, and in a matter of minutes you could miss your chance for some of the more popular classes. It was like trying to buy a PS5.

To go more quickly, you could type in an exact course number instead of browsing through the listings. So people would look up the numbers for the courses they wanted ahead of time (as well as for some backups, in case one or two of them filled up).

Well, I learned about AutoHotKey from another student. I hardcoded each of my F-keys to type in the course IDs on my list so I could fill them out rapidly, and was fairly successful getting the classes I wanted :)

The contemporary version of that is automating the whole process with Python and Selenium. Really it just calls into question why fifo is the mechanism for assigning priority for class registration and what better alternatives might be.
It's probably done this way because it's the easiest naive way to implement class sign ups. School IT seems like one of those places where accomplishing anything that isn't absolutely essential just doesn't happen.
That doesn’t seem like it should be an IT problem at all. It could be solvable with software, but how come you can make it into this horrible game of booking tickets to a popular festival?
Define "fair"?

If there is a 3PM class and an 8AM class, 90%+ of your people are going to sign up for the 3PM class (commuting students might not if they can use the early classes to pile all their classes into the same day).

Normally, if you needed a class to graduate, you could generally work something out. However, those classes were generally "in your major" and mostly never banged into hard limits (laboratory classes being the exception).

I am reminded of my beginning foreign language classes. They were always oversubscribed, but if you showed up the teacher would always sign an exception for you. They knew that at least 25%+ of the class was going to drop, so, they could basically give everyone an exception who showed up to the class.

Then they maybe should offer more classes at 3 pm an less on 8 pm instead of forcing people into 8 pm that don't want it?
Random distribution?

As you said, you can later on give the exception to the students naturally.

> Really it just calls into question why fifo is the mechanism for assigning priority for class registration and what better alternatives might be.

There's only so many ways of assigning scarce resources to a number of participants. And none of them are perfect.

FIFO is one. Lottery is another. Bidding money (auction) is another, where applicable.

There are more complex schemes like ranked choice, but that becomes increasingly complex to implement, requires goods to be somewhat interchangeable, and also requires education (not everyone knows what ranked choice is, but everyone knows what 'first come first serve' means)

(comment deleted)
Note that Spectacle for macOS is no longer being maintained.

https://github.com/eczarny/spectacle#important-note

A common alternative mentioned is Rectangle.

https://rectangleapp.com/

Thank you! Fixed it on the post
Rectangle is great for a free/open-source window manager. No need to spend $8 on Magnet
Magnet is fine, though. I have never missed the $8.
If you work with web applications repetitively in your work, a browser scripting platform like Selenium can be super powerful and Selenium is easy to work with in Python.
Check out Cypress for a more modern approach to Selenium if you’re using JS/TS!
Agreed, there is a lot of power to Selenium or Chrome Headless, but it does require a bit more investment than your normal tool.
The title is a bit confusing. It should says “programs that have saved Hacker News users 100+ hours”. I thought it was going to be about programs that people like dang at Y Combinator use in running Hacker News.
Bash. being good at bash will save you hundreds of hours in your career.
Agreed, but I'd argue that any good scripting language would do it.
More than bash I'd say knowing how to effectively use the coreutils is a superpower. I don't know how to do basic control flow in bash without looking it up, but putting together pipelines of various tools has saved me lots of time.
Is there anything like AutoHotKey for Linux (Debian/Ubuntu)? It's the thing I miss the most from using Windows.
If you're on X11, there's xdotool and for Wayland, ydotool.
The potential in xdotool is there, however what I loved about AutoHotKey was the ability to inspect windows and actions to use for scripting purposes. Not sure if there is such a feature I am missing in xdotool or similar.
It's not the same, but kwin's rules and scripting features allow you to inspect windows and automate some of their actions. If you combine them with xdotool/ydotool, you might be able to recreate some of the features you expect.
Sending me towards the right path.

It looks like I could write a little script using some of xdotools built in tools for cursor coordinates, active window info and geometry etc that would be pretty useful. As a quick solution it could alert using notify-send on a key combination, although figuring out how to append the data to the cursor overlay would be even nicer.

(comment deleted)
Surprised to see PowerTools but not ShareX. Originally a screenshotitng tool that is now somewhat of a more advanced Powertools. For instance, if I'm putting together product documentation I can take a screenshot of a specific window/region, save it to my hard drive, upload the resulting file to S3/B2/FTP, and get the resulting link copied to my clipboard using a single keyboard shortcut. One of the features I use often is the ability to grab a region of my screen and use OCR to convert it into copy/pastable text.
I have tried ShareX, but I still feel like it is really easy to share a screenshot of something you are working on and share to the internet way too easily. How do you avoid those situations? Feels like having a loaded gun at all times.
personally i just upload to a self hosted bucket but if i don’t want it being uploaded at all i use a different thot key

ie print screen for ss and upload vs shift+ctrl+print screen for just a ss

Honestly, I just have mine configured to copy the image directly to my clipboard and manually go through ShareX or my web browser to upload it somewhere. Most places I'm in (Hangouts/Slack/Discord/etc) allow me to paste images directly, if not Imgur allows uploads from the clipboard.
Snagit has been my go-to screenshotting/documentation tool for 3+ years.

It's not free, but it's the best thing I've found for being able to quickly take screenshots & annotate them - it's got better annotation tools than anything else I've used. It can also record video clips & save w/ relatively small file size (to give a quick walkthrough of a software feature or plainly show replication steps for a problem).

Snagit got me into trouble twice at my last job, by phoning home even when I'd ticked off the preference for sending usage information (which appears you have to opt out of, rather than opt in to, which is a dark pattern in my book anyway). My employers monitored for all data leakage and my machine got flagged for this twice. So I uninstalled it and have never used it since. ShareX is my go-to now.
I've used this for years on my Windows PC until they introduced their new Win+Shift+S screenshot tool. It does everything I'd ever want except for the automatic uploading and copying the URL. But in fairness, I never need it. I just paste the screenshot directly into whichever editor, e-mail or instant messaging client I'm using to communicate.
it's interesting that linux/unices is not listed because it is in my opinion the best place to automate repetitive tasks. now it may not be GUI intuituive

  - Regular expressions
  - vim
  - sed
  - imagemagick's convert/mogrify