My townhome complex had one of those call boxes at the front gate. When Doordash/FedEx/the cleaners/the in-laws/etc arrived they would have to call me from the call box and I'd have to answer it and listen to garbled audio to figure out who it was and press 9 to open the gate. It was kind of a pain, so I made a Twilio app to answer calls from the call box. I set up custom entry codes that I could hand out to anyone.…
Ask HN: Most interesting tech you built for just yourself?
91–100 of 1001 posts
Re: Ask HN: Most interesting tech you built for just yourself?
#92My current streak is 347 days! It really made ME journaling daily. A number of folks who have also registered maxed at 61 only :(
Re: Ask HN: Most interesting tech you built for just yourself?
#93I'm currently hacking the SNES mouse into Sim City.
Re: Ask HN: Most interesting tech you built for just yourself?
#94My townhome complex had one of those call boxes at the front gate. When Doordash/FedEx/the cleaners/the in-laws/etc arrived they would have to call me from the call box and I'd have to answer it and listen to garbled audio to figure out who it was and press 9 to open the gate. It was kind of a pain, so I made a Twilio app to answer calls from the call box. I set up custom entry codes that I could hand out to anyone.…
I use twilio to make outbound calls to that number using my registered phonenumber. I put a Django app in front for home owners so they can add authorized phone numbers with a expiration date.
Whenever someone is a the gate they call a twilio number, my django app checks the validity, opens the gate by calling the gate’s number with my number as ID, plays back some welcome message “hello chris, welcome to…” and sends the owner a push notification that person X is en route.
Todo: add a feature to redirect an unknown number directly to the owner and open the gate after manual verification.
Re: Ask HN: Most interesting tech you built for just yourself?
#95Re: Ask HN: Most interesting tech you built for just yourself?
#96It was written as I got sick of particularities of squid proxy. Using it for 5 years for home network as transparent proxy, never released it.
"A picture is worth a thousand words":
Application Options:
--listen= Listening ip and port (format "address:port") (default: 127.0.0.1:8080)
--ini= Path for .ini file, if not there it will be created with defaults
--id= Unique id, used for caching and avoiding detection of injected js. (default: machineid)
Certificate Authority: --cakey= CA Private Key for MITMing https connections (default: ca.key)
--cacrt= CA Certificate for MITMing https connections. It must be imported into client(browser) as trusted CA (default: ca.crt)
--cagen=[512|1024|2048|4096] CA Private Key (and CA Certificate) generation, keysize. (default: 1024)
Upstream Proxy: --upstream.proxy= Upstream proxy (format "address:port")
--upstream.cacrt= Upstream proxy CA certificate
Lists Options: --list.update= Update databases interval for https paths (default: 24h)
--list.path= Path for caching downloaded lists (default: lists)
-D, --domain.blacklist= File/url paths with domain blacklist
--domain.whitelist= File/url paths with domain whitelist
-U, --url.blacklist= File/url paths with url blacklist
--url.whitelist= File/url paths with url whitelist
-A, --adblock.blacklist= File/url paths for adblock rules
--adblock.whitelist= File/url paths for adblock whitelist rules
-N, --cname.blacklist= File/url paths for cname masked domain blacklist
--cname.whitelist= File/url paths for cname masked domain whitelist
-S, --asn.blocklist= ASN address ranges to block (macros:"facebook", "google", "microsoft", "apple", "amazon")
--asn.whitelist= ASN address ranges to whitelist (macros:"facebook", "google", "microsoft", "apple", "amazon")
-R, --regexp= File/url paths for regular expression replace rules
--inject.list= File/url paths with js injection rules
--inject.cache Inject into cache, faster, updating script require cache invalidation
CDN caching:
-C, --cdn.blacklist= File/url paths for cache forever cdn rules --cdn.whitelist= File/url paths for cdn whitelist
--cdn.expires= Defines expiration for CDN cache (default: 30d)
DNS resolve: --dns= File/url path to list of dns servers to use
--dns.change= Defines timeout for changing the dns (default: 10s)
--dns.timeout= Defines timeout for dns to respond, if exceeded it will be excluded (default: 250ms)
User Agent: --user-agents= File/url paths to list of user-agents used
--user-agents.random= Generate specified number of random user agents
--user-agents.change= Defines timeout for user-agent randomization (default: 300s)
Privacy Options: --header.cspreport Allow CSP reporting
--header.cache Allow cache headers reach clients
--header.expectct Allow Expect-CT header
--header.etag.remove Enable removing of ETag used for cookieless tracking
--header.hsts.remove Enable removing of HSTS header (we are doing mitm anyway)
--header.dnt.enable Set Do-Not-Track header
--image.reencode Enable re-encoding of images to remove hidden tagging
--amp.allow Allow AMP redirection
--cookie.validity= Change domain cookie validity ('0' is per-session cookie, off for disabled) (default: off)
--cookie.validity.3rd= Change 3rd party domain cookie validity ('0' is per-session cookie, 'off' disabled) (default: 1h)
Documentation:
-v, --version Version information
-l, --licenses License information --man Generate man page
--txt Generate text documentation
Caching: --cache.compression.disable Disable all compression
--cache.sharing.clients Enable clients share same cache
--cache.sharing.xsite Allow cache sharing for 3rd party domains
--cache.media.enable Cache media content (disk & memory impact!)
Memory Caching: --cache.mem.disable Disable caching
--cache.mem.size= Maximum size, if reached expire oldest entries (default: 512mb)
--cache.mem.expires= Maximum time before it expires (default: 24h)
--cache.mem.nocompression Disable memory cache compression
--cache.mem.min= Minimum content size to cache (kb, mb, gb) (default: 512)
--cache.mem.max= Maximum content size to cache (kb, mb, gb) (default: 2mb)
Disk Caching: --cache.disk.disable Disable caching
--cache.disk.path= Path for on disk caching (default: webcache)
--cache.disk.size= Maximum cache size in megabytes (default: 1024mb)
--cache.disk.expires= Maximum time before cache expires (default: 30d)
--cache.disk.ttlexpire= Timeout to execute task for expiring cache values (default: 10m)
--cache.disk.nocompression Disable disk cache compression
--cache.disk.min= Minimum size to cache (kb, mb, gb) (default: 512)
--cache.disk.max= Maximum size to cache (kb, mb, gb) (default: 10mb)
Developer Options: --log.level=[trace|debug|info|error|fatal|panic|off] Logging level (default: error)
--log.output= Logging output filename or stdout, stderr (default: stderr)
--log.json Logging is formatted as json
--header.debug Enable sending debug headers to clients
--db.optimize Enable statistic database optimizations
--threadpool.size= Size of thread pool (0 disables thread pooling) (default: 200)
--threadpool.proxy.disable Disable thread pool for proxying
--threadpool.filter.disable Disable thread pool for filtering
--threadpool.tools.disable Disable thread pool for tools
--domain.resources= Proxy resource access domain (default: my.proxy)
Help Options:
-h, --help Show this help messageRe: Ask HN: Most interesting tech you built for just yourself?
#97It was originally created to drive a particular large LED installation I work on, but I've generalized it to the point of being able to drive other installations as well. It passes texture data between nodes running compute shaders to chain together patterns/effects, which is a fun and powerful paradigm for creating visuals. Not as powerful or featureful as "real" solutions like TouchDesigner, (which, if I'd known about when starting out, I probably would have just used), but I do know all its ins and outs and can change it exactly how I want, which is nice.
Re: Ask HN: Most interesting tech you built for just yourself?
#98https://github.com/rajangdavis/macrocosm_js
Was inspired by some existing editors so I made my own and extended it to create macros for sending sysex/PC messages to multiple devices.
Re: Ask HN: Most interesting tech you built for just yourself?
#99I thought it would be easier post-launch to get restaurants to participate and add their own information (nearly-free marketing), but that was a faulty assumption. The admin interface is also pretty cool, very simple to specify blocks of time when the specials are active.
Unfortunately it hasn't been updated in 4 or 5 years. When Covid first started, I launched a sister site just to list restaurants that were open, I took that down about 6 months ago.
Re: Ask HN: Most interesting tech you built for just yourself?
#100Anyway, yeah, that FF extension. It represents the culmination of about 5 years of me trying to solve this problem with progressively more complex and incrementally better solutions until I finally arrived at a ridiculously over-engineered version that actually works as it should.
[0] https://github.com/RheingoldRiver/MuteTabsMatchingPattern
[1] https://river.me/blog/global-hotkey-mute-firefox-stream/