Categories
Uncategorized

OpenSCAD Springy Example

Previously on… the Fediverse! I posted about this springy thing I was designing, and I said:

I’m trying to come up with a good way of creating this in OpenSCAD… I have something using a bunch of hull’d cylinders but I’m wondering if there is a better/easier way to do it.

First of all, I love OpenSCAD. I also love sharing. I was really pleased to see people coming up with ideas. Hey, maybe we should make a weekly OpenSCAD Coding Club!

deshipu suggested Inkscape for a 2D vector and then importing.

Bryan Fink suggested rotate_extrude which I often forget about. I would have never thought to use it for this. See Bryan’s example.

Makerblock came through and wrote a whole post about this thing!

Alistair Buxton also wrote some code you should check out and used the 2D parts of OpenSCAD I usually ignore.

And oh yeah! Here’s mine:

See the code here! This also spurred me to finally make that OpenSCAD repo on Codeberg. I’d like to fill it with bit and pieces of things. I already share a bunch of designs on Printables but this repo will be more code focused and have things that are not finished projects. (Though I may also add finished projects.)

Basically I only know how to do these things because others did them and were willing to share. I’m doing my part… are you!?

Categories
Uncategorized

Nginx Proxy Manager

I recently setup Nginx Proxy Manager and here’s how I did it. Oh, first I’ll explain what it is. A proxy is a person appointed or authorized to act for another…. well, that’s for people, but with computers it’s pretty similar. One computer acts as a go-between for you and the computers/services on your network. Remember when I mentioned Jellyfin? Well to get access to my Jellyfin server running on my home network I poked a hole in my router using “port forwarding” which allowed me to connect to it from anywhere I had an Internet connection.

So if you’re at home and visit whatsmyip.org it will show you the public IP address of the router from whatever company provides your Internet service. (In some cases this address will change, but if you’re luckily it will remain the same. If it changes you’ll need to know about “Dynamic DNS” but I’ll skip that for now.)

Anyway, I was using port forwarding for Jellyfin, but I wanted to add a few more things I could access and rather than faff about with a whole lot of port forwarding I just forwarded one thing (port 80) to Nginx Proxy Manager which runs on a Raspberry Pi at my house. This single little computer routes all the requests you see in the image above.

I used subdomains to determine what goes where, as I have multiple computers on my network, and some run multiple services on different ports. So if your home IP address is 1.2.3.4 and you normally connect to 1.2.3.4:8096 (ip_address:port_number) you can set up the proxy to accept requests from media01.example.com (on port 80, which is the default) to go to the internal computer at 192.168.1.79.8096 (assuming you own example.com, added a subdomain, and pointed it at your home IP address that is!)

I should note that when I did the port forwarding for the computer running Nginx Proxy Manager I got this scary warning about breaking things… and nothing broke.

Why would you want to use a proxy manager instead of just doing port forwarding? Well, besides making things clean (not having to worry about port numbers) you can use Let’s Encrypt with Nginx Proxy Manager and it’s extremely easy to add secure TLS certificates so your traffic is encrypted. Without this anything you log into on your home network is done via plain HTTP which is not encrypted, so it’s like writing your password on a postcard.

I mentioned I am running this on a Raspberry Pi. It’s an older one, a Model 2 or 3 I believe, but honestly its all that is needed. The nice thing about “Home Cloud” stuff is that you probably won’t have a lot of users. For my stuff it’s pretty much just me. Maybe a few family members might access things at some point but I’m not too worried about the Pi not being able to handle it. If the SD card dies and the Pi stops working at some point the worse that will happen is I won’t be able to access things from outside the house until I fix it. So failure isn’t catastrophic. Our (outgoing) home Internet connection will not be affected.

Categories
Uncategorized

Editing a Bear Theme

I’m still using Bear Notes because I have not found something I like better. (And yes, I have tried!) As long as I am going to keep using Bear for now, I figured I should fix one small thing that has been bothering me.

In the image above you’ll see a note using the Panic Mode theme. It’s a theme I really like. Bear Pro has over 28 themes and it all comes down to personal preference, right? I like Panic Mode but the selection highlight color is terrible. With my old eyes it’s very difficult for me to see… so I fixed it.


Above is what it looks like now on my Mac. That bright green is way easier for me to see! It’s a small change but makes a huge difference in my ability to see the selected text clearly.


To make this change you need to edit a file inside the Bear application. You can right click and choose “Show Package Contents” or just use the terminal and type:

open /Applications/Bear.app/Contents/Frameworks/BearCore.framework/Versions/A/Resources/

and the folder should open in the Finder.


Find the theme file you want and edit it. But hey, quit Bear first, and you might want to copy the file to your Desktop, make a copy–just in case–and them make your edits.


I’ve only changed one line to change the highlight color. I saved the file and copied it back into place. You’ll need to enter an admin password to copy the file since it’s going inside an application. (Specifically I changed “selection color” from #405268 to #55DF2F.)

If you use Bear on more than one Mac you’ll need to copy the file into each application. Obviously you cannot make this change on iOS but the highlight color on iOS is different and not the same low-contrast color you see in the above first example so it’s all good on iOS for me.

Oh Yeah! This change will get overwritten when you update/upgrade Bear, so keep than in mind, keep a copy of your file, or make a note about what you’ve changed.

Theme editing should be easier of course, but hey… compromises, right? And yes, there are other themes as well.

Categories
Uncategorized

Scheduling rsync in macOS (with cron)

A shell windows with man rsync

There’s an old saying “Linux will give you enough rope to shoot yourself in the foot!” and what that means is you’ve got power but you need to know how to use it. I’ve been using macOS (pka “Mac OS X”) for almost as long as I’ve been using Linux and I use the command line constantly in macOS and try to maintain a consistent experience between macOS and Linux when I can. I also tend to be late to install the most recent version of macOS.

So last year I wanted to set up a cron job to run a shell script to run rsync. On macOS. I tested things, added the cron job and it didn’t seem to work. I debugged, I tested, I searched… It seems macOS could not run an rsync job via cron. I tried to add cron, rsync, zsh, and iTerm, Terminal.app, and WezTerm to the “Full Disk Permissions” thing in the System Preferences. Eventually I gave up.

Well, eventually I created a workaround using Keyboard Maestro which has its own cron, and Platypus which wraps shell scripts in an Application, and that worked, but it’s overly complicated, so I’ll show you the way I do it now.

Automator window showing how to run a shell script

Launch Automator and create an Application…


Automator window showing how to run a shell script

Search for “shell” and you’ll see “Run Shell Script”. Drag it to the right side of the windows…


Automator window showing how to run a shell script

Type the path to your script.

/Users/pete/scripts/buRsync.sh 1>/Users/pete/scripts/buRsync.log 2>/Users/pete/scripts/buRsync.err

I’ve chosen to pipe the output and errors to files but you can skip that if you want. I also chose to use full paths.


Automator window showing how to run a shell script

Export the Application…


Automator window showing how to run a shell script

Give it a name and save it. You can put it right in the /Applications folder since it’s an actual macOS application.

Now you can add a cron job and use the macOS open command to open the application instead of trying to run a shell script directly.

0 6,18 * * * /usr/bin/open /Applications/RsyncApp.app

This seems to work fine for me in macOS Sonoma 14.6.1 but if it breaks in the future I’ll update this… if I don’t, just let me know!

Bonus: You can use the macOS Launcher to quickly and easily run shell scripts this way!


Yes, of course there is launchd but I think it’s overkill and a bit complicated for those who already know cron.

Categories
Uncategorized

Warning AT&T U-verse TV Stop Working

A screen from an AT&T Router that says Warning: The change you are attempting to make may cause AT&T U-verse to stop working properly.

NOTE! Make sure you read the Update! at the bottom of this post.


This blog post exists for one reason, to let you know that I clicked “Confirm” to this warning screen and everything was totally fine.

Warning: The change you are attempting to make may cause AT&T U-verse to stop working properly.

It’s 2025 and I have an AT&T router with a fiber connection with the DirecTV package. I do not have AT&T U-verse, though I did about a decade ago in 2014. I don’t even know if they still offer U-verse, but when I searched online to see if it was okay to click Confirm and it would not break my Internet connection all I could find was people asking the question on various forums with no clear answers given. So I’m here to tell you that for me it worked fine.

You can stop reading if you’ve learned all you need to know!

A screen from an AT&T Router

Still here? Okay, so I was using the NAT feature of the router to do some port forwarding but I then wanted to install Nginx Proxy Manager to make things easier… Once installed Nginx Proxy Manager wants to be set to port 80, which causes the router to show you that warning. That’s when I did some searches and found no good answer.

I decided to be the person who tried it out, and… it worked for me. I did not see any disruption in my Internet connection, my TVs are all fine, and my non-existent U-verse service did not get interrupted because it does not exist.

A screen showing the Nginx Proxy Manager Setup

So yeah, Uverse, U-verse, ATT, AT&T, Router, Internet, Warning, did not Stop Working, and all was well and just fine in the end. (Yes, that contains some of the potential search terms people might use.)

I should do wrote another post that covers the Nginx Proxy Manager.

Update!

About four weeks after doing this the router lost power one day and when it came back online it lost many of the settings… The WiFi newtwork name and settings I’ve had set for 6+ months was gone along with any port forwarding information. I don’t know if the actions I took were at all related, but it may be worth mentioning. It may be a good idea to reboot and see if your settings stick. (I guess I should schedule a reboot and test as well…)