@swetland@chaos.social
@swetland@chaos.social avatar

swetland

@swetland@chaos.social

Writes the codes. Recovering OS Engineer (BeOS, HiptopOS, Android, LK, Fuchsia). Embedded systems hacker. Hobbyist Digital Designer. Player of video games. Etc.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

swetland, to retrocomputing
@swetland@chaos.social avatar

While delving into native 68k Mac development, I have discovered that I am now soft and weak and find it rough to read dense C code without at least some minimal syntax highlighting.

But as far as I can see, it simply DID NOT EXIST back in the 68k Mac era. BBEdit 4 supports it, but it's a post-System-7 post-PPC fat binary.

Anyone know of anything before that? Were there any notable competitors to BBEdit for programmer's editors on 68k Macs?

swetland, to random
@swetland@chaos.social avatar

A thought: Which is the last generation that remembers computers that just hard crashed all the time?

Where you learned to Save Often and Make Backups because even if the App worked great, the whole machine might just blow up at any moment.

I feel like, for me, this pretty much stopped being a thing by the early 2000s. But I also started using Linux as a primary OS in the mid-90s, so mostly saw Win95/ME/etc from afar.

I do remember when X11 would sometimes just explode, killing all my apps.

swetland, to random
@swetland@chaos.social avatar

In 2002, the Danger Hiptop launched (as the T-Mobile Sidekick). It was an always-on mobile device with email, IM, and web browsing, running on T-Mobile's GPRS network. A sort of proto-smartphone with a 240x160 black and white display and great keyboard.

A coworker of mine set up a group blog thing for folks to share the launch day experience -- I just found my backup of this:
http://frotz.net/hiptop/sidekick-launch-blog/

Also, screenshots of the 1.0 UI:
http://frotz.net/hiptop/screenshots-1.0/

Color Hiptop display up close!

swetland, to random
@swetland@chaos.social avatar

Tidied up the FreeCAD files for this gamepad thing, parameterized everything and gave everything (hopefully) comprehensible names.

Next step is to build the bottom of the enclosure and I'm wondering if there's an easy way to re-use a sketch on another face somewhere by linking to it somehow, so I don't have to copy-and-paste it.

Any FreeCAD users know? @trevorflowers @cda

FreeCAD spreadsheet view of the parameters for the gamepad enclosure.
FreeCAD sketch (2d drawing) of the outline of the top half of the gamepad enclsoure.
FreeCAD sketch (2d drawing) of the location of standoff posts within the gamepad enclosure.

swetland, to random
@swetland@chaos.social avatar

Exploring restic for backing up my workstation (to local external volumes and probably "the cloud" too) at the suggestion of a friend.
https://restic.readthedocs.io/en/latest/

Maybe just in time, because...

[605358.398403] nvme0n1: I/O Cmd(0x2) @ LBA 131640760, 1024 blocks, I/O Error (sct 0x2 / sc 0x81) MORE
[605358.398428] critical medium error, dev nvme0n1, sector 131640760 op 0x0:(READ) flags 0x80700 phys_seg 88 prio class 2

Now I'm replacing the primary NVMe SSD tomorrow too...

swetland, to random
@swetland@chaos.social avatar

I enjoy writing software, but something I learned back in the 90s while working on X/Mosaic at NCSA and then BeOS is that shipping software, so that people get to actually use the stuff you make is one of the best parts.

I then learned, while working on Hiptop/Sidekick at Danger in the early 00s, that shipping things that contain software that people can pick up and carry around and use is, in some ways, even more enjoyable.

swetland, to Windows11
@swetland@chaos.social avatar

Windows 11 has reached an absurd level of obnoxiousness with mandatory accounts, bundled random microsoft crap, and intrusive offers to upsell me on office360 and whatnot. Especially for an OS I have to pay for, this is pretty ridiculous.

I only have Win11 on a machine as a "Steam HAL" for gaming. Given Valve's progress on SteamDeck I am hopeful that within a few years I'll be able to ditch Windows entirely and still have everything I need for PC gaming.

https://arstechnica.com/gadgets/2023/08/windows-11-has-made-the-clean-windows-install-an-oxymoron/

#windows11

swetland, to fediverse
@swetland@chaos.social avatar

Reading up on ActivityPub and investigating what'd be involved in building a simple single-user Fediverse compatible blog thing (probably in Go). It's not looking like a terribly complicated project.

swetland, to random
@swetland@chaos.social avatar

Taking a look at Gogs, as a self-hosted alternative to GitHub. Getting it running on a linode instance only took about 15 minutes, though I'd want to more closely understand all the configuration options before starting to really use it. It certainly looks nice and seems pretty responsive, albeit only hosting one small repository from one users.

https://gogs.io/

My old "compiler" project hosted in Gogs: commit history page.
My old "compiler" project hosted in Gogs: viewing a single commit.
My old "compiler" project hosted in Gogs: viewing my dashboard.

swetland, to random
@swetland@chaos.social avatar

Measuring some of these things the PIO is doing in the Apple II VGA. The original design used 74LS07s for some signals which have asymmetric propagation delays for low-to-high and high-to-low, as well as longer delays than the 74LVC245As I'm using.

Observing this PIO program segment:

wait 0 GPIO, PHI0_GPIO
set PINS, 0b10

which blocks until the clock goes low and then disables the buffer taking ~34.8ns, which seems about right for 4 8ns PIO clocks plus input delay.

Closeup on oscilloscope probes connected to PHI0, PHI0', /DEVSEL', and DDIR on an Apple II VGA card installed in an Apple IIe, cover removed.
Oscilloscope capture of PHI0 (green), PHI0' (purple), DDIR (cyan), /DEVSEL' (yellow), measuring time from PHI0 falling to PHI0' falling (5.2ns).
Oscilloscope capture of PHI0 (green), PHI0' (purple), DDIR (cyan), /DEVSEL' (yellow), measuring time from PHI0' falling to DDIR falling (34.8ns).

swetland, to golang
@swetland@chaos.social avatar

TIL that Go doesn't have bytes.Equal([]byte,string) or strings.Equal(string,[]byte) because as of 2019 the compiler is smart enough to make string([]byte) into a cast rather than a copy (possibly with allocation) when used in these types of comparisons.

I wish there was some central documentation of non-obvious "magical" optimizations like this.

https://go-review.googlesource.com/c/gofrontend/+/170894
https://go-review.googlesource.com/c/go/+/173323

bytes, internal/bytealg: simplify Equal The compiler has advanced enough that it is cheaper to convert to strings than to go through the assembly trampolines to call runtime.memequal. Simplify Equal accordingly, and cull dead code from bytealg. While we're here, simplify Equal's documentation. Fixes

swetland, to golang
@swetland@chaos.social avatar

Go Documentation Grumble:

If a function may return an error, it would be helpful if what errors might be returned are indicated somewhere (other than the bowels of the source code).

Looking at you, crypto/rand/Read()...

#GoLang #Go #Documentation

swetland, to retrocomputing
@swetland@chaos.social avatar

For this exploration of Classic MacOS programming I wanted to aim for relatively early (more late 80s) to capture much of the feel of the early Mac platform, tooling, and APIs, but not too early because developing software on an 8MHz floppy-only platform with 512K-1024K ram is pretty rough (more pain than nostalgia).

I was thinking System 6 and an '020 or '030 machine, and found an LC III on ebay and pulled the trigger before realizing that meant System 7.1 minimum.

swetland, to random
@swetland@chaos.social avatar

Nice to see Google finally get back into the Android tablet business. Been waiting for this since the Nexus 7 was discontinued. Sick of having to deal with OEM crapware and "value adds" on Android tablets...

https://store.google.com/product/pixel_tablet

swetland, to retrocomputing
@swetland@chaos.social avatar

The CODE Editor for ResEdit is a neat little addon that lets you view full disassembly (instead of just a hex dump) of CODE resources, including symbol names, if present, etc.

About Box for ResEdit Code Viewer

swetland, to random
@swetland@chaos.social avatar

TIL that 450-550MB (compressed) is considered a "small" or "embedded" Linux image by people nowadays.

Of course I also was reminded that the Linux kernel for the rpi4 is a good 20MB (plus 75MB of modules!).

swetland, to random
@swetland@chaos.social avatar
swetland, to random
@swetland@chaos.social avatar

I've been printing these handy little SMD Component Magazines and Rails this weekend.

First time I've tried PETG and the results have been good, though I did run into an issue with the filament being much springier than the PLA I usually use and it jumping off the spool and snarling on the spindle during taller prints... managed to avoid that with a cheesy improvised mechanism on the printer...

https://www.thingiverse.com/thing:3952021

Yellow 3D printed SMD component magazine with a tape of ~100 size 0603 capacitors in it.
Four yellow SMD Component Magazines clipped into a Rail, with
Prusa MK4 3d printer printing a 120mm SMD Component Rail. A tube is clamped below the spool of filament to discourage the filament from jumping off the spool and tangling itself around the spindle (as it did in an earlier print attempt).

swetland, to RaspberryPi
@swetland@chaos.social avatar

Hey Lazy Fediverse,

What's the state of the art for small embedded Linux images for Raspberry Pi 4 these days?

I'm looking for a minimal base system image, not a desktop distribution (debian/ubuntu/etc), ideally in the 30-100MB size (smaller the better), that gets me the kernel, libc, shell, network, GPU support (Vulkan or OpenGL, no need for X), etc.

Just enough Linux to build and run something on top of. Surely there are good options for this out there?

swetland, to gaming
@swetland@chaos.social avatar

Attempting to use GraphViz to create a reference chart for crafting Complex Foods in Against the Storm. Now, as they say, I have two problems.

Against the Storm, by the way, is a fantastic game that combines City Builder and Roguelite elements. Highly recommended.

Also, still on sale on Steam for the next 10 hours...
https://store.steampowered.com/app/1336490/Against_the_Storm/

Buildings that can be used to bake pies in Against the Storm.
Victory by Pie. (Obtaining the last Renown Point needed by supplying Biscuits and Pies to the people!)
Early game screenshot from Against the Storm.

swetland, to webassembly
@swetland@chaos.social avatar

Am I the only one who finds that the WASM spec takes a lot of effort to understand?

I've been able to find answers to my questions, but it has taken a lot more time and effort than I'd expect for something that feels like a straightforward and sensible design. The presentation feels needlessly convoluted.

I'd love a quick reference "green card" that lays out the bytecode and file format in the style of traditional CPU docs.

swetland, to retrocomputing
@swetland@chaos.social avatar

Exploring software development on Classic 68K MacOS (late System 6 / early System 7) is wild.

I got THINK C 5.0.2 running in emulation, building some of the sample projects... and was wondering where exactly the intermediate files are going because I don't see anything on disk anywhere...

Turns out the compiler just stuffs all that in the project file itself, because I dunno, why not!

Finder on System 7 showing the THINK C "TinyEdit" sample code. The Project file, named TinyEdit.π for Reasons, is nearly 2MB, containing the object code for the sample and the app framework library it's using...

swetland, to retrocomputing
@swetland@chaos.social avatar

I'm now curious about the history and evolution of syntax highlighting. I'm pretty sure my first exposure to it was in XEmacs in 1994. Nowadays it's hard to imagine a code editor or IDE that doesn't support it.

swetland, to random
@swetland@chaos.social avatar

Got the Apple II Gamepad assembled and it works for playing Lode Runner, so it's looking good. The X/Y axes aren't quite at 128 in the center, but things work nonetheless.

Much credit to Blondihacks for the incredibly informative blog post on Apple II Gamepads, including notes on compensating for non-150K pots:
https://blondihacks.com/apple-ii-gamepad-prototype/

Design files available from this Github repository:
https://github.com/swetland/appleii-gamepad

#projects #appleiie #gamepad

Apple II Gamepad PCB fully assembled in a black nylon 3d printed enclosure with 1 meter cable and DB9 connector.
Apple II Gamepad PCB fully assembled in a black nylon 3d printed enclosure with 1 meter cable and DB9 connector. Bottom view showing silver M3 screws securing the bottom half of the enclosure to the top.

swetland, to random
@swetland@chaos.social avatar

One thing I am reminded of as I explore games, applications, OSes, programming languages, etc on the Apple IIe is how fragile so much modern software is. 40 year old software for this 40 year old machine still actually works!

And not only are modern software stacks complex and fragile, but more and more software is trapped in app stores, or exists only as (or dependent on) code on some server somewhere that could change or vanish at any moment.

Sadness!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • khanakhh
  • mdbf
  • magazineikmin
  • modclub
  • InstantRegret
  • rosin
  • Youngstown
  • slotface
  • Durango
  • tacticalgear
  • megavids
  • ngwrru68w68
  • everett
  • tester
  • cubers
  • normalnudes
  • thenastyranch
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • lostlight
  • All magazines