HNHacker News
TopNewBestAskShowJobs

ahnick

1,010 karma · joined February 16, 2014

[ my public key: https://keybase.io/ahnick; my proof: https://keybase.io/ahnick/sigs/LyXcG74MK6NRQwz0n8AO2rW730NcUFyl45sd-KKjW9s ]

President & Managing Member of Plyint, LLC (https://plyint.com)

submissionscomments
ahnick··on Bitwarden releases “emergency access” feature
I think you are going to have to rely on another human being (or perhaps a group of trusted individuals) even in that case. Depending upon what caused your incapacitation, you may or may not be able to actually retain and manage your secrets going forward. Put another way, if your wetware is damaged you may need a backup (aka trusted human) to handle your secrets on your behalf.
ahnick··on TiddlyWiki 5.1.23
If you aren't tied strictly to using pure TiddlyWiki you may be interested in NoteSelf(https://noteself.org/), which uses the browser's LocalStorage via PouchDB. Bonus, this can then be synchronized to any remote couchdb server.
ahnick··on WireGuard Bounce Server Setup
ah, okay. Yes, I missed that. So the point of nftables then is just to avoid sending REJECT messages, so it makes it harder to determine what port wireguard is operating on?
ahnick··on WireGuard Bounce Server Setup
> Don't see how... Nftables is set up once and then left alone.

Same thing for a router configuration to accept inbound wireguard requests on a home network with dyndns. You set it up once and are done.

I see the benefit of the bounce server if you operate a network in an environment where you don't have the ability to control the router config; however, when you do have the ability to update firewall/router config, then I'd prefer just setting up a domain name and avoid the dependency on a third party server.

ahnick··on California plan for wealth tax on anyone who spends 60 days a year in the state
If such legislation were implemented, it will just incentivize people even more to gift their wealth away before they die. All that's been achieved is simply shifting a boundary condition. My general view is that negative incentive structures are not particularly effective in what they set out to achieve. Better to try and craft positive incentive structures for people to donate money over time before they pass on.

There are essentially 4 ways to spend money:

  1) You can spend your own money on yourself. 
  2) You can spend your own money on someone else.
  3) You can spend somebody else’s money on yourself.
  4) You can spend somebody else’s money on somebody else.
People are are most careful with (1) and least careful with (4). Taxes fall into bucket 4 and donations/gifts fall into bucket 2. I'd much rather see charitable foundations and organizations self-directing the appropriation of money at the local level rather than state/federal government doing the appropriation.

All this is not to say that inheritance and wealth taxes should not be collected. I think they should and should be done to help fund the essential functions of government, but I think dialing that percentage up to a 100% of someone's wealth when they die would be a mistake.

ahnick··on WireGuard Bounce Server Setup
Honestly, I'd probably just use Tailscale for that, so I guess the bounce server solution occupies some middle ground where one doesn't have control over the network and either doesn't have the money for tailscale or likes owning their infra end-to-end.
ahnick··on WireGuard Bounce Server Setup
True, but on the bounce server it looks like the ports are just being managed via nftables. Isn't that just a wash?
ahnick··on WireGuard Bounce Server Setup
Yes, you setup the wireguard configuration to connect to the peer using the domain name and once connected, the network assigns a local IP for the connected peer that is valid on the natted network. I use this kind of setup to access my NAS system when I am traveling or working away from home.
ahnick··on WireGuard Bounce Server Setup
I must be missing something. Why go through all of this when you can just buy a domain name, setup dynamic dns on the natted network (to keep the IP updated), and then setup wireguard to route to the domain name? If you have two different networks then just use two different domains or subdomains.
ahnick··on Bitcoin Hits New All-Time High
My recommendation would be to get an account on Gemini and purchase crypto through them and then transfer it off to a hardware wallet like Trezor. Since its beginning Gemini has always tried very hard to be fully compliant with US law and regulations, which is not the case for some other popular crypto exchanges. Also, I've been happy with their customer service and responsiveness. At one point I had an issue with a trade executing too slowly. I opened a ticket with them and the team ultimately resolved the issue by issuing the trade at the lower price I saw.

In regards to the hardware wallets, I'd buy 2 Trezors and store them in separate locations, so that if something happens to one, then you can still quickly and easily access your coins with the other one. (If you don't do this, then if you lost your Trezor for some reason, you'd have to order another one and wait for it arrive before you could recover and access your crypto)

ahnick··on Docker's Second Death
Yes, a simple workflow is running Minikube or K3s locally for testing and then pushing it out to a managed Kubernetes platform like DigitalOcean Kubernetes. This avoids having to know any of the underlying details of setting up the Kubernetes cluster. Everything you do in terms of interacting with the cluster on Minikube will be the same as on your production managed Kubernetes.

All you really need to learn is some basics around Kubernetes terminology, the kubectl command line utility, and then some of the YAML config syntax for setting up application deployments and probably an ingress into the cluster. You can also add helm into the mix if you'd like to take advantage of pre-built packages that you can install to your cluster. For example SSL certificate management or a webserver ingress like nginx-ingress.

ahnick··on Winamp Skins Collection
I was just thinking this same thing except for Amazon Music. :)
ahnick··on Simple Password Management with GPG
Yes, I think so. In the vein of simplicity, we created a lightweight secret management script called encpass.sh (https://github.com/plyint/encpass.sh) Our use case initially was to have a simple and relatively secure way to handle secrets within shell scripts. By simple I mean does not require a lot of external dependencies and likely may already have its requirements installed on a machine.

encpass.sh only needs a POSIX compliant shell and uses OpenSSL. This is nice for restrictive computing environments (think big enterprise IT) where you may not be able to control the software that is installed on the machine.

The implementation turned out to be so useful and easily adaptable that we created an extension to it for Keybase (https://github.com/plyint/encpass.sh/blob/master/extensions/...) and have a whole workflow built around using the tool to manage secrets with teams and Keybase's builtin encrypted Git repos. (Primarily used in our automation scripts to hold API keys and other application level secrets)

I stop short of recommending the Keybase extension for others, since the acquisition of Keybase by Zoom, but the original OpenSSL version might prove useful for people who are looking for a simple secret management solution that is easy to plugin and extend.

ahnick··on A better Kubernetes from the ground up
I think the easiest way to get started is to use DigitalOcean's managed Kubernetes offering. If you already know Docker then basically you'll just be learning how to setup a cluster on Kubernetes, installing your app to the cluster and other apps using kubectl and helm, and then setting up an ingress into the cluster (likely nginx-ingress although there are other options).

In regards to your specific questions... adding another physical machine to your cluster would be really simple if you are using Terraform, you would just increment your node count number and then re-apply the Terraform config. Here is an example Terraform config(main.tf) from a simple project I have:

  variable "do_token" {}

  provider "digitalocean" {
    token = var.do_token
  }

  resource "digitalocean_kubernetes_cluster" "your-cluster" {
    name    = "your-cluster"
    region  = "sfo2"
    # Grab the latest version slug from `doctl kubernetes options versions`
    version = "1.16.6-do.2"

    node_pool {
      name       = "your-pool-1"
      size       = "s-1vcpu-2gb"
      node_count = 3
    }
  }
For deployments I would honestly just keep it simple and increment your docker tag version number on your image each time you are doing a deploy. Then when you deploy your new image (e.g. kubectl apply -f deployment.yaml), the new image will be pulled down to each cluster pod and the application containers will then be restarted one by one.

If you are running this on another test/development cluster (e.g. minikube) prior to deployment, then you should have great confidence that this will succeed. In the event that you did run into an issue, just roll back the docker image version number and reapply the yaml using kubectl again.

I've been following this method for a while and have never had any downtime with deployments. Eventually if you get sophisticated you'll want to add these steps into an automated CI/CD pipeline, but kubectl apply can carry you pretty far in solo operations.

ahnick··on Using Matrix to replace proprietary and centralized chat apps
IMHO the problem with Matrix is federation. I think adoption would be far better if there was just a single, open source, global, decentralized Matrix network. Users don't want to have to run their own servers and have to figure out which network of servers to join. If a user downloads a client app to their phone they expect to be able to then connect to THE network.

As long as the code is open source, then there is always an out to create a new network, but why do that before it is actually necessary? (Basically federation is just a form of premature optimization) Communication networks should be like git repos. We should all be working in the same repo, but if sh*t hits the fan, then fork it and carry on with business.

ahnick··on Doomsday prepping – Disaster planning for less crazy folk (2016)
For some reasonable prepping ideas and product reviews the HN crowd may enjoy The Tech Prepper (https://www.youtube.com/channel/UCacth3foPsjqgV4wW4kuDDw/vid...)
ahnick··on Raspberry Pi 400 Desktop PC
You should probably be able to use Synergy (https://symless.com/synergy)
ahnick··on iPhone 12 and iPhone 12 Pro
If this is the case, then can we infer that the iphone 12 pro has a slightly better telephoto lens than the iphone 12 pro max? (The max's f-stop is listed as f/2.2)
ahnick··on iPhone 12 and iPhone 12 Pro
I noticed that the new iphone 12 has a f/2.0 aperture telephoto lens whereas my existing iphone XS has a f/2.4 aperture telephoto lens. What are the implications of this?

I always understood that for a telephoto lens you wanted the f-stop number to be higher, so that the image is clearer since the subject is at a greater distance. My gut instinct is that the iphone XS/XR lens might capture a sharper initial image, but maybe the final product won't be as good as the newer lens do to all the processing being done by the phone? Perhaps a bigger diameter on the telephoto lens is better for night mode shooting, so more light is being captured? Hoping someone more knowledgeable than I can weigh in. :)

ahnick··on Names.io – Global Exhaustive Scraped Name Db
Nice job! It seems like you have a fairly rich data set. I could see this being really useful for soon to be parents trying to think up baby names. For anyone where this is your use case or you just find these types of name lists interesting, then you may also want to checkout https://mashword.com.

Mashword is a word mashup name generator service that we recently built that recognizes many common human names. One of our primary use cases is finding alternatives or unique spellings to traditional or common names (e.g. https://mashword.com/search?words=rebecca) It does not support all of the names in these lists, but we are adding and growing our support for names all the time.

ahnick··on SimpleSubmitter: Submit your startup to relevant directories
Product Hunt is in the table, but on the website it says you don't submit to Product Hunt. Has the website just not been updated or was Product Hunt included in the table by mistake?
ahnick··on Domains for the Rest of Us
I'm thinking of showing suffixes like that once you click on a result that you like. Is that what you are envisioning as well?
ahnick··on Domains for the Rest of Us
If you are looking for more control over the domain name generation process, then you may be interested in trying out a tool we recently built called Mashword (https://mashword.com).

The approach is different from this tool as it does not blindly suggest domains, but rather keys off of the words you enter. Mashword takes entered words, determines the pronunciation of the words, and then generates unique spellings and combinations using a variety of algorithms. It will also quickly run domain name availability checks and provide quick links to register the domains if they are available.

ahnick··on Update on Firefox Send and Firefox Notes
Yea, for easy github forking! :) Firefox Send was such a great and simple tool for sharing those >10MB (anything that won't fit in an email) files with literally anyone.

Now that we'll be maintaining our own fork (https://github.com/plyint/send), if anyone has any thoughts on features or fixes you'd like added I'd love to hear from you. Just send us a message from our website (https://plyint.com), open a github issue or contact me through my HN profile. I can't promise will implement it, but we'll definitely give it a serious look.

ahnick··on Principles for Naming a Brand
This hits on a lot of the same issues we have encountered when trying to name projects or name a business. In order to make name generation less time consuming and automatically handle some of these issues we ended up building a free tool called Mashword (https://mashword.com) to do a lot of the heavy lifting.

Mashword allows a user to enter one or two words and then it will generate combinations(mashups) of the words or alternate spellings, taking into account the pronunciation of the entered word(s). In addition, it will automatically check for domain name availability. If you are looking to name anything, try it out and hopefully it will speed up the naming process for you.

ahnick··on WireHole: Set up Pihole, WireGuard, and Unbound instantly
What is the appeal of Oracle cloud?
ahnick··on Apple Terminates Epic Games' Developer Account
It's most definitely how this works. Monopoly power isn't some binary attribute. It's not like you flip a switch one day from not being a monopoly to suddenly becoming a monopoly. Monopoly power is accrued over time with increasing market share. Very few companies have the kind of market share we are talking about here with Apple and the US mobile OS market. Take for example, Walmart, who many people think of being gigantic in the retail sector in the US. They only account for 16% of US retail sales. If Apple only had 16% of the US mobile OS market there wouldn't even be a discussion about anti-trust laws and Apple wouldn't have just made this announcement -> https://developer.apple.com/news/?id=84w3e5bm
ahnick··on Apple Terminates Epic Games' Developer Account
It shows they have a majority share of the mobile OS market in the US; therefore, they can basically act like they have a monopoly in the US. Everyone else is a distant second, so they can monopolize or attempt to monopolize the mobile app market.
ahnick··on Apple Terminates Epic Games' Developer Account
Market share in the US mobile OS market.

https://gs.statcounter.com/os-market-share/mobile/united-sta...

ahnick··on One Year with ThinkPad and Linux (From MacBook Pro)
I've been using a T480 (same as author) and it has been very reliable. I even dropped it getting out of the van a while back and it landed on a corner of the laptop when it hit the pavement. It has still been running just as well as when I originally got it. :)
← PreviousPage 8 of 18Next →