Please take care of my plant | https://news.ycombinator.com/item?id=15453974 (100+ comments)
And the link: http://www.pleasetakecareofmyplant.com/
automated gardening would be far more productive, and make significantly more progress
2. She also wouldn't answer the door when during kids pick-up. The same app texted her when I was outside.
3. To disprove her allegations I wasn't involved in the kids school and activities I used Android's Locale app to trigger geofenced log entries.
4. Python and Matplotlib came in quite handy automating timeline generation from PDF docs. Never got that one quite perfect though.
I'm not sure I could have prevailed in getting more time with my kids without the time savings automation gave me. I've seen other fathers stopped cold in Court who were less prepared.
Considering that close to a MILLION Americans get divorced every year, at a 50% rate i.e. half of marriages are ending up in divorce in the US.
Source: https://www.cdc.gov/nchs/nvss/marriage_divorce_tables.htm
May you and your children be blessed.
Similarly, I have a self-hosted instance of Tiny Tiny RSS set up with an array of custom scraping plugins to pull all the web comics I follow into one feed, which I consume with the Android client. I'd push this through my Kindle delivery system, but then I'd be stuck reading black-and-white versions of color comics.
Along the same lines, there are a few YouTube channels I subscribe to whose content can be enjoyed nearly as well in audio-only form. As a university student, I do a lot of walking most days to get from place to place, and I fill that time listening to audio content. The same server which runs my news- and comic-gathering systems also watches those YouTube channels, pulls down new videos, converts them to audio, and publishes the results as podcast feeds which I can subscribe to through Pocket Casts on my phone.
I wonder how effective it is though these days, I'd say 70% of my RSS feeds are either truncated forms of a full article (with a 'click here to continue reading!' link), or just summaries.
If you are interested in working together please reach me out!
You can check what we did here: https://eink.news
I'm also developing something similar to your news scraper but with different end goals. I'd love to talk with you about your approaches in that domain as well.
It took about a month or two for her to notice, though I believe that what ultimately did me in was that time when I was talking with her on the phone when the SMS task executed...
My Python script reads my Google Contacts csv extract to identify relevant people, the lxml library parses my mobile phone call and sms logs, the mailbox module reads my email inbox and Sent Items to extract relevant messages, PIL resizes attached images. Then I use docx to reassemble the results chronologically into a Word document suitable for submitting in court proceedings.
The resulting Word document is an intimidating 130 pages long. I have shown my builder enough excerpts for him to accept liability for most defects. I won a County Court judgment against him last week. Now for the financial settlement!
I thought about putting my script up on github, though haven't had time to scrub some personal information from the source code...
I know of a homeowner that informed his contractor(s) that he blogs daily about the progress of his renovation. The fear alone was sufficient to ensure that his project went smoothly. Plus if the contractors do a good job then they get free PR.
If you could integrate that into an application (Google Contacts integrated message history with Email/SMS/Phone/GV message history) that I could run on my own device, I would pay money for that. I would only be interested if I could run it on my own though, eg specifically not as a third party service; privacy issues.
https://chrome.google.com/webstore/detail/harvest-grow-your-...
1. I have a script to automatically buy small amount of BTC every day
2. For the more knowledge-dense books I read, I write summaries of them (https://piszek.com/books/). I have a script that puts a random book review to my pocket for reviewing every week
3. I have an instagram account of lego minifig (https://www.instagram.com/le.traveller/). I wrote a script that likes other profiles to get traffic
4. I have a script that parses my bank e-mail statements to fill up my spending spraedsheets
5. I also have a script that parses incoming email for invoices. That system basically does my taxes
6. My GTD methodology revolves around Evernote. I have cron jobs that throw me "checklists" with stuff to do around certain times (yearly taxes, etc)
7. Using Twilio and verified number, my calendar sends personalized SMS with birthday wishes to my family that appear as they are from my number
8. Also on Twilio I have DIY voicemail that is aware of where in world am I and either routes to my current SIM card or takes a message. I also have a US number that routes any SMS to my current SIM
I recently moved, so I have to rebuild all my Smart-Home hacks. I am currently trying to automate my Intercom at home to play pre-recorded message to postman and let him in automatically
https://play.google.com/store/search?q=schedule%20sms
This one gets bonus points for being MIT-licensed:
https://github.com/vinsol/sms-scheduler
To the best of my knowledge it is not possible to send SMS messages in an automated fashion on iPhone, you might as well use calendar reminders.
Anyway, yeah I've got that problem right now wrote code for a specific stack need to just drop it into a server that's not mine/easy for client to use.
I'm kind of curious about #1 regardless of the price you buy? What if it was like that day the ICO was banned and it dropped like $800 or whatever.
I'm looking to implement a GTD-like system myself, and any automation is helpful.
I started an escape room business for fun, and have been enjoying the heck out of writing custom software for the rooms. Both in-room and for administration.
My favorite is a javascript "OS" that I use to put imaginary windowed environments in the room, but the players never actually leave a full-screen browser.
It does full window management and all the regular UI stuff so it feels super normal to the players. My favorite part is that I don't use jQuery. That was just a little challenge I created for myself for fun.
Now my rooms have a login prompt of any kind, and I can then create windows with any kind of HTML/JS/CSS content for solving puzzles, extra clues, etc. I can use an RPi and control maglocks from the computer, light up LED's, or even communicate with wireless props.
I run a kiosk add-on for the browser and physically hack the keyboards so certain keys don't even work in the rooms. No F11 or Ctrl-Alt-Del without access to the netbooks or RPi's locked away in hidden compartments.
I also created a lot of room management software for timers, sending hints into the rooms on tablets, etc.
I wonder if there's a market for re-selling experiences to other locations.
I captured video input with a simple python+QT script and emitted a button-press whenever the screen flashed. The best part was that the script didn't interfere with my controller - I could run around the area opening chests and battling random encounters, all the while getting closer to the 100-contiguous-dodges prize!
Sure - a memory editor would have had the same effect in 5% of the time - but this was _way_ more rewarding.
Turns out the low-tech solution of using an insanely fast car (Escudo), taping down the controller's gas button and just letting it do laps while grazing the wall worked. Some time later I looked back and had won.
On PC, you could use a keyboard script to repeatedly press the dash key every 500ms and steer with the mouse. Something that was pretty difficult with a controller.
When the laundry basket gets full past the painter tape line, I do a load. I load the dishwasher after dinner, and unload it in the morning regardless of the volume. Got a roomba that runs every other day and cries when it's full of dirt.
I have NFC stickers that link to start webapp timers in my smart phones browser (just a url to googles timer web app, pre populated with time, I get push notifications and all that) tea brewing timer, Laundry+ Dryer, cooking, all cheap NFC sticker+ webapp
I also wrote a bot that alerts me when 3D printer deals from trusted retailers are going on. I just bought two for $160 each, with free shipping!
- User pokes immigration website repeatedly to submit his application as soon as the site starts accepting. Obviously if everyone did the same thing, no one would benefit. The thing that needs fixing is an immigration system based (partly on) quotas and first come, first serve.
- User automates sending amorous messages to his girlfriend, so long as she doesn't know they're automated. If enough people did it, girlfriends would eventually find out and the desired effect would be lost (or worse, they'd feel tricked).
- User automates saving of all store coupons to his loyalty card without ever looking at the coupon. This defeats the idea of coupons (to encourage you to try something you would not have otherwise bought). If everyone did it, coupons would cease to exist.
- User automates getting into desired university class by hammering the registration site repeatedly. Needless to say, if everyone started doing the same thing, no one would benefit.
- User automated complaining to the water utility about a problem in front of his house. Once again, it might work for one person, but becomes completely ineffective if everyone does it for problems in front of their houses.
- User automated late delivery complaints to post office to get compensation. If his script becomes too widely used, the monopoly post office will simply raise prices or stop offering compensation.
That sounds like success to me, though not everyone will agree.
> - User automates getting into desired university class by hammering the registration site repeatedly. Needless to say, if everyone started doing the same thing, no one would benefit.
This was circumventing a bad process; people would benefit if everyone did it, because it would demonstrate a need for a better process.
> - User automated complaining to the water utility about a problem in front of his house. Once again, it might work for one person, but becomes completely ineffective if everyone does it for problems in front of their houses.
If everyone does it then perhaps they’ll fix things—or admit defeat and stop giving people false hope by allowing them to report such things when they have no intention of doing anything about it.
> - User automated late delivery complaints to post office to get compensation. If his script becomes too widely used, the monopoly post office will simply raise prices or stop offering compensation.
Or, just maybe, fix it. One can always hope.
Not having coupons/loyalty cards is a good thing. Hammering the immigration website, hammering the university website etc might end up improving the process (hopefully?) that is also a good thing.
In a larger context, how is this different from using one's good looks, parents' connections etc to get an edge over others?
That is true, but I don't think anyone is claiming to make the world better. The question was more how individuals improve their situation, gaining a competitive edge if you will. That will always come at the cost of others, but in this case the hacks are really things almost anyone can do, so it's hard to object on moral grounds.
Except for mine. it’s a win / win when people hang out together
With that in hand I went to dealer offering the best match, told them which car I wanted and how much I was going to pay for it. Put the graph in front of the salesperson who was floored, went back to his manager, and gave me the car for that price.
That was before I even knew what the term "market price" meant.
What do you ask them to hang out with? A calendar invite? Or SMS?
Started when she was around 4, it's easier now she's 7.
Lots of parallels with hacking code:
* Specific rules (if there are more than 2 stars showing on your clock, it's too early to get up)
* Trial and error (put cereal in a jar and loosen the lid slightly, put milk in a tiny jug at the bottom of the fridge)
* Optimisation (if you don't want cereal, don't wake me up, but have a yogurt instead)
* Enhancement (feed the cat, so it doesn't wake me up either)
I'm not lazy, sleep is important :)[edited formatting]
We've just generally found that our kids have been ready to do things earlier than we imagined. Each time we've made a transition, we look back and think "why didn't we do that sooner?"
2. At one point last year, I felt that my mornings were getting slower and slower (causing me to leave later), so I set up a Dash button where I hang my keys. When I left for work, I'd press the button, and the script would log the time to a Sparkfun data feed. After a month, I reviewed it to see just how bad it was (pretty bad). (task: life tracking I didn't have the brainpower for in the morning)
3. The worst part about D&D is keeping track of all the little variables and math, and none of the character sheets are any good (or if they are, they have 1 or 2 glaring problems, like only allowing 3 classes), so I wrote my own. Uses KnockoutJS to update all the little formulas that change every time you level up or gain skill points, etc. Here it is, though it's not exactly polished for public consumption: https://github.com/imnotpete/character-builder (task: fiddly math when I'm trying to have fun)
4. More IFTTT -- if my Roost fire alarm battery detects an alarm, I should receive an email and all my Hue lights will turn on. Unfortunately, the whole Roost process is slow enough that I just get confused when all my lights turn on 5 minutes after I burn the pizza. (task: turn on the lights so I can see to put out a midnight fire or escape my burning house)
Here's how it works:
1. Figure out the dash button's mac address by network sniffing
2. Set up the dash partially, so it tries to make an order (but don't specify in your account exactly what to order, so it never completes)
3. Sniff the network for that mac address, and run an arbitrary script when you see it (this is the actual action, like my data logging)
4. For good measure, block outgoing requests from that address in your firewall
It's not 100% reliable, but it's still pretty useful.
Simply having them turn on at sunset is awesome. Such a small but great convenience.
Last edit: since the free tier has a 5 million character per month limit (AWS Polly) I wrote the script to check if my one desktop IP is connected and if so it can run as I'm not always home/desktop off.
So I can keep working and when it plays I pause my music and listen to it. Takes about 20 seconds to do the 10 requests limited to 1500 characters per audio file/synth request.
Edit: to be clear you don't need a raspberry pi, just a computer with web connection, runs python, with audio output and scheduler eg. cron.
I just have a raspberry pi webserver at home that is always on, also does other stuff like measure a solar cell's voltage every 10 minutes. It doesn't do anything useful at this time just gathering data and plotting it on a site/working with ADCs/building web API to receive data (want to make it world wide).
https://github.com/jdc-cunningham/python_aws_polly_hacker_ne...
No 8am sessions for me!
Class registration was done by most with the web interface, but I opted to connect to the backing mainframe via a 3270 terminal emulator. Doing so allowed me to write a simple expect script passing in an increasing number as fast as the connection would allow. I didn't bother with rate limiting and am surprised nobody noticed. Took me about 30 minutes and I was in! I was able to use that script at least twice and I wished I had thought of writing it sooner.
2. Created 4 labels for Gmail: Archive/After 2 days, Archive/After 8 days, Delete/After 2 days, Delete/After 8 days with filters that apply those labels to filtered messages. Created a Google Sheet with a GApps script attached that takes those labels and deletes or archives after the messages expire. Handy to keep the inbox clean.
Explicitly setting the background programmatically was very unreliable in practice. The beauty of my script is that it simply wgets the image, checks if it is valid, resamples the image using a high quality algorithm (slow but worth it), places it in a folder, and deletes the old image.
My background preference is set to shuffle between images in that folder every minute, therefore my script acts like a pipeline.
I automated the online creation of late delivery “inquiries” to Australia Post (I.e when an parcel is late or has gone missing).
Australia Post has a service level agreement for prepaid Express Post satchels where if they’re late they will give you a satchel for free (or credit your account).
When I applied this to every order my work shipped for the past year, the script accounted for 90% of the day’s inquiries I got back thousands of dollars.
The script is written in Rubsy and uses Watir.
Another script I wrote automatically pays my waste collection company via fax. They have the ability to email a PDF invoice but not take payments online.
The script takes the PDF, and fills in my credit card details, adds a signature and faxes it to the company.
We did this manually every week to get refunds from Australia post, but with volume it takes a long time to check on them all.
How does yours deal with transfers between accounts?
I really want a nice auto-completing thing to type in the account names when the classifier gets them wrong (or to add a new account if necessary). The best UI for this is ido or ivy in emacs. But it would be nice to have a tool that runs outside emacs. The best I've found is fzf but it doesn't support tab completion which is a shame.
Getting push notifications with the new apartments is really great, and I'll definitely be making more Telegram bots in the future...
In the morning, I get an Android notification about the stations around my home, and in the evening around my workplace.
- I've automated taking screenshots of my laptop screen + webcam and fuse them and organise by year/month/day/hour. This gives me a nice lookback at what I was doing on a particular day (assuming I was at my laptop, which I mostly am).
- I also send my GPS location each 30 minutes, again from my laptop, into a database for a nice visualisation where I was at some time.
- Automatically move files from my laptop into various folders which are stages of "stagnation" of the file, makes it easy to keep stuff clean.
When a call comes in:
* Automatically pauses the music player on my PC.
* Looks up the number in my address book, and displays the information on my screen. Also sends to the two Kodi/OSMC servers, for people watching TV.
This assumes it is not on my block-list. If it is on my block-list of known scammer and telemarketer numbers then it as automatically answered with a recording of the "This number has been disconnected..." message to try and trick them.
Within a couple months i got perm banned for macro abuse, and wanted to create a smarter bot. I began making simple edits to scripts to add randomness. I kept getting banned.
By highschool i was putting more effort into coding bots than playing the game. I even started teaching myself how to do some client side modifications via ASM java bytecode injection.
I never made a really great bot, but it was a ton of fun. Over a decade later I am a software dev happy as could be.
Makes supporting a large garden while frequently traveling doable.
1) Local events finder. A few friends of mine and I moved from San Francisco to Los Angeles last year and didn't know many people. Even though there is a vibrant event scene down here with hundreds of events every day, we always seemed to find out about the cool ones after they had passed. I wrote a Facebook scraper that would find all of the local businesses and events for each of the businesses. It puts it in a Postgres database and then does some simple sorting based on different signals (e.g. how many likes for the page, how many people RSVPing yes, maybe, no for the event) and spits out a spreadsheet. This has been great to discover events and a huge time saver for planning dates.
2) Photo organizer. I use Dropbox's iOS app to backup photos from my phone to Dropbox. However, it just puts them into one big folder. I wrote a simple Python script to parse the filenames of the photos/videos and put them into a nested folder structure by year/month.
3) Long flight movie digest. I had a few long flights that weren't going to have wifi, so I built a web scraper to pull the movie list from the flight ahead of time and then cross reference it with Rotten Tomatoes so I could get a stack ranking of the movies by Tomatometer rating.
I could check manually but train problems are actually infrequent enough that I usually don't bother, although they are highly disruptive when they do happen.
(I live in Helsinki, and it was the end of last year when I put this together. Temperatures were colder than -20C for a week or two.)
Then from this point, I could search for any girls detail I wanted and find the perfect match according to my criterias.
One important drawback with that, is that the website used to send a notification to the girl everytime you were browsing her profile. My scraper was not smart enough to understand that it shouldn't scrape twice the same profile. So I had a bad moment everytime they asked me why I was so interested for in their profiles and why I used to see them, let's say 10 times a day. :D
Ah, and for those who are curious: this little side project never brought me any girls. :D
Also made Arduino boards that are dedicated timers to blink a light: - 2 minutes to empty my coffee when brewing in a Aeropress. - 24 hours to empty the cat's litter box.
Both of the timers are so simple. It doesn't sound like much, but the hyper focus on the task use case makes it actually improve my life in a small way.
I did this because a chromecast will turn on my TV and set it to the correct input, but it wouldn't turn off the TV. Turning the TV off was the only reason I needed to touch my remote control at all. But just recently google added the turning off functionality to chromecasts... so I guess my little project fade away.
When I connect to the WLAN at uni, my speakers get muted. I'm never the guy who wakes everyone up during a lecture because he left his speakers on.
After 23:00 my browser gets killed and the screen is locked. It has worked quite well to make me go to sleep earlier.
I also have a script to lock my screen every full hour for a break. That has worked less well, since I tend to be in the middle of something and log right back in to finish it "quickly".
Those are all implemented as messy Bash scripts that poll some commands and grep for keywords, but it gets the job done.
Had it working well, but of course it was against T&Cs for each store and ultimately would have been quite brittle, so I didn't polish it off before moving on. Frustrating because I wanted to use it as a demo to get a first web-dev job but it really wasn't worth completing and deploying. Also, twilio SMS in Australia is IIRC 5c per message which is kinda ridiculous for any serious quantity of texts, I planned to hook it up to a Telegram bot instead.
It was actually useful though because clothing retailers don't often send you a notification if what you want drops in price, particularly when it's an individual price drop due to low stock.
EDIT: Now that I think about it, this was a bad example of automation. Please don’t downvote me!
I use feh for my desktop background. I have a directory ~/.wallpapers where I keep symlinks of all the images randomly selected by a cron job to use for my wallpaper. (they can come from various directories) Anyway, whenever I download an image from the internet, I put it in it's relevant directory. And if I think it will also make a good wallpaper, then I prefix the filename with "add_" I have written a python script to search for all image files starting with "add_", and it then renames the file without the prefix, and adds a symlink to the ~/.wallpapers directory
I used to have a bash script on my old laptop that would send an email everyday to a certain government organization, telling them they were assholes.
Probably a few other similarly small things that I have forgotten about, because I automated them.
2) Whenever I post to Instagram I have a script that automatically posts it to Twitter including the image directly in the tweet like this https://twitter.com/kingkool68/status/916853781911838721
Source code https://github.com/kingkool68/ig2twitter
- Using the Google Places API I find the related establishment (gives me name, address, phone number, etc)
- Using the Gmail API I look for a receipt email (if any) by looking for another email with the same dollar amount and the same date
So at any given time I can see all the purchases/payments I've done with rich information about where and exactly when (including time of day).
For some reason banks don't like to tell you the time of a purchase. only the date.
1. Whenever I start watching Plex on my TV, my home automation turns off the lounge light that reflects in the TV. 2. If it's after 11pm, the fire is on and we're not playing music on the stereo, it means I've left the fire on - so it gets turned off.
I learned how to use the gstreamer and opencv libraries to automate recording gameplay only when a game is in progress - it is still a WIP but the basic functionality works.
I'm looking into using a webcam + barcode labels or an NFC scanner to implement a solution to automate naming the players playing each match. If anyone has an idea on how to track something like that I'd be interested in hearing it.
After spending several nights on this app and happily browsing the data, my wife then went to a local rental agency and just got some place they recommended.
While a bit annoyed my effort was in vain, after years of living here and often browsing the local apartment listings, I've come to realize this was actually a really good choice!
I found there was much more information being sent to the browser per room than was being displayed on the actual site, so it was possible to search by room size (square footage) and features like whether the rooms had balconies or not.
These being:
* New Toothbrush
* New Floss (I recently had a friend stay over, and asked me where I got the floss, as it was the best he had ever used)
* Toilet roll
* Mouthwash
* Shampoo/Conditioner
* Facecloth's
* Deodorant
They all just show up on my doorstep once per month, I don't even have to think about it!
I find the most valuable thing in HN are the conversations in comments (sometimes also the least valuable thing, too).
I wanted to learn powershell, and I was interested in the history of worms on the internet, so I made a script to check https://isc.sans.edu/ and send me an email if the status was not green. Turns out, powershell has an all-in-one function to send an SMTP email, which I thought was hilarious. I used windows task scheduler to run it every hour.
Second, I was struggling with my Cable internet connection, and it was incredibly difficult to nail down what was causing my slow speeds. To help with the diagnostics, I wrote a little python script to download the files that Netflix uses for speedtests (check Fast.com) and logged the average of 10 runs to a file. It similarly used task scheduler to run every 10 minutes and as a result I now have a big old dataset of SpeedTests and unix timestamps which I graphed while playing around with Pillow
I wrote a python bot to Read project Gutenburg books to twitter. This was to participate in a contest that involved seeing which "team" could get a hashtag into more tweets. A twitter bot takes about five minutes to make, as I found a brilliant little Python-Twitter library. Unfortunately, my teammates got cold feet and convinced me to de-rate the bot's posting frequency, meaning we barely lost to a group of 60 or so sorority girls doing it the "correct" way. However, as we did it sort of below-radar, the loophole of automating it is still open and valid.
Currently I'm working on automating the process of creating photoreal scenery for Microsoft Flight Simulator. The FSX scene has built tools to turn open source land-use data into ground scenery like houses and forests, and Microsoft included the SDK and Documentation as part of the game[1], but since high resolution photo-real satellite photography is an incredibly expensive asset, nobody has automated that part of the process. I most likely will not be successful, as I have no source for the photo-real imagery.
Personally, I find that absurd, as my tax dollars as an American likely pay for incredibly high resolution (higher than 1 foot per pixel) satellite imagery of the entire world, and I'm not sure how the NSA providing that to citizens would hurt national security. The Stallman in me feels that I've already paid for that data, and it should be public domain. Hell, even a year old would work fine. The biggest problem would be Google and Microsoft lobbying to prevent the devaluation of their expensive assets.
I also added blue LEDs for a simplified weather forecast: A 12h clock face cut in 4 quarters, 1 LED per quarter, indicating rain. So if I leave the house in the morning I bring an umbrella if any of the next 12h LEDs is blue, but if I go to buy groceries I only check the current 3h block LED. I'm using openweathermap for this but I wouldn't recommend it, the forecasts are a lot worse than what I get from a simple weather forecast app on Android.
I also wrote a scraper for web comics that turns them into ebooks so I can read them on my ereader.
I'm currently thinking about automating my banking. I had a look at HBCI, but it's so terrible that I then considered website scraping. Then I heard that banks will be required to provide a sane API next year or so so I'm waiting for that first.
I'd love an app with a bunch of my feeds / socials plugged in which would then load up with content for my commute (which is offline/underground for large portions).
It must be emphasised that job seeking is not part of work LOL.
I wrote a Windows app [1] in C# that would ping the Nest API to keep me at "home", so long as the PCs screensaver had not come on (in which case I would have probably _actually_ gone out).
Worked well, but when I submitted the app to Nest for approval in their store [2] they asked me to remove this specific feature! It still acts as a handy desktop notifier for Nest thermostats though.
[2] https://workswith.nest.com/company/notifier-for-nest-by-rich...
I suppose they purposefully avoid forecasting the dividends, since dividends aren't guaranteed... But some companies have payed dividends for decades like clockwork.
Anyway I wanted to do a better job keeping track of it as rough, monthly income, so I wrote a script which scraped the information off the website, ran some basic number crunching and printed the results. (Of course they didn't make this easy... It's not like they have an API for this information, I had to craft the http post, cookie and parse html, etc)
I wrote a script using Selenium WebDriver that would open on multiple windows and keep re-trying until it got in. It would then process the configured list of programs we wanted to register for, find them, add the kid(s) and proceed to the checkout. Manual intervention was required to complete the purchase.
I also made it so I could turn on a single zone for 1 minute from my phone to make troubleshooting leaks in the spring easier.
I captured video input with a simple python+QT script and emitted a button-press whenever the screen flashed. The best part was that the script didn't interfere with my controller - I could run around the area opening chests / battling in random encounters, racking up dodges all the while. Sure - a memory editor would have had the same effect in 5% of the time - but this was _way_ more rewarding.
2. I automated swiping right on Tinder on a single virtual Android device. I was working on a version that would spin up a number of virtual devices, connect to them and then swipe right en-masse (yeah, because finding an API is much less work).
I had a chain of apps and scripts which would watch for a forum torrents of those, download them, use handbrake to convert them, add them to my iTunes library, then generate new .torrent files and post the mobile friendly versions back to the forum (gotta keep that ratio up).
Things are much easier and less legally sketchy nowadays :)
This runs once a week. The next day it runs again and puts in the previously calculated orders, giving me a chance to review.
This along with bills on autopay entirely automates my day-to-day finances, besides a rent check I need to snap and cash once a month.
It's been great peace of mind.
Almost a decade ago I had my wisdom teeth out, and the surgery was more involved than most. Ever since then, I've been getting migraine-like headaches and jaw pain when it's going to rain. If I can get ahead of it by a day, I can usually lessen the impact.
I also use IFTTT to pump these forecasts into a spreadsheet where I track pain levels and diet, in hopes of finding a significant pattern. No grand revelations yet, but I did discover that doubling my caffeine intake a day in advance helps.
It's not completely automated, but I maintain a large spreadsheet of movies and tv series I want to watch (mostly movies). I can put either the title or the IMDB number into the input sheet and it'll pull the relevant (and formatted) information from OMDB (both directly and through an addon in Sheets). It gives me an average score between IMDB, Metacritic, RottenTomatoes Users and Critics. As of right now I have 2530 films total, with 1733 to watch.
Outside of these, automating consistent things like certain bills, and a simple script to backup my chaotic '_Process' folder free up a few minutes per month, which will add up over the next fifty years (basically an extra day or two.)
Seems silly, but it put my mind at ease. I knew that I'd get notified when an important email arrived, and it freed up my mind to focus on other things.
- Holliday decoration / lights
- Security
- Morning routine (Elliptical on, TV on, Audible book queued up, etc)
- Irrigation
If you don't include home:
- Putting important events like what day the trash should be taken out onto my calendar (taking into account snow delays and holidays)
- My personal tweeting
- Exercise planning / tracking (as much as possible). What is not possible (like recording actual reps) I put as easy to use voice commands on my Alexa
- And I also farm out minor stuff to a virtual personal assistant, which has an API
One of my duties was to randomly listen to radio shows to check for errors and issues, and make sure people are actually doing their shows.
We had a live stream, so I used some linux stream ripper and cron jobs to record the stream into 3 hour chunks (the default show length) and then time stamp them. This made it really easy for me to spot check shows and have a record in case issues came up.
There was one freshman DJ that I didn't really care for, and he had a 6am slot (It's early, but it's drive time, so you actually get a ton of listeners). He kept skipping his show and as the program director, that made me mad.
I ran into him one day and asked if he had done his show that morning and he said yes, and I was like "ok great!" But I went home and listened to his mp3... and he had not been on air.
Later at school I again ran into him, chewed him out for lying to my face, and then saw him crying afterwards.
The beauty of automation.
Automatically adding sort-artist fields to the cuesheet/.m4a files is next (I have a good source in the software that I use for cataloging the collection). I also need to write something that backports changes made to the tags in the .m4a files to the original cuesheet...
II. This year my school's schedule is really hard to interpret, with 4-days rotations out of 6 every week, plus fridays also rotating themselves... I wrote a script that checked the schedule, the holidays, fetched the list of classes for each student and created a .csv file ready to be imported in their calendar. Sadly I didn't bother to build a GUI for it, so I'm the only one using it.
III. Wrote a script to automatically swith color profile in my terminal and panel. Still have to figure out how to switch gtk colors though.
IV. I wanted to use mpd to listen to music, but be able to stream some music from youtube if I wanted to. I used youtube-dl to fetch stream URLs and titles for songs, and add them to MPD playlist.
Every time when we order we think of recipes to cook and their ingredients. Then we add every ingredient to the app. We also add essential ingredients like milk or eggs if we need them.
Automating this process sounded fun. The idea was born to speed up our grocery shopping by ordering recipes and their ingredients via the (reverse engineered) supermarket API.
I blogged about it: https://adrian-philipp.com/post/learning-elixir-second-side-.... Source: https://github.com/adri/picape
https://github.com/ReedRichards/python/blob/master/edge/html...
Though I've ended up returning the product and learned to bake much tastier bread, without a need for a bread maker. :P
Hue lights: The Hue lights in the master bedroom turn on at 9PM, since it's visible from the living room it's kind of a "Hey, you should think about going to bed soon" reminder. They turn off at 11PM as a "If you're still up reading you should probably stop" reminder. This is easy to set up with the Hue app.
More Hue lights: The Hue lights outside turn on a half-hour before dusk and off a half-hour after dawn. This needed to be set up by hand[0], but it's very much a set it and forget it type of thing. Once set up it automatically adjusts to the changing sunrise/sunset times.
Home security: I've got a bunch of cheap wifi cameras and Zoneminder keeping watch on my house. There isn't much automation happening here, but it solves a few problems for me.
Cat feeding: The vet was concerned that one of my cats was losing weight, so I set up a camera on the food dishes. Since the camera is hooked into Zoneminder, I can set it up to only record when there's motion. It's very easy see who comes to eat, how often they come, which food they eat, and roughly how much. This has helped in getting the portion sizes adjusted so that the cats are all happy and healthy.
Document Management: While not fully automated, I've found that putting documents into Mayan EDMS[1] instead of paper files has saved me a LOT of time when I need to find things. There is also huge potential for more automation by extending Mayan to do things with new documents based on their OCR'd contents.
I'm sure I've got others, but these are definitely the big ones for me.
[0] https://stackoverflow.com/questions/26782957/how-to-use-suns...
Ended up automating it with some PHP scripts then making https://www.metaweather.com
cinnamon-spices.linuxmint.com/applets/view/115
I don't maintain it anymore, and I donated the applet to the linux mint team (they moved many applets to the main linux mint cinnamon spices repo recently)
Also It begins warming up the bedroom at 9pm and shuts off at 0830am.
I use TP-LINK HS110 which uses wifi. Super nifty. I can control it remotely also with and app, and by sending packets to it over my local Ethernet.
also built a little flash cards app for studying Japanese which auto-generates Japanese sentences for me to read and translate. (simple sentences of the いぬはすしをたべました variety.)
wrote basic beat MIDI generators for drum & bass and moombahton in a few different languages.
tried to write a Ruby -> NXC compiler for the NXT generation of the Lego Mindstorms robotics kit. fortunately there’s a better option now because my compiler knowledge was basically zero.
edit: planning to extract a bunch of data from the Health app on my iPhone and run some visualization scripts on it. heart rate from Apple Watch, weight from a Bluetooth scale, etc.
I have another app that emails me the tweets, blog posts, and HN comments of my favorite bloggers every morning. With the rise of tweetstorms, I felt like I was missing a lot of great stuff, but now I don't have to obsessively check twitter/hn/my favorite blogs all day every day. (I really miss RSS)
This saves me and each player a fair bit of time, as every new player gets a personalized starting point, making explanations shorter and more relevant.
I also wanted to make a script to automate the posting of my items but Facebook has gone through extreme lengths to prevent this from happening. I eventually gave up and posted manually.
Attaching a picture to an email, hitting send and getting a nice glossy a minute later is pretty cool. Somehow feels a bit more automated and seamless than the usual printing process.
I also scrape the NASA astronomical pic of the day, I think they have an API now, and save the photo in a background images folder, the desktop background is automatically rotated every 30 minutes pointing at that folder for source.
That was basically my first project using serverless functions and it was a fun thing to build.
Interfaces with themoviedb.org for plot summary, cast and crew info and such. Interfaces with Google Calendar for writing entries for each movie I'm tracking.
Source is available at https://github.com/evmcl/movieschedule
I used Zapier to create a GroupMe bot (webhooks) to watch for posts reporting activity and logs it to a google docs spreadsheet. It also watches for requests to see the current score and reports the score.
The whole thing is just GroupMe, Zapier (with about 10 lines of JavaScript as one of the steps),and a Google doc.
Google Sheets add-on to import portfolio positions csv. It’s automated enough to eliminate manual data entry but not so easy that I update or check all the time.
Home automation to turn lights off and on after dark and activate motion alarms when we’re not home. I have to activate away mode manually and it’s too hard to turn off now that we have cats and friends coming to feed them, so more automation is needed.
I wanted to complete it by adding a telegram or text message push, but I got lazy at that point. One script which simply printed out the result on my terminal was good enough.
1. Automating my raspberry pi to create a timelapse and upload it to youtube and update a simple Ember app [1].
2. Automating (using Tasker, mentioned here already) the alerting function on a motion detector for the raspberry pi (so if I'm home it does nothing, else sends me the picture via telegram)
Another script collects me german news into a text-only website: https://textnews.neocities.org/
Created an app that does repeatable searches which scrapes eBay to download all the results - filters out stuff from a kill word list, filters out items from yesterday's list and a bunch of other things.
Turned it into an app 14 years ago - http://www.auctionsieve.com
If people find this valuable, I'm considering creating a paid service out of it.
Writing scripts to attack the neighbouring country in the old unix game "empire" (rec.games.empire) during an update (this was actually encouraged by the game). I know that there were also players who logged in automatically to check whether their country got attacked (and then get notified).
That game was a time sink like no other.
Silly things like that.
It no longer gives me a random quote using cowsay. I figured I was too old for that and it was time for me to grow up.
I wrote a scraper with Python and selenium which books a court for my favourite days and times, and adds the appointment to my google calendar. It runs on my raspberry pi on the crontab.
It was so hard to get their cheapest server back then, they would get sold out really quickly.
Rsync (with rsync-filter files on every directory to exclude files, similar to .gitignore) to target drive or remote server. Then take BTRFS snapshot.
My internet got fixed pretty fast after that.
Reading through this thread, it seems like I'm living in a parallel world...
1) Creating time machine backups 2) Accessing external hard drive anywhere
Will create a gist when I do finish.
I read them every day first thing in the morning, but I still count that as non-work.
https://www.amazon.com/gp/product/B008LX6OC6/ref=oh_aui_deta...
Highly recommend it to anyone with a large amount of hardwood floors. We have a couple area rugs, one is pretty thick and it handles the transitions fine.
Floors have never been cleaner, no longer need to vacuum animal fur everyday.
https://github.com/ransomw/dotfiles/blob/master/shutils/gifm...
... and some other stuff, but that's probably the most important.
Unfortunately this no longer works well, as hurricane Irma damaged the cell tower near my house and I only get a few hundred Kbps now. :-(
It's not terribly sexy and was really simple to get working. I purchased the highest wattage LIFX RGBA bulbs and a high wattage (350W Incandescent equivalent) to replace all of the lighting in my bedroom, where I worked most days[1] and replaced the lighting in my bedroom with them.
I then used IFTTT to do the following:
(1) Over a period of 45 minutes ending at 5:30 AM, all of the LIFX bulbs gradually go from 0% to 100% in a cool blue-white hue. At 5:30, the 350W equivalent turns on (using a Belkin WeMo switch). The 350W turns off at 8:00 AM.
(2) At sunset, but no later than 7:30 PM (northern summers can be much later than this), the lights eliminate the blue hues and shift to warmer colors over a period of 45 minutes
(3) Over a period of 45 minutes ending at 11:15 PM, the LIFX bulbs go from 100% to 0%.
It took me a few weeks to arrive at the exact times and timings for each of these steps, as well as color. I kept a daily log of when I started feeling tired at night and a (very subjective) log of how tired I felt in the morning and what time I actually got out of bed (I had an alarm set, but only as a failsafe which was set for 8:00 AM while "testing" the settings). The 45 minute time frame was landed at after trying as low as 15 minutes. 45 minutes is the longest duration that's allowed or I would have tried longer, but it is just about right. It's really difficult to detect the brightening/dimming while it's happening and impossible for me to tell the color is changing during the day.
Unrelated, but as an aside -- quality of sleep and waking up early is something I struggled with all of my life until I started doing this a few years ago. In my 20s, I was jealous of my friends who regularly went out until 2:00 AM and somehow functioned the following day at 8-9AM when they had to be at work. I could never do that -- I'd literally fall asleep every time my eyes closed if I made that mistake. And worse, I could go to bed at 6:00 PM and 7:00 AM would still feel awful. I followed a few other techniques: Whenever possible (most of the time), I'd follow the rule to "go to bed when I am tired". If it was the afternoon and I started feeling exhausted, I'd go to bed -- sometimes just a nap, on rare occasion, a full afternoon-night's sleep. If I woke up in the middle of the night, I'd get up and do something until I was tired again, but for the first several months, regardless of the day or how tired I felt, I woke up at 5:30 AM. If I awoke within 45 minutes of that time, I'd stop trying to sleep and just "get up"[2]. I'd tried all of these techniques in the past and failed horribly, but after setting my lighting up, I noticed I was waking a lot easier and with a lot less effort. I added back in these techniques and the result was perfect. It's now just "habit" - I am up early, I'm in bed between 9:00 and 11:30 every night and I rarely wake fully in the middle of the night. I'm rarely tired. All of that said, if life and job circumstances would allow it, I'd prefer doing 8:00 PM to 5:00 AM over a day-job, but doing the day-job shift doesn't bug me a bit anymore.
[0] I'm in an office job, now, so some of what I did doesn't affect me like it used to. I was waking this early, originally, because my team was in the UK and I wanted to maximize the amount of time I spent with them despite the 5-hour time skew.
[1] For whatever reason, working from bed turned out to be very relaxing and helped me to put in longer hours without feeling like I was putting in long hours.
[2] One observation I made was that if I awoke and there was less than an hour before I had to be up -- even if I was still very tired and could fall back asleep within a few minutes -- falling back asleep resulted in me feeling substantially worse when that alarm sounded (and it would stick with me most of the morning). If I get up when my brain wakes up the first time, that tiredness wears off within a half-hour. I ditched the "snooze" habit. I don't get right out of bed, but gradually work myself out every morning (I have the time, after all, since I'm getting up so early).
The immigration website of Saskatchewan province opens up randomly to apply for immigration. I missed it many times because there is no indication other than the "Apply" button being enabled and a small text in their homepage which says "Applications are now 'open' ". They will close the application intake when they have reached X number of applicants. So timing is very important.
So I hacked up a script which diffs their home page every 10 minutes for "open" regex. When there is an "open" keyword in the diff, the python script calls twilio API to make a phone call to me along with an SMS.
So this script was running in AWS for many weeks and one day I got the call. Logged in to Saskatchewan's immigration homepage and applied. Now I am in Canada as a permanent resident. Thanks to Twilio. edit: add H1B to make clear which type of immigration is broken IMO.
(This comment is from my previous HN account, for which I lost my pwd.)
- I played an online survival game and the server I played on had a live web based map that you could look at, the server chat activity was also visible on this online map and no one playing on the server could tell if anyone was listening in, the problem was that the text disappeared every few seconds - so I made a script to check if the site changed at all(passively listening for the js event, scrape the text, upload it to my private server via FTP and I setup a webpage that any of my friends could logon to to get the full details(with various sorting/filtering options as needed, nothing over the top, and updated every 30 seconds) this helped me and my clan tremendously because it gave us a deep insight into all the alliances, who raided who at which times, then we'd use this edge to make new allies and we eventually completely crushed the top clan of 18+ people with our smaller group of three.
- Ran a gaming server for a year or so and I automated checking who had previous bans on steam for any game(it was some online service, don't remember which), got their SteamIDs off of server logs, performed the check, and if certain values showed up on the page it would log the query page to a screenshot(to get a full picture of their activity in case of dispute), log their SteamIDs in a list and the ones who got red flagged got banned nightly.
- 2 MMORPGs(one top down game, and one 3D game), got to max level on the 2D game without playing a minute of a new character after script was done(python, image recognition, basic evaluation of status/reaction) and returning to a character with plenty of loot when getting home after a day at work was a lot of fun. (some of my purist gaming friends don't agree, but we all get our kicks differently) - I never traded to not affect the economy, was done as a learning challenge, and the results didn't matter a whole lot. Quit playing pretty much right after 'beating' the challenge.
- Polls, multiple personalities, statistical variance.. the whole 9 yards..
- Photoshop workflows, and a few other 'art' related programs. I can only do something manually for so long before I'm itching to script it.
- Web scrapers of all kinds, several image scrapers, one which filled a folder with results from a keyword of your choosing.. another one is classifieds scraper which notifies you when something you're looking for appears, done by indexing current status of the sub category you're interested in, run a diff, pop the older ones, stores all time stamps/ID's/URLs, browses to the new ads and gets relevant fields, formats them all in an XLS sheet for friendlier and ad free browsing(with links to images).
- Text manipulation for a big keyword project that spanned months, ended up with lots of great data, some of which is no longer available accuracy wise.
- Scripts to check the status of and update common applications silently and over the home network. Other scripts to check the status of all devices on the network, the 'health' of various services etc..
- Backups.. file manipulations..(data, names, inserting metadata, reading metadata from thousands files, indexing the results and subsequently performing actions to the files based on the metadata)
- Some hardware quirks that I ended up fixing with scripts which automated devcon.exe actions and that ran on boot.
- Online dating, top three spots constantly, and yes, more eyeballs on your profile means more first contact from the ladies. The profile was meticulously written and re-written based on performance(contact stats), with ad copy type hooks intertwined, my record day was 17 new messages.