• 1 Post
  • 22 Comments
Joined 1Y ago
cake
Cake day: Jun 04, 2023

help-circle
rss

A few jobs ago, everyone hated the tech stack. The people who had come up with it had long left. I talked to everyone, then came up with a plan to transition to a modern stack. Got buy-in from management.

Half the people (and all who had said they hated the status quo) threatened to quit if we made the change.

Fortunately, it was just in time to collect the 1-year retention bonus. Life’s too short. Walked away.


Thanks. After your note I went back and re-checked with my friend. I mixed up his comments with those from another friend with a different setup. Updated my original comment.


I have a closet full of old routers (including Linksys), extenders, and switches to be able to handle dead spots. They all sucked. Then I heard about mesh routers when they first came out. Tried two, saw that they worked well, and got a third one. A few months later, a new ISP showed up in our neighborhood with unmetered Gig fiber and I happily drop-kicked Comcast to the curb. It was gratifying that the fiber connection came with a single mesh device of the same brand I already had. Since then, I’ve upgraded to the next-gen routers, and gotten a few smaller ‘wall-wart’ units for extending the range outdoors.

I don’t really have to fuss with configurations like I had to before. It’s amazing how much of a time drain it was to go screw around with settings when a new device came in that didn’t work, or to replace a router when one died. I haven’t had to do anything in years. Every once in a while, I go set up a DHCP reservation but that’s it. The firmware updates auto-install while everyone’s asleep and I get pretty decent bandwidth in places I had constant dropoffs. When I switched out the actual routers to the new gen, the whole thing took 10m and the whole network was down for maybe 2m while the new ones booted up. No end devices had to be modified or restarted.

Where the fiber comes in, there’s a single router node, with two Ethernet ports. One goes to the fiber ONT, the other to a 10-port gig switch where it feeds the rest of wired setups. Elsewhere, the farthest mesh unit has no incoming physical connection, but a small wired switch connected to other wired devices near there. I didn’t have to make any router configuration settings to make this work. Just plugged it all in. Common devices go on the main network, and janky IOT devices (and visitors) go on the guest network.

For external access for self-hosting, you can take a domain name and set up a free Cloudflare tunnel to access your in-home services remotely. Pay Cloudflare a fee and you get extra rules-based access control. The router also has a premium service where it comes with a family bundle of security software. One other thing I like is that the mobile app sends a notification whenever a new device joins the network, so if I see one I don’t recognize, I can block them. Hasn’t happened yet, but if it does, I’ll know to go rotate the wifi passwords.

Anyway, highly recommend mesh routers. I happened to get Eeros (before they were acquired) but there are a few other brands around. Some people don’t like that Amazon bought eero, but they appear to be left to run as an independent outfit. It has been pretty solid so far.

P.S. A friend with a more complicated setup than mine got Ubiquitis. It’s anecdotal, but he recently asked about switching away and I told him pretty much what I’ve written here. YMMV.

Edit: checked back with friend. He said he was very happy with his Ubiquiti gear. I mixed up his review from years ago with another friend’s networking setup.



AWS bread and butter is EC2, S3, and Lambda.

The reason AWS is focusing so much on Gen-AI is because they’re in the shovel-and-pick business during the gold rush. This guy’s beef should be with the over-excited gold speculators, not the general store purveyors of denim and panning equipment.




That was amazing! Watched the video with my Trackmania-crazy kid. I’ve played it a few times but I’m total crap at it. We couldn’t peel our eyes off the action. The first external shot of the track shows how insanely difficult it was going to be.


That is actually kind of brilliant. Having to go through MFi and getting the Apple DRM chip into the manufacturing pipeline can be a real pain (and expensive).

With this scheme, they could also run all the wired on/off and volume control actions through Bluetooth AVRCP. Even have a Mic on the wire, so if a call comes in, switch to HFP to talk/manage the call.

Damn, that’s clever. Hats off to whoever came up with it.

Incidentally, there’s very little Apple can do to make this stop, unless they decide to break Bluetooth and third-party accessories.


How to give land more votes than people. Not long before election results are measured in number of acres.


There are browser userscripts out there now that do this automatically.


Part of the contact management framework. The label for the contact’s mother’s sibling’s younger son or father’s sister’s younger son.
fedilink

I’ve used it to make specific images for work proposals that stock sources may not have. Sometimes for fun, I vary it so it’s in the style of a cartoon or a Japanese woodcut.


Amateurs.

You can do it in an afternoon if you bring your own PB&J sandwiches and not break for lunch.

Also, the gofundme can be postponed. Just put it on that guy’s credit card.


My wife insists she’s staying there for the news and legal people she follows and she has a point. A lot of government, business, and schools continue to use it as an easy way to broadcast information.

Threads pulled off some celebrities, Bsky some policy and legal wonks, and Mastodon the tech geeks. If these services all start federating together and offering unified text and hashtag search, then where you land won’t matter.

Until then, it’ll be hard to get people to switch away, even with all the bad press.


A few suggestions:

  • Having people remember all the docker, django, and poetry commands just slows things down. Maybe wrap those in a shell script, or better, in a pyinvoke tasks.py, or more even better, in a CLI using argparse or click. This way, people can install your tool using pip and create new projects, manage, and run them quickly.

  • If you need the user to answer a few interactive questions, questionary is pretty decent. The click library also lets you ask for input, have defaults, and also load values from environment variables.

  • Have lots of defaults in a central .env or config file that people can customize once the project has been created. Things like separate dev, test, prod or local and cloud settings.py files help keep things organized.

  • Think about ultimate deployment. Where is such a project going to get installed? As a single docker container, scalability is limited. Which cloud hosting services can you push to with one command? Add those to your pyinvoke or CLI.

  • When deploying to cloud, make sure security best practices are maintained. Keep SECRETS and API keys in a separate file which is also listed in your .gitignore so it doesn’t get accidentally checked in.

  • Think about the different stages. Initial, ongoing dev, testing, first deploy, and continuing updates after that. What can you do to make the job of the dev easier?


Let’s rewind the time machine… the original web concept was addressing a much smaller problem. That a document could reference or ‘link’ to another document. It came right after ‘gopher’ which was used as an index of indexes and had a text-based app that let you navigate the line items back and forth.

Then came Ted Nelson’s idea of ‘hyperlinks.’ The original web mashed those two ideas together and threw in a sprinkling of SGML. There was no notion of styling of the presentation, a GUI, use of the mouse, multimedia, animation, or ‘scripting.’ It was just gopher with inline links, expressed in embedded markup.

Multiple other players (Netscape, Microsoft, IBM, et al) morphed and bolted on extensions without really considering the consequences. The thing the web had going for it was precisely this decentralized process. It made for rapid evolution, but it also meant there was (and continues to be) a lot of fragmentation. Anyone wanting to go back and revisit something hacky had a lot of legacy inertia to overcome.

So here we are today. It’s a messy, junkyard jalopy, but it does just enough that nobody has the time or energy to go back and clean up the technical debt. And if you want to start from scratch, it has to do much better than what is there today, while offering a reason for millions of people to unlearn what they know.

As for sending ‘processes’ that’s essentially what a VM is. You’re sending a compact process as code (javascript, python, wasm, native binary) that a local runtime executes. We have app stores that manage the lifecycle, and script libraries to create abstractions and hide details. The embedded Javascript VM is as close as we have to a universal code execution environment.

Sending ‘processes’ around also should account for malicious actors trying to do bad things. We’ve all seen how that ended up.

That’s not to say people shouldn’t try to innovate, but at this point, it’s like trying to reinvent driving or the telephone.


England’s Private Eye magazine has been going for decades. They sell subscriptions to the paper magazine, put on events, and sell a small amount of print advertising. They’ve completely gone against going digital and by all accounts are profitable.

The future of journalism may well be going back to the origin of small publications.


“Burndown charts.”

Best cover for teams trying to look busy and justify their headcount.



pyinvoke.

You can create quick and dirty CLIs, invoke shell commands, and have all of python available for things like parsing config files, getting and setting environment variables, and making remote REST calls.