HNHacker News
TopNewBestAskShowJobs

ytjohn

730 karma · joined June 13, 2013

www.yourtech.us

[ my public key: https://keybase.io/ytjohn; my proof: https://keybase.io/ytjohn/sigs/NbVxmFLTGl5RnWbxGpDTbDPW7lC6hXYkJD-9EcI7GEo ]

submissionscomments
ytjohn··on Show HN: Simple CRM and Sales Automation
Very clean looking. Of course, the part that caught my eye is probably the least relevant. I've integrated robohash in a few places, so seeing it here was a treat. Is that just for the screenshots or is it part of the application?
ytjohn··on Roblox has been down for days and it’s not because of Chipotle
> We have people who are first-time system administrators deploying applications. building containers, maintaining Nomad. There is a guy on our team who worked in IT help desk for eight years - just today he upgraded an entire cluster himself.”
ytjohn··on Dislike button would improve Spotify's recommendations
I haven't used it in a while, but this was a big advantage of Pandora for me. With pandora, you start a 'station' with a few seed songs and as you like/dislike songs, it keeps refining the station.

The downside to Pandora is that you can't choose your music. You can seed a station with a specific song, but that song might not be the first one played.

What I really liked with Pandora was that it was really good at producing endless playlists for me to listen to at work or car rides. I was a paid subscriber when I worked night shifts and drove a lot more. Spotify stations are really hit or miss. Sometimes the Spotify stations dive into foreign music and I can't find a way to specify which language of music I want to hear.

ytjohn··on LimeSDR
As mentioned, GLAARG and others does them online. However I'd like to throw out that amateur exams are held all over the place, quite often. These are typically friendly events and is a good way to meet people that have been in the hobby for a long time. Typically, your local VE team is part of a radio club that can tell get you lots of good getting started tips, especially if it pertains to local activity.

https://www.laurelvec.com/?pg=exams (All Laurel VE sessions are free and processed next business days)

http://www.arrl.org/find-an-amateur-radio-license-exam-sessi...

ytjohn··on My mouse driver is asking for a firewall exemption (2019)
But the nice thing about having a Razer mouse is that it lets you get local admin on any random computer just by plugging it in.

https://twitter.com/j0nh4t/status/1429049506021138437?s=19

ytjohn··on Incremental note-taking
I'm a long-time user of Quiver and feel that it's just about perfect. It is MacOS only though, and I haven't found a suitable equivalent for Linux or Windows (work). However Joplin comes really close. If you're a fan of Joplin but are using MacOS, give Quiver a try. They also have an iOS app, and someone made Quaver for Android.

https://happenapps.com/

https://play.google.com/store/apps/details?id=net.andrewt.qu...

ytjohn··on Show HN: A simple blogging platform I built out of frustration with other tools
One place I worked followed the principals of ODD. Depending on the context, it was either Outage Driven Development or Outrage Driven Development.
ytjohn··on Ansible 4.0
It's hard to say. I don't see too much point in running Ansible inside Terraform or Terraform inside Ansible (yes, you can go either way). Ansible lagged for years on its support of kubernetes and helm (it had it, but it didn't work). Now (like in the last 12 months) got good support for both, but it might be too late. Terraform has the majority of mind share when it comes to Kubernetes support.

If you're only doing AWS or Google Cloud, Ansible can do that. Whether it does it better or worse than Terraform is all dependent on your use case.

If you're doing anything on premise, or outside of GCP/AWS, Ansible can do that as well. From the using OOB management (HP iLO/Dell iDRAC) to install the OS, to configuring vmware clusters to deploying k8s to declaring resources within k8s. Got network switches and firewalls at your office? You can manage that with Ansible. If you have a bunch of edge compute, Ansible can manage that as well.

What it comes down to is if you've got teams working with anything outside of AWS/GCP. They'll probably be using Ansible, and since you've already go Ansible knowledge across your organization, it would make sense to leverage that expertise and Ansible's cloud integrations.

All of that said - Terraform is much more popular when it comes to the major cloud platforms. If all you have is cloud, then you'll probably start with Terraform and stay there.

https://github.com/ansible-collections/community.kubernetes https://www.ansible.com/integrations/cloud/amazon-web-servic... https://www.ansible.com/integrations/cloud/google-cloud-plat... https://www.ansible.com/integrations/networks

ytjohn··on Online text to diagram tools (2020)
I have enjoyed using PlanUML, but getting a local renderer for team use is a big lift. I switched to Mermaid-JS last year. Using mermaid, we can do a number of diagrams in Markdown code blocks. VSCode has a markdown preview enhanced that can render these, and Gitlab will render mermaid. Also, you can get a mermaid plugin for Confluence.

It may not be the "best", but it's exceedingly versatile and has a low barrier to entry, which is a huge win for us.

ytjohn··on Show HN: Squirrelbyte – a SQLite-based JSON document server
I think this is great. And on a tangent, a few months ago I was searching "everywhere" to find a somewhat standard rest api query format. There's odata, but that was way too heavy.

I don't know how popular jsonlogic itself really is, but it definitely seems like a good fit for queries.

https://jsonlogic.com/

ytjohn··on Setting up Starlink
Right you are. In fact, I was thinking of the EdgeOS on EdgeRouter, and I was wrong there as well, since that is actually mips64.

https://www.debian.org/ports/mips/

ytjohn··on Setting up Starlink
Not OP, but the Protectli is just hardware and you install your own OS. So it is running your own computer with "scripting and such", just a separate low-power, small footprint computer with dual NICs. This is good for managing network for your entire house/office/remote site.

I've got some PC-based firewalls like the Protecli. Mini-ITX, atom-based, 8gb ram. I can often find these for <$50 on auction sites. If it's one I'll be the main "owner" of, I like to run VyOS for firewall and routing. This is the open-source fork of Vyatta, and Ubiquiti's EdgeOS is a commercial sibling (granted, EdgeOS has or at least had some advantages over IPv6 PD). VyOS is debian arm based, so lots of packages like ZeroTier VPN can be added easily. I like VyOS/EdgeOS because of the full CLI/scriptable config.

I recently setup 3 of these for a radio club. These will live in mountaintop tower locations and provide VPN+NAT. Since these might get modified by others, I went with OPNSense. OPNSense is a fork of PFSense with a nice Web UI and community support.

ytjohn··on IntelliJ IDEA 2021.1
When a job change forced me onto a Windows environment, having that remote option in vscode is probably the biggest factor that let me keep that job. This was back on WSL1, which was horrible, so I ended up running a linux VM to get full docker and Linux support. I tried pycharm through vcxsrv, but it was just a bit off. But with the ssh plugin to vscode, it was incredibly slick.

WSL2 would have the same advantages - a linux vm running under hyper-v. I see PyCharm 2021.1 has the same WSL connectivity as IntelliJ, so I will have to try this out. Would love if they added an ssh option.

ytjohn··on In Praise of the Unambiguous Click Menu
I'm not a UX guy myself, but our team has a rule to use some form of indicator like the "i in a circle" or ? in a circle. These are always clickable, so if you see an "i" you can click it to get the pop-up. We do avoid hovers, though our reasoning is that we're making information dense applications. Having a bunch of hover tips pop up as you're trying to navigate a table can get frustrating. If hover is used, it'll most likely be a different indicator and in the header or footer area.
ytjohn··on PinePhone Beta
In a sense yes, but PinePhone is also focused on economically feasible for developers. The hardware may be solid, but the firmware and software on it still need a lot of work. It's a frustrating experience. Others mention freezes when making or receiving calls. I have the KDE Plasma version and I sometimes get kernel panics when taking it on and off the charger. Enthusiasts (like me) will pay $200 to support the project and have a secondary handheld device running Linux, but at higher prices, not so much.

Also, I'm not trying to knock the pinephone - I have one and fully support them. Their goal is to get more linux phones into the hands of more people, both devs and end-users. They're using open-source distributions and their approach will (in theory) lead to better software. The experience should get better over time.

There is the Librem 5 by Purism. They do target the free as in freedom crowd, and it starts off at $800. They also have the same phone made entirely in the USA for $3k. The PinePhone and Librem hardware have fairly similar specs. The Librem 5 does have a better camera and a slightly larger battery, but the real difference is going to be that they put a lot more polish into the system.

https://puri.sm/products/librem-5/

ytjohn··on Unironically using Kubernetes for my personal blog
From a sysadmin/config management side of things, and since I "dabble" with networking, I've always been rather jealous of the network appliances. All the serious network devices had a single configuration file. Often the lines in the config file were equivalent to shell commands. For any network device, you could put the list of all the commands in notepad, as a script. But, if you exported the config file, it would look like a nicer version of your "script".

With config management, be it puppet, chef, salt, ansible, you start to approach that. Except these only manage the resources you define. If your config management manages apache resources, and someone wandered in and installed nginx that's out of scope. If you've got a list of machine-local usernames that you want to exist, you might not thinking about ensuring that other usernames are absent.

With kubernetes, it gets a bit closer. Let me preface that standing and running your own kubernetes cluster is a separate level of complexity, but once you have a k8s cluster, you can dump out a list of all resources (namespaces, pods, volumeclaims, ingress controllers, services...), modify that resulting file and apply it. Most people work in chunks, having a yaml file for each set of associated resources, or template those into a helm chart. With that, you can put all associated resources into a release, which you can delete and recreate as you desire.

There's still lots of gotchas, especially around persistence. It's not uncommon to find an orphaned volume claim that prevents your release upgrade from continuing until you dig in with 3 coworkers watching you as you try to remember if it's safe to delete that or not.

ytjohn··on 1980: MUD
It's not a game, Roguelike made a MUD inspired online conference for their conference. I keep coming back to this. While they built it for a time-limited conference, I could see variations for long-running online communities, or even "modern" MUD games.

https://dev.to/lazerwalker/using-game-design-to-make-virtual...

ytjohn··on Judge: Citibank isn't entitled to $500M it sent to various creditors last August
I saw a great Linux quote recently. I'm paraphrasing, but it goes like:

"Linux gives you enough rope to shoot yourself in the foot. If you didn't think you could shoot yourself with a rope, you should read the man page first."

That said, as Linux has gotten more popular, it's put more safeguards in. For instance, you can no longer "rm -rf / file.txt".

I know someone that works for a (smaller) bank regularly processing loans in the mid six figure range. When I think about all the steps she has to go through around verification on each loan, It's just crazy to me how they're able to accidentally send an amount over 1000x times what she has to deal with.

ytjohn··on The VT-69 portable data terminal
I admit, In my younger days I fell for the "fits in my pocket" fallacy. No, I don't need that. I almost always need some kind of cable, and a keyboard you can type on is... key.

I do like my laptop to be lightweight, thin, with some semblance of battery life. But for what I'm considering a portable utility computer, I now think in terms of a textbook. Self contained, usable, but also expandable.

ytjohn··on The VT-69 portable data terminal
I'd agree that if all you want is a portable dumb terminal, then go get a dumb terminal. Nothing more retro than an actual piece of gear from the 80s.

In my case, I'm looking to dual-boot and run programs in the field. Most of those can run in Linux, but some will only work in Windows. This isn't to be like my primary laptop where I'm mostly concerned about battery life and writing code. It's a secondary device, dedicated to specific tasks. I almost purchased the GDP Micro PC for this, and may still depending on the kickstarter. What I liked about the Ready is that I can swap out the motherboard and pretty much every other component over time as needs change. The 3.5" - 4" single board computers keep advancing, getting more power and in some cases, getting cheaper. An Intel NUC with 4-8GB of ram today could be swapped out with a 32GB Ryzen w/GPU board in a few years.

It's a niche inside of a niche, so not everyone will see a need. But a stack of antiquated, mostly dead laptops and tablets motivates me to seek out something like this.

ytjohn··on The VT-69 portable data terminal
I like the look of this, and it seems we're seeing more of these type devices. But after looking at their twitter and such, I don't believe this is a real product, no matter how "nice" the VT-69 is.

For real products, there is also the clockworkpi devterm. But the one I'm really interested in is the ready! 100. I think both have been on HN recently. The Ready is really just a case that you can put most any SBC into: from a raspberry pi to an Intel NUC. The screen hooks up via hdmi and the (mechanical) keyboard via usb. I'm planning to put a ryzen board (or maybe a nuc) into mine, along with an SDR. I also do some programming of '80s era commercial radios, which require an RS-232 and software running in DOS (known issues running under dosbox/vm, though freedos is fine). So I'd be making a triple-boot machine. I know one person mentioned planning to put two different SBCs inside the case, a low-power RPi4 and a higher powered ryzen board. Then they can switch between depending on their need.

DISCLAIMER: I am a backer of the ready100 (neo pledge) and I do hope it meets its funding goal. But I have no financial interest. In fact, if it doesn't reach its funding goal, I get my money back.

ready100: https://www.kickstarter.com/projects/jlafleur/ready-model-10...

ytjohn··on Barcode scanner app on Google Play infects 10M users with one update
The ZXing app is in fact the one I've had since "the dawn of android". But when I switched phones a couple years ago, I had apparently installed the one by the Space Team[1].

It took me a bit of digging to make the distinction. I have both of them listed in my App Library, and both with the same name. At some point, I believe I went to install ZXing on a new phone and Android warned me that the app may be incompatible, so I went to the space team one. It makes sense that if people aren't looking directly in their app library that they can get these mixed up and leave the bad reviews.

However, since the space team version got infected, I did try the ZXing app - no pop-ups, and it works just fine (despite the age warning).

https://play.google.com/store/apps/details?id=com.qrcodescan...

ytjohn··on Barcode scanner app on Google Play infects 10M users with one update
This app only had the basic permissions of camera and to open web links - pretty much exactly what you need to scan a QR code and open a web page. The software author (or more likely someone they sold it to) pushed a new version of the app that would just keep opening links to various ads.

The key here is that the author had a properly working, trusted, non-invasive application for years and then they pushed an updated version that was less so. Fortunately, it was an app with minimal permissions - it could only open web pages. In my case, running ublock, those pages came up blank. But for others not running an ad filter, they got pop-ups prompting them to install even more malware.

As for Google Play release process, I can't speak on that too much. They do scan for malicious code, but this code may not be malicious enough. If part of an application's purpose is to open web links, more code that opens links would not be as noticeable. Apple has a more intensive process to review new apps, and they spot-check app updates, but it's going to be somewhat similar. We hear about Apple pulling existing applications all the time for random reasons, but it's often after an update or report. Google pulled some of these apps after they were reported, but it was also after.

I'm not defending Google Play - they have a more relaxed review process than Apple, relying more on automation. But both have "legitimate" apps pulled for obscure reasons (and the only recourse seems to be getting attention on HN/Twitter/other), and both have let scam apps through. Apple seems to catch more of the "bad" apps, but also drops more legitimate apps that compete with Apple's business interest.

ytjohn··on Barcode scanner app on Google Play infects 10M users with one update
I was 100% impacted by this. I've used that barcode scanner app for pretty much forever. I can't be 100% certain, but it's one of the first apps I ever installed on my first android phone (around '08/'09). It was what I directed other people to since all the other barcode scanners had ads.

Around the end of December started seeing web page notifications after my phone had been locked for a while. I clear those and it goes away for a day or so. I originally attributed it to an open tab, or some site that I had inadvertently enabled notifications for. It took me a few days of seeing these and checking browsers to realize it was more, so I started checking apps recently installed. I even installed malwarebytes to do a scan, found nothing. There were three recently updated, including barcode scanner. I opened that and malwarebytes immediately flagged it. So the scanner seemed to know about it at that time, but couldn't detect it until you actually opened the application.

I used to have Theft Aware before it got bought by Avast, and I tried Lookout some years ago. But it was this incident that finally convinced me to install and keep anti-malware app on my phone. I've also disabled app updates from the play store.

EDIT: Mine was by "The Space Team", not the one listed in the article. Seems like a number of barcode scanner apps were targeted recently.

ytjohn··on FastAPI framework, high perf, easy to learn, fast to code, ready for production
I may have done something wrong, but I remember that when I would do 'return {"json": "yes"}', it would not set the content-type to json. When I discovered this, I had to go back through a bunch of code and convert it to either fastaspi.Response or JSONResponse.

Creating the Response instance proved to be a better approach, because it makes it much easier to set content type, status codes, cookies, headers, etc.

Again - I might have done something wrong, but if you have an instance just doing 'return {"key": "value"}', check it with curl or browser dev tools to see what the Content-Type is.

ytjohn··on I asked GPT-3 for the question to “42”
How many roads must a man walk down?
ytjohn··on Docker fails to launch on Apple Silicon
Up until this year, I had using BYOD MBP for both work and personal development, I'm on the late 2016MBP and it's been a great setup that allows me to both interact with corporate's exchange server, edit power point slides, WebEx screen share, and still develop for Linux servers.

End of last year, I switched jobs and have been forced onto a Windows laptop. I had been using VSCode, so after fighting with WSL1 and Docker on the work system for months, I installed a dedicated console only linux VM (under vmware workstation) within Windows and I use the VSCode's SSH remote option. It's pretty much seamless. The VM runs docker "natively" within it, the core part of vscode is running within the VM itself. There used to be a bit of confusion if you open a new vscode window, then you had to use that to open a second ssh-connected window. But last month, they changed that so you can connect the current window. When you open a folder or file, it's all like browsing the "remote" VM's filesystem. VSCode also now can auto-detect when you're starting a program on a localhost port and creates an ssh tunnel from your desktop to the remote system (you can also set these up manually if it fails to detect it). Sidebar: Now that WSL2 is available, I could see migrating from my Linux VM under VMWare to a WSL2 Linux VM under Hyper-V, but that's another level of effort for about the same end result.

Just prior to the pandemic, I had set myself up a linux desktop and made that my primary system (relegating my MBP to secondary/couch use). My work laptop was on a stand to the right and my MBP was on a stand to the left. I would use vscode to remote into either the VM on my work laptop or develop personal stuff locally. I also setup VSCode on the MBP to remote into the desktop. During the pandemic with kids home, I had to migrate from my detached garage/home office to inside the house. So I rarely touch my desktop directly and do my (personal) dev work remotely on it from the MBP.

In the future, should it come time to replace my MBP, I don't think I'll use another Apple. Since I can't BYOD it for my current job, and I don't need Outlook and PowerPoint for personal use, getting a hefty Linux laptop seems just fine for personal. If they would let BYOD MBP on the corp VPN, I'd consider it.

ytjohn··on Menu simulation, Spidertron, Ghost building, Confirm button
When I had a job change last winter that had me not programming (I build automation solutions around business processes) for about 4 months, I was rather frustrated with the constant planning and strategy meetings. I tried to get into a side programing project, but couldn't really settle into one. That's when I saw/remembered Factorio and started on it. It scratched that itch and I spent hours playing the game.

Once my job got back into more hands-on programming, I quickly lost interest in playing Factorio. I've been reading other programmers having the same feeling. You expend the same type of mental processing with both, so one makes you too tired to do the other.

That said, if I have a long weekend or a week off, I might find some time and enjoy playing it, and still feel refreshed when returning to work.

ytjohn··on Old, Good Database Design
The Art of Postgresql. As the title suggests, it's targeted for Postgresql. However it has a full section on data modeling, another section on data types. It's packed with lots of examples and reasoning. I feel it gives you a good mix of theoretical background and hands on immediate experience. You'll find your way around what is (in my worthless opinion) the best database engine, and the pgsql specific examples will mostly translate to other relational databases.

https://theartofpostgresql.com/

ytjohn··on A Collection of Imaginary Software
I love this idea. In Dirk Gently's Holistic Detective Agency, there was a software called "Reason". It was only mentioned a few times, but I always keep thinking back to it whenever we're in a planning meeting.

>Reason allows users to specify in advance the decision they want it to reach, and only then to input all the facts. The program's task was to construct a plausible series of logical-sounding steps to connect the premises with the conclusion. The only copy was sold to the US Government for an undisclosed fee.

https://www.bbc.co.uk/radio4/dirkgently/gordon_way.shtml

There was another software I forget the name of, but the guy had modeled his sofa and staircase on it to try and figure out how the sofa got impossibly stuck halfway up stairs, and it kept trying different angles in order to come up with a way to get it unstuck.

← PreviousPage 3 of 12Next →