[HN Gopher] Some tiny personal programs I've written
___________________________________________________________________
Some tiny personal programs I've written
Author : atg_abhishek
Score : 799 points
Date : 2022-03-09 14:19 UTC (1 days ago)
(HTM) web link (jvns.ca)
(TXT) w3m dump (jvns.ca)
| jrm4 wrote:
| My dream in life, seriously, is to get waaaay more people doing
| this sort of thing than they do now. If STEM is worth anything,
| it would be worth things like this*
|
| *(I run a STEM non-profit, so I feel pretty qualified to
| criticize it this harshly)
| markussss wrote:
| I absolutely love this, and I do the same. Small programs and
| scripts to solve problems I encountered in my daily life. When I
| make them for my own use, and for myself to enjoy making
| something, I don't care about whether it's the best solution or
| the most elegant solution, as long as it's _a solution_! And I
| really, really enjoy that. I don 't care if it's one or one
| hundred lines, as long as it's enjoyable!
|
| A few of my examples are:
|
| 1. A PyQt GUI for redshift. I use this every day, and have been
| for a few years.
|
| 2. Userstyle for horizontally flipping a video. Sometimes a video
| or stream is mirrored, for some reason, and it's just _nice_ to
| be able to fix it.
|
| 3. Userstyle for scaling videos that originally had an aspect
| ratio of 4:3, but have been stretched out into 16:9 back to the
| original 4:3 aspect ratio. It's surprising how often you come
| across those.
|
| 4. Userscript for improving the functionality of the investment
| portal of my bank.
|
| 5. Bookmarklet for opening all videos on the page in new tabs,
| but there are some problems with iframes yet.
|
| 6. Bookmarklet for setting playback speed of videos on the
| current page. I use this several times per day.
|
| [1]: https://github.com/Markussss/redshift-gui
|
| [2,3,4]: https://github.com/Markussss/userscripts
|
| [5,6]: https://markussss.github.io/
| wwilim wrote:
| > I don't think it actually helped but it was fun
|
| This seems like the central theme, and I can totally relate
| lormayna wrote:
| * With the spikes of gasoline prices, I have developed a tiny
| program that find the station with best gasoline prices close to
| my position. This might become a public website in the future
|
| * I have mostly automated my mailing list: I save the links in
| Raindrop, save to Notion, write a bit of text, and send through
| Buttondown. It's still work in progress, but it works nicely.
|
| * To fronting vaccine booking for my parents, I wrote a script
| that check if the vaccine was open for their age group.
|
| * When I moved to my new house, there was some technical problems
| to activate my ADSL (the telecom company need to dig into the
| street and it was planned, but not scheduled). Then I wrote a
| scraper that every 2 hours check on the website if my address was
| available for a new ADSL line.
|
| * My wife is working on property management. For law enforcement,
| at the end of the month, they need to send details about guests
| to police. It's a tedious activity to make by hand because you
| need to fill up a form for every guest. So, my wife has prepared
| a form in Airtable that the guests must fill up with all the
| information needed; then I wrote a Lambda function that at the
| end of the month, get the data from Airtable, generate a file in
| the format for bulk upload and send it to my wife via email. I
| saved her hours.
| justinlloyd wrote:
| I code every day, even when my job has me busy with other things
| that aren't coding related. I love banging out tiny programs and
| scripts to solve problems.
|
| When I didn't have a problem of my own to solve I'd hang out on
| the Unity3D forums and write little time waster demos of
| questions that people had such as "how do I make a snowboard
| game?" or "how do I make a fishing line and have it sag in the
| middle?"
|
| I wrote a space invaders game for my online resume.
|
| I've made a number of interactive touch screen and motion
| controlled robots and laser pointers on robot arms as cat toys
| over the years. Made one that streamed video and let people
| control the laser pointer via a web browser.
|
| I've made a litter box cleaner robot that outsourced each
| cleaning to Amazon's Mechanical Turk. Robot arm controlled via
| web browser, video feed, Mechanical Turk assigns a "cleaning job"
| to a worker (human).
|
| I wrote a script that would take all the video from a bunch of
| cameras and process them, down rez the video, and properly label
| it for a bunch of tutorial videos I created.
|
| A voice controlled "artificial intelligence" assistant producer
| to help me record tutorial videos "Hey producer, roll VT, and
| give me a close-up on camera 1."
|
| I lost a bitcoin wallet address - it wasn't a lot, a few dozen at
| most. I knew which computer the wallet was originally on, and I
| snapshot a picture of my desktop every few seconds and store the
| images on a file server. So I wrote a script that would take all
| the images and batch process a text recognizer on Linux to look
| for when the wallet was open. Et voila, my seed phrase.
|
| I wrote a script that monitors our street facing front door via
| video camera for packages and sends an alert if a package is
| detected on the front porch.
|
| A PowerShell script to move Chia plots from the plotter to the
| farmer.
|
| A MACH driver for my weird little NextWave Piranha desktop CNC. A
| script that will generate the g-code to cut dove tails on my CNC
| for me, but also the Ruby code to generate the dove tail view in
| SketchUp too before I perform the cut.
|
| When doing some extensive travelling for work back in
| 2013/2014/2015 I created a small Android app that would count
| down the amount of time until my wife and I got to see each other
| again and show where we each were on a google map.
|
| I run Timesnapper on my Windows machines to capture images of my
| active desktop usage, so I created a similar, though much simpler
| application for Linux and macOS to do the same thing.
|
| A script to emulate a macOS Fusion drive, marrying a RAM drive
| and an SSD for super fast builds AKA fast tiering.
|
| And a bcache kernel driver for ESXi that would put a RAM drive in
| front of the SSD array for VMs that were doing builds or lots of
| drive activity AKA fast tiering.
|
| Back in 2016 I figured out a script for Linux that would spoof
| the OS identity so that Linux machines could connect to the
| corporate VPN, masquerading as an iPhone.
|
| An NDI plugin for Unity3D.
|
| And a bunch of bots to play or multibox various online MMORPGs
| and hack-n-slash games. Which lead to paying work with a couple
| of companies who wanted me to figure out ways to stop that sort
| of thing.
|
| And a computer vision game playing bot for a few online games
| that I didn't want to grind on.
|
| A parallel 3D printer partioning system to farm out jobs to 3D
| printers at our local makerspace.
|
| An out-of-the-box VPN proxy running on OpenWRT so that any device
| connected to the OpenWRT router was automatically on the VPN.
|
| A C# wrapper around the FFMPEG library.
|
| A SenseCam application and associated hardware.
|
| A chrome & firefox plugin (no longer maintained) for a People You
| May Know sorter for Linkedin.
|
| I created a voice activated application that can open and close
| the garage door for me "open the pod bay doors hal" and also
| switch the dust extractor on and off when I am working, though I
| have since replaced the dust extractor power function with a
| dedicated device that detects power tool usage.
|
| I created an application that will copy USB sticks en masse for
| my wife's technical conferences, and also update a USB stick with
| any appropriate updates such as new slides or presented papers as
| speakers submit them.
|
| I wrote a script that would go through each of the conference
| papers and put the IEEE copyright footer on them before
| submission.
|
| My mother-in-law was a research librarian and she and a few
| colleagues needed to run a study, and they had applied for a $10K
| or $20K grant to conduct the study to determine which journals a
| group of universities should continue to subscribe too. Grant
| application denied. $10K-$20K of research to save a few hundred
| thousand. I wrote a script in a couple of hours, and got paid a
| large gourmet pizza, that gathered all the results needed and
| dumped them into a spreadsheet, and so a group of universities
| saved a bunch of money on journals they didn't need.
|
| I wrote a script that captures video of multiple in-office
| cameras that captures my activity in my office throughout the
| day, and wired it up to a button that lets me pause the
| recording, or erase the last 30 seconds, five minutes or hour. It
| is hooked up to an "on air" light so my wife is reminded not to
| walk in my office partially dressed when the camera is active. It
| gathers all the video feeds, and the depth sensor data and dumps
| it on a server.
|
| I wrote a little in home dashboard that tracks our wallets, our
| phones, our cats, weather for the week, upcoming meal plan,
| appointments, and so forth.
|
| A "Waterfull ring toss" game with a big button, just like you
| remember from your child hood, made from a 55" Samsung TV I found
| on the side of the road.
|
| A bunch of time zone synchronized wall clocks in our upstairs
| hallway, with VFD displays showing location weather, financial
| headline to give you something to talk about with your client in
| that time zone, exchange rate, and so forth.
|
| A neural network to pick horses in a race, that eventually turned
| in to a small side business.
|
| I'm currently tinkering with a gesture controlled viewer
| dependent holographic display made from those spinny LCD fans
| with HDMI input you can buy through Aliexpress.
|
| And dozens more over the years. I don't think I'll ever stop
| working on random ideas like this.
| nivethan wrote:
| Julia writes so nicely, something about the way she talks about
| projects and things is so earnest. I have a brag document because
| of her and it's helped quite a bit. I have my own list of toy
| projects and I think it's good to track them especially to find
| code examples later!
|
| https://nivethan.dev/projects.html
|
| I really liked writing a http server in bash because I started
| just to see if I could. I also really like my project to get the
| top reddit stories from each country.
| ludovicianul wrote:
| It's fun to build simple stuff that work, but it's even more
| rewarding to build stuff you actually use every day. I made a
| simple expense tracker that will parse the SMS messages I get
| from the bank when paying for stuff, categorise based on merchant
| categories and push it to a google spreadsheet for traceability
| and visual charts. Good opportunity to play with building native
| images (it's done in java) in order to minimise resource usage as
| it's deployed in a 5$ digital ocean droplet. 10 years ago I've
| built a Swing app to generate invoices in a local compliant
| format. It was great to flexibility to customise everything.
| psalminen wrote:
| I did the same thing. I use a twilio number that calls a GCP
| cloud function. Super handy utility, and I haven't had to pay a
| dime for it.
| aghilann wrote:
| If any of you know don't know what LaTeX is, it's a way to write
| documents, it's usually used to write Math and Science research
| paper's because the of the formatting and symbols LaTex allows
| for. It has a lot of flexibility, but everything in LaTex
| requires a lot more effort to type then in something like MS
| Word. I have to use it for a class I'm currently taking where you
| have to do super long proofs, I created a short 50 line script
| where I can enter a mathematical expression using plain text and
| shorthand's for special symbols and the function returns a string
| I can copy and paste into LaTex. Saved me and my groupmates
| multiple hours, I also posted on my class forum so I can save my
| classmates the pain as well.
| arendtio wrote:
| You might want to check out those blog posts:
| https://castel.dev
| generalizations wrote:
| Might be worth looking into Lyx also. It's a sort of WYSIWYG
| for latex.
| version_five wrote:
| I have to disagree with you about LaTex being slower than word
| for equations. In fact, one of the big reasons I started using
| it was faster equation typing. And when word2003 was upgraded
| to 2007 or whatever came next, they actually changed the
| equation editor to allow latex style entry so you didnt have to
| click through the menus to get symbols.
|
| What kind of shorthand do you use with your script? I honestly
| find latex's shorthand already short.
| aghilann wrote:
| The course I'm currently taking makes me uses symbols like
| the biconditional, xor, and quantifiers. Each symbol requires
| an entire word to type out but I also frequency have to look
| at a reference sheet to find the command for each symbol. I
| just use short hands like "-" for not, "and" for $\land$,
| etc. I'm sure if I used LaTex more often, I would have most
| of the commands memorized but I use it infrequency so I
| almost never remember.
| hegzploit wrote:
| I'm pretty sure you can create macros in LaTeX, not sure If
| this would solve your problem.
| McBeige wrote:
| Back in high school I used OneNote and had a pretty good MS
| equation editor setup. Most things can be done in a similar
| way to LaTeX, e.g. writing \theta for greek letters, writing
| a slash for fractions. With a few "replace with" "macros" I
| could write quite fast, probably faster than I can in LaTeX
| these days after about the same amount of practice, and
| almost never had to use the GUI.
|
| These days my notes are all Markdown with inline LaTeX for
| math. I haven't yet found an editor that support "global"
| LaTeX macros/shorthand. Things like matrices can be bit of a
| pain, but then I haven't written any since linear algebra.
| xmprt wrote:
| I wonder if you could make a few minor tweaks so it's a latex
| plugin and you can skip the copy and paste process.
| CRConrad wrote:
| Here, have an upvote for sharing it with your classmates.
| froh wrote:
| Here is relatively recent collection of tools and tweaks to
| quickly create math in LaTeX, quick as in: live transcribing
| class notes.
| https://www.reddit.com/r/LaTeX/comments/ieonbz/using_latex_f...
| hereforphone wrote:
| I don't think there are any engineers (people who have gone to
| engineering school) that haven't used LaTeX. [Editing based on
| replies]: Apparently I am wrong. Maybe it's just at the grad
| school level that one can expect to use LaTeX frequently; I
| made the assumption because I took a Master's.
| pitaj wrote:
| Checking in as a BSEE: never used LaTeX.
| pushrax wrote:
| It's more common in CS than engineering in my experience,
| when CS is part of the math department.
| Jtsummers wrote:
| You're very optimistic. I doubt anywhere near the majority of
| engineers have used LaTeX directly. I've seen a lot more (of
| all ages) who used Word for their technical writing. If they
| used LaTeX or TeX it was a one-off, not something they became
| skilled with.
| avg_dev wrote:
| If you put it on GitHub, or anyone linked me to a similar tool,
| I'd be interested. Thanks.
| vulcan01 wrote:
| This is not exactly the same thing, as it just renders the
| output, but the following uses markdown and asciimath for
| quick math notetaking.
|
| https://vedthiru.com/tools/notetaker
|
| Disclaimer: I wrote it.
| aghilann wrote:
| This is pretty cool, similar note taking service called
| Obsidian I use to take notes in Markdown
| Minor49er wrote:
| I recently came across a zine someone made called The Codex:
| Life with Linux. It's on Etsy for $6 [1], but their short
| chapter of LaTeX tips is fully shown in one of the screenshots
| [2]
|
| [1] https://www.etsy.com/listing/1099735271/the-codex-a-zine-
| abo...
|
| [2]
| https://i.etsystatic.com/9756188/r/il/09766b/3387078510/il_1...
| fmakunbound wrote:
| > use secret undocumented APIs where you need to copy your
| cookies out of the browser to get access to them
|
| Yea, thank you modern front end developers. This is my favorite
| start for scraping as well.
| JamesMcMinn wrote:
| I own the house I currently live in because of a script I wrote.
|
| We had been looking for a new build for some time and had settled
| on a development and specific house we wanted to buy, but it was
| still months away from being released. We were told they released
| houses in person first, then listed them online later that day,
| but I was bored and wanted to see when new houses were listed, so
| I wrote a scraper to alert me whenever a new house became
| available.
|
| One day, we got a call from the property developer telling us the
| house we were interested in would be available in person from
| 10am the next day. Because we wanted to be certain to get it, we
| appeared at 8am, only to find that 3 other people were already
| waiting. Houses are released in batches of 2 or 3, so whilst we
| weren't hopeful, we joined the queue and waited.
|
| At 9am, while waiting in line, I got an alert telling me that the
| house had been released online, so I open their website on my
| phone and paid the deposit.
|
| At 10am, when the sales office opened, all hell broke loose as
| the person first in line (waiting since 5am...) discovered the
| house they wanted had already been reserved online. I'd
| effectively stolen his house. It was awkward to say the least as
| all of us were crammed into a tiny portacabin while this
| unfolded.
|
| In truth, I felt awful for depriving him of the house he and his
| family wanted, but relieved that we had reserved the house we
| wanted after a 5 month wait. A few weeks later the developer got
| in touch to say that they had changed their policy nationwide and
| would only be releasing houses online in the future because of
| "the incident"...
|
| Whilst I wasn't willing to give up our reservation, I worked with
| the person who had wanted our house so that they were alerted
| whenever a similar house in the same development became
| available. He got one, there's no hard feelings, and him and his
| family are now my next door neighbours.
| jwong_ wrote:
| Did you end up running the scraper longer for your new
| neighbour?
| JamesMcMinn wrote:
| I did, yes. I set it up with some specific conditions that
| sent him an alert whenever a house similar to ours became
| available. In the end, he got the house directly next to ours
| and very similar in design.
|
| Our garages actually share a wall.
| jwong_ wrote:
| That's really kind of you to run that scraper for him as
| well. Glad it all worked out~
| recentrecruit wrote:
| Reminds me of "Project Thor" from my university days. Course
| registrations were online, but in phases, e.g. Seniors for a
| week, then Juniors for a week, and so down the line.
|
| However, many students would snag a spot in a course only to
| drop it as they shuffled courses around. There existed a
| "queue" for the overflow, but it appeared to work as a CRON job
| or otherwise involved a human in the loop as one would
| routinely see:
|
| Spanish 102 (Registered: (29/30), Queued:(60))
|
| While in this state, one could simply click on the course and
| register, completely bypassing this poorly designed queue. So,
| naturally, I wrote a script to scrape the site on once a minute
| (hammering it, and so Project Thor) and alert me once a slot
| had opened up. Eventually provided this service to my friends
| as well.
| viceroyalbean wrote:
| My university had a queuing system used for presenting
| assignments. You could always access the page, but the queue
| wasn't open unless the TAs were there ready to take
| assignments. When the queue opened it would send a websocket
| message, so I made a browser extension that connected and
| waited for the queue open message and then immediately
| entered the queue. The effect wasn't huge (even in larger
| classes you would only have to wait 20-30 minutes even if you
| entered late) but it was nice to be able to sit back and not
| worry about getting a good spot.
| remram wrote:
| My university actually had a bidding system. You would start
| the year with 10,000 points, and you could bid any number on
| electives. So you could spend a lot of points on one
| particular popular elective, and be guaranteed to get it, but
| then you would not be able to bid as high on other electives
| for the rest of the year.
|
| The system was pretty smart, except for the part that you
| could bid negative amount of points on an elective that
| wasn't particularly popular and increase your total. That was
| a pretty major flaw.
|
| [edit: I should say that I didn't use my extra points for
| anything. I wasn't particularly interested in the popular
| electives anyway. I did make sure to end the year with 10,001
| points, hoping they would fix the bug, but I don't think they
| did.]
| jotm wrote:
| I've got something similar for appointments at citizens'
| bureaus in some European cities. The waiting time is usually
| around a month, which is insane imo.
|
| My script constantly looks for open/canceled spots and
| reserves them (some need email/phone confirmation, which
| makes it a bit harder). Pretty standard stuff.
|
| That's how I got my appointment in 3 days instead of a month.
|
| So, I'm thinking of making money from this, but I'm not sure
| about the legality of it all.
| FPGAhacker wrote:
| What is a citizens' bureau?
| konha wrote:
| Not OP, but sounds like the places in Germany where you
| go to get or extend your passport, register after moving
| to a new place etc. Notoriously hard to get a timely
| appointment for things that should not require an in
| person interaction in the first place.
| jotm wrote:
| As konha said, it's the government offices, providing
| services for registration, driver's licence, taxes, etc.
| It works the same way in several EU countries.
|
| Sometimes you can just show up (and wait in a queue) but
| most often you make an appointment beforehand. In many
| states/cities, the waiting times are weeks and months
| long (even in my home city everything's booked a month
| ahead and you can see the big queues if you go in
| person).
|
| People can indeed just refresh the page themselves and
| hope a spot opens up, but that's pretty annoying.
| therein wrote:
| I did something similar at UIUC very many years ago. I was
| called to the office of head of Department of Computer
| Science and kindly told while he thinks it is cool that I am
| applying my skills relevant to my field of study, I should
| stop what I am doing as even simply scraping could be
| construed malicious if it got the attention of the wrong
| people in the school.
| petters wrote:
| I think there are a large percentage of programmers at Swedish
| national soccer games, as they release tickets online at a
| first come, first served basis. (At least 10 years ago) This is
| also true for fancy restaurant bookings.
| omneity wrote:
| A similar story happened to me in the past with appointment
| slots at an embassy, and - shameless plug, I built a tool[0] to
| monitor websites on my behalf, and send custom alerts to
| Telegram, Discord, Slack, or archive data in Airtable, Sheets
| etc. No coding or devops is required, you can get it done in 2
| min [1].
|
| We're in Beta so stability is still a goal we're pursuing, but
| for many happy paths Monitoro is a huge timesaver.
|
| [0]: https://monitoro.co
|
| [1]: https://www.youtube.com/watch?v=gZkJDk1lzrY
| stuckkeys wrote:
| This is pretty cool.
| omneity wrote:
| Thank you! :)
| mahathu wrote:
| >I own the house I currently live in because of a script I
| wrote.
|
| Somewhat similar story for me. I live in a big European city
| where young people/students predominantly live in flatshares.
| One website which pretty much has a monopoly on room ads here
| also allows room seekers to post an inquiry themselves. So many
| people do it that after less than half an hour, your ad will
| already be somewhere at the end of page 2. I wrote a script to
| automatically update my ad every few minutes to push it back to
| the top. I ended up getting a lot of responses I probably
| wouldn't have gotten otherwise.
| conroydave wrote:
| id love to get their honest opinion on the 'no hard feelings'
| part
| nanidin wrote:
| I have similar stories for launch day Nvidia cards, concert
| tickets, festival tickets, and original artwork from creators
| on Etsy. Any time I catch myself wasting time refreshing a page
| for availability, I try to replace myself with a script.
| Fritsdehacker wrote:
| I had a similar experience, though not with a house. My sons
| school was organizing a couple of sport activities. We could
| sign him up for the different activities, but it was first come
| first serve. We were early, so our son ended up doing all the
| activities. This meant some kids ended up getting nothing.
|
| I found this very unfair. Better would have been to let all the
| kids list there preferences and then fairly distribute the kids
| over the activities. However, I could see why the school
| wouldn't want to bother with this.
|
| I ended up creating a tool (1) for them to do this easily. It's
| quite ugly, but it's open source (2) and it works. The tool is
| in dutch because it's a dutch school.
|
| (1) https://eerlijke-indeling.nl/ (2)
| https://github.com/deliriouspenguin/eerlijke-indeling
| nunez wrote:
| lol don't feel bad; you took advantage of a broken system and
| automated your way through it. The first person in line
| would've done the same if they knew how!
| artdigital wrote:
| I did the same with the apartment I currently live in. Although
| it's a rental, places here are taken within minutes of being
| posted online, and my bot gave me the edge to put in a
| reservation before anyone else was
| jamil7 wrote:
| Let me guess, Berlin?
| zhoujianfu wrote:
| I also own the house I currently live in because of a script I
| wrote!
|
| I wrote it in 2012 to automatically buy bitcoin once a week.
| dybber wrote:
| Did the same for my previous apartment. I wrote a script
| scraping various "self-sale" sites (sales without real estate
| agents), the script would notify me when new apartments living
| up to my criteria was posted online.
|
| When I got such a notification I would quickly check photos of
| the place etc. and then call the seller. The guy selling the
| place I ended buying, said it felt like I called him up
| instantly after he posted it online.
| mod wrote:
| I used to watch the craigslist free section with a script,
| and I got that response a lot.
|
| I was calling within 1 minute of post time sometimes.
|
| Being first pretty much gets you anything you want in that
| section.
| gcheong wrote:
| Great story though I initially thought you meant you wrote a
| script that paid off your house :).
| hungryforcodes wrote:
| Myself as well!
| geek_at wrote:
| I had a feeling his script somehow made him skip the queue.
|
| When I was looking for a new apartment one of my friends told
| me about his startup that was basically scraping databases of
| realestate companies and I signed up with them and to my
| surprise I was alerted for an apartment in the location I
| wanted and it was up just a few minutes so I was able to
| contact the agent before they even started their
| advertisements.
|
| I got the apartment but sadly the startup was bought and shut
| down operations soon aferwards
| tshaddox wrote:
| One of the things that always frustrates me (despite being very
| much in the "first world problems" category) is when queueing
| or reservation systems are unclear or chaotic or otherwise
| unfair, although I generally only encounter this at stores,
| never for something as significant as a house! The most
| ubiquitous one is the practice of totally separate parallel
| queues where you just have to guess which queue will be
| fastest. Another lovely related one is when you're waiting in
| your queue for quite some time, then a new queue opens up right
| next to you and quickly fills up with newcomers who haven't
| been waiting at all! Come on store owners, just have a single
| queue with multiple consumers popping off the same queue!
| Again, I'm not going to pretend this isn't totally a first
| world problem!
| TillE wrote:
| Berlin's international film festival has this horrendous
| system where they'll release a small batch of tickets online
| every morning on certain dates, and you just have to sit
| there, refresh refresh and hope you clicked fast enough.
|
| Serious major events use a lottery system, which is vastly
| more fair and means you don't need the server infrastructure
| to deal with this huge flood of requests. I'm not really sure
| why _everything_ doesn 't work like that: let people submit
| their requests/applications/whatever, and if you truly have
| zero other criteria, just process them in random order after
| a cutoff.
| pedantsamaritan wrote:
| Another variation I have been on both sides of: stores
| favoring certain channels over others. For example, a local
| fast-food restaurant might prioritize answering the phone for
| carry-out orders over in-person carry out orders.
| jrockway wrote:
| Something went wrong here. The price of the house should have
| been raised until only 1 person wanted to buy it. If you're
| first in line, the incentive is to sell it at a higher price
| to the person who's second in line, right?
|
| I have to imagine some sort of regulatory thing was going on
| here, like they have to provide X% of units at Y% of market
| rate in order to get some tax concession or something.
|
| I know there's not going to be a lot of sympathy for higher
| housing prices here, but it does feel like something went
| wrong in this specific case.
| rlayton2 wrote:
| For the people selling, it is often more profitable (or at
| least less hassle) to sell quickly with minimal fuss and
| move onto the next one.
| majormajor wrote:
| In a big development I imagine clearing inventory in a
| straightforward way at prices that'll net you a good profit
| margin anyway is more appealing than trying to run bidding
| wars for each unit individually. Depending on the market
| it's also possible that the gap between "price four people
| are willing to pay" and "price nobody is willing to pay"
| isn't very significant.
|
| There's also a goodwill aspect in other cases: Sony kept
| selling PS5s at MSRP even when scalpers were getting $800+,
| because better for them that people are pissed at the
| scalpers than dealing with the bad PR of such a huge price
| hike over previous generations.
| tshaddox wrote:
| Yeah, for established brands like Sony who expect to have
| long recurring relationships with customers, it wouldn't
| make sense to run auctions on products because you're
| just going to upset people and no one will think you're
| making mass-market products any more. The same goes for
| some popular musicians: they could make more at a
| particular show by auctioning off tickets, but they often
| go out of their way to have a lottery _and_ prevent
| people from re-selling tickets at higher prices.
|
| It seems possible that a large housing developer has
| similar incentives.
| maxerickson wrote:
| It's like how event tickets are routinely scalped. The
| thing that is going wrong is that the additional bid isn't
| worth the reputational drama.
|
| Homo economicus would understand that the seller is simply
| being efficient. Homo sapiens gets all emotional about it.
| mikepurvis wrote:
| Camping reservations for Ontario Parks are a big mess like
| this-- so much so that people do ridiculous hacks like
| booking the full two weeks that lead into their desired
| weekend and later paying a fee to cancel just the first part
| of it. By the time the actual popular weekend would have come
| available for online booking, it was already taken weeks
| earlier.
| cecilpl2 wrote:
| I wrote a script to poll the Parks Canada reservation
| system for availability for a camping trip I wanted to do,
| so that I'd get notified the instant someone cancelled and
| space became available.
|
| Sadly after two weeks they banned my IP for the rest of the
| year and I was no longer able to make reservations without
| going through a proxy.
| polishdude20 wrote:
| A friend and I made a website based around this called
| campalert.live We've had to stop doing BC and National
| Parks as the API changed and we haven't had time to
| update our end. But Alberta still works!
| sequoia wrote:
| I'm pretty sure they do this on their own now. I set up
| "notify me" for a site and got tons of emails as sites
| became available.
| sequoia wrote:
| Wow, thank you for explaining this!! I was wondering how
| weekends that were "not yet available for online booking"
| were already nearly fully booked when I looked on the
| booking site. Very irritating that people do this... With
| that out of the way, I'll go ahead and start doing this
| myself, if that's the price of admission
| mikepurvis wrote:
| It's definitely a prisoner's dilemma type of situation--
| no one _wants_ it to be like that, but once there 's a
| critical mass of people doing it, then you kind of have
| to. Once everyone does, you're back to square one, except
| with a system based on unwritten rules that are confusing
| and exclude the uninitiated.
|
| And it's not obvious how to fix it in a way that doesn't
| screw up the system for someone else:
|
| - exorbitant cancellation fees would punish people whose
| plans change, and a lot of people would just swallow the
| extra cost anyway.
|
| - insisting that the entire timeframe be in scope at time
| of booking would make it hard or impossible to book
| longer vacations at popular spots (which at this point is
| basically anything within 4h of Toronto).
|
| - making the whole season available at once would create
| an ultra high stakes feeding frenzy, with the servers
| probably ending up crashing.
|
| - some kind of bidding or lottery setup would be extra
| complexity, and would end up rewarding people with the
| time, money, and schedule flexibility to "play" whatever
| the system is.
|
| I suppose the Ontario Parks mandate is to just maximize
| utilization, so from their point of view it doesn't
| really matter as long as weekends are booked solid and at
| least some proportion of the canceled midweek days end up
| being scooped up later by retirees or whoever.
| cgriswald wrote:
| I definitely appreciate a single queue. It doesn't seem to be
| the norm though.
|
| If it's a place you frequent, pay close attention. The
| checker is usually a stronger indicator of line speed than
| the number of items in peoples' baskets.
|
| Whole Foods near me does this awful thing where the lines are
| in the aisles. You can't even see how long the line is
| without walking the entire length of the store.
| ipaddr wrote:
| Is a jealousy issue? Without the second line you were going
| to take as long as you were. Opening a second line helped
| people further back catch up and in some cases surpass your
| speed. Someone else having a quicker experience shouldn't
| have changed your experience.
| tshaddox wrote:
| I wouldn't call it jealousy to want everyone to be served
| in the order they arrived, since that's obviously the
| intention of flat unprioritized queues. You can certainly
| make arguments that FIFO _isn't_ the best or right way to
| process a grocery store checkout queue, but for now I'd
| rather it be implemented well rather than poorly.
| McBeige wrote:
| Wouldn't it average out over time anyway? I.e. sometimes
| you're unlucky and have to wait twice as long as if you'd
| arrived to the queue a bit later, sometimes you're lucky
| and have your wait time cut in half. Over many store trips
| it's halfway between the one-queue and two-queue processing
| time.
| stockboss wrote:
| maybe it's more of a fairness issue. in theory, the proper
| way should be to have a single line that funnels to any
| available lane, so any newcomer would still have to join
| the same line and not get any advantage over someone who
| has been waiting.
| synecdoche wrote:
| This was tried in a number of stores in Sweden. It lasted a
| couple of months after which they reverted to one queue per
| cashier. Turns out it wasn't popular, either with the vendor,
| the customers, or both.
|
| On a personal note I found the practice irritating for not
| really clear reasons. One might be that it's a chore to
| traverse the whole queue cordoning when it happens to be
| empty. In any case, over time being the one skipping the line
| when a new register opens averages out. Also, there's the
| lucky draw feeling when you get to skip that otherwise gets
| lost.
| mikepurvis wrote:
| A number of stores here in Kitchener (Canada) use the
| single queue approach, particularly to feed a bank of self
| checkout stations. But I've also seen it at Old Navy
| (clothing), Winners (discount clothing), Indigo
| (bookstore), and others.
|
| I think the main thing that's maybe a bit annoying is just
| that it's easy for the single line to stall if the people
| at the front of it aren't paying attention or don't know
| what to look for. So the store often ends up having to have
| an extra attendant who just stands there and pokes people
| for when a till comes available.
| tomcam wrote:
| Your generosity gave you the best possible outcome in this
| deal. Impressive.
| japhyr wrote:
| I appreciate you bringing this up, because I think this plays
| out all the time. I live in a small isolated town, and there
| wasn't a lot of turnover in houses even before the pandemic. I
| wrote a short script that scrapes all the listings, and alerts
| me to any new local listing. It was a fun little project to
| learn about generating text messages, and to see how effective
| a cron job on a sleeping MacBook can be. We ended up getting a
| house through a friend who sold their home without listing it,
| but those alerts were really helpful, and almost got us one
| house a little earlier.
|
| The bigger story here is what this means for the divide between
| tech-literate people and the rest of the population. I don't
| think the parent commenter was wrong to write their script, and
| I don't think I was wrong to write mine, and if you wrote
| something similar I think it was a reasonable move as well. But
| we have to recognize the advantage this gives us, as people who
| are able to spot these opportunities and act on them.
|
| I don't have any answers, but I think this story brings up a
| good discussion. I'm curious to hear other people's thoughts on
| this.
| davnn wrote:
| > The bigger story here is what this means for the divide
| between tech-literate people and the rest of the population.
|
| Where I live the good deals from private sellers (mostly
| older people) pretty much never get posted online, thus you
| would have to socially integrate somehow offline in the
| region you would like to buy a house :). It looks like I
| still have to wait for some cultural development to benefit
| from your proposed divide.
| bschwindHN wrote:
| I think the answer here is to have a system that can't be
| "gamed" by more tech-literate people. Have a time period
| where people can throw in their names for consideration, and
| a randomly-ordered list is generated. You go down the list
| until you reach a person who can put down the deposit. A
| lottery, essentially.
|
| You could probably poke holes in that system I just
| described, but it seems more fair than one that is prone to
| someone writing up a script to scoop it up. I don't want to
| live in a world of script wars where every desirable entity
| is quickly snatched by one of several competing computer
| programs.
| yojo wrote:
| I'm hard pressed to think of any first-come, first-served
| system for allocating scarce goods that wouldn't be better
| run as a lottery.
|
| The problem is that typically the person selling the item
| doesn't care who gets it, so there's literally zero
| incentive to spend any effort making a fairer distribution
| system.
| fellerts wrote:
| What about an auction? That's how the housing market
| works in e.g. Norway.
| yojo wrote:
| I didn't mean to imply that lottery was the best system
| in all cases, just that it's pretty much always better
| than first one wins. Though thinking about it more a
| lottery probably results in more total entries, and you
| might end up giving the thing to someone who is closer to
| ambivalent than the folks willing to stand in line at
| 5AM.
|
| Auctions are a great way to see that the item ends up in
| the hands of the person who "values" it most, where value
| is measured in currency. It does have the problem that in
| a system of high inequality the people at the bottom have
| essentially zero chance of winning.
| tellarin wrote:
| That's definitely not fair either, as it
| disproportionally benefits those with more funds. Which
| only leads to wider inequality.
| BeFlatXIII wrote:
| > Have a time period where people can throw in their names
| for consideration, and a randomly-ordered list is
| generated. You go down the list until you reach a person
| who can put down the deposit. A lottery, essentially.
|
| Stocks should be traded this way, too. Having an arms race
| for fiber latency makes a mockery of the idea that they are
| for efficient allocation of capital. Queue up all the
| trades requested in each second/minute, then execute them
| in random order.
| asdff wrote:
| What are you using to scrape listing data? afaik mls doesn't
| expose an api.
| philsnow wrote:
| Especially in smaller markets, there aren't very many agents.
| You can get a lot out of inviting realtors to coffee from
| time to time. When somebody is thinking about selling, they
| often talk to realtors early on, so you can learn about them
| before they hit the MLS.
| heavyset_go wrote:
| Regarding tech literacy, I participated in a project in early
| 2021 for this reason.
|
| COVID vaccination slots were put online and would disappear
| the second they went up. Vulnerable people, like the elderly,
| had trouble booking the appointments they needed.
|
| What ended up happening is a few developers got together and
| put together an alert system that scraped for appointment
| slots and automated alerts about when they were available
| publicly on social media. Quite a few people were able to get
| slots they wouldn't have got by just manually trying to get a
| slot.
| basisword wrote:
| >> Quite a few people were able to get slots they wouldn't
| have got by just manually trying to get a slot.
|
| And the people who played fair didn't get those slots.
| Obviously there's nothing illegal about this (or the
| articles similar solution) but it rubs me the wrong way
| morally. Similar to people getting appointments because
| they knew someone working in a vaccine centre. If there is
| a clear order and booking system (e.g. oldest + most
| vulnerable to youngest/national booking system) and you
| skip the line or 'hack' the system to give yourself a
| better chance at getting a slot I'd find it hard not to
| think you're a dick. NB: this depends a lot on how things
| work in your specific country so I'm not judging your
| specific situation but just generally, 'hacking' systems to
| give yourself an unfair chance at getting something in high
| demand feels wrong to me.
| adhesive_wombat wrote:
| I did basically exactly this but for reserving a spot at the
| visa centre for a residence permit appointment.
|
| Subverting a small aspect of the Hostile Environment[1] took a
| little bit of the edge of the general bastardry of the whole
| process. Still a bloody expensive and emotionally draining
| experience though: if it has to be done again, I won't be
| putting a loved one though that again and we'll both be
| leaving.
|
| [1]
| https://en.wikipedia.org/wiki/Home_Office_hostile_environmen...
| zachwill wrote:
| Very cool! Great story.
| NaturalPhallacy wrote:
| I wrote a small program to manage my contracting time after it
| being gently suggested that I stick to 40 hours and that overtime
| wasn't needed of me (calculate hours per day and when to leave
| Friday to hit 40.0). I wrote it so that usage was absolutely as
| lazy as possible. So typical use cases look like this:
|
| >$ tm 8:30-12:30 12:40-
|
| Time to leave: 16:40
|
| so as to hit 8.0 hours for the day.
|
| and
|
| >$ tm 8.5 9.27 8.83 8.87 9:45-1:23 1:33-
|
| 14:11
|
| 54 minutes
|
| is an example of when to leave (early!) on Friday to hit 40.0
|
| Note how you don't have to tell it AM/PM or use 24 hour time. Nor
| give it any special flags to tell it which calculation to run.
| And it just handles the rollover at noon for you.
|
| source: https://github.com/cynoclast/time (Java, because that's
| what I used at the time)
| diatone wrote:
| In case anyone's interested in the math to get the dice answer,
| it's (1 + 2 + ... + 6) * 2500 / 6 = 8750. At least, I think it is
| gjs278 wrote:
| I wrote a scraper that looked through substitute teacher jobs for
| a friend. she subbed 30 days in a row and got a full time job due
| to it.
| Semiapies wrote:
| Some years back at work, I actually hit the size limits of email
| rules in Outlook, just for filing emails into folders for my
| clients. So, I wrote the first of a few iterations of an email-
| filtering script in Python, connecting into the office's Exchange
| server in different ways as we upgraded.
|
| The current version wraps exchangelib and, besides just running
| the straightforward Python code rules, checks whether the email
| is in a thread and files it away in the folder with the previous
| emails. (This is the _slow_ part over the web API, with walking
| folders to find the location of any particular thread the first
| time it 's encountered adding a few seconds to the run. If I find
| myself caring about the few extra seconds, I'll try one of a few
| ways it's occurred to me to speed it up.)
|
| While at first I slightly minded having to run the script instead
| of Outlook silently tucking them away, I found I liked the chance
| to see what was in my inbox first.
| vermarish wrote:
| My friend invited me out to karaoke, but most of the songs I know
| aren't popular enough to be in karaoke systems. It turns out that
| the local karaoke place has a song database that serves queries
| formatted as a URL parameter, so I wrote a script to query it for
| every artist I've listened to on Last.FM. I found out that Black
| Sabbath and Iron Maiden are surprisingly good picks for karaoke!
| There were also a few singles I didn't expect from Children of
| Bodom and Arch Enemy. https://github.com/vermarish/karaoke-sign-
| in
| barbs wrote:
| Nice one! Although when I started reading your comment I was
| sort-of hoping you found a way to hack it and put your own
| songs in!
| pianoraptor wrote:
| Very cool. As a fan of metal with "extreme" vocals, I was blown
| away one night at a karaoke place when a guy went up and
| screamed the vocals to an Arch Enemy song!
|
| At the time, I was thinking "Only in Portland..."
| freeplay wrote:
| Cool project. Created a PR with some performance improvements
| if you're interested.
| vermarish wrote:
| Oh, wow! This is extremely cool, thank you for that. I've
| responded to your PR message.
| somdax wrote:
| I wrote a tiny program to help me buy a puppy :)
|
| The place I wanted to get a puppy from said that they didn't take
| reservations for the upcoming puppies until they were born. The
| only way to know when they were born was to check their website
| and then give them a call.
|
| So the tiny program I wrote kept checking a webpage and whenever
| it changed content, it would sende a text message "PUPPY ALERT!".
|
| A few hours after I deployed the program, I got message so I
| thought it had a bug, but no, the puppies had just been born <3
| hereforphone wrote:
| To those thinking about getting a dog: please consider a
| shelter first.
| frockington1 wrote:
| I was ineligible to adopt a Daschund from a shelter because
| my property doesn't have 1 acre of fenced in yard. Other
| places required 2 veterinarian references (we had 1 reference
| due to owning a cat). It can be a lot harder than people
| think to adopt a dog from a shelter
| iamricks wrote:
| To adopt my cat during covid i had to do a Facetime
| interview with the shelter and show them around my place.
|
| It felt like i was applying for a job.
| henryfjordan wrote:
| This really varies. I got this kind of treatment from a
| group of ladies fostering Shi Tzus. I think they really
| just wanted an excuse to keep those dogs or give them to
| new potential old-lady friends.
|
| At the next place I tried they basically threw the dog at
| me.
| tshaddox wrote:
| I was recently having a conversation with a married couple
| I had just met through a mutual friend. They were detailing
| their recent difficulties trying to get a dog. They were
| looking at both shelters and breeders, and both had their
| own difficulties, costs, red tape, waiting periods, etc.
| The woman was also pregnant with their first child. I
| asked, and the irony was not lost on them.
| anthomtb wrote:
| One acre of fenced yard for a dachshund? I've seen onerous
| dog ownership requirements before but never that much land
| for that small of a canine.
| gcheong wrote:
| If you're set on a particular breed also consider a rescue
| that specializes in that breed if there is one.
| froddd wrote:
| This is most excellent advice, and certainly did not state
| "you should not get a puppy from a reputable breeder", which
| seems to be what a lot of the replies to it assume it said.
| munificent wrote:
| This is very good advice, but I wish it wasn't presented
| without qualifiers. There are good reasons to get a shelter
| dog:
|
| - You are potentially saving a dog's life that would
| otherwise be put down.
|
| - They are often initially cheaper than buying a dog from a
| breeder.
|
| People rightly focus on the strong moral argument of the
| first point and they even emphasize the second to imply that
| it's a good self-interested choice too. But they advocate so
| strongly that they often omit the real downsides:
|
| - The long-term cost may be higher. There are breeds that are
| known for significant health problems, but many breeds don't
| have them and if you buy a puppy of those breeds, their
| health is closer to being a known quantity. With a shelter
| dog, you are rolling the dice. There is maybe an argument
| that hybrid vigor makes shelter mutts statistically more
| healthy, but that has to be balanced against the facts that
| (1) the dog may have ended up in the shelter _because_ of
| health problems or (2) the dog 's life pre-shelter may have
| _caused_ health problems.
|
| - There may be long-term behavioral problems. Dogs in
| shelters may have been feral, living on the streets, abused,
| or relinquished because of behavioral problems. If they were
| feral and weren't potty trained well as a puppy, you may
| never train them out of marking. Even if the dog was homed,
| the kind of people who don't spay and neuter their animals
| (thus leading to puppies that end up in the shelter) are
| often the kind of people who don't train them well either.
| There also seems to be a correlation with shelter dogs coming
| from dog fighting communities. You see a ton of pitbulls,
| which are wonderful sweethearts when raised right but are not
| when they aren't. Even non-pit breeds may have been abused as
| bait dogs.
|
| I love the dog I got from a breeder, and I love my shelter
| dog (who is snoring next to me as I write this), but the
| latter was _not_ the pure win that shelter advocates often
| make it out to be.
|
| The right way to think of it is sort of like getting a used
| car: it _can_ save you money and be a morally good choice (in
| the case of a car, less waste and better for the
| environment), but it 's also an unknown quantity where you
| need to do more due diligence to know what you're getting
| into, or accept that you are taking a risk with higher
| variance.
|
| But, unlike with a car, you're signing up for the dog for
| life.
|
| So, yes, please consider a shelter first. Any future dogs I
| get will likely be shelter dogs. But consider it _cautiously_
| and take your time finding the dog that is right for you.
| hereforphone wrote:
| Wall of text on point. I got a shelter dog 5~ years ago and
| it is a relatively difficult breed. I knew nothing about
| dogs. But I love it and take care of it (because I take
| ownership of my decisions, particularly where they involve
| the life of another creature), and it's gotten better over
| time. I also exercise caution where necessary.
|
| If I had to do it again, I'd get an easier breed.
| cgriswald wrote:
| Anyone getting a shelter dog should pay for a dog
| behaviorist to either help them select a dog or evaluate
| the dog they have selected. They should also have a trainer
| lined up to help them teach the dog how to live with them.
| This goes 20x for first time dog owners.
| Ntrails wrote:
| > There may be long-term behavioral problems..
|
| I know this is right - but I feel obliged to point out that
| _this is true with a new puppy too_.
|
| Training dogs properly is work, and inconsistent or
| incomplete training only gets harder and harder to fix.
| Plenty of dogs in shelters are there because owners could
| not rectify their own mistakes. Not from malice, or lack of
| caring. Simple unknowing incompetence.
|
| Don't be too quick to judge those who give dogs up
| hbn wrote:
| Right, but when you don't know the dog's breed (i.e. it's
| 17 types of cross-breeds) nor its history (if it's gonna
| have PTSD from being abused or fighting for its life in
| the streets), it's a much safer bet to get a purebred or
| simple/common cross of 2 breeds where you can Google the
| general behaviours of those types of dogs, and you know
| its entire history of life up to that point: being born,
| then laying around with its siblings and mom
| cgriswald wrote:
| You really want a common cross that has been breed from
| that same cross for generations. Otherwise what you get
| is an unpredictable grab bag of behaviors from the
| original breeds.
| munificent wrote:
| I'm not saying this to judge the dogs' original owners.
| In many cases, the dog was feral and there _is_ no
| original owner.
|
| The important point is that dogs go through developmental
| milestones just like people and when you get a dog that
| has already finished its puppyhood, you have lost the
| opportunity to be present during those milestones and
| train the dog. Dogs _can_ learn as adults, of course, but
| correcting bad behaviors is a _lot_ harder. When you get
| a younger dog (shelter or not), they are more plastic and
| easier to train.
|
| Yes, of course, it's on you to actually do that training
| well, but at least you have the _chance_. When you buy an
| adult dog, which is what most shelter dogs are, you 're
| kind of stuck with what you get.
| raffraffraff wrote:
| I've rescued several greyhounds from the racing industry.
| One time, after our old greyhound "Pasha" died, we
| decided to take on a challenge: a greyhound who was
| rehomed several times, and even abandoned by a shelter
| (run by a bleeding heart who had no idea how to handle
| dogs). Lily was a crazy black greyhound who hated all
| dogs and was afraid of most people. Her name wasn't Lily
| - she was 6 years old and didn't have a name that she
| responded to. For the next 2 months we basically had
| these rules:
|
| * Always have treats in your pocket
|
| * Avoid triggers (dogs) but whenever Lily sees one at a
| distance, give her a treat
|
| * If she acts aggressively, don't yank the leash or
| shout, put a treat at her nose and call her name
|
| That's it, in a nutshell. It works for basically any
| behavioural problem in any dog. (Of course, the breed
| will have its own personality type - they all do). 6
| months later Lily would go nose-to-nose with a rabid
| chihuahua and remain calm. She was one of the best dogs
| I've ever had. Still miss the old thing.
|
| She died last year, and we rescued 2 greyhounds
| (brother/sister). Dorrie is fine but Merlin was, for
| reasons unknown, afraid of certain types of street light.
| Which is a massive pain in the ass of you live in a city.
| We followed the exact same rules, and within a few weeks
| he was ignoring them. (Still gets spooked at random
| stuff, like the moon, or light reflected from a kitchen
| knife onto the ceiling)
| dgb23 wrote:
| We have a new dog since a month (podenco mix) that had
| about 5 previous owners and is 4-5 years old. Lovely but
| very rough edges. Even a few scars on his nose and head
| so our guess is that he was at least in one tough fight.
|
| Similarly he has problems with other dogs (not with our
| other podenco, who he loves). He is insecure, stares,
| starts to go full aggro if they stare back etc. We try to
| be as careful and consequent as we can. The good thing is
| he is a very fast learner, not as stubborn.
|
| We give him praise and treats typically _after_ he did
| well on an encounter (which we keep at fair distance as
| well). It wouldn 't occur to me to give it to him
| beforehand.
|
| Your method seems simple and I get why it would work, but
| it's counterintuitive. Can you elaborate? It is something
| that worked specifically for her for some reason? Or do
| you think the simple conditioning thing just works. My
| intuition would be that he has to show the desired
| behavior and then gets praise/treats. What do you think?
| raffraffraff wrote:
| With Lily we didn't take the risk of bad behaviour during
| an encounter. We would just ply her with treats and tell
| her she was a good girl as we walked by a small yappy
| dog. I think she started associating those encounters
| with positive emotions.
| munificent wrote:
| I think you're approaching it from an operant
| conditioning model where the treat must come after as a
| consequence of good behavior. But what they describe
| sounds like reciprocal inhibition:
|
| https://en.wikipedia.org/wiki/Desensitization_(psychology
| )#R...
|
| The idea is that you can't feel opposing emotions
| simultaneously. So if you can make the dog feel relaxed
| (by giving a treat _beforehand_ ), it interferes with
| their ability to feel anxiety.
|
| They aren't _earning_ the treat for _choosing_ not the be
| anxious. The positive emotional feeling from the treat
| _prevents_ the anxiety from occurring.
| raffraffraff wrote:
| This is also an excellent explanation
| bo1024 wrote:
| Not the person you asked but I'd guess it has to do with
| managing the emotions or anxiety that lead to the bad
| behavior. The way I think of it is I don't want to teach
| the dog to overcome negative emotions, I want to help
| them not have negative emotions in the first place. If
| possible.
| raffraffraff wrote:
| This, exactly. I think that the idea is to teach to dog
| how to interrupt the negative emotion with something
| positive. It gets to the point where they interrupt it
| themselves without your intervention. With Lily, it got
| to the point where she'd see a small dog or a cat, and
| she'd look straight up at me (good girl!)
|
| To begin with, practice randomly when there is no
| trigger. Have a sneaky treat ready and say the dog's
| name. If it's difficult to begin with (because they don't
| know their name), try putting the treats into a small
| plastic container and shaking it, or taking the plastic
| packaging of their treats. They learn to respond to that
| noise very quickly. Words are more complex, but if you
| say their name when you make the noise they'll start
| responding to that too. Always carry accessible treats.
|
| 5 months since we adopted untrained (pretty wild)
| greyhounds, I can get either of them to sprint to me by
| calling their name, sit, high-five, lie down... no matter
| what's going on around them. That response makes it
| easier to discourage cat-chasing and to reduce their prey
| drive.
| livinglist wrote:
| I did something similar not long ago.. lol
| uxcolumbo wrote:
| For anybody considering getting a dog - please consider
| adopting rather than buying.
|
| * You're Saving A Life
|
| Adopting a dog from a shelter not only means that you're giving
| him a happy life, but you also free up a spot at the rescue or
| shelter to save another dog's life.
|
| * Helps Fight Puppy Mills
|
| Approximately 90% of puppies you can buy in pet stores or
| online are from puppy mills. Adopting a dog from a shelter
| takes business away from mills. The more people who adopt, the
| more puppy mills have a hard time staying in business.
|
| More reasons: https://www.caninejournal.com/adopt-dont-shop/
| [deleted]
| vgel wrote:
| Except every dog adoption place around here has requirements
| like "Must be an experienced dog owner, have a 5 acre yard,
| own your home, and be able to do 50 push-ups without getting
| out of breath. Expert sword-swallowers preferred."
| zanellato19 wrote:
| I got my current dog from simply showing and saying "I want
| that one" and then signing a paper saying I won't abuse
| him.
| chockchocschoir wrote:
| Ok, so the above recommendation doesn't work for you, just
| ignore it then.
|
| What you are saying doesn't apply everywhere, and I doubt
| it applies in most places around the world, since shelters
| usually have way too many dogs and would love to be able to
| find anyone to care for them before they have to
| effectively execute them.
| epolanski wrote:
| cgriswald wrote:
| > The idea that we grow food to feed cattle or fish to feed
| pets is among the biggest environmental stupidity I can
| think of.
|
| The meats that dogs and cats eat are essentially the waste
| products from meat production aimed at human consumption.
| You can certainly find some exceptions (especially on
| Instragram), but the vast, vast majority of people, even
| those feeding raw diets to their pets, use either meat not
| meant for human consumption or offal that most Americans
| don't consume.
| munificent wrote:
| Also, if you care about the environment, don't have
| children. And, really, best to off yourself as well. Might
| want to take down a few less enlightened folks with you
| when you go.
| arbitrary_name wrote:
| What an odd response. Did the prior post upset you in
| some way? Not having dogs and children are both
| reasonable and moral responses to the climate crisis.
| Suicide and murder are not.
| munificent wrote:
| _> Did the prior post upset you in some way?_
|
| There is a perspective I see sometimes where some people
| have elevated environmentalism so high in their value
| system relative to all else that they end up in a moral
| position where consuming any resources at all _which all
| living things do_ is somehow morally unconscionable.
|
| My comment sounds like a joke, but it's not far off: http
| s://en.wikipedia.org/wiki/Voluntary_Human_Extinction_Mov.
| ..
|
| Reasonable environmentalists think humans have as much
| right to exist and seek joy as any other living being as
| long as it's done in a sustainable way. We just want
| people to, you know, maybe walk to work instead of
| driving sometimes. Don't litter. Push your government to
| pass laws against pollution.
|
| There are lobbyists and well-funded organizations pushing
| against any progress on the environment and the existence
| of extreme views like "you're a horrible person if you --
| _checks notes_ --have a fucking _dog_ " makes it too easy
| for those groups to paint all environmentalists as out of
| touch kooks. That's the last thing we need.
|
| The parent comment described _pet ownership_ as "is
| among the biggest environmental stupidity I can think
| of". Call me crazy, but a couple of meaty snacks for Fido
| is pretty far down the list after, I don't know, carbon
| emissions, greenhouse gases, coral bleaching, acid rain,
| deforestation, fuel oil, fracking, chemical dumping,
| nuclear weapons, water table draining, etc.
| slightwinder wrote:
| > Reasonable environmentalists think humans have as much
| right to exist
|
| There is a right to exist, but not a right to be created.
| Saying someone should kill themselves and kill some other
| along the way, is just not acceptable in a normal
| discussion.
|
| > Call me crazy, but a couple of meaty snacks for Fido is
| pretty far down the list after
|
| Those meaty snacks make 20% of worldwide meat-
| consumption. As a country, pets would be the 60th biggest
| CO2-emitter in the world. Just because there are bigger
| culprits, doesn't mean that the smaller ones are excused.
| Moving pets to more friendly foods would have a huge
| impact on the world.
| munificent wrote:
| _> There is a right to exist, but not a right to be
| created._
|
| But the top-level post is advocating adopting shelter
| animals and the reply was that keeping pets is bad for
| the environment. Those shelter animals _already exist_
| and if they aren 't adopted, they will likely be killed.
| It's the same thing modulo different species.
| trevcanhuman wrote:
| Why are they not ? This is more of an ethical dilemma. I
| agree with @ munificient. I could probably list a lot of
| things that do a lot of bad for the environment.
|
| But making everything hyper-efficient and reducing on
| EVERYTHING we almost possibly do just takes away our
| basic freedoms. I'm not saying you're wrong about not
| having dogs. I have one myself but yeah, you're right.
| It's like having a child. But I like being able to choose
| having it or not.
| jim-jim-jim wrote:
| raffraffraff wrote:
| As I've said elsewhere, I do not drive, fly, eat meat or
| have kids. My laptop is a 8 years, my phone is a
| repairable FP3 which has had several parts replaced over
| the last 3 years. And yes, I rescued two greyhounds from
| a cruel fate, and I feed them _kibble_ (reconstituted /
| recovered meat). I have zero problem with the latter, and
| still call myself am environmentalist.
| epolanski wrote:
| I have long ago learned that most care about environment
| as long as it doesn't impact their life and what they
| like.
|
| Makes people feel uneasy.
| munificent wrote:
| I mean... should people not be able to like things?
| jiscariot wrote:
| Spend 50k on a Tesla and you get to enhance you
| lifestyle, signal your eco-solidarity and to some extent,
| affluence. Bang for buck, if you really care about the
| environment, don't have children. There is nothing that
| comes close to impact.
| lghh wrote:
| Have you considered the environmental impact of using
| this site? It's certainly not free.
| stjohnswarts wrote:
| that's what I'm thinking if you want to suck all the joy
| out of life just move to the woods and live off the land,
| have the least environment impact possible
| schwartzworld wrote:
| If you're adopting a rescue animal, there is no
| environmental argument. My dog was bred for racing, a cruel
| and violent industry that throws the dogs away like garbage
| when they are no longer used. I don't think there's any
| ethical argument to be made against adopting a dog like
| that.
|
| If people giving their cats cat food is enough to make you
| question your commitment to vegetarianism, maybe you're not
| really that committed? You should do things for yourself,
| and base their value on the decisions of others
| froddd wrote:
| > The idea that we grow food to feed cattle or fish to feed
| pets is among the biggest environmental stupidity I can
| think of.
|
| That is the wildest exaggeration I can think of.
|
| I'm also vegetarian, though I am because I'd rather not
| kill things when I don't need to. The environmental benefit
| is an appreciable side effect, and confirms to me I've made
| the right choice for myself. I like to try to share my
| views with as many people as I can, but I think expecting
| everyone to 'just get it' is setting yourself up for
| failure, and ultimately unhelpful in the long run.
| raffraffraff wrote:
| The choice is: "Not rescuing a dog from the pound" vs what?
| ..."leaving them there to wait a few more weeks/months in a
| cage before being put to sleep"?
|
| Nah. Have you ever bonded with a dog? Nah. I'll take dogs
| over people any day.
|
| I'm all for closing puppy mills/farms, neutering etc but I
| draw the line at "don't rescue a dog that already exists"
|
| Even premium dog kibble is made out of the lowest quality
| junk meat left over from what _people_ eat. I too am a
| vegetarian (and I don 't have kids, and have never owned a
| car and gave up flying years ago). But I do not begrudge my
| two hounds their bag of kibble. I'm fact I'd be willing to
| bet that my household CO2 footprint is lower than yours,
| even with my two greyhounds.
| lgvld wrote:
| Such a cute story :)
| merely-unlikely wrote:
| I wrote a script to email me the top 10 Hacker News articles at
| lunchtime. And now I'm here :)
| XCSme wrote:
| One of the most used "tiny program" I wrote [0] is a weird one to
| explain to non-technical people: a scoreboard UI to display the
| current score of your match on a stream when playing Eleven Table
| Tennis in VR. I see it being used quite frequently in Twitch
| streams.
|
| It polls an API every 3 seconds, parses the match data and
| displays the score in HTML/CSS. The tricky part was finding a way
| to make it easy to add to OBS without a server, luckily OBS has a
| "browser source" so you can add any HTML page/URL, so the
| variables needed to select the match/player and are
| customizations are stored in the URL.
|
| [0]: https://github.com/Cristy94/eleven-vr-scoreboard
| jbmny wrote:
| > one of my favourite things is to use secret undocumented APIs
| where you need to copy your cookies out of the browser to get
| access to them
|
| I love this too. It's always a nice surprise when you realize you
| won't be needing to write xpath/pyquery/et al. after all... It's
| like the scraping has already been done for you!
| kinduff wrote:
| What a nice read. Motivates me to make a list of these small apps
| I have all over the place; Raspberry Pis, DO servers, Netlify,
| etc.
|
| It also reminds me about that usenet story where in a company
| their lead developer left, and they discovered some fun scripts
| to automate excuses for his wife, or turning on the coffee
| machine through telnet. Can't remember the name.
| nso95 wrote:
| https://github.com/narkoz/hacker-scripts
| _carbyau_ wrote:
| A friend wrote a script for his phone so that when he got to
| work (GPS location) it messaged his partner a "sweet nothing"
| text.
|
| Partner was happy with the thoughtfulness. Until it was found
| out there was no thoughtfulness...
| johnklos wrote:
| Tiny projects like these are fun and rewarding. I just wish I
| were as good as Julia at keeping track of them. After reading
| this, I think I'll start keeping track of them in one place :)
| lukewrites wrote:
| I wrote a web scraper to determine how local Nissan dealerships
| changed prices on CPO Leafs over time. The script hit the Nissan
| CPO page, grabbed all the VINs, then updated the price & date if
| there had been a change.
|
| I collected data for a while, then decided I wanted a different
| car. Still had fun writing that script though.
| 333c wrote:
| I also wrote a script to get a vaccine appointment! I wonder how
| many other people did that.
| alexpovel wrote:
| A couple years ago, I switched from German QWERTZ to a UK QWERTY
| keyboard (wouldn't have minded US QWERTY but the differently
| shaped return key seemed too foreign). I am not looking back: for
| programming but also general tasks, having keys like
| ` [ ] \ / { }
|
| very easily available is a blessing. The German QWERTZ keyboard
| has _triple_ occupation on some keys, which is not ergonomic and
| harder to type fast with.
|
| Anyway, both Linux and Windows offer fast switching between
| installed keyboard layouts/languages using SUPER+SPACE. This is
| needed in e.g. emails, where I still need Umlauts. It's just much
| easier to read that way. However, switching back and forth
| constantly is completely overwhelming and not viable. However, in
| German, there are perfectly and officially (?) acceptable
| alternative spellings for our special "Unicode"-characters. They
| can be typed using plain ASCII, aka a QWERTY keyboard.
|
| So, I wrote a script to read in any text, combined it with
| AutoHotkey on Windows and now have a tool that, at the touch of a
| button, replaces selected text using alternative spellings
| (gruen, Duebel, Faehre) with their correct versions (grun, Dubel,
| Fahre). The tool could be extended for other languages rather
| easily. I've been using it for over a year now and recently got
| to release it properly on the cheese shop: pip
| install betterletter
|
| (https://pypi.org/project/betterletter/)
|
| Before putting this together, I had looked around for an existing
| tool. To my surprise (there's always something!), I found
| nothing. I guess this scratches a too specific itch: using QWERTY
| but wanting proper spelling quickly, while remaining on QWERTY as
| to not have a mental breakdown and stay at full typing speed.
|
| After writing, select everything (CTRL+SHIFT+HOME works well),
| hit shortcut, text will be replaced. This takes about 2 seconds,
| much faster than switching keyboard layouts back and forth. If
| this ran as a daemon with the dictionary loaded into RAM already,
| the script could run almost instantaneously (most of the 2
| seconds is IO, reading from disk), in linear time according to
| the text input size.
| w-m wrote:
| Neat! I'm using QWERTY International layouts myself, where you
| can type umlauts and ss with special keys for modifiers (e.g.
| alt+u on Mac for "), but I still think this is a cool tool.
|
| Looking through the repo I wondered why you would commit the
| complete German dictionary weighing in at over 30 MB, whereas
| you only need a small fraction, the words containing the
| umlauts (or their false matches). Surely this would be a huge
| performance boost?
|
| Turns out: a whopping 30% of that dictionary are words
| containing "ae|oe|ue|ss|a|o|u|ss". Crazy. I would not have
| guessed that, at all.
| alexpovel wrote:
| > Neat! I'm using QWERTY International layouts myself, where
| you can type umlauts and ss with special keys for modifiers
| (e.g. alt+u on Mac for "), but I still think this is a cool
| tool.
|
| Yeah, I had looked into these but for some reason that didn't
| work. Don't remember why.
|
| > Looking through the repo I wondered why you would commit
| the complete German dictionary weighing in at over 30 MB,
| whereas you only need a small fraction, the words containing
| the umlauts (or their false matches). Surely this would be a
| huge performance boost?
|
| Yes! It would be performance boost. In fact, I had a
| "caching" sort of functionality in the tool before. The whole
| dictionary is shipped (because that makes it much easier and
| there's almost no risk of wrong-doing just copy-pasting a
| word list, plus it compresses well enough), but then a list
| containing only special characters will be generated on first
| use if it doesn't exist yet.
|
| As you noted, a lot of words do contain special letters, so
| the "complexity" wasn't worth it to me and I removed that.
| Could be brought back anytime, but it's fine for now.
| tedunangst wrote:
| Just fyi, Windows will let you set a keyboard layout per
| window. If you like writing programs, you can write one to
| switch the linux keyboard layout based on active window.
| scns wrote:
| Check out Neo [0]. It has important signs under your strong
| fingers. Every time i am forced to use QWERTX i get reminded
| how bad it is to type on.
|
| [0] https://neo-layout.org
| bArray wrote:
| > When the second COVID vaccine doses opened up, all of the slots
| were full. It turned out that the website's backend had an API,
| so I wrote a script to poll the API every 60 seconds or so and
| watch for cancellations and notify me so that I could get an
| earlier appointment.
|
| I imagine the hacked together COVID vaccination websites were
| already under quite a high load. If it's anything like
| unoptimized WordPress websites it's doing a database query each
| time and I really hope the API wasn't being shared by healthcare
| providers. The saving grace appears to be that the script isn't
| shared.
|
| I guess this is a reminder to be careful when sharing scripts
| that rely on other's services (especially important services).
| Cache when possible, poll minimally, etc. Recently I found out
| that Ubuntu doesn't cache DNS queries by default, which I
| discovered when I got temporarily blocked from a DNS server. Good
| job I didn't share that script!
| eindiran wrote:
| My recent favorite small program I wrote:
|
| Was watching a movie with a group of friends which someone had
| ... acquired from the internet, but it didn't have any subtitles.
| Someone found an SRT file, but the subtitles were offset by quite
| a bit - enough that you would be seeing dialogue in the subtitles
| for what had been onscreen 10+ seconds ago, which kind of
| defeated the point of getting the subtitles. So I wrote a program
| in a few minutes to specify an offset and rewrite all of the
| timestamps in the file. We timed the offset, ran the script and
| got to watch the movie with working subtitles less than 20
| minutes later.
| Dyac wrote:
| VLC allows you to specify a subtitle offset, fyi.
| yesenadam wrote:
| I've used Subshifter website occasionally for years to do that.
| There are others I guess. Subshifter can do constant difference
| as well as stretching, where the subtitles are at the wrong
| frame rate. You find and enter in the times where subs should
| be, at one spot near the beginning and one near the end. It
| does its job well.
|
| It's nice when people share their cool tools free online like
| this. :-)
|
| https://subshifter.bitsnbites.eu/
| adhesive_wombat wrote:
| FYI, Aegisub can do that.
|
| It used to be a regular thing for me since I already have
| subtitles on (ESL spouse). The worst is when you have a time
| shift _and_ a different frame rate, as it 'll slowly get worse
| over time, but seem ok for the first few minutes.
|
| Recently, Plex's "agents" seem to be good enough at figuring it
| out and auto-downloading subtitles that it's not often a
| problem.
| midasz wrote:
| Otherwise you've got Bazarr which fits into the whole *arr
| stack
| sideproject wrote:
| I frequent ProductHunt to see what new products are launched. I
| usually click on every link. That takes time and hurts my fingers
| clicking. So I automated it and created an app called Rockmelon.
|
| https://www.rockmelon.app
|
| It became a tool that opens multiple links all at once. Once I
| had the basic foundation, I created a daily ProductHunt link,
| which opens all the links at once. You can subscribe to daily
| product hunt links here.
|
| https://www.rockmelon.app/rc/Cg08Y06Vu9#/
|
| Now my fingers are happy. Hopefully yours too.
|
| You can create your own mega link with API as well.
| adriangrigore wrote:
| Here's my list of tiny programs https://adi.onl/projects.html,
| the log analyzers are soon the be updated. There's a set of plain
| text linters in there, percent encoding on the CLI, TAP testing
| for the CLI, a generic shell preprocessor, my static site
| generator, Void Linux installation script and my dotfiles if that
| counts. :P
| fsniper wrote:
| I have had many small scripts or software doing automation for
| me. One of them is the one that found me a motorcycle. It was a
| neat web console JavaScript code, which would go over the
| listings and score them with a pretty basic algorithm. I scored a
| good Cbr250 with that. In turn I dislocated my shoulder in the
| upcoming days :) I rode the bike for a few years. It was also my
| first and the last motorbike. Fun times.
| ocdtrekkie wrote:
| I run a badly written monolith (my home automation system), and
| tend to make tiny personal programs some weird offshoot growth of
| it.
|
| There's upsides and downsides to this. I'm aware it's basically
| guaranteed to be useless to anyone else because it's depending on
| software I'd never encourage someone else to run, for instance,
| and it locks me into certain coding choices.
|
| However, I spend a lot less time doing boilerplate/framework
| stuff, because I've already got the basics running for other
| tasks: Stuff for logging, settings, data storage, and remote
| control and monitoring is already a given.
| [deleted]
| twic wrote:
| I wrote a little web app (Python and CGI) to organise a secret
| santa ring. You put in a load of names with email addresses, then
| it shuffles them, and sends an email to each person telling them
| to buy a present for the next person on the list (wrapping
| round). It meant a group of friends could do a secret santa
| without one person having to know who was buying for who.
|
| There's a way to put people in groups where they shouldn't buy
| presents for each other, which is useful for couples of families,
| where they will probably be buying presents for each other
| anyway.
| brink wrote:
| Nice article! Here are a couple of my recent personal projects..
|
| I couldn't find a command line media player that was simple
| enough for my liking. So I wrote one for myself that uses
| gstreamer as the back-end. https://github.com/codabrink/aquinas/
| It's hasty code. I plan to improve it in the future by adding
| features and switching the music library structure from an array
| to an iterator when I find time.
|
| I also needed a daemon that would watch a folder for new files
| and upload them to Backblaze B2.
| https://github.com/codabrink/backblaze-upload/ I use this with
| Nginx on my vps to proxy requests to the bucket for nice looking
| vanity urls. (http://i.kota.is/5ruvD.png) The code is really bad;
| the focus was to build it in under 90 minutes or so, but the
| important thing is it works, so therefore I'm not going to spend
| anymore time on this one.
| jchook wrote:
| For a command like media player, did you try cmus?
| brink wrote:
| Yeah, I didn't like it. :)
| jim_lawless wrote:
| I wrote a command-line MP3 player in C for Windows. I just wanted
| to play with the media manger API's, but I've ended up using this
| to play MP3's in succession via a script.
|
| https://github.com/jimlawless/cmdmp3
|
| It doesn't work on all versions of Windows ... it depends on some
| configuration elements. This has been used in another developer's
| video game and I believe it's installed with an MP3 player
| library in node.js ( if you're running node.js under Windows. )
| It also plays WAV files on Windows 10 (possibly 11) if you pass
| the name of a WAV file into the command-line.
|
| I needed a command-line emailer that would send an email via
| Gmail with a very simple one-line body for my Mac. I also wanted
| to exercise Go's SMTP libraries while experimenting with trying
| to build a minimal emailer application.
|
| https://github.com/jimlawless/gsend
|
| I use this regularly. I used to use it on MacOS, but I use it
| more frequently on Windows.
| submeta wrote:
| I got an appointment at the registry office for my marriage
| because of a script I wrote.
|
| Years ago I desperately tried to get an appointment for a
| marriage at my local registry office but as soon as their website
| listet possible appointments they were gone. So I wrote a web
| scraper that blocked an appointment as soon as it was offered,
| and sent me an sms (via Twilio) notifying me. My script was so
| eager that within an hour it blocked several appointments. I got
| a call from that office wondering how often I wanted to get
| married. So finally I got my appointment. Otherwise it was close
| to impossible to manually book an appointment.
| kevincox wrote:
| One fun one is I was playing a game with friends and it felt
| super random to me. So I wrote a simulator and some simple
| strategies to see how effective these strategies were vs
| randomness. If the game is mostly strategy you would expect to
| see clear difference in all of the strategies. If the game is
| mostly random the good strategies would have a hard time
| differentiating them from each other consistently.
|
| https://gitlab.com/kevincox/red7-sim
| recentrecruit wrote:
| Wrote a TI-83 program (TI Basic) for a geometry course in high
| school. About a month prior to the feared final exam, I combed
| through all of our coursework to catalogue all of the
| calculations needed then wrote a program that would solve for any
| query (length of side, angles, etc.) based on the shape and input
| data.
|
| I read the operators guide to the device cover-to-cover and found
| a way to store the program such that the teacher's method of
| "clearing" the device would not remove my program.
|
| On the day of the test I realized I had accidentally taught
| myself geometry, as I didn't need the calculator at all and could
| do the calculations in my head. I did, however, use the TI-83 to
| verify my answers before handing in the test. According to my
| teacher I not only had a perfect score but did so in record time,
| and suspiciously so did my two best friends.
|
| Nothing ever came of it, but I enjoy the fact that I accidentally
| learned a course to such proficiency by trying to cheat.
| Sohcahtoa82 wrote:
| While in my Algebra II class, we were studying polynomial
| expansion, and I wrote a program on my TI-85 that would not
| only expand things like (2x^2 + x + 3)^4, but it would _show
| the work_. I literally just had to enter a couple values and
| then verbatim copy what it spit out onto the paper.
|
| I asked the teacher if I could use it on the test, and she was
| like "If you can write a program that doesn't just solve it,
| but shows the work, then obviously you know the material
| incredibly well, so there's no need to make the test tedious.
| Go for it, just don't share the program with any of your
| friend."
|
| The last bit was easy because I didn't have any friends. :-(
| twodave wrote:
| I actually got into programming on my graphing calculator in
| high school in the early 2000s. Most of our tests from algebra
| up thru calculus were simply "apply the correct formula to the
| problem". I would simply program the calculator with the
| formulas, use it to calculate the answers and then work
| backwards to "show my work". I got 100% on every test for 4
| years. I'm still not sure whether I feel guilty or not.
| staindk wrote:
| I think this is every teacher's goal with tests where you can
| bring "one sheet of handwritten A4 paper" along as a cheat
| sheet.
|
| The smartass students who don't want to study find ways to cram
| an incredible amount of information onto these sheets... and
| through this they end up actually learning much more than if
| the cheat sheet wasn't an option.
| Semiapies wrote:
| You might find it funny that a scaled-up version of this was
| the plot of a 1958 children's book, _Danny Dunn and the
| Homework Machine_. (Except the teacher figures it out and
| starts assigning the kids using the computer more advanced work
| that they have program the computer to perform.)
|
| https://en.wikipedia.org/wiki/Danny_Dunn_and_the_Homework_Ma...
| merlincorey wrote:
| After years of similar work, mine culminated in a Link Cable
| Chat Program that I wrote on two calculators at the start of a
| big multi-hour test.
|
| We didn't use it to cheat -- literally just to chat.
|
| Similarly, we'd been writing programs to solve our problems all
| year so we already knew all the formulas (because we'd been re-
| entering the programs as needed on fresh calculators).
|
| The teacher knew, which is why I think she allowed it.
| lhuser123 wrote:
| I write tiny programs with pyautogui to automate parts of my job.
| It's like having an assistant.
| wolfgang000 wrote:
| I did something similar to the vaccine appointment bot but to get
| my passport appointment, I'm Venezuelan, and let me tell you
| getting a passport is almost impossible due to all the corruption
| and mismanagement, so years ago the webpage to schedule the
| passport appointment was down for 99.9% of the times, I am not
| joking the page was only functional for a 10~15 minutes per week
| at random intervals of the day, there were facebooks groups of
| people doing watch reloading the page every few minutes ALL DAY
| LONG to catch it when it was working and then inform the rest
| when it was up, It was insane I decided to do a simple(not really
| tho) bot that did the polling and fill my data to the form, I was
| very happy to result and event more because I didn't have to
| bribe anyone(This is the "normal" method to get the passport and
| the sky is the limit of how much are they going to charge you)
|
| here is the code if someone is curious about it
| https://gitlab.com/wolfgang000/saime-bot/
| conroydave wrote:
| I'd like to add that OP has some incredible easy to understand
| "zines" that help explain technical topics like http, dns,
| containers etc.
| hegzploit wrote:
| These little quality of life scripts are life savers, I've made a
| script which I'm really proud of and still use to this day, in my
| university they usually release assignments every now and then
| and I had to check each course's page manually for any new
| deadline, so I made a python script that scraped the website and
| would print any new assignments since the last run of the script.
| I would later make a little telegram integration where new
| assignments were sent on a group chat for my class mates to get
| notified too and left the script running in crontab on some vps I
| had around. https://github.com/hegzploit/lazy-chicken
| robbomacrae wrote:
| My wife was working a role that, as one of her more mundane jobs,
| required grabbing image descriptions from ShutterStock for their
| purchased images and replacing the filenames with them. It took
| up several hours of her week and was incredibly boring work. I
| wrote her a small script that she could simply drop it in the
| folder where the images were and double click.
|
| I always wondered how monetizable this sort of thing was. I've
| debated building a marketplace for these things. Let me know if
| you think this could work!
| Nextgrid wrote:
| The best monetisation for this would be to explicitly seek out
| and take up these jobs then automate them away and enjoy the
| free paychecks. With remote work you could get multiple jobs
| concurrently even.
| pseudosavant wrote:
| I love to put simple web apps like this on Glitch.com.
|
| Days Until - Create a URL to countdown to any date:
| https://glitch.com/edit/#!/days-until
|
| Flexible Fetcher - scrape/fetch contents of a page based on HTTP
| query params: https://glitch.com/edit/#!/flexible-fetcher
|
| Scrape HTML <table> return JSON: https://query-page-table-to-
| json.glitch.me/?url=https%3A%2F%...
|
| USPS Zipcode Lookup + offline JSON - easily add city,state
| autocomplete from zipcode: https://glitch.com/edit/#!/usps-
| zipcodes-demo
|
| Create Data URIs - 100% client side:
| https://glitch.com/edit/#!/data-uri-pwa
|
| Frame Counter - great for testing latency across displays or
| remote links (e.g. Parsec) using a camera:
| https://glitch.com/edit/#!/frame-count
|
| NBA Team Standings in JSON: https://glitch.com/edit/#!/nba-
| standings
|
| Read/render markdown files on your HTTP server:
| https://glitch.com/edit/#!/markdown-html-remix
|
| Create map links that open in Apple Maps on iOS and Google Maps
| everywhere else: https://glitch.com/edit/#!/apple-maps-link
|
| Clean your Amazon URLs: https://glitch.com/edit/#!/clean-amazon-
| url
| ciroduran wrote:
| I love Glitch, I wrote a number of Twitter bots. But then they
| changed some things in the free tier (understandably), so I
| moved my bots to a local server that runs Docker, with each
| container running a bot, and I'm really happy it's chugging
| along.
| pseudosavant wrote:
| I'm dying for Glitch to get native Deno support.
| stavros wrote:
| My small script is a thing that will run all these small
| Docker containers easily, it may be helpful to you. I love
| it:
|
| https://gitlab.com/stavros/harbormaster
| belkarx wrote:
| When I was first learning to code, I spent a few hours writing a
| python script to get Advent of Code files and prompts, then open
| them in an editor, and also eventually made a util to check the
| answers. Fun times.
| john-radio wrote:
| > [the output](https://gist.github.com/jvns/e4a35ca2bad90c1a0fcaf
| 578a803b45...
|
| Missing close paren here btw
| roughly wrote:
| I write code for a living, and I'm in a sweet spot where I
| actually do get to write things that make people's lives easier,
| but it's still easy to forget just how much of a superpower being
| able to write code is. I mean, the things we do, and the things
| Julia writes about here - this is literally modern day wizardry.
| We speak the right words to arcane and inscrutable systems and
| change reality around us. I love that I get paid for this, but I
| love it even more when I get to change something from "dauntingly
| difficult" to "easy" just by thinking about it a bit and asking
| correctly.
| RangerScience wrote:
| I describe programming as "describing ideas in enough detail
| that they are now alive on their own".
|
| (this gets more true when you pick up devops and have a
| codebase that contains both, say, the server code and infra)
| prometheus76 wrote:
| I haven't turned it into a standalone program yet, but I wanted a
| way to calculate praying the Orthodox Book of Hours according to
| a sundial instead of a normal clock, and I used excel to do it.
|
| I found the formula for determining sunrise and sunset using
| latitude and longitude from NOAA's website. This allowed me to
| generate a sunrise/sunset table for my location by day.
|
| I use VBA to update a clock every 10 seconds (I didn't need it to
| be more accurate than that) that feeds to a cell, and I use that
| to know when it is time for First Hour (sunrise), Third Hour (9
| am, or 25% of the day), Sixth Hour (50% of the day), and Ninth
| Hour (75% of the day).
|
| I have it all working and it runs in Excel on my work computer.
| My goal is to translate the logic into an app on my phone so that
| I can get notifications when it's time to pray. It's been a fun
| project, which included a side project of making a 9-LED display
| in Excel for the clock. I have a clock for normal world time, and
| a clock for sundial time.
|
| It's been a fun project!
| rauhl wrote:
| Heh, I did that with Emacs! It already has sunrise & sunset, so
| the rest of the math was easy.
|
| Excel & Emacs: two things starting with E which let anybody
| program anything.
| friggeri wrote:
| These resonate a lot! Tiny projects are very rewarding, because
| you get something that works pretty quickly, this works well with
| my short attention span. Couple of ones I did in the last two
| weeks:
|
| - A little mac app that reads my calendar, grabs the next 2-4
| events and sends them over to my Vestaboard.
|
| - Setting up Cloudflare as a failover load balancer to reach my
| home network (I have two ISPs for redundancy), this involved
| writing a small script to get the WAN IPs out of my Omada router
| and using that as a custom command in ddclient to update the DNS
| entries for both uplinks.
| jsdwarf wrote:
| Created a python script that scrapes the holding lists for each
| of my ETFs and outputs an aggregated list of all companies I am
| invested in through the ETFs. Can also compute how similar two
| ETFs are based on their holdings. Has saved me some order fees
| because it drastically reduced the ETFs I am investing in.
| LinasKo wrote:
| A lot of the music I like is on YouTube, including many obscure
| remixes and covers. Now, I'm not a fan of forgetting things and
| YouTube can be pretty volatile, with videos getting removed.
|
| Rather than downloading all the audio, I made a playlist scraper
| for the names. Runs once a day on PythonAnywhwre, collects the
| names into a database, helps me sleep at night.
| hebron wrote:
| I've build the same thing for the same reason! Except in Ruby
| on Rails =)
|
| It also tells me the history of how the playlist has changed
| and posts to Slack whenever a song was added/removed from my
| playlists!
| ggerganov wrote:
| I've always wondered what would be the chance to win the lottery
| if I played consistently a certain set of numbers. Every day, no
| excuses.
|
| So I wrote a script to scrape the lottery site archive and check
| retrospectively the success rate [0]. Well.. the result is what
| you would have expected.
|
| [0] https://ggerganov.github.io/lottery-check
|
| Bonus - clicking the "Random" button helps you really understand
| how futile playing the lottery actually is.
| theshrike79 wrote:
| Except for those few cases where the people planning the
| lottery don't know math and buying all the combinations costs
| less than the amount of the wins :)
|
| A Romanian Economist did this in the 90's:
| https://thehustle.co/the-man-who-won-the-lottery-14-times/
| Ratalala wrote:
| That would be 49!/(43!6!) = 13983816 combinations. So, on
| average, you need to play 13983816 times before your first win
| (geometric distribution). At one game a day, that's nearly
| 40000 years.
| sparks1970 wrote:
| In the UK the government runs the booking of driving tests from a
| central online system. Because of Covid, and because the test has
| a 50% pass rate at best, there is now a lot of pressure on this
| system. People wanting a test are getting test dates 6 months
| out.
|
| A whole industry has grown up around scraping the website so that
| kids now are forced to pay sniping companies PS20 a time to grab
| cancellations as they appear on the system if they want an
| earlier test date.
|
| In my view private companies are camping on a government-run
| system and extracting their own tax on new drivers.
|
| This is the dark side of clever sniping systems, it starts out as
| a way for an individual to get ahead but quickly gets
| industrialized so that those who can't afford to pay for the
| service are left out in the cold.
| 75central wrote:
| When I briefly returned to the Windows world, I wrote a quick-
| and-dirty application that would clean the shortcut links that
| installs would clutter my desktop with.
| https://github.com/MattGHarvey/ShortcutCleaner
| eddieroger wrote:
| The stories on this page, as well as the other comments here,
| make me really happy because they're all examples of computers
| making life better, as opposed to being passive consumption
| devices. Pretty often, I think back to putting together a
| database to track invites to my bar mitzvah on a 386 running a
| program called MyDataBase - it created print jobs for envelopes,
| let me mark back RSVPs, track gifts and thank you notes,
| everything. We carry such powerful computers in our pockets these
| days, but there are so few apps that I know of that actually use
| the device to make our lives easier. I wish more people knew how
| to use these tools the way the audience here does, or that I knew
| enough to make something that others could then use to do the
| same.
| nunez wrote:
| So many people think that the most recent generations are more
| computer-savvy because they use computers and smartphones all
| of the time. Quite the opposite; many are app-savvy, not
| computer-savvy. While I've gotta hand it to the amazing PMs, UX
| researchers, designers, and SWEs that have contributed to this
| phenomenon, it's a shame that computer literacy in general is
| so poor on average.
| mooreds wrote:
| > The stories on this page, as well as the other comments here,
| make me really happy because they're all examples of computers
| making life better,
|
| Hear hear! I love stories where computers help relieve human
| misery.
|
| I got into programming because my parents had a business that
| required them to mail their clients a legally required notice
| every year. They originally were copying the letter, changing
| the address and a few other pieces of data, and then printing
| it out and mailing it.
|
| While I couldn't help with the latter, the former seemed like a
| great job for a database and mail merge. I set up WordPerfect
| to mail merge, and got started entering data (one month's
| clients at a time). Whenever the day to send out the mail came,
| it was a simple matter to merge in the data, generate a long
| WordPerfect doc, and print it out. Once the first year went by,
| it got even quicker. I ended up porting the dataset a couple of
| times to more advanced databases (eventually PostgreSQL).
|
| The first time they saw how easy it was going to make this
| onerous task, they were pretty happy.
|
| And I was hooked on software as a way to lessen such tedium.
|
| Edit: Of course now, I'd use a tool like lob to actually send
| the mail too.
| reacharavindh wrote:
| One of the best tiny programs I wrote in half hour was to help my
| office mate automate his manual copy & paste of sample IDs to
| generate barcodes, aggregate them in 10 nos boxes and send them
| out. He had allocated the entire day to do this manual labour for
| 3800 samples. I showed up, asked if I could help, and wrote a
| simple python script that would read the excel doc with all
| sample IDs and prepare printable PDFs with 10 barcodes each that
| he can simply stick on the box.
|
| The whole thing was over in 45 mins, and his mind was blown. He
| had been doing this manually about once a month for decades ;-)
|
| I have moved on from that job, but have given him an executable
| on his laptop that will read an excel file of a specific name and
| print out the PDF the same way. It is his treasure now :-)
| throwthere wrote:
| That Covid vaccine project gives me chills. That's not saying
| it's wrong to use an advantage like coding skill or anything else
| to increase your odds of surviving a pandemic-- but it's a new
| world we live in for sure.
|
| Edit: I guess I need to clarify I'm not asserting anything was
| right or wrong.
| kinduff wrote:
| Have done the same but using a scrapper, not for COVID, but for
| an impossible to schedule appointment I had to do in a
| government website.
|
| I still think it could be monetized but I don't feel like doing
| it. I heard a friend that there is a lot of people doing this
| manually and they charge you a considerable rate.
| mr_mitm wrote:
| This was done with a lot of collaborative effort in Germany:
|
| https://github.com/iamnotturner/vaccipy
| Macuyiko wrote:
| We had a similar governmentally organized system in our country
| during the first vaccination round where people could book an
| appointment. The website fell over and the devs introduced a
| queuing system and had you waiting in line. Except that it was
| badly implemented and only enforced client-side (through
| JavaScript) and hence very easy to circumpass. It also had a
| similar API which could be polled to see when a slot freed up.
|
| This actually happens quite often. As another example, there is
| a particular country visa centre which requires you to make an
| appointment and is typically fully booked for weeks on end. The
| calendar info is loaded in through an API call and the selected
| date then form POSTed with a hidden field's value set to an
| identifier representing the date and time. Not in plaintext,
| but easy enough so that it can be guessed. Once you spoof the
| value, no further server-side validation happens and no one at
| the centre will check it.
|
| I wanted to book a restaurant a couple of weeks ago. As I was
| discussing options with a friend, the booking provider already
| forced a refresh and our desired time slot was gone. Again,
| taking a look in the Network tab of the browser and spoofing a
| value led to a confirmation at the desired time. I expected a
| call saying that they were overbooked, though strangely enough
| the place was not packed (I guess they kept some tables open
| for social distancing / walk-ins / phone reservations).
|
| This is really security 101 on the same level as SQL injection.
| Strange how every dev seems to know how to hook up something to
| an API but still makes the same mistakes.
| bhaak wrote:
| It's always been this way.
|
| But advantages aren't always that obvious. In my case, it was
| just "don't reload the page while waiting for the server to
| respond" as the servers were DDOSed on the first day they
| opened the appointments. Obvious to many programmers, not so
| obvious to the general public that you might lose your position
| in the queue if you reload the page and not wait for a proper
| error page before reloading.
|
| Another advantage was getting my PS5. I wrote a simple web
| scraper that just looked if the shops had any PS5 in stock and
| wrote that into a static RSS I uploaded to my webserver and
| stuck this into my regular RSS reader.
|
| Over the last year, this way I could provide myself and 3
| friends/acquaintances the opportunity to get a PS5.
|
| Other people can build tables and shelves. I'm a programmer.
| GOATS- wrote:
| I did the same as well.
|
| https://github.com/GOATS2K/nhs-vaccination-checker
| sergiomattei wrote:
| I did the same.
|
| When vaccinations opened up for the elderly, I wrote a script
| to check open slots and get my grandparents a vaccine
| appointment.
|
| They patched it up, but similar to the author, I managed to get
| them one soon after through their website. I'm wondering if
| we're even talking about the same website.
|
| Wild days.
| melling wrote:
| "This didn't turn out to be necessary (more appointments opened
| up pretty soon anyway), but it was fun."
| TrapLord_Rhodo wrote:
| I used to play a game called runescape and there was this client
| called OS Buddy that had data dump of all 'buy' and 'sell' orders
| in the grand exchange.
|
| put the data in python and I calculated the "flip" ratio, average
| and liquidity of the items.
|
| Now that was all profitable, but around this time there was a
| phase where everyone discovered that you could do pump and dumps
| and make obscene profits. They worked exactly how normal pump and
| dumps work, a select few insiders buy a bunch of the random item
| and then after a few days they annouce it to the clan and start
| selling their item. I could see a surge in abnormal buys for
| items with low liqidity and effectively have a birds eye view of
| all the pump and dumps before they aree 'Public".
|
| I never had to have a job through high school as i could sell the
| GP and make around $50-60 a day!
| vorvac wrote:
| Back when you could create accounts with usernames instead of
| emails, I wrote a c# program that would generate a random
| user/password/DOB, go through the three web forms, and create
| an account. I integrated this with TOR so that on every third
| account, I'd switch IPs to prevent throttling. I'd let the
| thing run almost constantly and ended up with thousands of
| accounts.
|
| I sold these account lists to botters who would then go on to
| to their thing. Made a decent amount of money from this too!
| TrapLord_Rhodo wrote:
| it'd be interesting to make a mmorpg game that was entirely
| based on building bots. an MMORPG Programming idle.
| thequux wrote:
| Have you seen screeps? (https://screeps.com/)
| TrapLord_Rhodo wrote:
| this is exactly what i was looking for.
|
| Plus i can use any web assembly language? My dreams of a
| rustacean based empire are about to be realized. Bye Bye
| productive work for the day.
| beamatronic wrote:
| >> secret undocumented APIs
|
| There's precedent in the US for going to jail for doing this
| CyberDildonics wrote:
| What person went to jail? What is their name and what jail did
| they go to?
| anthomtb wrote:
| My SO is not always reliable when it comes to handling home
| duties while I'm away for work. So I setup a little Python script
| to send a text message with a TODO list every day. Twilio handles
| SMS, reminders are store in sqlite3, and cron runs the script
| once a day. It lives on a DreamCompute instance so (hopefully) no
| worries of a local power outage eliminating crucial (ok, not
| really that crucial) reminders.
|
| Are there better ways to do this? Undoubtedly. But I sure had a
| good time making it work.
| svilen_dobrev wrote:
| if anyone finds any of these useful...
|
| https://github.com/svilendobrev/svd_bin (terminal + sh setup ,
| version-control, lots of commands for this or that)
|
| https://github.com/svilendobrev/svd_util (python stuff)
| creeble wrote:
| If anyone is interested in a little script that grabs an image
| from a webcam pointed at a 7-segment LED display and returns the
| numbers it finds, let me know.
|
| It uses the ironically-named "Let's Go Digital" training set for
| the Tesseract OCR program. It works somewhat poorly, but good
| enough to read my hydronic-heat boiler's display to let me know
| that it didn't fire up in the middle of the night, so that I can
| get up and clean the flame probe.
| jIyajbe wrote:
| I would love to get this script! I am doing photon counting
| with an LED readout; this would help me enormously.
| froddd wrote:
| I have a script running on the raspberry pi that scrapes the
| Council website and emails me with what bins need to be out on
| Monday. Runs every Friday. I still await the email with
| anticipation every week.
| Zhyl wrote:
| I feel like 'tiny personal programs' is one of the bigger reasons
| to teach 'everyone' to code.
|
| Everyone has something in their life that is very specific to
| them that they would be much happier if it were 'just so'.
| Writing tiny scripts or being able to dive into the
| config/settings of something is a good way to get rid of some
| pain points.
| DrBoring wrote:
| > teach 'everyone' to code.
|
| I wonder if coding classes will be the new "shop class" .
| https://www.lexico.com/en/definition/shop_class
|
| In 8th grade, I took a compulsory wood working class. I guess
| it was a skill that adults thought children should learn.
|
| By that point, I had already been coding for 6 years. My school
| had a computer lab, but no coding was taught .... just typing.
| Also we played networked Oregon Trail Deluxe once or twice.
| prometheus76 wrote:
| I wish more of the engineers I work with had taken a wood
| shop class, so that they would learn about things like kerf,
| working with things that are out of square, tolerances, and
| how certain milling or lathing operations are impossible.
| Most of the young engineers I work with only know about
| drawing things and running simulations on them, rather than
| how things are actually built.
| lasfter wrote:
| I took a wood shop class in high school and did not learn
| any of those things, I learned how to make spoons, boxes,
| and cabinets.
| prometheus76 wrote:
| Fair point. But even learning how to measure things, mark
| them, cut them out, and how to assemble things would help
| my young engineer coworkers.
| iak8god wrote:
| For this reason, I often recommend 'Automate the Boring Stuff
| with Python' (https://automatetheboringstuff.com/) to
| beginners. It hits the basics and then moves pretty quickly to
| address: OK, what can _I_ actually use this for?
| v0x wrote:
| I am not a programmer, but it has been fun learning little
| bits of Python and making scripts to automate tasks.
|
| We have folders for clients at work and everything older than
| a couple of years should be archived, aside from certain
| legal documents. Building a script to check if any file is
| older than a certain date and checking that it does not
| contain certain words in the filename, was really easy, and
| useful, and gave me a good feeling of satisfaction seeing it
| actually work.
| spikej wrote:
| For me it really hit home starting with autoit on windows
| years and years ago. I still have scripts I wrote that work
| almost 20 years later!
| tonyedgecombe wrote:
| My plumber runs his business off Excel and a ton of VBA code.
| He is convinced it gives him an advantage over his competitors.
| syshum wrote:
| I think we need to teach people the basics of computer
| operations before learnToCode...
|
| Computer Illiteracy is still very high, even today lots of
| people can not tell the difference between their computer
| monitor, and their computer.
| Minor49er wrote:
| Apparently Gen Z has trouble even understanding filesystems
|
| https://futurism.com/the-byte/gen-z-kids-file-systems
| jxramos wrote:
| This right here. So often general purpose software winds up
| being some feature anemic app that focuses on some common
| denominator functionality. Plugin and extension support has
| been great to expand capabilities in general to make said
| software less confining.
| coreyp_1 wrote:
| I wrote a program to distribute my lecture slides to my students
| in real time.
|
| When I was a University Professor, I taught Theory of Computing
| (among other classes). I did not want to maintain two sets of
| slides (fill-in-the-blank style), and I didn't want the students
| to have to write non-stop during the lecture, so I wrote a couple
| of programs to distribute the slides in real time during the
| lecture.
|
| Part 1: C++. A program ran on my computer. When I pressed a
| button, it took a screen shot of my chosen monitor and sent it to
| my server. Communication via websockets.
|
| Part 2: Browser. Students connected to my server at the start of
| class. As I lectured, the slides appeared in their browser
| automatically. Of course, they could click through all previous
| slides (for that day as well as previous lectures), but if they
| were not actively browsing the slides, then the newest slide
| presented itself to them automatically. (Technically, it was
| always one slide behind, because I would not release a slide
| until I was done talking about it.) Communication via websockets.
| It worked in lectures attended by 100+ students.
|
| Part 3: NodeJS. My server received screenshots from me (as well
| as some metadata), kept a small database of all past
| lectures/screenshots, and served a browsable interface to the
| students. It routed all the websocket connections so that
| everything "just worked"TM.
|
| I thought it was cool. The students complained that the slides
| were not searchable like a PDF. I directed them to the index of
| the textbook.
| gurchik wrote:
| Sorry but I'm confused by
|
| > I did not want to maintain two sets of slides
|
| This confusion is causing another confusion as to why you
| couldn't publish the PDF before the lecture.
| cranium wrote:
| Blanks in the slides are filled during the lecture with the
| students. With this solution, students don't have to copy the
| notes while trying to listen.
| ggreg84 wrote:
| You can save the annotated slides after the lecture, and
| just share them?
| ihateolives wrote:
| It was Theory of Computing class, not Biology or Math, if
| I'd been his student I would've been mightily impressed.
| I mean every English teacher can fill out and email PDFs
| but this was actually real time applied computing.
| coreyp_1 wrote:
| I used Google Slides, and didn't use annotations. The
| reason that I didn't wait until after the lecture is
| that, when covering technical- or notation-dense topics,
| especially if the information is new, students often need
| to look back during the lecture to remind themselves
| "What does this mean again?", either that, or ask the
| question out loud, which a lot of students are shy about.
|
| In short, the students needed to be able to review the
| slides during the lecture, so I couldn't wait until the
| end. My only options were then to distribute slides ahead
| of time, fill-in-the-blank style, or create a live
| delivery system. Honestly, the live delivery system was
| easier and cooler.
| RangerScience wrote:
| That's _really_ cool! Did you post the code up anywhere?
| coreyp_1 wrote:
| Maybe one day, when the code is cleaner!
| derekp7 wrote:
| One I did when I was much younger was after a trip to a Cracker
| Barrel restaurant. They have these golf tee peg games (triangle
| shaped board with holes and golf tees inserted). There are rules
| for doing jumps and removing pegs, with the goal of getting down
| to 1 peg remaining.
|
| So I went home, fired up basica on my PCjr, and wrote a brute-
| force solver for it. Turns out there something like tens of
| thousands of possible solutions.
|
| Then it became a challenge, to filter out duplicates (each
| solution appears 3 times if you apply it to the board with each
| 120 degree rotation, plus you have mirrors of these, etc). Was an
| amazing feeling for a youngster getting into computers.
| spc476 wrote:
| I did the same thing (only under Linux, not MS-DOS). I also
| found out that leaving 8 pegs is _way_ harder than just 1 peg
| (2 ways, excluding reflections and rotations). And for 10 pegs,
| only 1 way.
|
| Edit: Update number of ways to leave 8 pegs, and added number
| of ways to leave 10 pegs left.
| CRConrad wrote:
| Back in the days of Windows 3.0 / 3.1, a friend and I hung out
| in the computer labs with faaar too much time on our hands...
| We figured out how to beat all four levels of Windows "Reversi"
| (Othello) 64-0.
|
| Manually, no programming involved.
| ectopod wrote:
| https://en.wikipedia.org/wiki/Peg_solitaire
| tomcam wrote:
| Mad props. I never managed to finish a one night project in one
| night.
| jrockway wrote:
| I thought about writing a program to get myself a vaccine
| appointment, but ultimately decided that we probably didn't want
| to vaccinate people in order of software engineering ability. I
| don't have to physically go to work, and can afford to have
| groceries dropped off in front of my apartment, so there was
| really no reason I should get the vaccine before everyone else. I
| can just self-quarantine with zero inconvenience or consequence,
| so probably a better use of limited resources to give it to
| someone else first.
|
| But at the same time, I also feel like literally nobody is
| looking out for you personally in the pandemic. I got the
| impression that pharmacies flat out lied to the government about
| vaccine availability (city websites would be like "oh yeah your
| CVS has tons of extra capacity" but then they have no
| appointments, and when you do get an appointment and show up,
| they turn you away). In that case, you have no choice but to DoS
| them to meet your basic medical needs. (Insert rant about how I
| was first able to buy N95 masks and at-home COVID tests in
| January 2022, 2 years after the first case. Now I have them for
| next time, I guess.)
| adrianmonk wrote:
| > _thought about writing a program to get myself a vaccine
| appointment, but ultimately decided that we probably didn 't
| want to vaccinate people in order of software engineering
| ability_
|
| I wrote one to help me register for a college class that was
| full. I faced the same ethical question, but I decided that it
| was OK because it was a computer science class.
| jrockway wrote:
| Wanted to say one other thing; I'm not criticizing the author
| of this blog post for writing such a script. Their risk
| factors/assessment may be much different than my own, and
| that's totally fine.
| shimonabi wrote:
| I had a relly nice free seaside summer vacation because of a
| Python script.
|
| In our country we got vouchers to take a holiday because of
| Covid, but I couldn't use Booking.com because not all landlords
| had the proper paperwork to be able to redeem the voucher.
|
| I wrote a script to e-mail all the properly registered landlords
| from a government list in a particular region with my
| requirements and then manually selected the best offer. I had a
| really good time.
| guruparan18 wrote:
| Interesting to read the "dice rolling" part.
|
| > investigating dice rolling patterns A friend showed me a dice
| rolling game where you roll a bunch of dice and add up the
| values. I mentioned that if you roll enough dice and add up all
| the values, at some point it gets a lot less "random".
|
| And result turned out "true"? Rolled a die for 2500 times and the
| sum is all around 8500! I wonder what would be the results for
| 25/250 times? So, this is sum(expectations).. and for rolling a
| die, it is 3.5 [(1+2+3+4+5+6)/6 => 21/6], so the answer was 3.5 x
| 2500 = 8750. Should hold good for all numbers relatively large.
| matja wrote:
| https://en.wikipedia.org/wiki/Law_of_large_numbers
| alskdjflaskjdhf wrote:
| This is a classic illustration of the Central Limit Theorem--in
| fact, the example is even on the Wikipedia page [0]. The
| distribution tends towards a normal distribution as n increases
| (though to actually take the limit you need to rescale).
|
| [0]
| https://en.wikipedia.org/wiki/Central_limit_theorem#Applicat...
| amir wrote:
| to disable retweets on Twitter you can add "RT @" to the list of
| muted words
| punnerud wrote:
| Using print in Python to generate HTML and piping the output to a
| file:
| https://gist.github.com/jvns/a552895b6f9b523276e88d7e7506ee8...
|
| Always used append to file, but this is easier to debug/iterate.
| Thanks for the trick.
| pkdpic wrote:
| Yes! Tiny programs! And from one of my favorite zine makers and
| big inspirations for switching careers / getting a programming
| job. I need to make more of these at work. API team too busy to
| build an endpoint my team needs literally every day? No shame in
| making a mini webscraper and never wasting another minute asking
| them :^)
| unforswearing wrote:
| I am self-taught and little scripts like these were my entry into
| programming. Favorite programs of mine include a script to tell
| me when a boutique guitar pedal would be available from the maker
| to avoid paying +200% markup in the reseller market[0], and more
| recently I created a "todo focused markup language"[1].
|
| [0]:
| https://gist.github.com/unforswearing/db73475f333809119ae3dd...
|
| [1]: https://github.com/unforswearing/todo_markup.js
| davchana wrote:
| I made a html js + google apps script timesheet thing, its at
| https://spa.bydav.in/tsDMV/
|
| A simple html js collects my time and date, and come fields, and
| ajax it to Apps Script running as web app.
|
| Script logs it into a sheet, recent rows on top.
|
| The html page has a link to get the timesheet. On click, it again
| asks the apps script to send back this month's time sheet data as
| json, shows it as a table.
|
| Although no chance, but still all of these ajax expect a
| password.
|
| ====
|
| Recently I got into telegram bot, a multi bot. It has a /help
| command. Help describe the expected command keywords. Backend is
| again Google apps script. A string split, an switch case.
| hughrr wrote:
| I had a 200 line python script running on a junker PC that pulled
| a not insignificant amount of cash in. It was an arbitrage system
| that looked for poorly listed items in a couple of eBay niches.
| I'd literally buy the items it identified and then list them
| properly and reship. Average margin was 60%. On one occasion I
| managed to nab something for PS15 and resell for PS675 with a 4
| day turnaround.
|
| Alas I collapsed the whole niche in the end.
|
| Edit: all it did was every 10 minutes scrape some carefully
| crafted eBay searches with beautiful soup 4, do some custom
| filtering, remove any duplicate items it had already seen (stored
| in redis), then send me an email via SES with the links in it
| where I would make a decision.
| kzrdude wrote:
| Can you tell what the niche was? Collectible items or not?
| hughrr wrote:
| Not collectible. Specialist portable industrial equipment is
| all I'm saying :)
|
| The script was almost irrelevant compared to the discovery of
| the niche.
| simlevesque wrote:
| Thank you for the Fringe calendar !
| sailorganymede wrote:
| My parents work at a care home and every now and then, they will
| have a funny issue that I'll try solve with code. Like, the staff
| tried going paperless so important documents needed to be hosted
| somewhere and a QR code was used to link them. It's little things
| like this that honestly bring so much joy
| frans wrote:
| My tiny program regularly scans a dropbox folder. If it finds a
| pdf, it prints it and moves it to an archive folder. That was
| just to avoid every family member emailing me documents so it is
| nicely printed by the time they get home to study.
| Zircom wrote:
| That's brilliant, my girlfriend and roommates refuse to install
| the printer driver onto their computers and print things
| themselves so it's an endless cycle of bugging me to print
| things. Going to get this going when I get home today.
| senko wrote:
| Love these kinds of projects! To me they represent what's the
| most fun in programming.
|
| Here's a couple of mine:
|
| * During COVID lockdowns, the local grocery chain delivery slots
| were reserved a week or more in advance, but they were opening up
| a few slots each day; I wrote a scraper that would detect a newly
| opened slot and ping me on Slack, saving me a few days' wait on
| each delivery.
|
| * When I was buying a house, I wrote a scraper that would email
| me daily with what was new on the market; didn't end up buying
| through that, but I later repurposed it to check for used car
| classifieds and snatched a pretty nice deal.
| TrapLord_Rhodo wrote:
| >("using the API of local services" seems to be an ongoing theme,
| one of my favourite things is to use secret undocumented APIs
| where you need to copy your cookies out of the browser to get
| access to them)
|
| Would love more information about this one
| bloqs wrote:
| This is something I could never grasp. How on earth do you
| discover those things?
| jrkatz wrote:
| A basic step for securing a resource intensive API from DDOS
| attacks and some user impersonation attacks is to rely on a
| security token in a cookie set in the response to an earlier
| request. For example, a user may land on a web page and receive
| a unique, encrypted, short-lived security token cookie that is
| marked http only (inaccessible to javascript), plus a copy of
| the token in cleartext. When the user agent later polls an
| expensive API, it must send the cleartext token as part of the
| request. Server-side, that's compared to the encrypted copy
| (received from the cookie) and the expensive call is terminated
| early if they do not match.
|
| A DDOS attack that relies on a malicious ad or web page
| directing user agents to poll your expensive API in a loop will
| no longer work as well, because those user agents will not have
| the correct security token cookie value, and the attacker is
| unable to figure out what the correct value is for any given
| user agent running their malicious code. More
| sophisticated/expensive attacks are still available, but
| anything is an improvement.
|
| There are a few ways to skin this cat, so don't refer to the
| above as a how-to-guide - find a more authoritative voice on
| best practices than me, please, if you try to implement
| security like this.
|
| Anyhow, if you want to use an API implementing security like
| this, you copy the cookies out of your browser and feed them to
| your program so it can add them to the calls.
| prometheus76 wrote:
| This is super basic, but I finally sat down and learned the
| syntax for yt-dl and built a script for checking all of my
| favorite channels on youtube for any new content and archiving
| them locally. I was doing it manually before and that turned into
| a huge pain as my list of channels I wanted to archive continued
| to grow.
|
| Now it runs every night and I get notifications if it runs into
| errors.
| swyx wrote:
| i gotta ask, whats the deal with archiving them locally? is
| bitrot on youtube that bad? i imagine its pretty low for
| popular accounts
| bo1024 wrote:
| Another advantage is using your own viewer/interface, which
| doesn't have manipulation like ads, recommendations, auto
| play.
| ayushnix wrote:
| YouTube is one of the few websites which I wouldn't trust to
| have a video that I watched today be available tomorrow. The
| reason can be anything -- local geographic censorship,
| copyright strike, uploader removing his own video, video
| becoming private, lots of other things I can't recall right
| now.
| prometheus76 wrote:
| There are several reasons I do this, and most of it comes
| down to not trusting Youtube to keep content available
| consistently for the various reasons others have listed.
|
| There is an added benefit. I have one channel I follow that
| does a LOT of q&a type videos from the audience. Because I
| download the subtitles as well, I can throw those into a
| database with the video titles and make a searchable database
| if I want to see what the host has said about a particular
| topic. I don't have to rely on my memory or go hunting. I can
| just query my database and know exactly which video/timestamp
| has the topic I'm looking for.
| spikej wrote:
| That's a fantastic idea!
| DrBoring wrote:
| This script would be good for my kids. Would you be willing to
| share?
|
| I want an easy way for them to watch their favorite channels,
| without seeing the suggestions from youtube. It often suggests
| similar content, but not child appropriate. Specifically,
| Minecraft content.
|
| I think a local cache of videos served to a HTPC client would
| work well.
| a99wang wrote:
| An alternative is to just block YouTube recommendations on
| the client. You can use the 'My Filters' feature of uBlock.
| See https://github.com/gorhill/uBlock/wiki/Static-filter-
| syntax for details. Personally, I get along just fine with
| something like the following:
| youtube.com##ytd-watch-next-secondary-results-renderer
| youtube.com##ytd-comments youtube.com##ytd-two-
| column-browse-results-renderer
| DrBoring wrote:
| Thanks for the great tips everyone.
|
| I like my idea for a local cache with HTPC client because
| there are plenty of clients to choose from for Fire TV, and
| my kids are more comfortable with a 10ft interface.
| asdff wrote:
| you can get an rss feed from youtube channels then just open
| the links with mpv if you didn't want to bother caching
| locally too
| staindk wrote:
| This is a good idea too. Pretty sure VLC can do the same.
| prometheus76 wrote:
| Some notes on the batch file below. This is saved as a .bat
| file and runs in the middle of the night using task
| scheduler. I didn't include the error checking portion
| because it adds a bunch of complexity and dependencies. The
| batch file below can be copied and pasted in the same batch
| file for every channel you want to download. Just copy the
| block below and paste it below and modify it for the next
| channel. I also keep a copy of yt-dlp.exe in every folder I'm
| downloading to, and in the batch file, it runs an update of
| that file to make sure I always have the latest version
| before downloading. I also download the subtitles in English
| and I download the thumbnail for the video, so that it shows
| up nicely in Plex. The first time it runs, it will download
| all of the videos from the channel, and it will record the
| urls into a text file for all of the videos. The next time it
| runs, it will check the videos available from the channel
| against the list it recorded and only download new content.
| If you need help, consult the docs on yt-dlp github page. I
| don't really have time to help with tech support. I should
| also add that you'll need to replace the http string below
| with the url of your favorite youtube channel.
| ECHO Checking Your Favorite Channel... cd
| "\path\goes\between\the\quotes" .\yt-dlp.exe -U
| .\yt-dlp.exe --download-archive ./playlist.txt -iw -o
| "%%(title)s-%%(release_date)s.%%(ext)s" -o
| "thumbnail:%%(title)s\%%(title)s.%%(ext)s" -v
| https://www.youtube.com/channel/UCpil30eNi37bPLwKp4g4kUA
| cd \ ECHO Your Favorite Channel updated
| spikej wrote:
| I have this set up for specific playlists that download to
| specific folders (tech,kids, etc) and when I or family
| member come across videos we want to watch later we just
| add to playlist and it's available for watching later on
| the HTPC.
|
| I use a script to clean out the playlists occasionally.
| bonestamp2 wrote:
| When my wife and I were looking at buying an investment property,
| I built a little program to use Zillow's API to get tons of data
| for a particular area, make some calculations, and then sort the
| data in order of most potential profit as a rental (based on
| their estimated rental rates, which are not always perfect of
| course). Then I added some filters so I could find a property
| that met our other criteria.
|
| It worked really great, and we never ended up buying a property,
| but I couldn't help thinking this is a premium feature that
| Zillow could easily offer and charge for. If anybody at Zillow is
| interested, feel free to reach out.
| windthrown wrote:
| That sounds interesting! Would you be willing to share it with
| those of us that don't work at Zillow?
| tempodox wrote:
| I wrote a script to post a comment on HN about how I wrote a
| script.
| ayushnix wrote:
| This may not be as impressive but I wrote a script to eliminate
| one of the primary roadblocks I faced when I moved to Wayland on
| my Linux desktop -- a script to copy and autotype password store
| and gopass data, kinda like rofi-pass
|
| https://github.com/ayushnix/tessen
| prova_modena wrote:
| I wrote a tiny program to help test the tire pressure sensors on
| my car. You can receive signals from these sensors using a cheap
| SDR dongle and a program called rtl_433. However, out of the box
| the process is bit messy and requires tweaking and
| interpretation. So I wrote a bash script that wraps rtl_433,
| guides you through the process in an easy-to-understand way and
| summarizes the results.
|
| A program like this is not full automation, but it greatly
| reduces the cognitive overhead of doing this task. Now when I
| suspect a sensor is bad, I can just pull out the script without
| having to get back up to speed on how to orchestrate the
| component programs and interpret the results. It's like having a
| well-designed jig for a woodworking task, hanging on the wall for
| later use.
|
| Writing tiny programs like this is really satisfying because the
| scope is small enough that I can carefully consider all
| decisions. I spent a lot of time reading through guides and code
| samples, considering dependencies vs pure bash, understanding
| shellcheck warnings, and making the code conform to a style
| guide. All not strictly necessary to achieve the goal, but I
| learned a lot and take satisfaction in a small, but refined
| result.
| el_benhameen wrote:
| Do you have the code for this living anywhere? I think I have a
| bad TPMS sensor in one of my tires and it sounds like your tool
| would be immensely helpful in figuring out which one.
| prova_modena wrote:
| here's the code: https://github.com/rouyng/tpms-helper
|
| so far I have only tested it with Toyota sensors, so YMMV
| when used with other sensor types as I'm not sure if the
| rtl_433 output will be the same.
|
| I also wrote a blog post when I first figured out how to test
| the sensors with rtl_433, before I wrote the script. probably
| useful for background information:
| https://www.r-c-y.net/posts/tpms/
| el_benhameen wrote:
| Incredibly helpful, thank you! I actually just found your
| blog post on this. I happen to have a 2008 Corolla with the
| same issue, so my guess is that the sensors are very
| similar.
| ajolly wrote:
| Feed rtl_433 into home assistant, can easily create alerts
| based on the output.
| jessetemp wrote:
| Can anyone elaborate on "secret undocumented APIs where you need
| to copy your cookies out of the browser to get access to them"?
| That sounds fascinating
| mynameismon wrote:
| So as a part of my daily activities, I have to use a portal
| that has an absolutely terrible interface, with text reflowing
| on every click, parsing and loading a 1 MB JSON file from an
| internal API taking about 5 minutes (of course, its a janky SPA
| with developers filling it with useless JS).
|
| Irritated, one day, I fired up dev tools, opened the Networks
| tab and copied the relevant API request that was being fired as
| a bash command, converted it to Python [1]. After that, I
| merely parsed the JSON, dumped it into a HTML file, and saved
| it on my hard drive so I wouldn't need to login to the portal
| again.
|
| [1]: https://curlconverter.com/
| gen220 wrote:
| If you look at the `network` tab in developer tools, you'll see
| every http request made by your browser, and the headers that
| are sent along with the request.
|
| e.g. when you hit the `reply` button in HN, it'll make some
| HTTP request, with a cookie in the header that identifies your
| user session.
|
| You can right-click on the request and click "copy request as
| curl", and then paste it into a terminal to duplicate the
| request locally.
|
| Fore example, Stripe has some API endpoints that are only
| available to logged-in dashboard.stripe.com users. They are not
| documented in the public API spec, and they have more powers
| than the public API. If you do the actions in the dashboard and
| record the requests, you can use those undocumented APIs: all
| you need it a session token!
|
| This leads down an unstable path, where you write a browser-
| emulating script to login to $service, scrape the cookie, and
| then use the cookie to make requests against the $service's
| undocumented API. Not a good idea to build companies on this
| logic, but it's fine and fun for personal projects.
| ckp95 wrote:
| May as well flog the little zsh thing I wrote:
|
| https://github.com/ckp95/fwf/
|
| fwf -- "Filter With Feedback". It lets you write sed/awk/jq/grep
| etc things interactively. You type in a UNIX filter, and on every
| keystroke it renders the result in a column on the right, which
| you can compare to the original on the left (watch the video
| demonstration on the link if that description is confusing). I
| wrote it to make the feedback loop for text-processing as quick
| as possible. I use it all the time now. It makes the "activation
| energy" for writing shell pipelines a lot lower, if that makes
| sense.
| belkarx wrote:
| Very cool, thanks.
| AussieWog93 wrote:
| I've built an entire business around some personal programs that
| I've written (all Python scripts).
|
| Currently working about 4 days a week with no commute and pulling
| in 2-3x as much as I was back when I was an SWE. This is only
| going up as things get more automated and optimised. I think a
| lot of young people obsess with the high-status fields (AI,
| Robotics etc.) but there are plenty of ways to make a good living
| doing low-status work extremely efficiently (I'm in used video
| games, for example).
| ad404b8a372f2b9 wrote:
| Can you provide examples? I've never managed to make money from
| scripting and short of going into freelancing I don't see how I
| would even start.
| AussieWog93 wrote:
| Specifically in our case, we sell used video games.
|
| A lot of very labour-intensive work (pricing, writing
| listings, getting images) is all done by machine now, and
| I've recently made some semi-automated flows for shipping
| (think stage 1 of Manna[1], where a script tells you the
| optimal way to do a manual job). The next thing is to
| automatically decay the prices with a cron job to get rid of
| stale listings.
|
| I think the important thing to point out is that we're not a
| software business! We're a retail business that happens to
| use software to increase productivity and competitiveness in
| certain areas. The value doesn't come from the fact that the
| software is particularly technically impressive, but that it
| allows us to achieve in 50 man-hours per week what takes
| others 200.
|
| As a side note, I think the whole "I'm a software engineer,
| therefore I should focus on making software" way of thinking
| is an incredibly common trap that leads many people towards
| creating worthless startups.
|
| Ultimately, good software solves some kind of real-world
| problem, and your understanding of the problem that you're
| solving is in many cases more important than your programming
| skill.
|
| [1]https://marshallbrain.com/manna1
| electromech wrote:
| This made my day, especially the scripts that were _not_
| ultimately useful, yet you are proud of them and glad you spent
| the time to do them. I tend to beat myself up for not doing more
| "productive" coding, and I need to appreciate the experience
| itself more. Thank you so much for this.
| trickjarrett wrote:
| Most of mine are one-time use or limited use. I have a few
| ongoing dev projects for personal use:
|
| - My smaller blog is a (poorly) written CMS that makes a static
| site. Almost zero reason other than I wanted the experience of
| building my own CMS, could easily use another tool.
|
| - I have a 'Pick'em' with friends for MLS soccer. It's a fully
| coded website, definitely my biggest ongoing project.
|
| - I have a tool which looks at upcoming soccer games around the
| world and recommends the best ones to watch (looking at a number
| of variables such as relative ranking in the league, historic
| goals for and against, gambling odds, etc.)
|
| - I have a weight and body fat tracker I use to enter my daily
| weigh in and see graphs and charts of my progress.
| abnry wrote:
| I can control my smart devices by typing the command
|
| 'turn [device-name] on'
|
| in the terminal from my computer, and I feel like an super
| awesome hacker every time. Works great when I am at my computer
| but don't have my phone around to use the app. I had to use an
| android emulator to get the local network keys to make tinytuya
| work.
| magamig wrote:
| I did the same for the COVID vaccine
| https://magamig.github.io/posts/scraping-for-a-covid-19-vacc...
| nunez wrote:
| Ages ago, I had a second job as a speed-dating host for a social
| events company. I did it partly for the (beer) money, partly to
| meet women at her other social events for free (she charged for
| them), and partly to get her brash-but-actually-quite-useful
| online dating advice (that helped me find my now-wife, now that I
| think about it!).
|
| The basic premise was simple: get 10-20 people into a hip
| restaurant or bar, set up tables, have women pick the tables they
| sit at, then have the men go from table to table having five-
| minute conversations. After everything was said and done,
| everyone would write the names of people they wanted to see again
| on a form and hand them to me.
|
| I would manually go through each form and send emails to matches
| after the event was over. I also had a 24-hour soft SLO and a
| hard 72-hour SLO. This usually took me a whole 2-3 hours to do
| per event. I also mismatched people several times because humans
| gonna human.
|
| I was very fluent in PowerShell at the time, so upon realizing
| that this can be automated with a matrix solver, I wrote a script
| that took the names of everyone that submitted a form, then, name
| by name, asked for everyone's matches, and sent everyone their
| match emails from a template I wrote. It took me about six hours
| to write and run through manual tests. (I know better now and use
| TDD for everything!)
|
| My 2-3 hour error prone process went down to five minutes, tops,
| with no errors. It was beautiful. Towards the end of my stint
| doing this job, I was able to run this script _as people gave me
| back their forms_ and have emails queued up to send out once
| everyone was gone. I spent the remaining 2.95 hours I got back
| walking to my favorite izakaya and eating their amazing pork
| belly rice bowl.
|
| Thanks, Julia, for making me miss my twenties for the first time
| in a while!
|
| (I've written several small utility apps over the ages. It's a
| shame when I hear people say that they actively don't program
| outside of work; the ability to write code to bend the world to
| your will is an amazing superpower!)
| dbrgn wrote:
| I can relate to the document scanning issue. In my case, I
| digitize all documents I get on paper. For this, I've written
| this wrapper around scanimage and ocrmypdf:
| https://github.com/dbrgn/pydigitize
|
| It does the following steps:
|
| 1. Scan a document with any scanner that supports SANE (ADF
| supported), 2. straightening and cleaning of scanned documents,
| 3. run OCR on PDF so that it becomes searchable, 4. generate
| PDF/A file for archival, 5. add keywords to the PDF file
|
| I've probably saved many hours with this script, even when taking
| into account the time it took me to write it.
|
| Tiny projects don't always save time, but they sure are
| gratifying when they work as intended!
| BeetleB wrote:
| I'll try your version out.
|
| I went through this pain when I bought a document scanner some
| years ago - there was no good solution on Linux that would let
| me from the command line scan, clean, OCR, and output a PDF. I
| found lots of scripts like yours, but none that was complete. I
| finally took an existing Perl script and hacked it to my needs.
|
| Features one should have:
|
| 1. Output to PDF.
|
| 2. Option to OCR (optional)
|
| 3. Clean up (e.g. skip blank pages, straighten pages, etc)
|
| 4. Allow one to specify quality/dpi
|
| 5. Select grayscale vs color
|
| 6. Duplex vs single page
|
| 7. Dynamically recognize the size of the page.
|
| The last one is the one I'm missing - if I scan something long,
| it trims it to fit a Letter size page.
| mindslight wrote:
| I wrote a keypress-driven graphical utility that's basically a
| wrapper around scanadf, that allows me to call scanadf
| repeatedly, preview, delete pages, etc. For instance if a page
| misfeeds, I pull the remaining stack out, delete the bad scan,
| and restart from where it went wrong. When finished, the
| graphical window disappears, and it writes all the current
| pages out as an archive - the masters are checksummed,
| compressed with FLIF, converted to some low quality JPGs, and
| the whole thing is stuck in a ZIP archive with extension .cbz
| (viewable with evince).
|
| The eventual goal is to transcode all these masters into nicer
| OCRed PDFs, but I've been making do with the low quality JPGs
| just fine. Your script seems like a great starting point to
| actually get this done!
| chrisweekly wrote:
| Cool project!
|
| Related tangent: I haven't looked into OCR, but for a simple
| "iPhone camera to 'scanned' PDF", the Dropbox iOS app has a
| surprisingly good implementation.
| jwong_ wrote:
| I use the "Files" application from Apple, and it works pretty
| well too.
|
| I was surprised, and have largely made it my ingress for
| receipts/paperwork.
| dbrgn wrote:
| I prefer not to upload all my potentially private documents
| into a cloud service :)
|
| OCRmyPDF (https://ocrmypdf.readthedocs.io/) actually does a
| pretty good job! It also handles deskewing and all other
| stuff that's necessary for good OCR results.
| chrisweekly wrote:
| Well yeah, that's legit. My point was that for those of us
| who already choose to rely on Dropbox, it's a great little
| feature to be aware of.
| zem wrote:
| her script reminded me that i never did get my scansnap working
| properly under linux :( will have to give it another go
| sometime.
| cranium wrote:
| Funny, I also wrote some code to solve one of my printer
| problems. It doesn't do double-sided scanning so the script
| waits for two recently PDFs in a folder (while trying to be
| smart about not picking incompatible PDFs) and merge them in
| the right way: https://github.com/RomainGehrig/PDFCollate
|
| I could have worked the same amount of hours for a client and
| use the money to buy a duplex scanner, but where's the fun in
| that ?
| Nouser76 wrote:
| I have a local media collection that I like to have as background
| noise/entertainment while I work. One thing I didn't like about
| self-managed libraries vs radio/television/etc. is that I still
| had the cognitive load of choosing what to watch, specifically.
| So I wrote a small program to take a list of shows and shuffle
| them[0] then interleave episodes. Depending on when you start
| this channel, it has a time offset so you're dropped in the
| middle of an episode (just like channel surfing!), and has
| support for showing a certain show only in sequential order[1],
| and even adding commercials between episodes.
|
| [0] Native shuffle in my media player didn't feel random enough,
| with a poor play count distribution. Switching to
| programmatically shuffling means I can also weight things so that
| a specific show is more/less likely to show back-to-back.
|
| [1] I actually only consider the smallest continuous run of
| unwatched episodes, starting from the end of the series, and
| interleave vs shuffling the episodes.
| somishere wrote:
| Love this stuff. I use regular mini side programs/projects as
| motivation-boosting procrastination tools. Oxygen to a tired
| mind. Just yesterday I saw a front page post on hn that I didn't
| love the solution for and so took 3hrs to byo (3hrs from another,
| only slightly less-tiny, project). Often tiny programs form the
| seed of much bigger efforts. My last two major projects, both now
| well-funded scientific programs, can be found buried in tiny-
| program / MIT form on my codepen. In fact looking at it again now
| I have a codepen littered with tiny personal programs, most of
| which are utility-driven, I'd completely forgotten about, and
| would make no sense to anyone else.
| vorvac wrote:
| Back in high school I would try to play CS 1.6 on the library
| computers. The librarians had access to screen viewing software
| on all computers in the library and quickly caught me every time.
|
| I played around with visual studio C# and created an application
| that would continuously monitor running applications (every X
| ms), detect when a specified .exe was found, and either (1)
| constantly kill it, (2) display a message, or (3) run a different
| .exe.
|
| Never quite got to s1mple's level, but I did play a good amount
| of CS after that!
| sanderjd wrote:
| Here's mine: Back in like 2006 when I was in college and they
| first released games on facebook, there was a game my friends
| liked that was multiple choice, matching song lyrics to artists
| (if I remember correctly). It was always four choices, you would
| get points for a correct answer and not lose any for an incorrect
| answer, then there was a leaderboard amongst your friends. So I
| thought clearly the right way to win this game is to write a
| program that just chooses randomly (actually I think it just
| always chose the first choice), but as quickly as the server will
| allow. My poor friends woke up the next morning to find I had
| about 1000x their points. A fun hack, but I also regret it
| because it ruined a fun game for me and my friends; I couldn't
| figure out how to reset my score.
| barbs wrote:
| I wrote a script similar to Julia's and other people's here to
| score tickets to a sold out music festival. At the time, people
| were posting on the event page that they had tickets to sell, but
| they were scooped up very quickly. It was a simple script that
| used Facebook's API to pull the messages on the event page and
| notify me via email that a new post had been made. I ran it every
| minute via a cronjob on an ancient laptop I'd been gifted. It was
| arguably a little chatty since it notified me of every post, and
| of course I had to be wary of potential scammers, but it worked
| and the festival was great.
|
| I'm currently in the process of changing careers from computer
| science to healthcare, but I'm glad my software development
| career has given me the tools, skills and knowledge to solve
| little problems like these.
| jgrahamc wrote:
| I wrote a bunch of Lotus 1-2-3 code for a small business in 1991.
| Got paid cash which paid for an entire six week Amtrak adventure
| round the US.
___________________________________________________________________
(page generated 2022-03-10 23:02 UTC)