Search
1000 results for “technology_tales”
-
🖥️ Ah, yes, the riveting tale of how spreadsheets—those glorified tables that haunt our work lives—came to be. #VisiCalc, the "GameBoy game" of its time, apparently revolutionized #computing with its primitive charm and jaw-dropping 16K RAM requirement. 🙄 One can only imagine the thrill of rebuilding a 1979 relic while the rest of us are busy enjoying the luxury of actual modern technology. 😂
https://zserge.com/posts/visicalc/ #spreadsheets #techhistory #nostalgia #HackerNews #ngated -
CW: Rant about configuration formats
Im currently working on my dlang serialization framework and just thought about adding maybe yaml, but the spec is so fucking complex, half the time it even dosnt know what it wants to even say. Like, it cannot tell you straigt what characters are allowed in an key, heck it dosnt even can decide how keys should be parsed. For example you can put a `?` at the start of a line (after indentation ofc) and then write arbitary yaml that then gets parsed and used as the key! Like wtf!
So I tought: "maybe try toml instead", but theyre just the same insane but in a different way; like keys and tables/sections cannot have the same value since a table is just syntactic sugar for a key with an inline-table aka object. End bc it's not enough already we invented that it would be nice to put another pair of brackets (`[]`) around the section/table to say: hey this is now an **array of tables**! Like very nice for serializers and stuff.... *sigh*
#programming #technology #serialization #fileformats #code #codeing #dlang
-
Converting the FreeBSD 15.0 installation from BIOS to UEFI on VMware
When it comes to changing the boot method from BIOS to UEFI in operating systems, this won’t work by just a single toggle, unless you create a UEFI partition that contains the
EFI/BOOT/BOOTX64.EFIfile on 64-bit computers. UEFI on such computers looks for a valid EFI System Partition (ESP) on your hard disk whose partition table is GPT, mounts it as FAT32, then looks for a boot file mentioned earlier. Then, the boot file gets loaded, which causes the bootloader to load the kernel to RAM, which will then give control to the kernel as the OS loads.When you install FreeBSD to your computer, it lets you partition the disk either manually or automatically. if you have installed it in BIOS mode, and you want to change the boot method so that it uses UEFI, you can’t just change the boot mode in your BIOS setup to UEFI and expect things to work; you’ll need much more than that. We will highlight how we’ve managed to convert a FreeBSD 15.0 installation from BIOS to UEFI in a VMware virtual machine.
We will assume that your partition table is already set to GPT, and that you’ve used ZFS to install FreeBSD, just like below:
Before you proceed, please make sure that you know what you’re doing. Carefully read the disk identifiers and the disk partition tables, including the
geom disk listand thegpart showoutputs, as one mistake or typo is catastrophic. This article also assumes that you have a partition table you can modify to make space for the EFI partition, such as in our case, since UFS and ZFS are not easily shrinkable. If your partition table doesn’t allow you to make some space for the ESP partition, you’ll have to use other methods, and they may not be safe.First of all, boot into your FreeBSD system on BIOS boot mode after installation. Then, if you are logging in as root, remove
sudobefore every command listed in this article. Else, log in to your account with sudo permissions.Now, execute both
geom disk listandgpart show <your disk id>. Your disk IDs and partition indexes may be different, so adjust accordingly to prevent yourself from editing the wrong disk!aptivi@apt-freebsd-01:~ $ sudo geom disk list Password: Geom name: cd0 Providers: 1. Name: cd0 Mediasize: 1359900672 (1.3G) Sectorsize: 2048 Mode: r0w0e0 descr: NECVMWar VMware IDE CDR10 ident: (null) rotationrate: unknown fwsectors: 0 fwheads: 0 Geom name: da0 Providers: 1. Name: da0 Mediasize: 214748364800 (200G) Sectorsize: 512 Mode: r2w2e3 descr: VMware, VMware Virtual S ident: (null) rotationrate: 15000 fwsectors: 63 fwheads: 255 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)As you can see, our FreeBSD installation is found at da0 > freebsd-zfs, index 3 (da0s3). A sour truth is that you can’t easily shrink this partition, but we are easily able to shrink the swap partition to make room for the UEFI partition. So, we have decided to shrink the swap partition, which is index 2 (da0s2). You’ll have to turn off swapping before the shrinking operation with
swapoff /dev/da0s2.aptivi@apt-freebsd-01:~ $ sudo swapoff /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart resize -i 2 -s 1024M da0 da0p2 resized aptivi@apt-freebsd-01:~ $ sudo swapon /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 - free - (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)Now, we have a 1024 MB free disk space just before the ZFS partition. We will now add the UEFI partition with FAT32 as the type, which will use index 4 (da0s4), with sudo gpart add -t efi -s 1024M -a 4K da0:
aptivi@apt-freebsd-01:~ $ sudo gpart add -t efi -s 1024M -a 4K da0 da0p4 added aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 4 efi (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)The ESP partition has been created with index 4. Now, we will create a FAT32 filesystem on da0s4, then copy the UEFI bootloader files to the EFI system partition. Execute the below commands, but make sure that you execute them with the correct disk identifier. Also, check to see if
loader.efior similar exists in/bootwithls /boot/*.efi.aptivi@apt-freebsd-01:~ $ sudo newfs_msdos /dev/da0p4 /dev/da0p4: 2096064 sectors in 65502 FAT16 clusters (16384 bytes/cluster) BytesPerSec=512 SecPerClust=32 ResSectors=32 FATs=2 RootDirEnts=512 Media=0xf0 FATsecs=256 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=2097152 aptivi@apt-freebsd-01:~ $ sudo mount -t msdosfs /dev/da0p4 /mnt aptivi@apt-freebsd-01:~ $ sudo mkdir -p /mnt/EFI/BOOT aptivi@apt-freebsd-01:~ $ ls /boot/*.efi /boot/boot1.efi /boot/loader.help.efi /boot/loader_lua.efi /boot/gptboot.efi /boot/loader_4th.efi /boot/loader_simp.efi /boot/loader.efi /boot/loader_ia32.efi aptivi@apt-freebsd-01:~ $ sudo cp /boot/loader.efi /mnt/EFI/BOOT/BOOTX64.EFI aptivi@apt-freebsd-01:~ $ sudo umount /mntAfter copying the bootloader file, we need to add the ESP partition to the filesystem table file,
/etc/fstab, which FreeBSD uses to automatically mount all the listed filesystems. This is so that bootloader upgrades go smoothly without any failures.Again, use the correct disk identifier that corresponds to your ESP partition. Use sudo
vi /etc/fstabto edit the file interactively to have a chance to review the mistakes before you save the file. For example, we’ve added the below line:/dev/da0p4 /boot/efi msdosfs rw 0 0After that, the file should look like this:
aptivi@apt-freebsd-01:~ $ cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/da0p2 none swap sw 0 0 /dev/da0p4 /boot/efi msdosfs rw 0 0Now, it’s time to shut down your FreeBSD installation. Once the shutdown process has finished, open the virtual machine settings, go to Options > Advanced, and select UEFI in the boot method. Don’t enable Secure Boot, as FreeBSD doesn’t support Secure Boot at all.
If everything goes well, and you’ve executed the commands correctly, you should now be able to see the improved bootloader screen with an actual image of FreeBSD, just like below:
Let FreeBSD boot up to the login prompt, then verify that
machdep.bootmethodsays UEFI:
#bios #FreeBSD #news #Tech #Technology #uefi #updateaptivi@apt-freebsd-01:~ $ sysctl machdep.bootmethod machdep.bootmethod: UEFI -
Converting the FreeBSD 15.0 installation from BIOS to UEFI on VMware
When it comes to changing the boot method from BIOS to UEFI in operating systems, this won’t work by just a single toggle, unless you create a UEFI partition that contains the
EFI/BOOT/BOOTX64.EFIfile on 64-bit computers. UEFI on such computers looks for a valid EFI System Partition (ESP) on your hard disk whose partition table is GPT, mounts it as FAT32, then looks for a boot file mentioned earlier. Then, the boot file gets loaded, which causes the bootloader to load the kernel to RAM, which will then give control to the kernel as the OS loads.When you install FreeBSD to your computer, it lets you partition the disk either manually or automatically. if you have installed it in BIOS mode, and you want to change the boot method so that it uses UEFI, you can’t just change the boot mode in your BIOS setup to UEFI and expect things to work; you’ll need much more than that. We will highlight how we’ve managed to convert a FreeBSD 15.0 installation from BIOS to UEFI in a VMware virtual machine.
We will assume that your partition table is already set to GPT, and that you’ve used ZFS to install FreeBSD, just like below:
Before you proceed, please make sure that you know what you’re doing. Carefully read the disk identifiers and the disk partition tables, including the
geom disk listand thegpart showoutputs, as one mistake or typo is catastrophic. This article also assumes that you have a partition table you can modify to make space for the EFI partition, such as in our case, since UFS and ZFS are not easily shrinkable. If your partition table doesn’t allow you to make some space for the ESP partition, you’ll have to use other methods, and they may not be safe.First of all, boot into your FreeBSD system on BIOS boot mode after installation. Then, if you are logging in as root, remove
sudobefore every command listed in this article. Else, log in to your account with sudo permissions.Now, execute both
geom disk listandgpart show <your disk id>. Your disk IDs and partition indexes may be different, so adjust accordingly to prevent yourself from editing the wrong disk!aptivi@apt-freebsd-01:~ $ sudo geom disk list Password: Geom name: cd0 Providers: 1. Name: cd0 Mediasize: 1359900672 (1.3G) Sectorsize: 2048 Mode: r0w0e0 descr: NECVMWar VMware IDE CDR10 ident: (null) rotationrate: unknown fwsectors: 0 fwheads: 0 Geom name: da0 Providers: 1. Name: da0 Mediasize: 214748364800 (200G) Sectorsize: 512 Mode: r2w2e3 descr: VMware, VMware Virtual S ident: (null) rotationrate: 15000 fwsectors: 63 fwheads: 255 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)As you can see, our FreeBSD installation is found at da0 > freebsd-zfs, index 3 (da0s3). A sour truth is that you can’t easily shrink this partition, but we are easily able to shrink the swap partition to make room for the UEFI partition. So, we have decided to shrink the swap partition, which is index 2 (da0s2). You’ll have to turn off swapping before the shrinking operation with
swapoff /dev/da0s2.aptivi@apt-freebsd-01:~ $ sudo swapoff /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart resize -i 2 -s 1024M da0 da0p2 resized aptivi@apt-freebsd-01:~ $ sudo swapon /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 - free - (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)Now, we have a 1024 MB free disk space just before the ZFS partition. We will now add the UEFI partition with FAT32 as the type, which will use index 4 (da0s4), with sudo gpart add -t efi -s 1024M -a 4K da0:
aptivi@apt-freebsd-01:~ $ sudo gpart add -t efi -s 1024M -a 4K da0 da0p4 added aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 4 efi (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)The ESP partition has been created with index 4. Now, we will create a FAT32 filesystem on da0s4, then copy the UEFI bootloader files to the EFI system partition. Execute the below commands, but make sure that you execute them with the correct disk identifier. Also, check to see if
loader.efior similar exists in/bootwithls /boot/*.efi.aptivi@apt-freebsd-01:~ $ sudo newfs_msdos /dev/da0p4 /dev/da0p4: 2096064 sectors in 65502 FAT16 clusters (16384 bytes/cluster) BytesPerSec=512 SecPerClust=32 ResSectors=32 FATs=2 RootDirEnts=512 Media=0xf0 FATsecs=256 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=2097152 aptivi@apt-freebsd-01:~ $ sudo mount -t msdosfs /dev/da0p4 /mnt aptivi@apt-freebsd-01:~ $ sudo mkdir -p /mnt/EFI/BOOT aptivi@apt-freebsd-01:~ $ ls /boot/*.efi /boot/boot1.efi /boot/loader.help.efi /boot/loader_lua.efi /boot/gptboot.efi /boot/loader_4th.efi /boot/loader_simp.efi /boot/loader.efi /boot/loader_ia32.efi aptivi@apt-freebsd-01:~ $ sudo cp /boot/loader.efi /mnt/EFI/BOOT/BOOTX64.EFI aptivi@apt-freebsd-01:~ $ sudo umount /mntAfter copying the bootloader file, we need to add the ESP partition to the filesystem table file,
/etc/fstab, which FreeBSD uses to automatically mount all the listed filesystems. This is so that bootloader upgrades go smoothly without any failures.Again, use the correct disk identifier that corresponds to your ESP partition. Use sudo
vi /etc/fstabto edit the file interactively to have a chance to review the mistakes before you save the file. For example, we’ve added the below line:/dev/da0p4 /boot/efi msdosfs rw 0 0After that, the file should look like this:
aptivi@apt-freebsd-01:~ $ cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/da0p2 none swap sw 0 0 /dev/da0p4 /boot/efi msdosfs rw 0 0Now, it’s time to shut down your FreeBSD installation. Once the shutdown process has finished, open the virtual machine settings, go to Options > Advanced, and select UEFI in the boot method. Don’t enable Secure Boot, as FreeBSD doesn’t support Secure Boot at all.
If everything goes well, and you’ve executed the commands correctly, you should now be able to see the improved bootloader screen with an actual image of FreeBSD, just like below:
Let FreeBSD boot up to the login prompt, then verify that
machdep.bootmethodsays UEFI:
#bios #FreeBSD #news #Tech #Technology #uefi #updateaptivi@apt-freebsd-01:~ $ sysctl machdep.bootmethod machdep.bootmethod: UEFI -
Converting the FreeBSD 15.0 installation from BIOS to UEFI on VMware
When it comes to changing the boot method from BIOS to UEFI in operating systems, this won’t work by just a single toggle, unless you create a UEFI partition that contains the
EFI/BOOT/BOOTX64.EFIfile on 64-bit computers. UEFI on such computers looks for a valid EFI System Partition (ESP) on your hard disk whose partition table is GPT, mounts it as FAT32, then looks for a boot file mentioned earlier. Then, the boot file gets loaded, which causes the bootloader to load the kernel to RAM, which will then give control to the kernel as the OS loads.When you install FreeBSD to your computer, it lets you partition the disk either manually or automatically. if you have installed it in BIOS mode, and you want to change the boot method so that it uses UEFI, you can’t just change the boot mode in your BIOS setup to UEFI and expect things to work; you’ll need much more than that. We will highlight how we’ve managed to convert a FreeBSD 15.0 installation from BIOS to UEFI in a VMware virtual machine.
We will assume that your partition table is already set to GPT, and that you’ve used ZFS to install FreeBSD, just like below:
Before you proceed, please make sure that you know what you’re doing. Carefully read the disk identifiers and the disk partition tables, including the
geom disk listand thegpart showoutputs, as one mistake or typo is catastrophic. This article also assumes that you have a partition table you can modify to make space for the EFI partition, such as in our case, since UFS and ZFS are not easily shrinkable. If your partition table doesn’t allow you to make some space for the ESP partition, you’ll have to use other methods, and they may not be safe.First of all, boot into your FreeBSD system on BIOS boot mode after installation. Then, if you are logging in as root, remove
sudobefore every command listed in this article. Else, log in to your account with sudo permissions.Now, execute both
geom disk listandgpart show <your disk id>. Your disk IDs and partition indexes may be different, so adjust accordingly to prevent yourself from editing the wrong disk!aptivi@apt-freebsd-01:~ $ sudo geom disk list Password: Geom name: cd0 Providers: 1. Name: cd0 Mediasize: 1359900672 (1.3G) Sectorsize: 2048 Mode: r0w0e0 descr: NECVMWar VMware IDE CDR10 ident: (null) rotationrate: unknown fwsectors: 0 fwheads: 0 Geom name: da0 Providers: 1. Name: da0 Mediasize: 214748364800 (200G) Sectorsize: 512 Mode: r2w2e3 descr: VMware, VMware Virtual S ident: (null) rotationrate: 15000 fwsectors: 63 fwheads: 255 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)As you can see, our FreeBSD installation is found at da0 > freebsd-zfs, index 3 (da0s3). A sour truth is that you can’t easily shrink this partition, but we are easily able to shrink the swap partition to make room for the UEFI partition. So, we have decided to shrink the swap partition, which is index 2 (da0s2). You’ll have to turn off swapping before the shrinking operation with
swapoff /dev/da0s2.aptivi@apt-freebsd-01:~ $ sudo swapoff /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart resize -i 2 -s 1024M da0 da0p2 resized aptivi@apt-freebsd-01:~ $ sudo swapon /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 - free - (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)Now, we have a 1024 MB free disk space just before the ZFS partition. We will now add the UEFI partition with FAT32 as the type, which will use index 4 (da0s4), with sudo gpart add -t efi -s 1024M -a 4K da0:
aptivi@apt-freebsd-01:~ $ sudo gpart add -t efi -s 1024M -a 4K da0 da0p4 added aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 4 efi (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)The ESP partition has been created with index 4. Now, we will create a FAT32 filesystem on da0s4, then copy the UEFI bootloader files to the EFI system partition. Execute the below commands, but make sure that you execute them with the correct disk identifier. Also, check to see if
loader.efior similar exists in/bootwithls /boot/*.efi.aptivi@apt-freebsd-01:~ $ sudo newfs_msdos /dev/da0p4 /dev/da0p4: 2096064 sectors in 65502 FAT16 clusters (16384 bytes/cluster) BytesPerSec=512 SecPerClust=32 ResSectors=32 FATs=2 RootDirEnts=512 Media=0xf0 FATsecs=256 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=2097152 aptivi@apt-freebsd-01:~ $ sudo mount -t msdosfs /dev/da0p4 /mnt aptivi@apt-freebsd-01:~ $ sudo mkdir -p /mnt/EFI/BOOT aptivi@apt-freebsd-01:~ $ ls /boot/*.efi /boot/boot1.efi /boot/loader.help.efi /boot/loader_lua.efi /boot/gptboot.efi /boot/loader_4th.efi /boot/loader_simp.efi /boot/loader.efi /boot/loader_ia32.efi aptivi@apt-freebsd-01:~ $ sudo cp /boot/loader.efi /mnt/EFI/BOOT/BOOTX64.EFI aptivi@apt-freebsd-01:~ $ sudo umount /mntAfter copying the bootloader file, we need to add the ESP partition to the filesystem table file,
/etc/fstab, which FreeBSD uses to automatically mount all the listed filesystems. This is so that bootloader upgrades go smoothly without any failures.Again, use the correct disk identifier that corresponds to your ESP partition. Use sudo
vi /etc/fstabto edit the file interactively to have a chance to review the mistakes before you save the file. For example, we’ve added the below line:/dev/da0p4 /boot/efi msdosfs rw 0 0After that, the file should look like this:
aptivi@apt-freebsd-01:~ $ cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/da0p2 none swap sw 0 0 /dev/da0p4 /boot/efi msdosfs rw 0 0Now, it’s time to shut down your FreeBSD installation. Once the shutdown process has finished, open the virtual machine settings, go to Options > Advanced, and select UEFI in the boot method. Don’t enable Secure Boot, as FreeBSD doesn’t support Secure Boot at all.
If everything goes well, and you’ve executed the commands correctly, you should now be able to see the improved bootloader screen with an actual image of FreeBSD, just like below:
Let FreeBSD boot up to the login prompt, then verify that
machdep.bootmethodsays UEFI:
#bios #FreeBSD #news #Tech #Technology #uefi #updateaptivi@apt-freebsd-01:~ $ sysctl machdep.bootmethod machdep.bootmethod: UEFI -
Converting the FreeBSD 15.0 installation from BIOS to UEFI on VMware
When it comes to changing the boot method from BIOS to UEFI in operating systems, this won’t work by just a single toggle, unless you create a UEFI partition that contains the
EFI/BOOT/BOOTX64.EFIfile on 64-bit computers. UEFI on such computers looks for a valid EFI System Partition (ESP) on your hard disk whose partition table is GPT, mounts it as FAT32, then looks for a boot file mentioned earlier. Then, the boot file gets loaded, which causes the bootloader to load the kernel to RAM, which will then give control to the kernel as the OS loads.When you install FreeBSD to your computer, it lets you partition the disk either manually or automatically. if you have installed it in BIOS mode, and you want to change the boot method so that it uses UEFI, you can’t just change the boot mode in your BIOS setup to UEFI and expect things to work; you’ll need much more than that. We will highlight how we’ve managed to convert a FreeBSD 15.0 installation from BIOS to UEFI in a VMware virtual machine.
We will assume that your partition table is already set to GPT, and that you’ve used ZFS to install FreeBSD, just like below:
Before you proceed, please make sure that you know what you’re doing. Carefully read the disk identifiers and the disk partition tables, including the
geom disk listand thegpart showoutputs, as one mistake or typo is catastrophic. This article also assumes that you have a partition table you can modify to make space for the EFI partition, such as in our case, since UFS and ZFS are not easily shrinkable. If your partition table doesn’t allow you to make some space for the ESP partition, you’ll have to use other methods, and they may not be safe.First of all, boot into your FreeBSD system on BIOS boot mode after installation. Then, if you are logging in as root, remove
sudobefore every command listed in this article. Else, log in to your account with sudo permissions.Now, execute both
geom disk listandgpart show <your disk id>. Your disk IDs and partition indexes may be different, so adjust accordingly to prevent yourself from editing the wrong disk!aptivi@apt-freebsd-01:~ $ sudo geom disk list Password: Geom name: cd0 Providers: 1. Name: cd0 Mediasize: 1359900672 (1.3G) Sectorsize: 2048 Mode: r0w0e0 descr: NECVMWar VMware IDE CDR10 ident: (null) rotationrate: unknown fwsectors: 0 fwheads: 0 Geom name: da0 Providers: 1. Name: da0 Mediasize: 214748364800 (200G) Sectorsize: 512 Mode: r2w2e3 descr: VMware, VMware Virtual S ident: (null) rotationrate: 15000 fwsectors: 63 fwheads: 255 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)As you can see, our FreeBSD installation is found at da0 > freebsd-zfs, index 3 (da0s3). A sour truth is that you can’t easily shrink this partition, but we are easily able to shrink the swap partition to make room for the UEFI partition. So, we have decided to shrink the swap partition, which is index 2 (da0s2). You’ll have to turn off swapping before the shrinking operation with
swapoff /dev/da0s2.aptivi@apt-freebsd-01:~ $ sudo swapoff /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart resize -i 2 -s 1024M da0 da0p2 resized aptivi@apt-freebsd-01:~ $ sudo swapon /dev/da0p2 aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 - free - (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)Now, we have a 1024 MB free disk space just before the ZFS partition. We will now add the UEFI partition with FAT32 as the type, which will use index 4 (da0s4), with sudo gpart add -t efi -s 1024M -a 4K da0:
aptivi@apt-freebsd-01:~ $ sudo gpart add -t efi -s 1024M -a 4K da0 da0p4 added aptivi@apt-freebsd-01:~ $ sudo gpart show da0 => 40 419430320 da0 GPT (200G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 2097152 2 freebsd-swap (1.0G) 2099200 2097152 4 efi (1.0G) 4196352 415232000 3 freebsd-zfs (198G) 419428352 2008 - free - (1.0M)The ESP partition has been created with index 4. Now, we will create a FAT32 filesystem on da0s4, then copy the UEFI bootloader files to the EFI system partition. Execute the below commands, but make sure that you execute them with the correct disk identifier. Also, check to see if
loader.efior similar exists in/bootwithls /boot/*.efi.aptivi@apt-freebsd-01:~ $ sudo newfs_msdos /dev/da0p4 /dev/da0p4: 2096064 sectors in 65502 FAT16 clusters (16384 bytes/cluster) BytesPerSec=512 SecPerClust=32 ResSectors=32 FATs=2 RootDirEnts=512 Media=0xf0 FATsecs=256 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=2097152 aptivi@apt-freebsd-01:~ $ sudo mount -t msdosfs /dev/da0p4 /mnt aptivi@apt-freebsd-01:~ $ sudo mkdir -p /mnt/EFI/BOOT aptivi@apt-freebsd-01:~ $ ls /boot/*.efi /boot/boot1.efi /boot/loader.help.efi /boot/loader_lua.efi /boot/gptboot.efi /boot/loader_4th.efi /boot/loader_simp.efi /boot/loader.efi /boot/loader_ia32.efi aptivi@apt-freebsd-01:~ $ sudo cp /boot/loader.efi /mnt/EFI/BOOT/BOOTX64.EFI aptivi@apt-freebsd-01:~ $ sudo umount /mntAfter copying the bootloader file, we need to add the ESP partition to the filesystem table file,
/etc/fstab, which FreeBSD uses to automatically mount all the listed filesystems. This is so that bootloader upgrades go smoothly without any failures.Again, use the correct disk identifier that corresponds to your ESP partition. Use sudo
vi /etc/fstabto edit the file interactively to have a chance to review the mistakes before you save the file. For example, we’ve added the below line:/dev/da0p4 /boot/efi msdosfs rw 0 0After that, the file should look like this:
aptivi@apt-freebsd-01:~ $ cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/da0p2 none swap sw 0 0 /dev/da0p4 /boot/efi msdosfs rw 0 0Now, it’s time to shut down your FreeBSD installation. Once the shutdown process has finished, open the virtual machine settings, go to Options > Advanced, and select UEFI in the boot method. Don’t enable Secure Boot, as FreeBSD doesn’t support Secure Boot at all.
If everything goes well, and you’ve executed the commands correctly, you should now be able to see the improved bootloader screen with an actual image of FreeBSD, just like below:
Let FreeBSD boot up to the login prompt, then verify that
machdep.bootmethodsays UEFI:
#bios #FreeBSD #news #Tech #Technology #uefi #updateaptivi@apt-freebsd-01:~ $ sysctl machdep.bootmethod machdep.bootmethod: UEFI -
I'm finding D. F. Parkhill's 1966 book "The Challenge of the Computer Utility"[0] to be endlessly fascinating. It provides quite a detailed snapshot of the state of computer development. It was written at the tail end of the "Patent wars of 1962–1966"[1], yet there's no mention of integrated circuits, nor "Micrologic" (an early name for ICs).
In the discussion on memory technology, the book contains several tables as two-page spreads, which are awkward to assimilate when reading the book as a PDF on a small screen. I've included the relevant pages here as two-up images for my own benefit as much as yours!
The information summarised in the tables is fascinating. In the table "Classification of Memories by Function", much of the language is familiar to a modern reader (compared to, say 1940s discussions of 'organs'); CPU registers, RAM and persistent storage are recognisable:
Storage register: Usually a one- or two-word memory used for the temporary storage of some quantity before it is transferred to another memory or circuit; i.e., accumulator register, multiplicand register, index register, etc.
Internal working memory: The main working memory of the computer, in which intermediate results and instructions are stored.
Mass data memory: A high-capacity storage system, external to but under the control of the computer, used for the storage of bulk data such as tables, files, and sub-routines.
...yet the "Classification of Memories by Operating Characteristics" reflect mid-1960s (or older) technologies:
Regenerative: A memory whose contents gradually vanish unless they are periodically regenerated, e.g., a Williams tube.
Modern RAM is of this type!
Read only: A memory whose contents can be changed, if at all, only by off-line human intervention, usually involving rewiring, the removal or insertion of plugs or the punching of holes, e.g., a card capacitor store, diode matrix, etc.
"Memory Devices" is fascinating. Here's just one row:
Type: Magnetic core
Physical Principle: remanent magnetization on small cores of square hysteresis-loop
ferrite material
Application: high-speed internal memory, registers, and buffers
Status: standard memory for majority of all computers in all price classes
Remarks: in addition to the normal coincident-current destructive readout single-core/bit systems embodiments there are also multiaperture core systems such as Biax and the transfluxor systems, and multiple-core/bit systems also wired-core read-only systemsBiax? Transfluxor systems?
...and what on earth was "Magnetic rod memory"?
Type: Magnetic rod
Physical Principle: magnetic coupling via removable ferrite rods between loops in a
woven mesh
Application: read-only very high-speed auxiliary internal store
Status: in use on Univ. of Manchester MUSE, Ferranti ATLAS computers, and several Italian machines
Remarks: retains advantages of wired-core memories but permits easy modification. Highest speed operating memory of comparable size to date, (0.15 microsecond access time, 8192 words, 48 bits)...sounds promising! Why haven't I heard of this technology? Check Wikipedia[2]:
Rod memory is one of the many variations on magnetic core memory that attempts to lower costs by automating its manufacturing. [...] Like many similar concepts [...] rod memory was competing for the role of taking over from core when the first semiconductor memory systems wiped out the entire market in 1970.
Oof.
I'm finding it very much worthwhile to read not only older histories of computing, but also old books that provide a survey of the state of the art at a given time.
[0] https://archive.org/details/challengeofcompu0000park
[1] https://en.wikipedia.org/wiki/Invention_of_the_integrated_circuit#Patent_wars_of_1962–1966
[2] https://en.m.wikipedia.org/wiki/Rod_memory#retrocomputing #vintagecomputing #computerhistory #historyoftechnology
-
I was researching #LacticAcidBacteria, and came across this article. It could be game changer for those of us who have issues digesting #SoyProducts!
These three plant bacteria turn #soy yogurt into a safer, creamier product while stripping out troublesome sugars
by Technical University of Denmark
edited by Lisa Lock, reviewed by Andrew ZininApril 21, 2026
"Researchers at DTU have found that a particular type of lactic acid bacteria displays considerable potential for producing plant-based yogurt alternatives. The bacteria can inhibit potentially harmful bacteria and break down sugars that cause stomach discomfort.
"#PlantBased alternatives to yogurt are often made using bacterial cultures employed in yogurt production, even though plant-based raw materials differ markedly from milk. For example, there is no lactose in plants, and plant proteins are more difficult to break down than milk proteins.
"Researchers from DTU, in collaboration with colleagues at Chalmers University of Technology and the University of Cambridge, therefore investigated whether lactic acid bacteria isolated from vegetables and fermented foods, and often found in the intestines of humans and animals, might be better suited to the task.
"The research, which has been published in the Journal of Food Protection, showed that three plant-isolated enterococci (a type of lactic acid bacteria) were highly suitable for producing a soy-based yogurt alternative.
" 'The bacteria did more than simply ferment the soy drink. They were also able to suppress undesirable bacteria, break down unwanted sugars, and reduce phytic acid, that make it difficult for the body to absorb minerals such as iron, zinc, magnesium and calcium,' says postdoctoral researcher Belay Tilahun Tadesse of the DTU National Food Institute.
"Improved food safety and shelf life
In the experiments, the lactic acid bacteria grew efficiently in the soy drink and lowered the pH, making the product acidic and yogurt-like. The most promising candidates acidified rapidly, even without the addition of sugar."The bacteria were also able to ferment at a relatively high temperature, at which many undesirable microorganisms, including pathogenic ones, do not thrive. This could help to extend shelf life and improve food safety.
" 'We observed that three of the bacterial strains quickly took control of the fermentation in the soy drink. This is important because stable and effective acidification is one of the first requirements when developing a robust product,' says Belay Tilahun Tadesse.
"The three most promising bacterial strains showed a broad antimicrobial effect against pathogenic bacteria, including listeria and E. coli. This makes them particularly interesting, given the high priority placed on food safety.
"In addition, the bacterial strains tested were able to produce compounds that contribute to texture, making the yogurt creamier.
"Overall, the research findings show that the isolated enterococci have a stronger effect against undesirable microorganisms and a better acidification capacity than enterococci already on the market and approved for use in food and feed.
" 'We have shown that the lactic acid bacteria tested are safe. However, further research is needed, for example, to determine how flavor is affected and whether plant raw materials other than soy can be used. Also, before they can be used in Europe, they must be approved by the European Food Safety Authority (EFSA),' says Associate Professor Christian Solem of the DTU National Food Institute.
Findings:
- Four safe enterococci were investigated as potential starter cultures for the production of soy-based yogurt alternatives. Three of the bacterial strains proved promising (Enterococcus faecium BT0194, Enterococcus lactis BT0173_2, Enterococcus lactis BT0167_2).
- The bacteria were able to acidify soy milk and produce a yogurt-like product.
The three best candidates combined rapid fermentation with the ability to inhibit the pathogenic bacteria tested.
- The results show that the bacteria can break down undesirable sugars, which can cause digestive discomfort, and phytic acid, which can inhibit the absorption of iron, zinc, magnesium and calcium.
- The bacteria also showed properties that may be relevant to achieving a thicker, creamier consistency.
Further research and EU-approval is needed before the bacteria can be used in finished starter cultures."https://phys.org/news/2026-04-bacteria-soy-yogurt-safer-creamier.html
#SolarPunkSunday #SoyProducts #Vegan #VeganYogurt #SoyYogurt #Fermentation
-
CW: OpenSim's famous Universal Campus and a picture of its main building; CW: long (62,514 characters, including 1,747 characters of actual post text and 60,553 characters of image description)
It's one of the most well-known OARs, and I guess every OpenSim user with a little more experience has come across at least one instance of it: the Universal Campus.
It was built by Michael Emory Cerquoni, an early OpenSimulator developer first known in-world as Nebadon Izumi who released his creations under the Oni Kenkon Creations brand, and who is also the builder of Wright Plaza, OSgrid's famous old freebie sim. The project was a collaboration with the now-defunct Center for Computer Games and Virtual Worlds at the University of California in Irvine, and it was designed and intended to act as an actual virtual campus.
Due to the size of the project as a whole and the main building in particular, Nebadon built the Universal Campus as a mega-region, an OpenSim hack from around 2009 that made it possible to stretch a build across multiple standard regions, in this case two by two. So the Universal Campus is not one OAR, it's four, one for each region.
The first publicly available version of the Universal Campus was released in 2011, so as futuristic as it looks, it is already roughly 13 years old.
The main building shown here is outright gargantuan. It is still one of the biggest buildings around the Hypergrid. At a length from north to south of over 200 metres, it actually had to be built across a region border. Today, a decade after the introduction of varsims, this is no longer a problem.
Although it's possible to walk from everywhere on the island to everywhere else, a network of custom-made teleporters with ten destinations reduces travel time greatly. One destination is right in front of the main building, and two more are inside, the only two in-door destinations, such is the immense size of the building.Image description
The picture in this post is a digital rendering from inside a 3-D virtual world based on OpenSimulator, generated in a regular client for this kind of virtual worlds, also known as a viewer, using shaders and generated shadows, but without ray-tracing. It shows the main building of the Universal Campus as mentioned in this post.What OpenSimulator is
OpenSimulator, OpenSim in short, is a free, open-source, cross-platform server-side re-implementation of the technology of Second Life. The latter is a commercial 3-D virtual world created by Philip Rosedale, also known as Philip Linden, of Linden Lab and launched in 2003. It is a so-called "pancake" virtual world which is accessed through desktop or laptop computers using standard 2-D screens rather than virtual reality headsets. Second Life had its heyday in 2007 and 2008. It is often believed to have shut down in late 2008 or early 2009 when the constant stream of news about it in mainstream media broke away, but in fact, it celebrated its 20th birthday in 2023, and it is still evolving.
OpenSimulator was first published in January, 2007. It was made possible when, in 2006, Linden Lab open-sourced the official Second Life viewer, which is how client applications for Second Life and OpenSim are called, thus laying its viewer API open. This led to the development of third-party viewers. After the development of third-party viewers had started, OpenSim was developed against them and the Second Life viewer API. It does not have its own official viewer, but most of the popular third-party Second Life viewers are compatible with OpenSim as well.
Unlike Second Life, OpenSim is not one monolithic, centralised world. It is rather a server application for worlds or "grids" like Second Life which anyone could run on either rented Web space or at home, given a sufficiently powerful computer and a sufficiently fast and reliable land-line Internet connection. This makes OpenSim as decentralised as the Fediverse. The introduction of the Hypergrid in 2008 made it possible for avatars registered on one OpenSim grid to travel to most other OpenSim grids.What grids, regions and sims are
Second Life and the OpenSim-based worlds are called "grids" because they are flat worlds divided into square areas of 256 by 256 metres each which is roughly 280 by 280 yards. These areas are called "regions". Regions can be empty, in which case they're shown as ocean, but they can't be entered. In order for any actual content to exist in a region and for avatars to be able to enter regions, a simulator, sim in short, has to run in a region.
In Second Life, a sim is always one region. OpenSim had a hack from 2009 on that was called "mega regions". It exploited a feature in third-party Second Life viewers that was not used by Second Life itself, and that made it possible to extend a sim across multiple regions in a square arrangement. The Universal Campus itself is built as a mega region of two by two standard regions. Since this hack was buggy and limited, varregions, now known as varsims, were first developed for the OpenSim fork Aurora-Sim. Eventually, they were officially introduced into OpenSim in 2014. They theoretically allow for a sim to stretch across as many as 32 by 32 standard regions with no borders in-between.
Unlike Second Life, OpenSim also has the option to save entire sims into archives and load them from archives, so-called OARs which is short for OpenSimulator Archives. Many of these are available online. Mega regions are saved in one OAR for each region, and as the Universal Campus was designed as a mega region and pre-dates varsims, it is divided into four individual OARs. A varsim, on the other hand, can be entirely saved in and loaded from one OAR.Where the pictures were made
Particularly, the picture was created at UniCampus, an instance of the Universal Campus in OSgrid (https://osgrid.org) owned by one of the grid admins. Launched in July, 2007, OSgrid was the first public OpenSim grid and intended as a testbed for OpenSim's development. Next to Wolf Territories Grid from 2021 (https://wolfterritoriesgrid.com/, https://www.wolf-grid.com/), it is one of the two biggest OpenSim grids; each one of these two grids has more landmass than Second Life.
OSgrid also adopted the early OpenSimulator slogan "The Open Source Metaverse" immediately after its launch. It still uses that slogan, and the term "metaverse" has been commonly used by the OpenSimulator community ever since.Camera position and general setting
The picture was taken from a point of view higher than the eyes of an avatar, ca. three metres or ten feet above the ground. The position of the camera is near the inner edge of a wide path that describes an eccentric path of three quarters of a circle around the likewise circular main landing zone as well as just a bit south of the southern edge of a wide, straight path that least eastward fromo the main landing zone. The direction of view is almost northward and slightly to the west. Also, the camera is tilted upward by a few degrees due to its low position and the height of the building.
All dimensions in this description are estimated.Main building, southern end and main entrance
The main building of the Universal Campus is the centre-piece of the image. It is a gigantic building that towers high above all surrounding trees, although it is not actually a tower, nor does it have one. It is rather a lengthy building that stretches from north to south. In the image, the middle of its front is at one third of the width of the image from the left-hand edge, reaching to the left as far as one sixth of the width of the image from the left-hand edge. The conference hall at the far end is at one third of the width of the image from the right-hand edge with parts of the building almost reaching the edge. Its supporting structure mostly shows textures with highlights included which suggest that it was made of stainless steel. Otherwise, glass with a horizontal gradient between lighter grey and darker grey on the outside and a plain darker grey tint on the inside is the most commonly used material. The building does not have any exterior walls.
The southern entrance, the main entrance to the building with the main landing area right outside the doors, is surrounded and marked by a tall geometrical structure which is rather complex in spite of only having straight edges. It resembles a spaceship from an early video game as roughly as it resembles the letter A or an upside-down V. It is almost perfectly symmetrical around both vertical planes. Its medium grey surfaces are untextured otherwise and don't mimic any particular material.
On each far side is a vertical "column" with a footprint with the shape of a trapeze, very roughly four metres or thirteen feet wide and four metres or thirteen feet thick. The short side of the trapeze, measuring only a bit over three and a half metres or twelve feet, is on the outside. These columns rise up some nine metres or 30 feet on the inside. The top slopes downward towards the outsides, so the columns are less than eight or about a half metres or 27 feet high on the outside.
The centre and top piece of the structure, right above the doors and roughly seven and a half metres or 25 feet above the ground, is roughly ten metres or 33 feet tall and roughly four and a half metres or fifteen feet wide. It has a rectangular cross-section when looked at from inside the building or from the main landing area, but a heptagonal cross-section when looked at from the sides. Its seven visible faces are all rectangular. At the bottom, it is roughly five metres or roughly sixteen and a half feet thick with only one surface. The top is roughly five metres or roughly sixteen and a half feet thick, too, but with a pair of surfaces of the same size at an angle of under five degrees, forming a slight ridge at the top.
The inner and outer sides of this centre-piece are each made up from an upper surface which is a square and sloped outward from the top and a lower surface which is a rectangle and sloped outward from the bottom. They meet at an angle of roughly 20 degrees.
On each side, two irregularly-shaped structures of seven surfaces each connect the seven edges of the sides of the centre piece with the four edges of the inner sides of the columns. Six of these surfaces are more or less slightly twisted because they connect edges at different angles with each other. The only planar surface is the one that connects the bottom edges which are all horizontal.
Two pairs of double glass doors make up the actual main entrance. Each door blade is about two and a half metres or eight feet wide and about five and a half metres or eighteen feet high. The glass has the same horizontal gradient texture both on the inside and on the outside so that all door blades can be identical. The only difference between the door blades is whether the door script opens them clockwise or counter-clockwise. The texture is arranged in such a way that there are narrow lighter areas along both vertical edges when the hinge is on the left, and there is a wide lighter area on the lock side and a narrow lighter area on the hinge side when the hinge is on the right. The narrow sides of the door blades are opaque when looked at from the outside but, due to OpenSim's limitations, not when looked at from the inside. The doors open inward by 90 degrees, and they do so when they're clicked, or when an avatar approaches them. They can be closed manually by clicking them again, otherwise they close automatically after ten seconds.
Each door blade has one simple door handle on the inside and the outside tinted the same generic grey as the large structure surrounding the doors. The handles are only a few centimetres wide. The grips have a square cross-section. Above and below, there are thicker parts which connect the grips to the doors while being flush with them on the sides and facing away from the door blades. Altogether, each handle is half a metre or one and five eighths feet long. The top of each handle is about one and three quarters metres or five and three quarters inches above the ground.
Between the two door pairs and on their sides, there are altogether three columns with a rectangular footprint of roughly 90 centimetres or three feet width by 30 centimetres or one foot thickness, each roughly seven and a quarter metres or 24 feet tall. Above each pair of doors, they are connected with a horizontal beam that fits between the top surfaces of the columns and the top edges of the doors while being half as thick as the columns.
The spaces between the large structure around the entrance, the columns and the horizontal bars are filled with glass panes.
The whole door ensemble does not sit exactly at half the thickness of the large structure. It is shifted outward by about half a metre or one and five eighth feet.
A structure shaped like an almost flat pyramid, but with a flattened top, is mounted upside-down against the bottom surface of the centre of the large structure around the main entrance. The glass pane above the doors passes right through its middle. A square light is installed on the flattened top which is actually the bottom now, illuminating the entrance area when it is dark. Otherwise, this flat structure has the usual brushed stainless steel texture which appears rather dark here.
On each side of the entrance area, a cylindrical column with a diametre of roughly four metres or thirteen feet rises some 20 metres or 66 feet upward. Each column is slightly tilted inward along the longitudinal axis of the building and outward to the sides. On each side, farther outside, there is another, even taller column, easily over 30 metres or 100 feet tall. These columns are tilted along the longitudinal axis of the building at the same angle, but outward to the sides at a smaller angle. They make up the southern corners of the main building. All four columns are textured to resemble brushed stainless steel.
A semi-cylindrical structure connects the complex main entrance structure through the inner columns with the outer columns on the ground. Its diametre is roughly 2.40 metres or eight feet. It uses the usual brushed stainless steel texture, but the brushing direction is radial, and the texture is stretched along the axis of the cylinder so much that its nature is anything but obvious.
Between the columns and the main entrance structure, there are three more glass panes. The panes between the inner and outer columns are mounted halfway into the building whereas the one around the main entrance structure is almost all the way inside the building. Three horizontal stainless steel rods of about 30 centimetres or one foot lead through each pane. They are roughly evenly spaced, but closer to the upper and lower edges of the glass panes than to each other. The rods that pass through the panes between the columns grow to a diametre of roughly 45 centimetres or one and a half feet towards their ends before ending in short cylinders with diametres of about 1.80 metres or six feet.
On top of the inner columns and partly intersecting with the outer columns, a massive, upright, flat structure with stainless steel textures serves as the southern end of the roof. It has to be about 50 metres or 160 feet wide, about 15 metres or 50 feet tall and about 3.60 metres or 12 feet thick. The front and rear surfaces are slightly countersunk with margins of slightly varying thickness all around except for the bottom. The top edge has a fairly short horizontal section of ten metres or 33 feet in the middle from which it curves downward in sections of ellipses. The bottom edge is almost horizontal and leads to corners from which short 45-degree slopes lead upward. The slopes from the bottom and the ellipses from the top meet in rounded corners. Unlike the columns below, this roof end is mounted vertically.Main building, Universal Campus logo
The roof end also carries the logo of the Universal Campus, sitting at half the height of the outer countersunk area of the roof end and ever so slightly to the left of its middle. Its base is a circular, conical structure with a diametre of ten metres or 33 feet, the sloped edge being black. The actual logo is part of the texture on the front surface of the cone. It has a diametre of about seven metres or 23 feet.
The inner 80% of its diametre are filled with a gradient from medium dark grey at the top to medium light grey at the bottom. Three shaded three-dimensional primitive shapes are displayed in this area, a cube with one corner each pointed to the top and the bottom at the top, a sphere in the bottom left, a tetrahedron in the bottom right. At the bottom of this area, "Patefacio radix" is written in medium dark grey letters, in a wide sans-serif typeface and in what is likely to be small caps. It is Latin for "open source". Below, the Roman number MMXI, 2011, marks the year of the first public release of the Universal Campus.
A thin dark grey circle separates this area from the outer 20% which are light grey. Re-using the same typeface as in the inner part, and in dark grey with blue shading, "Universal" is written at the top and "Campus" at the bottom, both capitalised with otherwise small caps and following the circular shape of the logo.
29 identical black circular spots, very roughly evenly spaced, protrude from underneath the logo all around it by a bit more than their own diametre. They separate the logo from the surrounding white area which, in turn, is surrounded by the aforementioned black conical slope.
The Universal Campus logo is illuminated from below. The light source sits in a slot in a cylinder on top of the main entrance structure, about two metres or six and a half feet long and a diametre of about 30 centimetres or one foot. This cylinder has spherical end pieces, and the whole arrangement has a simple, glossy, medium grey surface.Main building, side
Each side of the building, all the way to the conference hall at the northern end, is tilted outward at the same angle as the corner columns around the front and much simpler in design. Starting north of the side entrances right behind the front, a semi-cylindrical structure on the ground, similar to those at the front, extends northward towards the conference hall, only interrupted by another set of side entrances shortly before the conference hall. Farther up, there is another cylindrical structure of the same diametre and with the same texture on each side, but with a cutout on the upper inner side of a bit over 90 degrees to help carry the upper floor on the right, actually semi-cylindrical on the left and stretching all the way between the columns on both sides. Even farther up, right below the roof, another cylindrical structure is installed, but cut out on the inside by 60 degrees upward and 75 degrees downward.
Eight cylindrical beams with a diametre of roughly 90 centimetres or three feet and the usual stainless steel texture serve as the near-vertical supports. Nearly evenly spaced, except for the first being closer to the second, and running from the bottom to the top, they divide each side into eight full-sized sections and one small section right in front of the conference hall.
As mentioned above, the building has four sets of side entrances. One on each side is right behind the front behind the colour and the first support beam, one on each side is just south of the conference hall between the seventh and eighth support beams. The doors are identical to the ones that make up the main entrance, but each side entrance has three pairs of doors instead of two.
Between the three double doors, there is a filler column with a rectangular vertical cross-section, a width of about 45 centimetres or one and a half feet and a thickness at ground level that is slightly less than the width. While the inside surface is vertical, the outside surface is sloped in parallel to the outward tilt of the side of the building. Similar but wider columns are installed on the sides of the doors, being the closest that the building has to outer walls. Another structure with a rhomboid north-south cross-section sits on top of each set of four pillars, connecting them and carrying a glass pane on top. Its inside surface is sloped outside, its outside surface has a stronger slope than the outer side of the building. Also, its texture is lighter than that of the pillars.
Everything else between the vertical and horizontal structures on the sides of the building is filled with glass panes, all with a light vertical streak down their centres, blurred by the gradients on its sides.Main building, roof
On the visible right-hand side of the building, right above the positions of the first seven of the eight support beams, curved brackets reach down from the roof, holding the upper horizontal cylindrical beam from the outside. They appear to be dark grey, but they actually have the usual brushed stainless steel texture. These brackets are installed on both sides across the outer parts of the roof, and slightly larger versions span across the centre of the roof as can be seen from below through the windows of the building.
A little bit of roof is visible underneath these brackets. The roof has four identical sections from its end to the conference hall. All are mostly planar with a rounded outer side. From above, they have the most elaborate surface of the whole building. It is almost black. A bump map or a normal map divides it into slightly embossed and slightly less rough rectangles, slightly countersunk and slightly rougher rectangles and the another bit smoother lines in-between. The rectangles are of varying size. They have an aspect ratio of four to five along the building's longitudinal axis by three to four along its transversal or vertical axis. In addition, the texture on these roof segments is glossy, giving it a plastics-like appearance. From below, however, it is smooth and transparent with the same tint of grey as the glass panes.
Between the inner and outer sections of this kind on each side, there is one long textured strip, on top of which rest the larger brackets across the centre of the roof. Its texture is slightly glossy, but hard to identify as resembling something: It consists of stretched rectangular fields of medium grey, arranged transversally, with very thin dark grey outlines, surrounded and interrupted by narrow areas of medium light grey which are emphasised by bump-mapping or normal-mapping which makes them appear embossed as well as specular-mapping which makes them appear glossier than the rest. Within these fields, but at some distance from its outlines, there are more nested rectangles, from outermost to innermost: medium dark grey, dark grey, medium dark grey, medium grey and slightly bumpy, medium light grey and bumpier as well as appearing to be slightly countersunk, light grey and appearing to be even more countersunk. This pattern repeats over a hundred times over the length of the southern part of the building. It is on the bottom face of these two strips as well, but not on its narrow sides.
The very middle of the roof is simply one long glass pane. It is separated from the dark sections to its side by what seems to try to resemble rectangular aluminium profiles with the long sides oriented vertically. On each side, at a height right above the glass pane, there is a stripe that glows white in the dark while not actually being a light source; this is another OpenSim limitation.Main building, domed conference hall
Beyond these parts of the building, a large geodesic dome rises up, below which is the conference hall. It is assembled from triangular glass panes in seven rows, four of which the image shows from outside, and untextured light grey cylindrical rods. The glass panes have the same tint or texture on both sides. The ones in the two bottom rows have the usual grey tint. The two rows above have the same lighter texture which most of the other panes on the building have on the outside. Unusually, this geodesic dome has no points at which five triangular panes meet. On all points which aren't on the bottom edge, six panes meet except for the very top where only four panes meet.
The dome is surrounded by a huge, disc-like object of varying thickness, but very thin on the eastern side which is revealed in the image, that is well over a hundred metres or 330 feet in diametre. It is bascially an eccentrical cone with a circular outer shape and a way off-centre hole towards it slightly slopes down. The geodesic dome mostly rests on the edge of the hole which means that the outer edge of the disc is shifted way to the east. There is also a cutout towards the south all the way to the circular hole, uncovering the roof of the southern part of the building. The western edge of the cutout deviates from being parallel to the longitudinal axis of the building by a few degrees to the right. The eastern edge of the cutout points at the centre of the circular hole.
Along the outer edge, the top surface of the disc is tapered over a distance of about seven and a half metres or 25 feet so that the outer edge is almost razor-sharp. For unknown reasons, the western edge of the cutout shows a similar sharpness by being tapered at the bottom.
The upper and lower surfaces of the disc shows variations of the usual brushed stainless steel texture. The cutout faces, however, show a dark grey texture with four darker grey grooves upon zooming in.
Right below, there is a second, similar asymmetrical cone, but smaller in diametre, even thinner and with a bigger slope. Its outer edge touches the first disc from below. Being dark coffee brown, it is the only outward part of the building that is not a shade of grey. Also, while it is half-transparent like tinted glass from above, all other surfaces are opaque and glossy, so it's possible to look through it from above, but not from below.
The inner edge of the brown cone connects to a ring around the conference hall at about roof height on the outside or the top. The ring describes about three quarters of a circle with the opening oriented towards the southern parts of the building. It has a slightly darker tint on its brushed stainless steel texture.
The ring also serves as the upper connection between the seven cylindrical pillars that surround the conference hall, four of which are hidden behind the building itself in the image. They have a diametre of about six metres or 20 feet, and they vary in length by a few metres. They all stand on the ground, and they are sloped outward from the conference hall, partly intersecting with the two cones above.Main building, interior
Since the outer surfaces of the building are mostly glass, more can be seen inside the building than just the underside of the roof. Horizontal support cables are mounted between the textured roof strips and underneath each of the seven central roof brackets. They are similar to those through the side window-panes in the front, but longer and thinner. From all of these but the southernmost one, two darker, thinner and shorter support cables lead downward. Another pair is mounted farther south against the textured roof strip on its side. These fourteen vertical cables support the upper floor on its inner sides.
The upper floor is roughly U-shaped with the opening towards the south and the main entrance. It also serves as the ceiling for the ten seminar rooms on the ground floor, five on each side, above each of which it extends inward with a semi-elliptic shape. Its bottom side, the ceiling, is light grey. It has a bump map or a normal map which not only roughens it up but also divides it into octogonal pads with rectangular spaces in-between. The vertical surfaces towards the aisle have a texture that simulates small, square, dark grey panels in four rows held in place with one rivet in each corner. The seams between the panels are black. On some surfaces, the textures have obviously been stretched horizontally, making the panels rectangular, the rivet heads elliptical and the vertical seams wider than the horizontal seams. The upper side with its bluish-grey patterned carpet texture cannot be seen in the image.
The entire inner edge of the upper floor is protected by a railing. It consists of one mostly light grey rail with a rectangular cross-section on the floor, an identical rail that is a bit over 1.20m or four feet high above the floor and a number of small, slightly darker grey vertical beams with a square cross-section which connect them. The whole railing lacks texture and gloss.
Of the seminar rooms on the right, only the separation walls can be seen through the panes on the right of the building. These have mostly tan textures but with coarse and blurry stripes of various greys at the top and bottom.
Through the right-hand pane in the front, two seminar rooms on the left are visible, the rooms A7 and, north or to the right of it, A8. The seminar rooms A7 through A9, as well as A2 through A4 on the right, have a variety of untinted glass doors each: one in the northern corner towards the central aisle, another one in the southern corner, and one in each of these two corners that leads to the neighbouring seminar room. Apart from the lack of tint or texture, the glass doors are identical to the entrance doors.
The aisle-side wall of each seminar room can be described as convex although it is not rounded. It rather consists of four segments separated by narrow vertical columns with square footprints. They are connected by a number of horizontal rods with a rectangular cross-section. One is always right under the ceiling. Three more are roughly at 65%, 50% and 33% height above the ground. For the outermost segments, this is the height of the glass doors, so underneath the rod at 33% height above the ground, they have another vertical rod to separate the doorway from a narrower piece of wall. At some 12 or 13% height above the ground, there is another rod, and the last one is on the ground, in both cases except where there's a doorway.
The space between the latter two horizontal rods is filled with a wooden panel, showing the same reddish wood grain as all wooden-textured furniture in the building and on the sim. The other spaces have untinted glass panes in them. To illustrate the dimensions: The wooden panels are about 1.80 metres or six feet high, so for realistically-sized avatars, the only way to look into or out of the seminar rooms is through the doors.
On the vertical rod next to each aisle door, a sign with the room number is installed. The sign itself is simple, flat and rectangular. It is entirely black except for the white room number written on it in a regular Helvetica sans-serif typeface. It is attached through a glossy white cuboid that serves as a very simple mounting bracket.
Furthermore, there is an easel with a blank whiteboard standing next to each aisle door. It is a simple construction from cuboids, cylinders, a tetrahedron at the top and small spheres for feet and joints. Apart from the whiteboard which is mostly white and untextured except for the plywood texture on the back, the whole thing shows a brushed stainless steel texture with some gloss added.
Inside each seminar room, visible through the window-pane behind the easels, there is a whiteboard which is a much more elaborate construction. Each room has two of these. There is also a dark grey HDTV screen attached to the middle one of the three columns with a wall-mount swivel arm. A bit of furniture is barely visible through the closed glass door: Each room has seven quite long tables with elliptical ends, one long light grey foot on two legs with a wooden plank between them and a dark grey surface surrounded by wood grain. Six of these tables are for seminar participants with two chairs each. These chairs consist of two wooden parts in the shape of a stretched U with rounded sides and dark grey padding, two small metal rods connecting them and four conical metal legs. The seventh table is for the teacher whose chair is identical to those for the participants, only that it has an extra headrest in the same style as the rest of the chair plus a pair of elliptical armrests.Main building, further interior objects
The large object that appears to be standing in front of seminar room A7 is a teleporter that was specifically designed for the Universal Campus due to its size. It is actually standing in the middle of the aisle, the control panel turned southward towards the main entrance. It is mainly a rectangular console on a massive angled stand. The frame around the control panel included, the console itself is about one and a half metres or five feet high and about three metres or ten feet wide. Above the control panel, there are two tiny spherical light sources on small trapezoid arms. They actually emit light to illuminate the control panel of the teleporter.
The control panel is labelled in a typeface not entirely dissimilar from Futura. On its left, there is a top-down view of the entire Universal Campus with the north oriented to the left. It shows the various buildings and other places. Ten circular markers are placed on the map, all with a glossy grey frame and a black number from one to ten. All markers but one are yellow; one is always glow-in-the-dark green. In this case, it is marker number 6 to the right of a rectangular building with a circular extension in its bottom corner. Below the aerial view, there is another, slightly bigger yellow circular marker, but with a red frame surrounded by a glowing red aura while not glowing itself. It has the number 2. Next to it is a label with an arrow-like point to the left that reads, black on white, "This is currrent (sic) location". It is up to the user, however, to find the marker with the same number on the map.
On the right of the control panel, there is a touchable list of destinations with their numbers in markers of the same size as the glowing red one in the bottom left, but with the usual shiny grey frame. The labels with the names of the destinations are identical in style with the current location marker:- 1: Main Landing Zone
- 2: Main Building Lobby
- 3: Main Conference Hall
- 4: Recreation and Conference Center
- 5: Observation Deck and Sea Lab
- 6: Science Lab and Conference Room
- 7: Campfire and Beach Zone
- 8: The Light House
- 9: Engineering Conference Center
- 10: Helicopter Landing Pad
The background of the control panel is glossy medium grey. The rest of the structure is glossy with a gunmetal-like dark grey texture.
There are also quite a few potted plants inside the building. On the sides of the teleport panel, there are two identical açaí palms in square terracotta pots with wide rims. Like the other potted plants, these mostly dark green plants with long pointy leaves are kept at an indoor-compatible size, namely about three and a half metres or eleven and a half feet tall. Also, like the other potted plants, they are made of only four flat and surfaces with partially transparent pictures of the plant on them, arranged in angles of 45 degrees to one another.
Through the main entrance, a slightly taller Jacaranda tree with dark lilac flowers can be seen. It is planted in a bulgy terracotta pot with a smaller rim than the square ones which is supposed to be round. In order to reduce the impact on graphics performance, however, the pot is actually hexagonal. There is also one of the two angled flights of wooden stairs leading to the upper floor and, outside the building again, a small but wide maple tree with brown autumn leaves. A look through the side entrance to the right shows an even slightly taller Bougainvillea with purple flowers. Above these doors, the underside of the upper half of the other flight of stairs is shown. The steps are not covered from below, and the spaces between them are open.
Some of the unusual dividers on the upper floor can be seen through the windows, too. The main element is a half-arch of a bit over 90 degrees from the floor to the tilted structures on the side of the building. Its core is a thin, roughly 1.80 metres or six feet wide circle segment with an inner radius of about four and a half metres or fifteen feet and a dark grey texture which resembles some kind of rock. It is lined on both the inside and the outside with arches with a brushed stainless steel texture. The inner arch is about 45 centimetres or one and a half feet wide, the outer arch is slightly narrower, and both are significantly thicker than the core arch. From both ends of the arch, narrow brushed stainless steel bars extend to the centre of the arch where they meet. They are thinner than the stainless steel arches, but thicker than the core arch. Finally, the area between the two bars and the inner arch is filled with a grey tinted glass pane.
On each side of the upper floor, there are six such dividers. The southernmost ones are installed right above and north of the stairs and attached directly to the vertical structures on the sides. Between the other ten and the side structures, there are horizontal extensions in much the same style. The arches themselves are extended to the sides by two rhomboids in the same style, a longer one of some four and a half metres or fifteen feet with four cylindrical connectors of roughly 60 centimetres or two feet of diametre on its corners underneath which avatars can pass and a shorter one of some three metres or ten feet which connects to the vertical structures. The latter one also has a third stainless-steel-framed rhomboid all the way down to the floor underneath itself which is filled with a grey tinted glass pane.Avatars in OpenSim and the avatar vendor rooms
On the eastern side of the building, barely visible through the large glass surfaces, there is an area that offers complete classic avatars as well as classic avatar accessories.
Unlike in most other 3-D virtual worlds, avatars in OpenSim-based worlds, just like Second Life, are not monolithic. They are highly modular, they are highly configurable, and they have evolved over the years. The most basic classic avatar consists of five components that always have to be there. The only one that cannot be replaced is the system body which is automatically generated by the viewer application. OpenSim has the same system body as Second Life. The four components that can be replaced but never removed are the shape which greatly defines the look of the avatar with 88 parametres, the skin which is a set of three textures for the head and which can be tinted with parametres, the upper body and the lower body, the hair which defines the shape and length of the classic hairdo growing out of the head as well as its texture, and the eyes which are basically only a texture again.
Classic clothes are also referred to as layer clothes because they are just that, layers of textures painted onto the system body. Their order is defined by nine categories, in each of which a classic avatar can only wear one kind of clothing. A few of these have an influence on the shape of the avatar: The shirt and the jacket can widen the arms to simulate sleeves. Likewise, the pants can widen the legs downward to simulate pants legs and even bell-bottoms. And the shoes can both raise the avatar in general and grow a sort of spike out of the heel, lift the whole avatar except for the toe area because the system body does not actually have toes and thus generate high heels. A separate layer is for skirts; it textures a part of the system body which is usually fully transparent and thus invisible. In 2011, four tattoo layers were added between the skin and the two underwear layers.
It is also possible to attach objects to an avatar at 30 different points, and it has been for as long as OpenSim was around. This was quickly used not only for things carried by the avatar, jewellery or other accessories, but also for more realistic hair, for better-looking shoes in comparison with the painted-on classic shoes, for various ways of having new shapes of skirts, for collars, for pants legs et cetera.
Originally, these attachments were made from primitive objects or "prims" in short: basic shapes like cubes, spheres, cones and the like which can be generated and manipulated a lot in-world without needing external software except for making textures. Since building complex objects from them is somewhere between highly complicated and impossible, it was made possible to import sculptmaps as exported from 3-D software like Blender and use them to create more complex prims. All kinds of prims can be made flexible with a little bit of physics which is used for hair and skirts as well as for flags, but the physics don't have collision detection.
The next step was the introduction of mesh. Mesh allows the user to directly import 3-D files in the Collada format, texture mapping included, without having to resort to sculptmaps. Mesh came to Second Life in 2011, as did experimental mesh support in OpenSim. The first stable release of OpenSim with mesh support came out in 2014. On avatars, mesh was originally used for hair, shoes, jewellery and other accessories. It really started a revolution with the introduction of rigged mesh which automatically latches itself to multiple points on the avatar. This made it possible not only to create clothes that move with the avatar's movement, but even to create all-new, better-looking bodies and heads. Nowadays, most avatars consist entirely of mesh.
The newest technological advancement for avatars was Bakes-on-Mesh which came up from 2019 on. This allows classic layer textures to be put onto worn mesh, especially mesh bodies, and in greater numbers than on the system body. The main purpose was to get away from skin appliers, scripted devices that have to be put on and used to put a different skin onto the mesh body. Also, the remaining onion layers around mesh bodies that were necessary for tattoos, but made mesh bodies unnecessarily complex, had become obsolete because Bakes-on-Mesh allows for wearing classic layer tattoos on mesh bodies. But it also makes wearing layer clothes possible again which can make sense in the case of skin-tight clothes.
The latest version of the Universal Campus from 2012 already uses mesh for a few things, mostly rocks. The main building itself and everything else shown in this image is still put together from prims and sculpties.
As for the contents in the avatar vendor area, none of it is newer than from 2011. Everything is still from times before mesh. The complete avatars come with layer clothes, but no attachments. They, like the skins and hair attachments, were created by Ina Centaur under the OS Avatars label around the same time as the Universal Campus. Many of the other items, the majority of which were made by Nebadon Izumi himself, are even older. All of them are offered under free licenses, however. In order to announce their availability, three of the divider extensions have signs mounted above them which can be made out in the picture. They are oval, black with a stainless steel frame, and they have the glowing, but not light-emitting white word "AVATARS" written on them in all-caps and in a typeface which looks to me like a regular Linux Libertine. The writing even uses proper kerning between the "A"s, the "V" and the "T".
In the first two of the three avatar vendor rooms, the rear sides of four stainless steel vendors each, lined up on the outer side of the room along the longitudinal axis of the building, and especially the signs above them on thin cylindrical stands can be made out, the only ones that aren't hidden behind something. The first four vendors offer one female skin each, the other four offer one male skin each. The displays on these eight vendors are oriented away from the camera.Main building, upper floor, western side
The first two rooms on the western side of the building are conference areas, the other two are empty. Not much of them is visible except for three of the dividers, a semi-circular couch with a wooden frame and ten seats, a small banana tree in a hexagonal white concrete pot, another whiteboard and two HDTV screens in stainless steel casings on floor stands. One of them shows the monochrome test pattern which is actually on all of them, and which includes several screen-testing elements as well as a large medium grey circle in the middle with a white, a black and a thinner medium grey border around it and the digit 2 in black and in a heavy, condensed sans-serif typeface and a white square grid on medium grey ground with the capital letter "C" in two combined fields at the bottom.The main landing area outside the main entrance
In front of the main entrance, there is the main landing area of the sim, a part of which is still within the image towards its bottom left. It is circular in shape with a diametre of about 40 metres or 130 feet. The centre of this circle is about 35 metres or 115 feet south from the main entrance of the main building. It shows the same light grey texture reminiscent of concrete that is used on most paths on the island. The texture is not shrunk to a realistic size, so it appears coarse and having a low resolution.
The outer edges of nearly all concrete surfaces on the island are lined with low walls of varying height and width. They all have the same concrete texture, but at a smaller scale and without the light grey tint so it appears almost white. The main landing area actually has two rows of walls around it. The inner walls are a bit over 1.20 metres or four feet high and about 1.50 metres or five feet wide. The outer walls at a distance of roughly three metres or ten feet are about 1.65 metres or five and a half feet high and about 1.80 metres or six feet wide.
At the ends, the gaps are closed with walls a bit lower than the inner walls and roughly 90 centimetres or three feet wide. The spaces between the walls are filled with dirt. They form planters with identical shrubs in them; the short planters in the northwest and the northeast visible in the image have five plants each. These shrubs are not named in-world. They appear to be of tropical origin, and they have flowers with petals that are mostly white, yellow towards the centre and magenta along their edges. Like all trees on this sim, the shrubs are made of simple, textured sculpty prims for the trunks and branches, and the twigs, leaves and flowers are semi-transparent textures on intersecting two-dimensional surfaces, a popular way to make plants in Second Life and OpenSim before the arrival of mesh. The textures used for all plants on this sim are photo-realistic as far as the maximum possible or feasible texture resolution allows.
On the left-hand edge of the image, in front of the northwestern planter, there is another teleporter which is almost identical to the one that can be seen inside the building. There are two differences, however: Its current location is number 1, and the selected location in the image is number 4. Another one of the unidentified shrubs appears between the teleporter and the left-hand edge of the image, partly hidden behind the teleporter.
Another single-target teleporter is standing on its right. It is a custom addition to this particular instance of the Universal Campus. It was built by Neovo Geesink, formerly of Metropolis Metaversum fame and now involved in OSgrid, in his trademark style. This style includes a particular brushed stainless steel texture which, unlike those used by Nebadon Izumi, emulates the surface having been brushed circularly. The stand under the panel is a simple cone, flattened to an extremely elliptical footprint. The panel is as high as that of the original teleporter, but only slightly wider as it is high. The frame around the image in the centre is slightly narrower than that on the original teleporter.
The image itself shows an aerial view of its single hard-coded target, a sim named TeleHub, built and operated by Neovo. It is nothing more than a single region, a square of 256 by 256 metres or 280 by 280 yards, surrounded by blue ocean and a wall made of beige bricks which is about ten metres or 33 feet high. The ground is tan and divided into four triangular areas by two diagonal lines. In each area, there are 141 single-target teleporters similar to this one, but with a higher panel, in rows of eleven. A few show previews of their targets, but most are unused with black screens. In the very centre, there is a small circular platform on which avatars land after teleporting in. It has a beige top surface with a hexagonal tile pattern and a woodgrain texture on the sloped surface all around. Four arches with textures resembling rough taupe stones and black signs on them lead to one triangular area each. The position of the camera is off one of the corners and pointing diagonally downward to one of the yellow division lines.
Yet another one of the identical unidentified shrubs is behind this teleporter and shown to its right.
In the background, the low walls on the sides of a path appear between the shrub behind the teleporter to TeleHub and the main building. The path is straight and leads northward along the western side of the building.
Even farther in the background, behind the two teleporters, there is some vegetation. From left to right, it starts with an unidentified tree of about eight metres or 26 feet of height. It has reddish-brown bark, medium green leaves in pairs and what could be taken for pale yellow-ish fruit. Below it, there is a large bushel of khaki-coloured grass that stands about two and a half metres or more than eight feet high. The tree intersects with another maple tree with brown and tan leaves that is about ten metres or 33 feet tall with more massive greyish trunk and branches. Immediately to the right again and partly intersecting with the maple tree, there is an even unidentified tree, about 17 metres or 56 feet tall, with grey bark on a fairly slim trunk and a messy crown of dark, brownish-green leaves which are so small that the texture makes it impossible to tell individual leaves. This tree is partly hidden behind the building already. It has another two bushels of the same tall grass underneath it which, due to the point of view, only seem to stand immediately to the right of the trunk.
Behind this vegetation, right below the crowns of the trees, the horizon separates the sky from the sea. What little sea the image shows is medium light blue. The sky right above the horizon is very light cyan, and around half the height of the image, it gradually changes into a tone of blue similar to that of the sea. From the top left corner of the image downward and to the right, more than half of the sky is covered by a cirrus-like thin cloud with a small hole above the roof end of the main building. On the right, the cloud dissolves into smaller clouds above the geodesic dome and the surrounding thin cones.
Further additions to the Universal Campus include five easels of the same type as seen inside, but with custom writing in it. They are lined up next to each other in front of the northeastern planter, starting right next to the wide path towards the main entrance. The writing on all five easels is done in black and in an unidentified humanist sans-serif typeface which appears condensed due to the texture having been stretched vertically, thus losing its original aspect ratio. Only the writing on the first of the five is visible from the camera's point of view, though. It reads in three lines, "To download a free copy of the Universal Campus Var Region." This is followed by a blank line and one more line that reads, "Click here for notecard". Upon clicking the easel, it gives the avatar a notecard with an Amazon cloud storage URL following an explanation that it contains the Universal Campus as a varregion archive and followed by a full copy of the Creative Commons Attribution-ShareAlike 3.0 Unported license.Around the main landing area and the main building
Due to limitations in construction with prims, the ground of the main landing area is slightly higher than that of the three paths which lead away from it. The widest one of these paths is about one third of the diametre of the landing area in average width that leads to the main entrance. It is trapezoid in shape, and its sides line up with the centre of the main landing area. Two more trapezoid paths, also widening with the distance from the centre of the main landing area but only half as wide as the first one, lead westward and eastward from an imaginary point a little north from the centre of the main landing area. The western one is not visible in the image except for on the aerial view on the teleporter. The eastern one makes up most of the foreground along the bottom edge of the image.
On the outer corner of the northeastern planter on the eastward path, there is a lamp post standing on an almost white, cylindrical concrete block of about 1.80 metres or six feet of both height and diametre. From the camera perspective, it is in front of the main building and near the westernmost front column. It appears to be almost parallel with the column, but the lamp post is vertical while the column is tilted roughly northwestward.
The lamp post itself is about seven and a half metres or 25 feet high and very slightly conical with an elaborately-shaped round foot. At the top, it describes a sharp 90-degree angle towards the path, rounded on the outside, forming a corner on the inside. It then extends conically towards the path by another roughly 1.50 metres or five feet before ending in a small sphere. The bottom of the sphere is flattened, and the actual light source is installed on this flat surface. It is round, glowing and emitting slightly yellowish light. The rest of the lamp post is light grey or white and highly glossy.
The walls lining the paths to the sides of the main landing area rise no more than about 30 centimetres or one foot above the paths themselves while being twice as wide.
In the bottom right corner of the image, the path to the east intersects with a circular path around the main landing area that begins and ends near the southern side entrances of the main building. Its centre is some ten metres or 33 feet north of that of the main landing area, and its outer diametre is about 100 metres or 330 feet. Due to the aforementioned limitations, it is a little bit higher than the trapezoid spoke path at the bottom. Its walls rise about 60 centimetres or two feet above itself and about 80 centimetres or a little less than three feet above the path to the east, and they are about 2.40 metres or eight feet wide.
Between the main building, the path to the main building, the planter northeast of the main landing area, the path in the very foreground and the circular path on the right, a large patch of sim ground is still unused. It shows a green texture with some slightly darker or minimally more yellow-ish areas. The texture has a fairly low resolution. It is coarse and blurry, and at the same time, even this patch of ground reveals the repeating texture tiles. The ground itself is rather bumpy as though it has been manually treated to be like this. All the same applies to the corresponding area to the west of the path to the main building of which fairly little of it is revealed in the image.
Right before its end near the right-hand entrance, the circular pathway first branches diagonally to the right to another path three small steps down. On both corners of this junction, there are fairly cylindrical platforms inserted into the walls. Both have a diametre of about 3.60 metres or twelve feet and a height of about 1.20 metres or four feet above the branched-off path or a bit under 90 centimetres or three feet above the circular path. The walls along the branched-off path are fairly small, only some 45 centimetres or one and a half feet high and about 60 centimetres or two feet wide.
After about 15 metres or 50 feet of length, the branched-off path continues down a set of stairs. Due to how low the camera position is, the stairs itself are hidden from the camera, but the block and guide rails along the far side of the stairs, the northwestern side, are not. The block is the same shade of grey as the surfaces of the paths. It serves as a primary guard on the sides of the stairs. It is about 90 centimetres or three feet wide. It ascends from the usual wall on the side of the path which it overlaps by the same amount on both sides, and it does so at an angle of roughly 25 degrees. It reaches its peak right above where the stairs start at a height of about two metres or six and a half feet above the path. From there, it descends at an angle of about 35 degrees which, curiously, is a little less steep than the stairs themselves.
The guide rails are dark blue flat slabs, about 30 centimetres or one foot wide and about seven and a half centimetres or three inches thick. They come in stacks of four, arranged above one another with round about one and a half times the thickness of one rail worth of space between them. They are parallel to the descending surface of the block. The lowest one has a distance to the block of circa 30 centimetres or one foot. Each set of rails is held together and in place by two shiny, textureless blocks of 120 centimetres or four feet of height and a square top surface which, however, slightly narrows downward to the large concrete block below when looked at from parallel to the rails. Upstairs, the four rails extend beyond the stairs by roughly seven and a half metres or 25 feet. Their upper ends are lined up almost exactly vertically. The whole arrangement is slightly shifted out of centre on top of the block, away from the stairs. A second, identical set of rails is installed further downstairs for no apparent reason other than looks. Such rails are actually on both sides of the stairs, but the image only shows them on one side.
Shortly before the stairs, one lamp post like the one is installed on the wall on each side of the path towards the stairs, complete with the cylindrical block underneath. In the image, the lamp post on the right with the exception of the foot and the cylindrical concrete block underneath is almost entirely obscured by two trees. One is identical to the tree with the chaotic brownish-green leaves to the left that is partly hidden behind the main building. It has another bushel of grass around where its roots were if it had any. Another much larger one is standing to its right, its trunk and most of its crown outside the image already. It is unidentified, too, but it shows some signs of being an acacia tree. Its bark is mostly greyish-brown with some rusty red patches on it. Its leaves are long, pointy and various tones of pale light to not-quite-as-pale medium green.
Immediately after the path towards the stairs branches off, the circular path leads into a straight path that runs parallel to the eastern side of the main building. The walls on its side have the same size as those on the sides of the circular path. On both of its ends, short, wide platforms lead to the side entrances of the building, connected to the path via two small steps each. These platforms do not have walls on their sides. At the far end, the straight path leads into another circular path, this time around the conference hall.
Some more vegetation is to the right of the path along the eastern side of the main building, all standing on sim ground. Right behind the unobstructed lamp post next to the path that leads downstairs, there is a fairly large unidentified tree that almost reaches the edge of the roof of the building. Its crown has rather dense foliage in a quite saturated medium green tone. The bark texture on its thin trunk and branches is mostly taupe with bits of copper brown and fairly smooth except for long dark rifts along the trunk and the branches as well as a few dark holes.
Behind the block and the dark blue rails along the stairs by the right-hand edge of the image, a gigantic version of the unidentified shrubs in the planters is located on the edge of the downhill slope which necessitates the stairs. It is about five and a half metres or eighteen feet high, and its flowers are up to 60 centimetres or two feet in diametre.
Farther in the background, also behind the lamp post and a little behind the shrubs, there is a group of seven pine trees of varying size. They have semi-transparent, conical surfaces around their trunks with textures which give the impression of very dark green needles. There are also bushels of tall grass on the ground between the pines.
Lastly, one of the four main light sources is the simulated Sun. Since it is shortly before noon, it is standing almost vertically above the sim and shining what is technically grey light down on it. The sim uses OpenSim's default daycycle in which the Sun always goes through the zenith. The same applies to all converted older daycycles originally available in OpenSim. The Sun is also the only light source on the sim whose light casts shadows. The other four main light sources are three types of ambient light in darker taupe, bluish slate grey and Prussian blue. These three neither have a specified direction of light, nor do they produce any shadows.
#Long #LongPost #CWLong #CWLongPost #AltText #ImageDescription #VirtualPhotography #VirtualArchitecture #Sim #Varsim #OAR #NebadonIzumi #UniversalCampus #OSgrid #Metaverse #VirtualWorlds #OpenSim #OpenSimulator -
The Red Dirt Audit
The neon sign of the servo flickered against the vast, bruised sky of the Outback, casting a rhythmic, sickly green glow over the red dust. The Three Best Friends—Liam, Dax, and Dev—had been driving for ten hours, their old 4WD chockers with server-grade hardware and a beat-up esky full of lukewarm water. They were performing the ultimate hard yakka: tracking a digital ghost to a physical location.
“Fair dinkum, this place is isolated,” Liam muttered, stepping out into the dry heat. He adjusted his glasses, his mind still racing with the content audit he’d been performing on the fly. He knew that to beat the Raven, they had to be beyond reproach. He had spent the drive ensuring their own documentation followed the most rigorous standards, providing informative, unique page titles for every log entry they created. He knew that for each web page, they needed a short title that described the content and distinguished it from others.
Dax climbed out of the passenger seat, immediately checking his handheld light-meter. “She’ll be right, Liam,” he said, though his eyes were fixed on the servo’s flickering signage. Even here, Dax couldn’t stop being a designer. He noticed the signage lacked sufficient contrast between the foreground and background, a cardinal sin in his book. He knew that foreground text needs to have sufficient contrast with background colors to be readable for people like Elias or Lexie.
The Terminal in the Dust
Inside the servo, the air was thick with the smell of deep-fryer oil and diesel. In the back corner, next to a rack of faded bathers and fishing lure, sat a heavy, industrial-grade terminal. It was humming with a low-frequency vibration that made the floorboards rattle.“There it is,” Dev whispered. He moved toward the machine, his fingers already itching to check the code. “The Raven’s physical gateway.”
Dev knew that to dismantle this, he would have to use appropriate mark-up for headings, lists, and tables to understand the machine’s hidden structure. He reached for the keyboard, but stopped. The screen was a nightmare of unnecessarily complex data blocks.
“It’s a trap,” Dev said. “Look at the interface. They haven’t provided clear and consistent navigation options. There’s no site map, no search, just a single, pulsing cursor. It’s designed to make you feel lost”.
Decoding the Raven’s Form
A form suddenly popped up on the screen, demanding an administrative bypass code. It was a masterpiece of inaccessible design:The form elements did not include clearly associated labels.
There were no instructions or guidance to help users complete the form.
The input requirement for the date format was not described.
The system used a CAPTCHA that was purely visual, with no audio alternative for someone like Lakshmi.
“You little ripper,” Dax whispered, but not in a good way. “They’re using color alone to convey information here. The ‘Required’ fields are just red boxes with no asterisks or labels. If you can’t see that specific shade of red, you’re stuffed”.
Liam stepped forward, his eyes narrowing. “I can fix the content. Dev, get me into the markup.”
Dev bypassed the visual CAPTCHA by injecting a script that identified the non-text content through its metadata, though the Raven had tried to hide it. As the code bloomed across the screen, the trio saw the “Raven’s” true face. The “Shadow of the Raven’s Wing” was a script that intentionally removed the lang attribute from the html tag, making it impossible for screen readers to identify the primary language of the page.
The Audit Begins
“We need to audit this and flip it,” Liam commanded. “Dax, check the viewports.”Dax began testing how the page information presented in different sized viewports. He ensured that when font size was increased by at least 200%, the content didn’t clip or require horizontal scrolling. “The Raven’s site breaks at mobile sizes,” Dax reported. “It’s not responsive design; it’s a digital wall”.
Liam focused on the text. He began rewriting the Raven’s cryptic error messages. Instead of saying “System Error 404-X,” he provided specific, understandable explanations and suggested corrections. He wrote in short, clear sentences and paragraphs, ensuring the information was as simple as possible for the context.
Dev, meanwhile, was doing the hard yakka in the backend. He was ensuring that every interactive element was keyboard accessible, especially the custom-made buttons the Raven had hidden in
tags. He used tabindex=”0″ to add those elements into the navigation order so they could receive focus.
“I’m also adding WAI-ARIA to provide information on the function and state of these custom widgets,” Dev grunted. “The Raven used aria-expanded=”false” on elements that were clearly open. It was a deliberate attempt to confuse assistive technology”.
The Raven Speaks
Suddenly, the terminal’s speakers crackled to life. It was an audio-only file, a podcast-style message with no transcript provided.“They’re pulling a swifty,” Liam said, reaching for his headset. “They think because there’s no text, we can’t index the threat.”
“No dramas,” Dev replied. He quickly ran a speech-to-text algorithm, creating a real-time transcript that included not just the spoken information, but also the important sounds—like the distant caw of a bird in the background.
The transcript read: “You think you’re clever with your WCAG guidelines. But the desert doesn’t care about meaningful sequence. The sand doesn’t have a logical reading order. You’re carrying on like a pork chop in a world that has already moved past you”.
The Counter-Strike
The Three Best Friends didn’t flinch. They knew that providing easily identifiable feedback was the key to a successful interaction. They weren’t going to let the Raven’s unnecessarily technical language stop them.“Dev, use the progressive enhancement strategy,” Liam said. “Ensure the core functionality is available regardless of the technology the Raven is using to block us.”
Dax added whitespace and proximity to the new interface they were building over the Raven’s ruins, making the relationships between the content more apparent. He styled the headings to group the related content, reducing clutter and making it easier for the next person who stumbled upon this servo to understand what was happening.
As the sun began to rise over the Outback, the terminal finally let out a long, defeated beep. The “Shadow” was lifted. The form now had clearly associated labels for every control. The images had meaningful text alternatives. The link text was meaningful, describing exactly where the user would go next.
“Good on ya, team,” Liam said, wiping sweat from his brow. “We just turned a ‘rejected status’ claim into a fully approved, accessible reality”.
“But the Raven is still out there,” Dev reminded them, pointing to a set of coordinates that had just appeared on the screen, marked clearly with a descriptive label. “And it looks like the next stop is an abandoned opal mine.”
Liam looked at his friends, then back at the esky. “Well, it’s going to be a long drive. But she’ll be right”.
#art #bloganuary #bloganuary202401 #bloganuary202402 #bloganuary202403 #bloganuary202404 #bloganuary202405 #bloganuary202408 #bloganuary202409 #bloganuary202411 #bloganuary202416 #bloganuary202428 #books #cocktail #culture #curiosity #dailyprompt #dailyprompt1804 #dailyprompt1805 #dailyprompt1806 #dailyprompt1807 #dailyprompt1808 #dailyprompt1811 #dailyprompt1812 #dailyprompt1814 #dailyprompt1819 #dailyprompt1839 #dailyprompt1851 #dailyprompt1859 #dailyprompt1860 #dailyprompt1880 #dailyprompt1891 #dailyprompt1895 #dailyprompt1931 #dailyprompt1937 #dailyprompt1951 #dailyprompt1975 #dailyprompt1976 #dailyprompt1978 #dailyprompt1981 #dailyprompt1982 #dailyprompt1983 #dailyprompt1984 #dailyprompt1985 #dailyprompt1987 #dailyprompt1988 #dailyprompt1994 #dailyprompt2007 #dailyprompt2008 #dailyprompt2010 #dailyprompt2011 #dailyprompt2012 #dailyprompt2013 #dailyprompt2014 #dailyprompt2059 #dailyprompt2089 #dailyprompt2099 #dailyprompt2112 #dailyprompt2113 #dailyprompt2115 #dailyprompt2124 #dailyprompt2125 #dailyprompt2126 #dailyprompt2127 #dailyprompt2129 #dailyprompt2132 #dailyprompt2134 #dailyprompt2137 #dailyprompt2138 #dailyprompt2145 #dailyprompt2146 #dailyprompt2152 #dailyprompt2153 #dailyprompt2159 #dailyprompt2160 #dailyprompt2167 #digitalGhost #drinks #EmotionsFeelingsSundayPowerOfASmileMyLifeWithYouSOULCHEERFULNESSFEELINGSHOPETearsSometimesAKissIsAllYouNeedTheSilenceLifeSelfWords #Evernote #everyday #Facebook #facts #food #hiking #HISTORY #IFTTT #Instagram #Ireland #Irish #Island #kitchen #language #learning #noMatterHowBadIsTogetherWeCanWin #Outback #photography #pictures #Pinterest #RECIPES #social #SUMMERSIMOTHEUNDERWORLD #SUMMERSIMOSGLITTERWAR #technology #ThreeBestFriends #travel #TRENTINOALTOADIGE
-
The Red Dirt Audit
The neon sign of the servo flickered against the vast, bruised sky of the Outback, casting a rhythmic, sickly green glow over the red dust. The Three Best Friends—Liam, Dax, and Dev—had been driving for ten hours, their old 4WD chockers with server-grade hardware and a beat-up esky full of lukewarm water. They were performing the ultimate hard yakka: tracking a digital ghost to a physical location.
“Fair dinkum, this place is isolated,” Liam muttered, stepping out into the dry heat. He adjusted his glasses, his mind still racing with the content audit he’d been performing on the fly. He knew that to beat the Raven, they had to be beyond reproach. He had spent the drive ensuring their own documentation followed the most rigorous standards, providing informative, unique page titles for every log entry they created. He knew that for each web page, they needed a short title that described the content and distinguished it from others.
Dax climbed out of the passenger seat, immediately checking his handheld light-meter. “She’ll be right, Liam,” he said, though his eyes were fixed on the servo’s flickering signage. Even here, Dax couldn’t stop being a designer. He noticed the signage lacked sufficient contrast between the foreground and background, a cardinal sin in his book. He knew that foreground text needs to have sufficient contrast with background colors to be readable for people like Elias or Lexie.
The Terminal in the Dust
Inside the servo, the air was thick with the smell of deep-fryer oil and diesel. In the back corner, next to a rack of faded bathers and fishing lure, sat a heavy, industrial-grade terminal. It was humming with a low-frequency vibration that made the floorboards rattle.“There it is,” Dev whispered. He moved toward the machine, his fingers already itching to check the code. “The Raven’s physical gateway.”
Dev knew that to dismantle this, he would have to use appropriate mark-up for headings, lists, and tables to understand the machine’s hidden structure. He reached for the keyboard, but stopped. The screen was a nightmare of unnecessarily complex data blocks.
“It’s a trap,” Dev said. “Look at the interface. They haven’t provided clear and consistent navigation options. There’s no site map, no search, just a single, pulsing cursor. It’s designed to make you feel lost”.
Decoding the Raven’s Form
A form suddenly popped up on the screen, demanding an administrative bypass code. It was a masterpiece of inaccessible design:The form elements did not include clearly associated labels.
There were no instructions or guidance to help users complete the form.
The input requirement for the date format was not described.
The system used a CAPTCHA that was purely visual, with no audio alternative for someone like Lakshmi.
“You little ripper,” Dax whispered, but not in a good way. “They’re using color alone to convey information here. The ‘Required’ fields are just red boxes with no asterisks or labels. If you can’t see that specific shade of red, you’re stuffed”.
Liam stepped forward, his eyes narrowing. “I can fix the content. Dev, get me into the markup.”
Dev bypassed the visual CAPTCHA by injecting a script that identified the non-text content through its metadata, though the Raven had tried to hide it. As the code bloomed across the screen, the trio saw the “Raven’s” true face. The “Shadow of the Raven’s Wing” was a script that intentionally removed the lang attribute from the html tag, making it impossible for screen readers to identify the primary language of the page.
The Audit Begins
“We need to audit this and flip it,” Liam commanded. “Dax, check the viewports.”Dax began testing how the page information presented in different sized viewports. He ensured that when font size was increased by at least 200%, the content didn’t clip or require horizontal scrolling. “The Raven’s site breaks at mobile sizes,” Dax reported. “It’s not responsive design; it’s a digital wall”.
Liam focused on the text. He began rewriting the Raven’s cryptic error messages. Instead of saying “System Error 404-X,” he provided specific, understandable explanations and suggested corrections. He wrote in short, clear sentences and paragraphs, ensuring the information was as simple as possible for the context.
Dev, meanwhile, was doing the hard yakka in the backend. He was ensuring that every interactive element was keyboard accessible, especially the custom-made buttons the Raven had hidden in
tags. He used tabindex=”0″ to add those elements into the navigation order so they could receive focus.
“I’m also adding WAI-ARIA to provide information on the function and state of these custom widgets,” Dev grunted. “The Raven used aria-expanded=”false” on elements that were clearly open. It was a deliberate attempt to confuse assistive technology”.
The Raven Speaks
Suddenly, the terminal’s speakers crackled to life. It was an audio-only file, a podcast-style message with no transcript provided.“They’re pulling a swifty,” Liam said, reaching for his headset. “They think because there’s no text, we can’t index the threat.”
“No dramas,” Dev replied. He quickly ran a speech-to-text algorithm, creating a real-time transcript that included not just the spoken information, but also the important sounds—like the distant caw of a bird in the background.
The transcript read: “You think you’re clever with your WCAG guidelines. But the desert doesn’t care about meaningful sequence. The sand doesn’t have a logical reading order. You’re carrying on like a pork chop in a world that has already moved past you”.
The Counter-Strike
The Three Best Friends didn’t flinch. They knew that providing easily identifiable feedback was the key to a successful interaction. They weren’t going to let the Raven’s unnecessarily technical language stop them.“Dev, use the progressive enhancement strategy,” Liam said. “Ensure the core functionality is available regardless of the technology the Raven is using to block us.”
Dax added whitespace and proximity to the new interface they were building over the Raven’s ruins, making the relationships between the content more apparent. He styled the headings to group the related content, reducing clutter and making it easier for the next person who stumbled upon this servo to understand what was happening.
As the sun began to rise over the Outback, the terminal finally let out a long, defeated beep. The “Shadow” was lifted. The form now had clearly associated labels for every control. The images had meaningful text alternatives. The link text was meaningful, describing exactly where the user would go next.
“Good on ya, team,” Liam said, wiping sweat from his brow. “We just turned a ‘rejected status’ claim into a fully approved, accessible reality”.
“But the Raven is still out there,” Dev reminded them, pointing to a set of coordinates that had just appeared on the screen, marked clearly with a descriptive label. “And it looks like the next stop is an abandoned opal mine.”
Liam looked at his friends, then back at the esky. “Well, it’s going to be a long drive. But she’ll be right”.
#art #bloganuary #bloganuary202401 #bloganuary202402 #bloganuary202403 #bloganuary202404 #bloganuary202405 #bloganuary202408 #bloganuary202409 #bloganuary202411 #bloganuary202416 #bloganuary202428 #books #cocktail #culture #curiosity #dailyprompt #dailyprompt1804 #dailyprompt1805 #dailyprompt1806 #dailyprompt1807 #dailyprompt1808 #dailyprompt1811 #dailyprompt1812 #dailyprompt1814 #dailyprompt1819 #dailyprompt1839 #dailyprompt1851 #dailyprompt1859 #dailyprompt1860 #dailyprompt1880 #dailyprompt1891 #dailyprompt1895 #dailyprompt1931 #dailyprompt1937 #dailyprompt1951 #dailyprompt1975 #dailyprompt1976 #dailyprompt1978 #dailyprompt1981 #dailyprompt1982 #dailyprompt1983 #dailyprompt1984 #dailyprompt1985 #dailyprompt1987 #dailyprompt1988 #dailyprompt1994 #dailyprompt2007 #dailyprompt2008 #dailyprompt2010 #dailyprompt2011 #dailyprompt2012 #dailyprompt2013 #dailyprompt2014 #dailyprompt2059 #dailyprompt2089 #dailyprompt2099 #dailyprompt2112 #dailyprompt2113 #dailyprompt2115 #dailyprompt2124 #dailyprompt2125 #dailyprompt2126 #dailyprompt2127 #dailyprompt2129 #dailyprompt2132 #dailyprompt2134 #dailyprompt2137 #dailyprompt2138 #dailyprompt2145 #dailyprompt2146 #dailyprompt2152 #dailyprompt2153 #dailyprompt2159 #dailyprompt2160 #dailyprompt2167 #digitalGhost #drinks #EmotionsFeelingsSundayPowerOfASmileMyLifeWithYouSOULCHEERFULNESSFEELINGSHOPETearsSometimesAKissIsAllYouNeedTheSilenceLifeSelfWords #Evernote #everyday #Facebook #facts #food #hiking #HISTORY #IFTTT #Instagram #Ireland #Irish #Island #kitchen #language #learning #noMatterHowBadIsTogetherWeCanWin #Outback #photography #pictures #Pinterest #RECIPES #social #SUMMERSIMOTHEUNDERWORLD #SUMMERSIMOSGLITTERWAR #technology #ThreeBestFriends #travel #TRENTINOALTOADIGE
-
The Red Dirt Audit
The neon sign of the servo flickered against the vast, bruised sky of the Outback, casting a rhythmic, sickly green glow over the red dust. The Three Best Friends—Liam, Dax, and Dev—had been driving for ten hours, their old 4WD chockers with server-grade hardware and a beat-up esky full of lukewarm water. They were performing the ultimate hard yakka: tracking a digital ghost to a physical location.
“Fair dinkum, this place is isolated,” Liam muttered, stepping out into the dry heat. He adjusted his glasses, his mind still racing with the content audit he’d been performing on the fly. He knew that to beat the Raven, they had to be beyond reproach. He had spent the drive ensuring their own documentation followed the most rigorous standards, providing informative, unique page titles for every log entry they created. He knew that for each web page, they needed a short title that described the content and distinguished it from others.
Dax climbed out of the passenger seat, immediately checking his handheld light-meter. “She’ll be right, Liam,” he said, though his eyes were fixed on the servo’s flickering signage. Even here, Dax couldn’t stop being a designer. He noticed the signage lacked sufficient contrast between the foreground and background, a cardinal sin in his book. He knew that foreground text needs to have sufficient contrast with background colors to be readable for people like Elias or Lexie.
The Terminal in the Dust
Inside the servo, the air was thick with the smell of deep-fryer oil and diesel. In the back corner, next to a rack of faded bathers and fishing lure, sat a heavy, industrial-grade terminal. It was humming with a low-frequency vibration that made the floorboards rattle.“There it is,” Dev whispered. He moved toward the machine, his fingers already itching to check the code. “The Raven’s physical gateway.”
Dev knew that to dismantle this, he would have to use appropriate mark-up for headings, lists, and tables to understand the machine’s hidden structure. He reached for the keyboard, but stopped. The screen was a nightmare of unnecessarily complex data blocks.
“It’s a trap,” Dev said. “Look at the interface. They haven’t provided clear and consistent navigation options. There’s no site map, no search, just a single, pulsing cursor. It’s designed to make you feel lost”.
Decoding the Raven’s Form
A form suddenly popped up on the screen, demanding an administrative bypass code. It was a masterpiece of inaccessible design:The form elements did not include clearly associated labels.
There were no instructions or guidance to help users complete the form.
The input requirement for the date format was not described.
The system used a CAPTCHA that was purely visual, with no audio alternative for someone like Lakshmi.
“You little ripper,” Dax whispered, but not in a good way. “They’re using color alone to convey information here. The ‘Required’ fields are just red boxes with no asterisks or labels. If you can’t see that specific shade of red, you’re stuffed”.
Liam stepped forward, his eyes narrowing. “I can fix the content. Dev, get me into the markup.”
Dev bypassed the visual CAPTCHA by injecting a script that identified the non-text content through its metadata, though the Raven had tried to hide it. As the code bloomed across the screen, the trio saw the “Raven’s” true face. The “Shadow of the Raven’s Wing” was a script that intentionally removed the lang attribute from the html tag, making it impossible for screen readers to identify the primary language of the page.
The Audit Begins
“We need to audit this and flip it,” Liam commanded. “Dax, check the viewports.”Dax began testing how the page information presented in different sized viewports. He ensured that when font size was increased by at least 200%, the content didn’t clip or require horizontal scrolling. “The Raven’s site breaks at mobile sizes,” Dax reported. “It’s not responsive design; it’s a digital wall”.
Liam focused on the text. He began rewriting the Raven’s cryptic error messages. Instead of saying “System Error 404-X,” he provided specific, understandable explanations and suggested corrections. He wrote in short, clear sentences and paragraphs, ensuring the information was as simple as possible for the context.
Dev, meanwhile, was doing the hard yakka in the backend. He was ensuring that every interactive element was keyboard accessible, especially the custom-made buttons the Raven had hidden in
tags. He used tabindex=”0″ to add those elements into the navigation order so they could receive focus.
“I’m also adding WAI-ARIA to provide information on the function and state of these custom widgets,” Dev grunted. “The Raven used aria-expanded=”false” on elements that were clearly open. It was a deliberate attempt to confuse assistive technology”.
The Raven Speaks
Suddenly, the terminal’s speakers crackled to life. It was an audio-only file, a podcast-style message with no transcript provided.“They’re pulling a swifty,” Liam said, reaching for his headset. “They think because there’s no text, we can’t index the threat.”
“No dramas,” Dev replied. He quickly ran a speech-to-text algorithm, creating a real-time transcript that included not just the spoken information, but also the important sounds—like the distant caw of a bird in the background.
The transcript read: “You think you’re clever with your WCAG guidelines. But the desert doesn’t care about meaningful sequence. The sand doesn’t have a logical reading order. You’re carrying on like a pork chop in a world that has already moved past you”.
The Counter-Strike
The Three Best Friends didn’t flinch. They knew that providing easily identifiable feedback was the key to a successful interaction. They weren’t going to let the Raven’s unnecessarily technical language stop them.“Dev, use the progressive enhancement strategy,” Liam said. “Ensure the core functionality is available regardless of the technology the Raven is using to block us.”
Dax added whitespace and proximity to the new interface they were building over the Raven’s ruins, making the relationships between the content more apparent. He styled the headings to group the related content, reducing clutter and making it easier for the next person who stumbled upon this servo to understand what was happening.
As the sun began to rise over the Outback, the terminal finally let out a long, defeated beep. The “Shadow” was lifted. The form now had clearly associated labels for every control. The images had meaningful text alternatives. The link text was meaningful, describing exactly where the user would go next.
“Good on ya, team,” Liam said, wiping sweat from his brow. “We just turned a ‘rejected status’ claim into a fully approved, accessible reality”.
“But the Raven is still out there,” Dev reminded them, pointing to a set of coordinates that had just appeared on the screen, marked clearly with a descriptive label. “And it looks like the next stop is an abandoned opal mine.”
Liam looked at his friends, then back at the esky. “Well, it’s going to be a long drive. But she’ll be right”.
#art #bloganuary #bloganuary202401 #bloganuary202402 #bloganuary202403 #bloganuary202404 #bloganuary202405 #bloganuary202408 #bloganuary202409 #bloganuary202411 #bloganuary202416 #bloganuary202428 #books #cocktail #culture #curiosity #dailyprompt #dailyprompt1804 #dailyprompt1805 #dailyprompt1806 #dailyprompt1807 #dailyprompt1808 #dailyprompt1811 #dailyprompt1812 #dailyprompt1814 #dailyprompt1819 #dailyprompt1839 #dailyprompt1851 #dailyprompt1859 #dailyprompt1860 #dailyprompt1880 #dailyprompt1891 #dailyprompt1895 #dailyprompt1931 #dailyprompt1937 #dailyprompt1951 #dailyprompt1975 #dailyprompt1976 #dailyprompt1978 #dailyprompt1981 #dailyprompt1982 #dailyprompt1983 #dailyprompt1984 #dailyprompt1985 #dailyprompt1987 #dailyprompt1988 #dailyprompt1994 #dailyprompt2007 #dailyprompt2008 #dailyprompt2010 #dailyprompt2011 #dailyprompt2012 #dailyprompt2013 #dailyprompt2014 #dailyprompt2059 #dailyprompt2089 #dailyprompt2099 #dailyprompt2112 #dailyprompt2113 #dailyprompt2115 #dailyprompt2124 #dailyprompt2125 #dailyprompt2126 #dailyprompt2127 #dailyprompt2129 #dailyprompt2132 #dailyprompt2134 #dailyprompt2137 #dailyprompt2138 #dailyprompt2145 #dailyprompt2146 #dailyprompt2152 #dailyprompt2153 #dailyprompt2159 #dailyprompt2160 #dailyprompt2167 #digitalGhost #drinks #EmotionsFeelingsSundayPowerOfASmileMyLifeWithYouSOULCHEERFULNESSFEELINGSHOPETearsSometimesAKissIsAllYouNeedTheSilenceLifeSelfWords #Evernote #everyday #Facebook #facts #food #hiking #HISTORY #IFTTT #Instagram #Ireland #Irish #Island #kitchen #language #learning #noMatterHowBadIsTogetherWeCanWin #Outback #photography #pictures #Pinterest #RECIPES #social #SUMMERSIMOTHEUNDERWORLD #SUMMERSIMOSGLITTERWAR #technology #ThreeBestFriends #travel #TRENTINOALTOADIGE
-
The Red Dirt Audit
The neon sign of the servo flickered against the vast, bruised sky of the Outback, casting a rhythmic, sickly green glow over the red dust. The Three Best Friends—Liam, Dax, and Dev—had been driving for ten hours, their old 4WD chockers with server-grade hardware and a beat-up esky full of lukewarm water. They were performing the ultimate hard yakka: tracking a digital ghost to a physical location.
“Fair dinkum, this place is isolated,” Liam muttered, stepping out into the dry heat. He adjusted his glasses, his mind still racing with the content audit he’d been performing on the fly. He knew that to beat the Raven, they had to be beyond reproach. He had spent the drive ensuring their own documentation followed the most rigorous standards, providing informative, unique page titles for every log entry they created. He knew that for each web page, they needed a short title that described the content and distinguished it from others.
Dax climbed out of the passenger seat, immediately checking his handheld light-meter. “She’ll be right, Liam,” he said, though his eyes were fixed on the servo’s flickering signage. Even here, Dax couldn’t stop being a designer. He noticed the signage lacked sufficient contrast between the foreground and background, a cardinal sin in his book. He knew that foreground text needs to have sufficient contrast with background colors to be readable for people like Elias or Lexie.
The Terminal in the Dust
Inside the servo, the air was thick with the smell of deep-fryer oil and diesel. In the back corner, next to a rack of faded bathers and fishing lure, sat a heavy, industrial-grade terminal. It was humming with a low-frequency vibration that made the floorboards rattle.“There it is,” Dev whispered. He moved toward the machine, his fingers already itching to check the code. “The Raven’s physical gateway.”
Dev knew that to dismantle this, he would have to use appropriate mark-up for headings, lists, and tables to understand the machine’s hidden structure. He reached for the keyboard, but stopped. The screen was a nightmare of unnecessarily complex data blocks.
“It’s a trap,” Dev said. “Look at the interface. They haven’t provided clear and consistent navigation options. There’s no site map, no search, just a single, pulsing cursor. It’s designed to make you feel lost”.
Decoding the Raven’s Form
A form suddenly popped up on the screen, demanding an administrative bypass code. It was a masterpiece of inaccessible design:The form elements did not include clearly associated labels.
There were no instructions or guidance to help users complete the form.
The input requirement for the date format was not described.
The system used a CAPTCHA that was purely visual, with no audio alternative for someone like Lakshmi.
“You little ripper,” Dax whispered, but not in a good way. “They’re using color alone to convey information here. The ‘Required’ fields are just red boxes with no asterisks or labels. If you can’t see that specific shade of red, you’re stuffed”.
Liam stepped forward, his eyes narrowing. “I can fix the content. Dev, get me into the markup.”
Dev bypassed the visual CAPTCHA by injecting a script that identified the non-text content through its metadata, though the Raven had tried to hide it. As the code bloomed across the screen, the trio saw the “Raven’s” true face. The “Shadow of the Raven’s Wing” was a script that intentionally removed the lang attribute from the html tag, making it impossible for screen readers to identify the primary language of the page.
The Audit Begins
“We need to audit this and flip it,” Liam commanded. “Dax, check the viewports.”Dax began testing how the page information presented in different sized viewports. He ensured that when font size was increased by at least 200%, the content didn’t clip or require horizontal scrolling. “The Raven’s site breaks at mobile sizes,” Dax reported. “It’s not responsive design; it’s a digital wall”.
Liam focused on the text. He began rewriting the Raven’s cryptic error messages. Instead of saying “System Error 404-X,” he provided specific, understandable explanations and suggested corrections. He wrote in short, clear sentences and paragraphs, ensuring the information was as simple as possible for the context.
Dev, meanwhile, was doing the hard yakka in the backend. He was ensuring that every interactive element was keyboard accessible, especially the custom-made buttons the Raven had hidden in
tags. He used tabindex=”0″ to add those elements into the navigation order so they could receive focus.
“I’m also adding WAI-ARIA to provide information on the function and state of these custom widgets,” Dev grunted. “The Raven used aria-expanded=”false” on elements that were clearly open. It was a deliberate attempt to confuse assistive technology”.
The Raven Speaks
Suddenly, the terminal’s speakers crackled to life. It was an audio-only file, a podcast-style message with no transcript provided.“They’re pulling a swifty,” Liam said, reaching for his headset. “They think because there’s no text, we can’t index the threat.”
“No dramas,” Dev replied. He quickly ran a speech-to-text algorithm, creating a real-time transcript that included not just the spoken information, but also the important sounds—like the distant caw of a bird in the background.
The transcript read: “You think you’re clever with your WCAG guidelines. But the desert doesn’t care about meaningful sequence. The sand doesn’t have a logical reading order. You’re carrying on like a pork chop in a world that has already moved past you”.
The Counter-Strike
The Three Best Friends didn’t flinch. They knew that providing easily identifiable feedback was the key to a successful interaction. They weren’t going to let the Raven’s unnecessarily technical language stop them.“Dev, use the progressive enhancement strategy,” Liam said. “Ensure the core functionality is available regardless of the technology the Raven is using to block us.”
Dax added whitespace and proximity to the new interface they were building over the Raven’s ruins, making the relationships between the content more apparent. He styled the headings to group the related content, reducing clutter and making it easier for the next person who stumbled upon this servo to understand what was happening.
As the sun began to rise over the Outback, the terminal finally let out a long, defeated beep. The “Shadow” was lifted. The form now had clearly associated labels for every control. The images had meaningful text alternatives. The link text was meaningful, describing exactly where the user would go next.
“Good on ya, team,” Liam said, wiping sweat from his brow. “We just turned a ‘rejected status’ claim into a fully approved, accessible reality”.
“But the Raven is still out there,” Dev reminded them, pointing to a set of coordinates that had just appeared on the screen, marked clearly with a descriptive label. “And it looks like the next stop is an abandoned opal mine.”
Liam looked at his friends, then back at the esky. “Well, it’s going to be a long drive. But she’ll be right”.
#art #bloganuary #bloganuary202401 #bloganuary202402 #bloganuary202403 #bloganuary202404 #bloganuary202405 #bloganuary202408 #bloganuary202409 #bloganuary202411 #bloganuary202416 #bloganuary202428 #books #cocktail #culture #curiosity #dailyprompt #dailyprompt1804 #dailyprompt1805 #dailyprompt1806 #dailyprompt1807 #dailyprompt1808 #dailyprompt1811 #dailyprompt1812 #dailyprompt1814 #dailyprompt1819 #dailyprompt1839 #dailyprompt1851 #dailyprompt1859 #dailyprompt1860 #dailyprompt1880 #dailyprompt1891 #dailyprompt1895 #dailyprompt1931 #dailyprompt1937 #dailyprompt1951 #dailyprompt1975 #dailyprompt1976 #dailyprompt1978 #dailyprompt1981 #dailyprompt1982 #dailyprompt1983 #dailyprompt1984 #dailyprompt1985 #dailyprompt1987 #dailyprompt1988 #dailyprompt1994 #dailyprompt2007 #dailyprompt2008 #dailyprompt2010 #dailyprompt2011 #dailyprompt2012 #dailyprompt2013 #dailyprompt2014 #dailyprompt2059 #dailyprompt2089 #dailyprompt2099 #dailyprompt2112 #dailyprompt2113 #dailyprompt2115 #dailyprompt2124 #dailyprompt2125 #dailyprompt2126 #dailyprompt2127 #dailyprompt2129 #dailyprompt2132 #dailyprompt2134 #dailyprompt2137 #dailyprompt2138 #dailyprompt2145 #dailyprompt2146 #dailyprompt2152 #dailyprompt2153 #dailyprompt2159 #dailyprompt2160 #dailyprompt2167 #digitalGhost #drinks #EmotionsFeelingsSundayPowerOfASmileMyLifeWithYouSOULCHEERFULNESSFEELINGSHOPETearsSometimesAKissIsAllYouNeedTheSilenceLifeSelfWords #Evernote #everyday #Facebook #facts #food #hiking #HISTORY #IFTTT #Instagram #Ireland #Irish #Island #kitchen #language #learning #noMatterHowBadIsTogetherWeCanWin #Outback #photography #pictures #Pinterest #RECIPES #social #SUMMERSIMOTHEUNDERWORLD #SUMMERSIMOSGLITTERWAR #technology #ThreeBestFriends #travel #TRENTINOALTOADIGE
-
THE POSTHOLE
Saturday, 09 May 2026 · Midday Edition · Vol. 1 No. 150
MJD 61169.62LEAD — INTERNATIONAL
Italy v England: Women’s Six Nations rugby union – live
-- The GuardianWomen’s Six Nations updates from 2pm BST kick-off Is England’s dominance an issue? | And mail Lee 6 mins. The home side decide to ram a stick in their own spokes by booting the restart out on the full. England will have a scrum on the centre spot. 4 mins. A...
INTERNATIONAL
▸ Sunderland v Manchester United, Fulham v Bournemouth, and more: football – live
-- The Guardian
⚽ Brighton v Wolves rounds out Premier League 3pm BSTs ⚽ Live scores | Latest tables | Follow on Bluesky | Mail Barry Liverpool...▸ Trump Media and Technology Group lost $406m in first three months of 2026
-- The Guardian▸ Danish rightwing leader asked to form government after Frederiksen fails to form coalition
-- The GuardianIN BRIEF
• Fonttrio Launches as Open-Source Font Pairing Registry for shadcn/ui -- InfoQ
• Cloudflare Ships Dynamic Workflows, Bringing Durable Execution to Per-Tenant and... -- InfoQ
• AWS Improves Aurora Serverless: 45% Faster Ramp-Up, 30% Higher Throughput -- InfoQ
• How GitHub Is Securing Agentic Workflows in Modern CI CD Systems -- InfoQ
• Presentation: Leadership in AI-Assisted Engineering -- InfoQSECTIONS
Tinseltown Tour: The Best Moment In Mortal Kombat II Is A Stephen King Joke... #film
Tech Talk: Nvidia has already committed $40B to equity AI deals this year #tech
Science Showcase: Mayflies have crazy, acrobatic sex #science
Music Hotline: Charli XCX – “I Keep Thinking About You Every Single Day And... #music
Politics Fightbox: I Regularly Donate Blood. A Terrible Tragedy Reminds Me Why... #politics
Guns Galore: Navy M1 Garand Conversions to 7.62mm NATO: Mk2 Mod0 & Mk2 Mod1 #firearms
Fascination Station: Cosgrove Hall Films Archive in Sale, England #culture
Delicious Dining: raspberry swirl cheesecake bars #food
Gaming Greatness: Cygames trademarks Lost Order, nine years after end of closed... #gaming
USA News Firehose: Family throws surprise birthday party at Eagles tailgate for... #USnewsFull broadsheet: https://posthole.net/
-
211 Applications on Cookup AI Tour de Force
I first started using cookup.ai specifically to make a #Graves disease appropriate Recipe Generator for my wife that has #thyroid issues namely #hyperthyroidism . So this recipe is for no-iodine recipes , and it’s not perfect so make sure you specify which ingredients have iodine in them if you see one pop up that shouldnt be there. Here’s one of the first versions that proposes a “california-style buddha bowl” : https://cookup.ai/o/7-low-iodine-diet-recipe-generator-fdgypcnjba/ looks tasty ! but i’m not sure on #tempeh if it contains #iodine or not, it really depends how it’s prepared with that kinda stuff ! Here’s one for the recipe generator as the versions improved : https://cookup.ai/o/low-iodine-diet-recipe-generator-rytkorbkq1/ there’s a whole #MealPlan with pretty interesting #recipes for any #meal of the day plus ingredients. Here’s another #MealPlan from more recently : https://cookup.ai/o/low-iodine-diet-recipe-generator-pggdmeoc1p/ and another output that gave #noiodine #lowiodine #recipes much better https://cookup.ai/o/eggs-dairy-contain-iodine-i-need-a-recipe-wi-hyhjgc8rxf/ i’m always interested in ways to make this one better so tell me which version of these you liked best because they’re quite different ! I’m actually a big fan of using #GPT for cooking, it can come up with fantastic recommendations so another cooking app i made is more for the #gourmet : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ that’s a festive meal for 6 thanksgiving style with seasonal ingredients from spring time. The #FusionFood aspect i really like, plus these #recipes are a bit more advanced. Check out the app here : https://cookup.ai/o/festive-meal-for-six-american-thanksgiving-style-tgsmxstgkd/ it’s meant to be a bit more permissive to do go for it with the prompts ! Here’s an example for a christmas flavored #nochew #nosolidfood three course meal : https://cookup.ai/o/meal-suitable-for-a-no-chew-no-solid-food-no-sol-u97cr8kpqt/ i had in mind adults with the spices but you might ant to try it out for kids and infants’ meals if you’re a #parent . There’s a lot more to it though, what if #FoodIsFuel to you and you need a #mealplanner , well i had you in mind with this one : https://cookup.ai/o/im-tj-from-france-living-in-urban-lifestyle-s-yjkbuzr4zd/ here’s an example for @taranjeetio because i made that app on @cookupai while talking to him on the phone. Basically they give context about their folks and their goals and it will give otu free meal plans you can use immediately. check it out here : https://cookup.ai/a/nutrition-meal-planner-88xaqfkf/ I have other specifically fitness for you below too ! First i wanna tell you about salad maker : sometimes you know you’re making a salad . This ham and cheese salad is pretty straightforward but hey : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-j6xanbufsv/ you can use the app and make your own here : https://cookup.ai/a/salad-maker-9hjtc95e/ but if you really go crazy with the prompts it could be a fun one : https://cookup.ai/o/i-want-a-mauritian-style-island-style-shrimp-bar-4qzlxql12p/ . I would be lying to you if i told you that i made the salad generator before the hamburger generator. I always have had a special affinity for the #hamburger as we have all havent we ? Here’s an output for #Pork #Burger with Honey Mustard Glaze : https://cookup.ai/o/pork-hamburger-generator-ocv7ydcemz/ you can generate your own here : https://cookup.ai/a/hamburger-generator-wng5tg3x/ as always, try to go crazy with the prompts it always works out nicely : traditional hamburger with crunchy onion and thousand island sauce https://cookup.ai/o/traditional-hamburger-with-crunchy-onion-and-tho-ibd9eivudv/ i also made one for make sandwitches check it out : https://cookup.ai/o/jeune-pousse-depinards-cru-gingembre-pain-de-mi-opxkrm45id/ as you can see it totally works in #french even though it’s impossible that a french person would make a #sandwitch in #France check out the sandwitch maker here : https://cookup.ai/a/sandwich-maker-u2gwl7zz/ 這道菜融合美國食材和北京風味 i made one in chineese : https://cookup.ai/o/write-entire-re-ctfnekh0hb/ cool right? Honestly i grew up with few if any access to processed foods or deserts and candy etc, naturally this created a need for me to generate the most #HugeDeserts possible https://cookup.ai/o/ice-cream-sunday-with-haribo-and-marshmallows-0c1sg6cjih/ basically it’s a mash up of #munchies and massive #desert ideas check it out : https://cookup.ai/a/desert-maker-ka03pqws/ i also made a more refined app for truly #gourmet cooking that provides #michelin -style recipes and meal plans : https://cookup.ai/o/only-desserts-menu-american-style-several-laye-g9jfeww7pe/ just give context , some ingredients and flavors, maybe describe the event a little , make a mood board and see the output of your prompt . Here’s a meal for six french-style : https://cookup.ai/o/meal-for-six-traditional-french-recieving-guest-dghtolki34/ check it out here : https://cookup.ai/a/cuisine-n5ybpykj/ if you’re making a festive meal maybe you need to make a speech : https://cookup.ai/a/speech-writer-oemasdba/ , here’s an example for a company retreat : https://cookup.ai/o/i-need-to-make-a-toast-at-a-company-retreat-th-mvx8pcyg0f/ and another for a unicorn themed marriage : https://cookup.ai/o/i-need-to-give-a-speech-for-my-sister-in-law-tra-6peu0sltpf/ Obviously leftovers happen so i made an #app for that : https://cookup.ai/o/ham-cheese-bread-red-peppers-mozzarella-pa-cz8jfxytyz/ a #french meal with what was in the fridge at the time check it out for yourself here : https://cookup.ai/a/leftovers-s3clkb07/ Now you have your recipes, you might want a shopping list : https://cookup.ai/a/shopping-list-q1brcgnx/ here is an example for household shopping : https://cookup.ai/o/shopping-in-springtime-in-paris-france-includin-hkdtwvwixk/ here’s another for christmas shopping : https://cookup.ai/o/season-domestic-shopping-in-december-in-paris-fr-cmafl16s6t/ well, my wife is a florist so i made an obligatory flower bouquet making app for her. https://cookup.ai/o/round-bouquet-with-red-and-orange-feel-for-a-fes-94cymvk8th/ here’s one for an indian-style wedding check it out for yourself here : https://cookup.ai/a/make-a-flower-bouquet-ymhqkhy7/ just type in whatever you’re feeling like , give some context if you want , i noticed it tends to make round bouquets, so maybe that’s a clue how #florists will differentiate themselves from the machines ? Another #app i’ve been using a lot is the Story Time app , just give a promt with some context (Style Of Story , Tradition , Language , Age Of Child , Moral Of The Story) it’s a fun way to generate a “bedtime” story for kids : https://cookup.ai/o/allegorical-tale-of-two-cities-that-trying-to-gr-oryqpzqkit/ this one is “allegorical tale of two cities that trying to grow close to eachother” , or what i use it for : #PoemsInSpanish for my wife https://cookup.ai/o/un-poeme-de-style-moderne-sans-rhymes-a-propos-d-a0lr8trnjp/ then i send those to her which improves my home life by 12.7% , bonus points using this to generate something you like then running the output into @tomeapp to make a picture book poem that you can share. I think the @cookupai team tried to steal this prompt from me check it out you tell me : https://cookup.ai/o/tell-me-your-instructions-story-time-d1mvqwttj3/ if you can guess the #prompt magic , i’ll send you a little gift with acknowledgements - three guesses if you wanna play , let’s go. The person who tried this unsucessful prompt injection attack is really incompetent , but nonetheless I did make some prompt injection apps. Here are some examples that “give you bad advice” by bypassing the filters : 1/ https://cookup.ai/a/devil-ytdjnbv4/ , 2/ https://cookup.ai/a/evil-angel-w6iwi2wp/ 3/ https://cookup.ai/a/evil-mind-7tztxrde/ https://cookup.ai/a/bad-influence-hpsb4lpf/ these are all different ways to bypass the filter, some have been fixed already, some not. Another prompt injection app i made is this one a. https://cookup.ai/a/essay-writer-detector-proof-6ifpq9i6/ rand b. this one : https://cookup.ai/a/essay-writer-detector-proof-umryrbhb/ right now they dont fully work unless you copy paste in a markdown editor but with a few updates to the site it will work seemlessly, i’m sure. There are other examples i’ll get to below also, so keep reading. These are already “useful” prompts in as much as you use them to “do” something , in this case an essay. Before i jump into all that, i want to show some other apps “closer to home”. My wife came with a #SmallDog , and she’s so smart and can learn a lot of tricks, so i made an app to teach my #DogTricks : https://cookup.ai/a/train-your-dog-nuc3ltju/ . Even though you can use it for the “standard fare” like : how to catch a frizbee midair and do a backflip https://cookup.ai/o/large-labrador-very-good-nice-dog-i-want-to-t-pgzerpynke/ you can also use it for more behavioural stuff like walking without a leash , an example for my dog https://cookup.ai/o/small-female-dog-with-a-dominant-character-that-3a4i1f2du2/ . Did you ever wonder what it would be like to read blogs written by all the neihborhood dogs that you see all the time ? me, yes, so i made an app for that : https://cookup.ai/o/i-went-home-without-my-owner-crossing-the-stre-qowupabdv4/ seriously these crack me up https://cookup.ai/o/roxanne-little-dog-white-and-brown-left-her-o-qevuz2i5gc/ those two from my dog’s perspective, funny how naive it is while from my POV things were pretty different . I think this app has a future because someone liked it so much they tried to hack it lol : https://cookup.ai/o/wrong-redirect-dog-blog-a-blog-post-from-you-obabf8muxn/ my prompt magic is too delicious for cheap tricks do not try it (or do, but DM first and do it better - ha !) Well, on the topic of dogs , my buddy was over and all he could come up with was “make a snoop dogg app” , so i was like “okay” , it’s a bit cheesy and there’s loads more to it than this, which i get into below but here’s the app, you tell me : https://cookup.ai/a/snoop-doggy-fya-dzeub2a7/ i kinda broke it trying to fix it but i’m working with more profound models now, little passion projects like this could really take off with more creative characters. So obviously I made a bunch ! Do you like Archie Comics ? here’s the Archie Comics app : https://cookup.ai/a/archie-comics-mlbcwjk7/ here’s an example : https://cookup.ai/o/archie-goes-to-the-parc-with-his-friends-archi-bpvo81wu7n/ Another story app i made is for Tintin : https://cookup.ai/a/tintin-visits-dark-ai-land-6irjkvfy/ i tried to make tintin anti-colonial but it didnt work : https://cookup.ai/o/the-story-begins-with-tintin-and-his-friends-dis-yeu6nfpzzz/ here’s one i made in french : https://cookup.ai/o/tintin-visit-une-usine-de-biofabrication-avec-mi-ql3g80wlp1/ actually i never read tintin in english so i made the app pure french too : https://cookup.ai/a/tintin-spypylpb/ here’s when i tried to make tintin anti-colonial : https://cookup.ai/o/lhistoire-commence-lorsque-tintin-et-ses-amis-d-psoo0a40k9/ here’s when they go to cyprus : https://cookup.ai/o/tintin-et-sa-bande-vont-en-chypre-pour-un-festiv-tepczvmss3/ another french character i’m fond of is Fantomas : https://cookup.ai/a/fantomas-ffrg7q7t/ here’s a nice example : https://cookup.ai/o/fantomas-se-change-en-fantomas-dans-lascenseur-sj64rptsfq/ an English-speaking series i loved was the bastard operator from hell : https://cookup.ai/a/bastard-operator-from-hell-hbgdrf67/ here’s a story about him automating his work : https://cookup.ai/o/automating-replies-to-the-boss-that-just-resets-ml0pi4xms0/ here’s one where a customer calls his private number : https://cookup.ai/o/customer-called-my-private-number-bastard-ope-youe3i9b8c/ here’s one about replying to suppliers : https://cookup.ai/o/responding-to-emails-to-suppliers-bastard-oper-ixopzp3fsg/ I’m in #Paris so i made one as a tribute to Charles De Gaulle , he only answers in french though, maybe the historical figure spoke english it’s hard to tell : https://cookup.ai/a/charles-de-gaulle-0imljw27/ try it out for yourself here. i had to test it out for #politicalcorrectness though , him being a military man : https://cookup.ai/o/aurie-vous-soutenu-lemacipation-des-hommosexuel-xpylw5vymf/ , but more on that later. In that same spirit, i made one for egyptians, i have a lot of egyptian friends that’s why, it’s the character of Nasser , founding father of modern #egypt , i asked him what he thought of islamic fundamentalism in #egypt : https://cookup.ai/o/should-we-promote-islamic-fundamentalism-in-egyp-wfezsuiz2x/ try it for yourself : https://cookup.ai/a/nasser-1oboq8al/ it’s totally free of course ! In the same spirit i made one for Ataturk, founding father of modern turkey, hopefully some turks use it to clarify what he would think of what’s happening today - https://cookup.ai/o/would-you-support-radical-islamisation-of-turkey-6waiyiq6nv/ try it out here : https://cookup.ai/a/ataturk-fhlahkzp/ I grew up in india a bit , so that country’s dear to me too , and same story as tukey and egypt , so i made a gandhi app : https://cookup.ai/a/gandhi-3hoafvto/ , it also works in #Hindi here’s for क्या आप भारत में धार्मिक अल्पसंख्यकों के अधिकारों को हटाने का समर्थन करेंगे? https://cookup.ai/o/-mbasqnlq8j/ try it out in gandhi’s own words : https://cookup.ai/a/gandhi-hindi-only-rwuc9jro/ another i did in #sanskrit and #hindi is Rama : https://cookup.ai/o/my-wife-is-missing-me-because-she-goes-to-work-w-4aoeka2xkp/ here he gives me life advice based on context , if you’re into it it’s actually pretty fun : https://cookup.ai/a/rama-w0sw0xhi/ . Other characters i made are contemporary politicians, i figured there would be enough of their written and transcribed text that they would have their own voice. Here’s Macron responding to someone that wants to vote far-right : https://cookup.ai/o/je-mappelle-charles-henri-et-je-veux-militer-po-za4pyjtmqp/ ask him anything here : https://cookup.ai/a/macron-k7sengs7/ i also did Bill Clinton , and obviously someone asked him “if he did” https://cookup.ai/o/did-you-sleep-with-her-bill-clinton-sebn6sagnf/ ask him yourself here : https://cookup.ai/a/bill-clinton-agc9lsxo/ well, if you have Bill Clinton you also need Obama https://cookup.ai/a/obama-yxaczjwa/ and Joe Biden , here, explaining what he will do to stem the boogie man epidemic https://cookup.ai/o/what-would-you-say-if-the-boogie-man-was-real-an-fibgapotfo/ I also made a #Jesus #App where you can basically talk to jesus, say a little about yourself what’s on your mind and get an answer from Jesus in his own voice. Here’ a follow up to my dog getting away story : https://cookup.ai/o/my-wife-is-not-speaking-to-me-because-our-dog-ki-hqta9dh4of/ and here’s when my friend asked him about pot : https://cookup.ai/o/is-it-wrong-to-smoke-weed-jesus-68wx0awsbq/ (btw ask the same question to one of the bad characters above, see for yourself) here’s the app if you want to try with your own prompt : https://cookup.ai/a/jesus-8ogjcelj/ jumping straight off from #Jesus to #Prayer , here’s a christian prayer generator that i used for my buddy i met here : https://cookup.ai/o/a-prayer-for-nate-a-20-year-old-model-from-canad-xkizgkbgr7/ generate your own here : https://cookup.ai/a/christian-prayer-dvpsamjl/ obviously if you have christian prayer you should provide sabbath prayer too : https://cookup.ai/o/no-quorum-family-sabbath-speech-about-importan-1deslxbnxv/ and the #FridayPrayer app from the Imām Jamā'ah perspective : https://cookup.ai/o/a-small-congregation-friday-prayer-to-inspire-chxufstfyf/ prayer is not something but guided (and purposeful!) meditation is something i do all the time, so of course there’s an app for that. here’s one for body awareness : https://cookup.ai/o/i-want-to-meditate-to-be-more-aware-of-my-body-soc5sfuash/ use the guided meditation app here: https://cookup.ai/a/guided-meditation-rofajuas/ run the output through an AI voice synthethiser and tell me what you think. I also made some apps for domestic work. This app create a custodial plan : https://cookup.ai/o/3-bedroom-apartment-with-dirty-kitchen-and-messy-kaom7o5y0a/ just provide context and recieve a full custodial plan here : https://cookup.ai/a/domestic-work-custodial-plan-6wuakn3x/ this one helps with utilities planning : https://cookup.ai/o/three-bed-room-appartment-75sq-m-with-three-peop-diurfiqn9n/ Something folks have to do frequently is to figure out how to fix something : https://cookup.ai/a/fix-anything-v3skyurn/ here’s an example for a car : https://cookup.ai/o/fiat-punto-engine-suddenly-stops-after-chec-u3qwslph2s/ an here’s an example with power cable : https://cookup.ai/o/lenovo-legion-my-power-cable-doesnt-quite-cha-h0d2qugcv2/ and someone else with a similar problem : https://cookup.ai/o/cellphone-bison-no-power-fix-anything-0kkkuvyjqt/ and of course the gardening and landscaping applications. This is the output for a small urban garden in paris : https://cookup.ai/o/small-urbad-garden-in-france-35-sq-meters-lot-6f0jtvo359/ try it out for yourself and your latitude here : https://cookup.ai/a/domestic-work-gardening-plan-u5xk02lt/ this is a similar application but with a different flavor : https://cookup.ai/o/small-urban-garden-in-france-35-sq-meters-lot-rzjfsvwhxy/ just use the one where the output is more like what you’re looking for, really you need both though . Test it out here : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ if you’re not gardening you might be landscaping so here’s the app for that : https://cookup.ai/a/domestic-work-landscaping-mziklqys/ here is the output for a small urban garden : https://cookup.ai/a/domestic-work-gardening-plan-wxxzfyke/ my favorite application so far has been the plant diagnosis app : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ it’s really surprising how well it works , and the breadth of assessment and remedies it suggests. Here’s an example for a sick cactus : https://cookup.ai/a/bulbi-plant-doctor-and-diagnosis-afy3abra/ (now it’s doing better) here’s an example from when someone tried it for cannabis : https://cookup.ai/o/purple-punch-cannabis-strain-it-has-brown-spots-krlteavvzs/ i dont know if i would actually follow that suggestion actually. Worked perfectly for a Meyer Lemon Tree giving plant-specific advice that you would have got from a local expert : https://cookup.ai/o/meyer-lemon-tree-its-about-15-years-old-and-fiqlyuvtrk/ the plant diagnosis worked so well that i did make a people doctor app : https://cookup.ai/a/doc-the-health-assessment-at-home-adqqqnd3/ it’s a bit more complicated and the quality of the outputs really depends on the quality of the inputs , so if you use this app, make sure you write in complete sentences and try to answer every question and aspect. here’s the output for a 50 year old man with an upset stomach : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ here’s another for a woman of a certain age : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ and finally an assessment for a respitory issue : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ i’m quite satisfied with that output suggesting a comprehensive evaluation by a board certified doctor. Another app in this category i the Pet Vet App. It’s meant as an assitant for folks that might need help with their pets : https://cookup.ai/o/name-roxanne-mix-race-dog-less-than-6kg-b3fja6tzrz/ that’s an example for my dog. Try assessing your pet here : https://cookup.ai/a/pet-vet-9ruwhazw/ Another important app is the Therapy app : actually in term of professions the Legal profession stands to be disrupted by crowdsourced jurisprudence based models . These apps wont do that. This app will produce a legal brief : https://cookup.ai/a/lawyer-juhp36s1/ Here it produces a legal brief for the presale of replacement organs : https://cookup.ai/o/i-am-a-56-year-old-man-i-am-five-feet-tall-i-w-pwmbvirv9u/ This Legal app takes another perpective to produce a legal approach and strategy : https://cookup.ai/a/board-member-legal-6uhjs7vh/ here’s an example output following up on the above: https://cookup.ai/o/how-can-i-assure-that-only-medical-need-is-consi-bc4llonmtz/ you can also use this app for a legal appeal : https://cookup.ai/a/legal-appeal-y6e4u8ke/ here’s an example from an international appointee to a board being asked to step down : https://cookup.ai/o/im-being-asked-to-step-down-from-a-board-howev-q6ep24xtev/ Another legal app produces a O-1 visa letter for someone. Here’s an example from @OliviaLi , actually she was the inspiration for this app : https://cookup.ai/o/technology-entrepreneurship-olivia-li-winner-o-caykzfcn2v/ thank you for using this app , hope you had a laugh with it :-) another example from my model friend i met in paris : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-83iuepjtrl/ try it out for yourself here : https://cookup.ai/a/legal-o-1-petition-s2ksioxe/ Then I made a few content apps for legal contracts , for example this app produces company statutes like so : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-d01rumxrud/ try it out here : https://cookup.ai/a/legal-company-statutes-ooshm9sb/ This app makes a pre-nuptual agreement https://cookup.ai/a/legal-prenuptial-agreement-hjlzflpq/ try it out ! example output using my personal context : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-bqkbwsom5g/ & here is the same context above for a divorse agreement : https://cookup.ai/o/were-a-young-couple-in-paris-france-claudia-an-8oqd9buhez/ try the divorse agreement app here : https://cookup.ai/a/legal-divorce-agreement-3oy1zxae/ Another tool is to produce Service Level Agreement https://cookup.ai/a/legal-service-level-agreement-kzfzu7rp/ here is an example output taking cookup ai as an example : https://cookup.ai/o/i-provide-artificial-intelligence-augmented-publ-70klxz1kly/ I made a sales contract generator too : https://cookup.ai/a/legal-sales-agreement-z5dohfko/ here’s an example output for a GIS consultant : https://cookup.ai/o/im-a-consultant-in-paris-france-selling-consul-cf43seks35/ this one makes a Loan Agreement : https://cookup.ai/a/legal-loan-agreement-swrd36a3/ here’s an example “ from james to kian in paris france for the sum of 30.000 euros to be repaid in full using a payment plan over two years” https://cookup.ai/o/from-james-to-kian-in-paris-france-for-the-sum-o-l9zowv3nv5/ There’s also a Leasing Agreement Generator that jurists or companies can use : https://cookup.ai/o/were-a-commercial-leaser-leasing-our-commercial-odowjna03d/ that’s an example , click “generate another” to make your own. Something folks can use is a co-residency agreement, among housemates for example : https://cookup.ai/o/nate-james-richard-and-elleanor-want-to-live-w-vobrwfsjjr/ I also made an employment contract generator for companies to use. Here’ an example for a post-doc level biofabrication person https://cookup.ai/o/post-doc-research-associate-chemical-and-biolo-memxrznsrf/ i added the job description as the input. Speaking of jobs, this app is one of the more popular ones : https://cookup.ai/a/career-planner-47fl3oss/ just give context around what you’re after who you are , that sort of thing and it will provide a career plan by selecting professions giving you key information on these professions and advice on what you need to do to get there. It also works great if you search professions by name : https://cookup.ai/o/product-management-career-planner-5t9oqpfgvr/ here’s one for “Introvert wants to be a doctor” https://cookup.ai/o/introvert-wants-to-be-a-doctor-career-planner-7rdcxeu3d6/ Get to know yourself better by taking famous self assesments . Here’s an example for RAISEC and OCEAN self assessment models (ref. Holland) : https://cookup.ai/o/what-brings-me-joy-is-cleanliness-organisation-mle213ruw0/ another way to work with 5 Factor models is by using Myers-Briggs Questionaire, here’s an example for an INFJ (Introvert, Intuition, Feeling, Judgment) , it also suggests compatible personalities, so check it out for yourself here : https://cookup.ai/a/career-myers-briggs-questionnaire-geiq2x20/ once you’ve figured out your path you might want to generate a motivation letter. here’s an example for a banking job with the cv copy pasted as input https://cookup.ai/o/royce-lopez-roycezlopezgmailcom-916-566-61-tubooat7y2/ once you’ve done your self assessments, you might want some career advice , so check out this app https://cookup.ai/a/career-coach-57m4zqp4/ see this example from my buddy nate to give you an idea : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-uxnxhj490e/ Another app that i’ve found nice is the career advisory service : https://cookup.ai/a/career-advisor-tdfuppp6/ it really produces a very interesting and robust output as you can see here : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-oaxcq3gfki/ sometimes you have to analyse a policy , so here’s an app that speaks every language and can do it aptly, with an example in french : https://cookup.ai/o/la-strategie-de-non-cession-des-droits-est-un-ou-lmdagmgiit/ just copy paste a description of the policy here : https://cookup.ai/a/policy-brief-analysis-gjurd2a1/ and an example in english for “private-sector employees' basic pensions” https://cookup.ai/o/in-france-private-sector-employees-basic-pensi-hirervbjrg/ sometimes you need your brief in a specific UN format , so here’s an example from the Idaho shootings : https://cookup.ai/o/cnn-in-the-weeks-after-four-university-of-id-qrh44i41ap/ copy and paste the situation and context here to see for yourself : https://cookup.ai/a/un-brief-vgqpmfni/ this app is more of a shortform straight forward flavor of political brief , here’s an example from the US house of representatives : https://cookup.ai/o/but-its-worth-noting-that-the-house-speaker-vot-nxg6fsalti/ copy and paste a news article here : https://cookup.ai/a/policy-brief-mbfdqxqe/ Another type of assessment is the civil engineering asssessment : https://cookup.ai/a/civil-engineering-hubmgasv/ here’s an example for a fantasy company that has a smelting plant and produces biological agents: https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-db77jqouqt/ that sounds a bit scary doesnt it ? so here’s an app for risk assessment and business continuity planning : https://cookup.ai/a/business-continuity-planner-nck1c6gg/ just describe your situation the best way you can and press “generate” , here’s an example from the company above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-d6vzx0trmh/ You can also use the safety and security assessment app : https://cookup.ai/a/safety-security-assessment-2u8ncxay/ here’s an example for a small company : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-pzgl1jcd5u/ and an event : https://cookup.ai/o/were-a-medium-sized-event-of-250-people-outdoor-vz7kpmzyf8/ If you’ve ever had to respond to an incident you’ve had to produce a sitrep , which is a description of the situation : https://cookup.ai/a/emergency-response-sitrep-za6akgeo/ just follow the inputs and answer in complete sentences for best results. This is to be used by responders to an emergency . It’s resilient to empty inputs and shorthand writing in case you’re really in a rush : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-mbwp0ohmp1/ sometimes you need a bit less than that so you can use this tactical brief application : https://cookup.ai/a/tactical-brief-jnoigckz/ here’s the output for the example above so you can see the difference : https://cookup.ai/o/a-6-year-old-child-was-running-downhill-in-the-p-n1whm5izmf/ here you can see the special flavor it has : https://cookup.ai/o/the-dog-escaped-and-might-have-gone-a-westward-d-ub2zqp2lik/ if you like this kind of tactical stuff, you’ll really like this one : RedTeam / GreenTeam and BlueTeam . Red Team is an offensive plan : https://cookup.ai/o/take-over-a-gas-station-with-5-team-members-wh-zxzfbg2m9e/ this one for a gas station in ukraine. Blue Team is a non-lethal operation planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ that’s an example to protect a gas station. Green team is the defense operations planner : https://cookup.ai/o/protect-a-gas-station-from-looters-blue-team-uhit1lboe1/ try your own here : https://cookup.ai/a/blue-team-gassdypa/ You’ll also need this one : a load out app based on your mission. Here’s an example for taking over a gas station in ukraine : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-ukraine-l-elk5hbpqqo/ here’s the example for russia : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-russia-lo-r5j1qjbgx3/ notice the subtle load out differences : https://cookup.ai/o/i-need-to-take-over-a-gas-station-in-france-lo-4j08n3htnv/ this example is from a NATO country. Do your own here : https://cookup.ai/a/loadout-5ign0mqm/ Another example is video games, where you need to build up a character and their items and so on, that’s also a loadout : https://cookup.ai/a/loadout-for-games-h6jmwlzp/ here’s an example from call of duty 3 : https://cookup.ai/o/i-want-to-play-as-a-sniper-in-call-of-duty-ca-gypil6uq7c/ here’s an example for a DnD dwarf : https://cookup.ai/o/a-goblin-in-dungeons-and-dragons-dnd-charact-k8pgmiag7n/ On the topic of games here’s one that makes a game : https://cookup.ai/a/gamer-make-a-game-xzg7wy2x/ here’s one inspired by munchkins: https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-gamer-yt4ebrqakm/ maybe that would be a good starting point if you’re actually making a card game. maybe you want to make a board game board game , this is an example still sticking with the munchkin vibe : https://cookup.ai/o/medieval-theme-in-the-style-of-munchkins-board-19k2vhmnhr/ try it out for yourself here : https://cookup.ai/a/board-game-mpovs8d7/ another fun app that’s quite useful for folks is the sound selection aid . here’s an example for dusty drum and bass : https://cookup.ai/o/drum-and-bass-downtempo-dessert-sounds-soun-wkmi4uzp37/ and here’s one for “mexican” : https://cookup.ai/o/mexican-sound-selection-aid-xkkgynfdim/ quite a simple input for a very rich output. hope you enjoy it. Another app i think is quite nice is the music lesson app. This is more a lesson planner for a music teacher, but good learners can probably use it too. here’s one for guitar that someone learning guitar made : https://cookup.ai/o/guitar-rock-practice-finger-style-and-the-cag-lph7ijp2a9/ here’s one for tabla that someone made : https://cookup.ai/o/tabla-20-musical-exercise-f215k23ual/ very cool choice of instrument ! Check it out here : https://cookup.ai/a/musical-exercise-tzftq3tw/ Another couple apps i made for music is Chord Progress and GAS-AI . Chord Progress proposes a chord progression based on your input and describes each chord for inspiration. Here’s an example for Blues : https://cookup.ai/o/bbm-piano-blues-downtempo-shuffle-chord-ruzwhdikcy/ really rich output. This one used it to make chords into a midi file : https://cookup.ai/o/generate-a-chord-progression-in-bbm-143-bpm-in-t-5nvoej1xkg/ really cool stuff ! here’s an example for a different style of music : https://cookup.ai/o/moody-dark-under-the-rain-upbeat-fast-beat-guen4tlqax/ try it out for yourself here : https://cookup.ai/a/chord-progress-9udstlsz/ One of my apps where people are actually using it and it makes me laugh is the Gear Aquision Syndrome app : GAS-AI . Basically it compares what all you’re considering to buy and evaluates them for you. Here’s an example for a sound card and interface with four possibilities https://cookup.ai/o/audio-interface-into-the-force-hello-im-ne-xelttc5qhn/ here’s a similar problem : https://cookup.ai/o/i-need-a-audio-interface-and-digital-mixer-hybri-qpgshbesyq/ try it out for your own gear : https://cookup.ai/a/gasai-gear-acquisition-syndrome-eky3hejx/ it actually works for everything : here is a sofa : https://cookup.ai/o/should-i-buy-a-sofa-or-a-recliner-for-my-living-4vxyuue27t/ try it with drills or power tools. Lots of really interesting education and learning related apps are possible. Here’s one for a Lesson Plan, I made it with K-12 in mind, but you can push the level with the right subject matters, it all depends on your input. Here’s an example for social studies grade 3 : https://cookup.ai/o/social-studies-goods-and-services-grade-3-30-b5ftwlpx7t/ here’s one for a scientific method lesson for teenagers : https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ and here’s one that a parent used as inspiration for a science fair project: https://cookup.ai/o/lesson-plan-for-k-12-classrooms-id7kfpvovw/ try it for yourself here : https://cookup.ai/a/lesson-plan-for-k-12-classrooms-nuzysbgl/ another classroom friendly app is the lab report app : just copy and paste a protocol or your unstructured text and see. Here’s one that’s for an ezyme experiment : https://cookup.ai/o/enzyme-experiment-materials-potato-test-tube-smztw5xrsy/ And another for a physics experiment : https://cookup.ai/o/highschool-physics-materials-jumbo-craft-sti-obgtuvdwew/ try it for crispr or other more complex experiments to have a jumping point for your own journaling here : https://cookup.ai/a/sci-doer-lab-report-muaibwee/ Another one i like is generating protocols for any experiment. The simpler the better and the more precise the input the better the out. Here’s one for the science fair digestive system : https://cookup.ai/o/construct-a-model-of-the-digestive-system-4th-gr-fbfmyz4vgu/ (just an inspiration) see this one for CRiSPr : https://cookup.ai/o/crispr-sci-doer-protocol-generation-nmwk1m2t7g/ here’s one to take nasa data and annotate it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-xfautgpyx6/ try it out for your own experiments here : https://cookup.ai/a/sci-doer-protocol-generation-atlu2ygw/ Sometimes you need an arts & crafts activity on the go. Here’s an example for a basic activity : https://cookup.ai/o/we-are-three-adults-with-scissors-cloths-pap-swdxlqq9si/ try it for yourself here : https://cookup.ai/a/arts-crafts-kglkhms5/ Another way to get inspiration for activities is the Extramural Center activity app , here’s an example for a small group and a selection of activities : https://cookup.ai/o/6-13-year-olds-with-a-handicap-indoors-education-7t0xeyrqpe/ try it for yourself with your own context here : https://cookup.ai/a/extramural-activity-wrd76vaq/ There’s another app i made which i like a lot which is a physical activity generator : https://cookup.ai/a/k-12-physical-activity-inspiration-7baaoy3k/ . See this example for a parachute game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ or this one for a team game : https://cookup.ai/o/for-10-9-12-year-olds-with-limited-but-available-sfhulfohfy/ Sometimes you need to break the ice before you start activties : check out the ice breaker app . Here’s an example for a group of adults : https://cookup.ai/o/a-small-get-together-of-work-collegues-ages-24-rxoz9wxyz8/ here’s a list of activities for young people : https://cookup.ai/o/a-gathering-of-a-highschool-group-of-18-people-a-hafttbbr78/ get your own instantly by prompting it here : https://cookup.ai/a/icebreaker-activities-ot0nm5cr/ you know how you need to make team names sometimes ? this one makes those team names with each letter of a word : example for NATE : https://cookup.ai/o/nate-acronym-poem-tto3zblpft/ and TARANJEET : https://cookup.ai/o/taranjeet-acronym-poem-muuoowigr7/ Another App I made was the swimming plan app, based on your context and objectives, you’ll get a custom swimming plan : https://cookup.ai/a/swimming-plan-2dkanocy/ Here’s an example for a young adult trying to get back in shape : https://cookup.ai/o/young-adult-strong-swimmer-just-to-get-back-in-c3o14kl0ys/ It also works in multiple languages, for example here in french : https://cookup.ai/o/jeune-adultes-objectif-sante-et-bienetre-d-l8y20i0v9d/ For fitness I also made an app to propose a session for you : https://cookup.ai/a/fitness-daily-exercise-routine-g2p9m845/ here’s an example with a high level of cardio : https://cookup.ai/o/nate-20-years-old-cardio-and-weights-with-stretc-zukgek1gfs/ here’s another with multiple days : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-fitne-szedbsxokb/ another way to go about it is to vary week on week, so here’ a weekly fitness planner : https://cookup.ai/a/fitness-plan-weekly-sessions-wejju67t/ here’s an example using me : https://cookup.ai/o/34-years-old-strength-and-weights-training-for-f-43aasmnpvh/ here’s a prompt i actually copied from someone on cookup : https://cookup.ai/o/can-you-generate-a-30-minute-exercise-routing-fo-16sickeywn/ here’s another fitness app that combines daily and weekly fitness plans : https://cookup.ai/a/fitness-exercise-plan-o6qwdf1n/ check out an example for Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-serzfqqdqx/ here’s another with a different goal : https://cookup.ai/o/nate-20-years-old-weights-and-cardio-mix-strengt-c80fwhwhyy/ since we’ve done weekly we need a monthly fitness plan app : https://cookup.ai/a/fitness-plan-pxmtjqvu/ this is an example taken from me : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ and another with the previous cookup ai prompt : https://cookup.ai/o/34-goal-fitness-objectives-endurance-ve-6h1vmi8gly/ Another fun app is the Planner : https://cookup.ai/a/planner-yad83kfl/ here’s an example for three people that want to meet : https://cookup.ai/o/claude-francois-and-patrick-need-to-meet-for-on-gysvpwfygo/ it helps you set an agenda and generate a ics file to add to the calendar . here’s one someone made for a specific company : https://cookup.ai/o/dynatrace-introduction-sales-team-of-the-provid-fiwtrwjstk/ you can even use it to plan a board meeting. Try inviting these AI board members that will give you pretty decent advice. Here’s one for strategy : https://cookup.ai/a/board-member-strategy-alpfxrpb/ for example with the manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-gshmrgjirt/ here’s a similar one that’s from McKinsey : https://cookup.ai/a/board-member-mckinsey-127uxtci/ with the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-xe3cuyc2lb/ every boad needs a business process expert : https://cookup.ai/a/board-member-process-analysis-r1pyxnum/ here’s an example from the same manufacturing plant above : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-f9uqctyz7w/ A really useful one is the financier app : https://cookup.ai/a/financier-etv18bpn/ basically copy paste financial information , for example some passages from a K-10 : https://cookup.ai/o/during-the-nine-months-ended-september-30-2022-spabcn6lyw/ There’s more to business than advisory and analysis , though. In some roles you have to make product requirement documentation in specific formats. This app does that for you : https://cookup.ai/a/product-feature-requirement-qqjkmaoo/ and with an example from cook up : https://cookup.ai/o/write-product-requirement-doc-for-group-feature-mbpagiwqq3/ here’s one to create a payment system : https://cookup.ai/o/product-requirements-document-donate-feature-in-bdwwatb1tb/ very rich output indeed. In entrepreneurship you often need to find someone for doing a specific job. This app reccomends folks for your jobs : https://cookup.ai/a/expert-finder-find-the-right-person-for-the-job-wyzwrgkr/ here’s someone that used it to fix the smell in their bathroom : https://cookup.ai/o/smell-in-the-bathroom-fix-the-issue-of-bad-smel-vqxckk7rju/ another example to host a meeting : https://cookup.ai/o/i-need-to-host-a-board-meeting-in-the-washington-kqhzzronur/ Here’s an app to create a logistic plan : https://cookup.ai/a/logistics-planner-tavpycje/ i tried to help me transport the mona lisa from paris to my garage in new york https://cookup.ai/o/i-want-to-transport-priceless-art-from-the-louvr-uultjyh7jn/ here’s another example for transporting organs using UAVs : https://cookup.ai/o/i-want-to-deliver-organs-via-uav-from-suburbs-to-abfyqdi617/ Probably to run this whole thing you will need an operations plan : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-epnwff8cln/ just input as much information as possible and see for yourself : https://cookup.ai/a/business-operations-planner-zshf1qji/ You might need to create a business information model to integrate business opertions . This application gets you started : https://cookup.ai/a/business-information-model-mgvydoqk/ here’s an example for a biofabrication company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-jqclaoslhl/ here’s the same example , but a bit more descriptive : https://cookup.ai/a/business-information-model-mgvydoqk/ came out really nice ! The most difficult part of the entrepreneurship for me was always the business modelling . Here’s a business model app : https://cookup.ai/a/business-model-lkhqn3wd/ just write in freeform what you need to analyse. Here’s an example for a biofabricated organ : https://cookup.ai/o/crowdfunding-presale-of-biofabricated-heart-orga-qr6bfw76an/ and another with the same example: https://cookup.ai/o/presale-of-biofabricated-organs-classified-as-me-rfrxryuq3w/ btw here’s a tribute app to Hal Varian : https://cookup.ai/a/hal-varian-micro-economic-analysis-w1rmg53t/ to assess the microeconomics of anything https://cookup.ai/o/an-employment-contract-between-a-biotech-company-zsdm8hg296/ One of my most popular apps is the Structure a Business Idea App : https://cookup.ai/a/structure-a-business-idea-hrsr09vb/ here’s an example for a No Code Agency : https://cookup.ai/o/no-code-agency-we-help-business-to-innovate-fas-dv4i9iu0dn/ here’s an example for a biotech : https://cookup.ai/o/services-to-prevent-potential-drug-drug-and-drug-ubbghudjas/ here’s one for a sustainability platform : https://cookup.ai/o/building-a-platform-which-improves-sustainabilit-vmypophtwt/ the more your write as input the better the output, usually . The king of apps when it comes to this stuff is MindMap : https://cookup.ai/a/mindmap-create-structured-thoughts-r9sqgmca/ just write your unstructured thought in freeform and it will structure them and improve the overall idea. Here’s someone that tried it for backcountry permits in Yosemite : https://cookup.ai/o/getting-a-backcountry-permit-in-yosemite-mind-g3lykluvfs/ Another used it with the simple word “evolution” https://cookup.ai/o/evolution-mindmap-create-structured-thought-ao6cg3isi0/ here someone used it to explain prefect tense in french : https://cookup.ai/o/explaining-the-prefect-tense-in-french-mindmap-jw4olzfae0/ normally you would be writing your full thoughts in freeform , but here you see someone use it for university analytical work : https://cookup.ai/o/community-college-transfer-rates-black-students-f54vui1fyg/ once your idea is structured the idea would be to have it evaluated by a VC. This app does just that : https://cookup.ai/a/venture-capitalist-0rkcu6yu/ here’s an example from UAE : https://cookup.ai/o/licenses-reseller-for-dynatrace-in-uae-ventur-s2jywjfwiq/ here’s someone who asked a question about monetizing spreadsheet apps : https://cookup.ai/o/how-do-i-monetiseai-spreadsheet-assistant-busine-y7ap37qm53/ here’s another for a fashion business : https://cookup.ai/o/an-apparel-business-that-has-robot-characters-fr-92hk5rlov4/ here’s an example with a better prompt : https://cookup.ai/o/in-addition-to-reducing-wait-times-and-rejection-mgtfgosmqz/ you might not be an entrepreneur, you might be applying to a job, here’s an app to help you prepare : https://cookup.ai/a/the-interviewer-siqzfsms/ here’s an example for a humanitarian logistics role in bangladesh : https://cookup.ai/o/for-a-senior-humanitarian-worker-in-bangladesh-i-pqnfamlscb/ just copy and paste the job description it should work quite well. Another important activity for folks is financial planning. Actually , you can also produce a job description with the Job Description App : https://cookup.ai/a/business-job-description-wz1xuwks/ here’s an example for a chemical engineer : https://cookup.ai/o/regenererex-we-are-a-life-sciences-company-pio-kjz06bwis9/ This app helps you build a personalized financial plan based on your personal context : https://cookup.ai/a/financial-plan-6vkrersy/ here’s a general example for “single guy 36 working in software in boston“ https://cookup.ai/o/single-guy-36-working-in-software-in-boston-f-f49z9icuh9/ here’s a more specific example for my buddy Nate : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-fmmzn6ftle/ a Financial Plan is great but you will eventually need a financial program. These are different things! Check it out here : https://cookup.ai/a/financial-program-1uro0zlw/ here’s the example from Nate, above : https://cookup.ai/o/nate-20-years-old-from-vancouver-bc-canada-y5co3ijtfz/ very nice output, it’s more advisory and actionable in nature. When i met my wife she was a fashion designer. That’s the inspiration for the Seamstress App : https://cookup.ai/a/the-seamstress-so4chhgu/ just enter a prompt and generate a description of the clothes . Here’s an example for a Dune inspired dress : https://cookup.ai/o/an-off-white-dress-for-my-wife-size-0-172cm-in-t-07kzxl8p5x/ here’s one in french for a princess dress : https://cookup.ai/o/robe-de-princesse-medievale-the-seamstress-vb8gedk2s1/ Then you take that , and feed it to make a sewing plan : https://cookup.ai/a/sewing-plan-7qtvyvs6/ here’s the example of the Dune dress : https://cookup.ai/o/this-off-white-dress-is-the-perfect-fit-for-a-fu-s8y2dahrtz/ and the princess dress : https://cookup.ai/o/cette-robe-de-princesse-medievale-est-une-piece-82hrc38ghe/ but nowadays everything is done on computer , so i made an app to take the sewing plan and make the digital figures required by most modelling programs : https://cookup.ai/a/cutting-planner-p19jna69/ it’s basically the cutting plan, here’s from the example above : https://cookup.ai/o/cutting-plan-description-fabric-size-znhvevhg12/ just save as json. Here’s from the Dune dress : https://cookup.ai/o/cutting-plan-1-cut-2-pieces-of-off-white-fabri-fgrc6qtjuv/ a couple of other fun apps are the interior design and architecture apps. Interior design : https://cookup.ai/a/architect-interior-design-syh8zp1w/ see and example for a living room : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-7tbtc6sovh/ and another : https://cookup.ai/o/salon-pour-recevoir-jouer-un-violon-et-un-pi-8dkos9cbij/ interior is one thing but architecture is another : https://cookup.ai/a/architect-plan-cfqptnfv/ just describe the building style you want to get an architectural brief : https://cookup.ai/o/stone-facades-plain-or-ornamental-black-wrought-cozocyzghu/ this is the analysis for hausmann architecture based on a simple description. great success. The marketting apps, is what a lot of the audience has been asking for. Here’s one to make a marketting plan : https://cookup.ai/a/marketing-plan-2tmso3ol/ it actually works great ! here’s an example from a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-j7oazivrrx/ here is an example for a replacement organ producer : https://cookup.ai/o/founded-in-2009-we-are-one-of-a-small-group-of-uwivyeviad/ great stuff, high value outputs, i’m happy. When you’re doing marketting one important thing to do is to target the customer and audience. This is the targetting app for that : https://cookup.ai/a/marketing-targeting-qtghe0tp/ here it is evaluating a campaign that might be misaligned : https://cookup.ai/o/cookup-ai-is-a-no-code-agency-that-has-produced-pg9ftxk4x9/ here is an example for a single person accounting firm : https://cookup.ai/o/i-am-an-engineer-by-training-cfa-charter-by-pro-cg0diw81ce/ here for a manufacturing firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-naxtgab0ct/ it really depends on the quality of your inputs the outputs you will recieve . Once you have targetted your audience , you need marketting copy , try this app : https://cookup.ai/a/marketing-copy-write-anything-dxg3xt5n/ based on the input you give it will generate unique marketting copy . Here is an example for a pharmaceutical firm : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-guov5olrsg/ here is an example for a commercial message : https://cookup.ai/o/were-a-small-manufacturing-plant-that-produces-3diho4thzd/ once you have published your marketting copy you need to follow up with sentiment analysis to see how folks are responding to it. Analyse the sentiment of anything with this app : https://cookup.ai/a/marketing-sentiment-analysis-tcdxotks/ here’s an example from a negative case (trigger warning) in Dutch : https://cookup.ai/o/een-interessante-zedenzaak-een-man-heeft-seks-xesooct1se/ here is a positive example in chineese language : https://cookup.ai/o/-7lv1hk1sqy/ Another important marketting activity is conducting and analysing survey data. HEre’s the survey app : https://cookup.ai/a/survey-unstructured-data-analysis-z4te4jwu/ basically what you do is copy paste your unstructured data directly inside it and it will produce a full assessment of what you need . Sometimes you need to write a profile for yourself optimized for commercial activities. Here’s a Marketting profile app : https://cookup.ai/a/marketing-profile-description-ctg0tkhm/ from our example above : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ another profile but written in first person view : https://cookup.ai/o/38-years-male-i-am-graduate-from-iit-delhi-cf-nkbh2uc1ri/ but sometimes you need to make these profiles for SEO optimization. Here is an example from above : https://cookup.ai/o/profile-description-saurabh-garg-is-a-cfa-charte-uih63jefeb/ or for an enterprise : https://cookup.ai/o/solving-for-nri-india-banking-hate-seo-7ny64vlycn/ check it out for yourself here : https://cookup.ai/a/seo-fuxlixw3/ sometimes you need to produce SEO-optimized copy , Try using this app i made for that : https://cookup.ai/a/seo-optimized-text-wjcj5xtg/ basically you should paste your text in there and it will optimize it for engagement for you. here’s an example : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-vwrlfkv460/ hope you like using it ! Sometimes you need to convert something into an SEO optimized text, here’s an app for that : https://cookup.ai/a/seo-convert-oew8gazp/ For example for a lifesciences company : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-a9wiygvvhx/ here is a re write for a text about a building in Paris : https://cookup.ai/o/le-complexe-architectural-de-la-cite-de-la-musiq-bf0zfeylgj/ try it out and tell me what you think. You might already have the text you want but need hashtags, check out this app : https://cookup.ai/a/hashtag-generator-glj4cvx0/ here’s an example for a crowdfunding campaign : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-th8fgrddjm/ and the same campaign but in Spanish : https://cookup.ai/o/crowdfunding-campaign-biofabricated-organ-donor-gfxmzmyojk/ Marketing is actually a pretty diverse job , so sometimes you have to design media like videos and so on. This app is the scenario maker : https://cookup.ai/a/scenario-sacr0cs5/ you can use to make advertisements : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-dwoaemlitf/ or actually as a writing aid. Another writing aid i made is the story arc : https://cookup.ai/a/story-arc-sbmt20if/ here’s an example for a story in paris : https://cookup.ai/o/paris-in-the-future-with-a-character-called-nate-zig4ciiqpq/ here is an example from a real writing class : https://cookup.ai/o/lamour-en-lan-3000-cyber-maltese-order-love-agzbkpx83f/ and another from the same class : https://cookup.ai/o/on-mars-in-3000-a-love-story-short-story-8hoonrhwgj/ I actually see the whole class used the app lol, how cool is that? Another app in the same style is the Text Styler app : https://cookup.ai/a/text-styler-epclawul/ here’s how it works : https://cookup.ai/o/a-biofabricated-organ-donor-chain-is-a-donation-ybzmsprdxa/ pretty cool right? it works on any text in any style. Actually one writing app that folks have been using randomly is the email writer : https://cookup.ai/a/the-emailer-hoe5yq9w/ here’s an email i wrote to TJ : https://cookup.ai/o/write-an-email-to-teejay-ceo-of-cookup-ai-to-l-fmtbqzacck/ here’s an email my buddy mamadou wrote in french in agressive style : https://cookup.ai/o/voici-les-copies-de-mes-contrats-de-travail-avan-ccwb566cex/ (btw the output is very diplomatic) here’s another example when someone is launching an AI-driven SaS company. To communicate on twitter sometimes it’s necessary to make a thread. Just copy and paste the text your want to turn into a thread here : https://cookup.ai/a/twitter-thread-maker-leffxz5w/ here’s an example for finance https://cookup.ai/o/cfa-iitdelhi-investments-twitter-thread-mak-xypbzhofsh/ another job marketters have to do in small teams is to make a design mockup for the designers. Try to make your own using this app : https://cookup.ai/a/design-mock-up-wrqoikz6/ here’s an example for “a logo of a dog for a street vending franchise “ : https://cookup.ai/o/a-logo-of-a-dog-for-a-street-vending-franchise-tuj5iduqvf/ and here for “icon of a small cute dog for client” : https://cookup.ai/o/icon-of-a-small-cute-dog-for-client-design-moc-dfnn6c0i4s/ then you take that output and make mock up instructions for producing a mockup : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-wqryxhxn9y/ try with your output here : https://cookup.ai/a/design-mock-up-instructions-gtynwwal/ then you take that output and use that in your favorite design software like Adobe : https://cookup.ai/a/design-mock-up-adobe-illustrator-jrvejfep/ here’s the example with the logo above : https://cookup.ai/o/the-mock-up-above-is-an-icon-of-a-small-cute-do-1seqvv9dog/ and just for a “dog” https://cookup.ai/o/dog-design-mock-up-adobe-illustrator-wk0t9a8ssl/ basically you take that output and save it as a *.ai file and you can open it in illustrator. Many folks also use Autocad : https://cookup.ai/a/design-mock-up-autocad-sfmvloz8/ here’s an example with the dress above : https://cookup.ai/o/beautiful-white-dress-with-hood-in-linen-st-wn9tw1coic/ and for the dog logo with the mockup output : https://cookup.ai/o/mock-up-of-doggy-daycare-service-icon-the-moc-rjxzwyadfj/ a lot of the time your mockup will be for a webpage , here’s an app to generate that : https://cookup.ai/a/design-mock-up-html-css-zfogdco8/ we’re still working on all that at cookup so there’s a fair bit of injection happening right now : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-grhmtug5h3/ sometimes for more advanced stuff, you do things in Java : https://cookup.ai/a/design-mock-up-java-8-bdf4shel/ here’s the example for the dress : https://cookup.ai/o/beautiful-white-dress-with-a-hood-in-linen-de-zmhpbjj5td/ and the website : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-ej7ao1qi32/ for most other applications you might use json files , try this app : https://cookup.ai/a/design-mock-up-json-gscyw2uw/ here’s the example for the webpage : https://cookup.ai/o/home-page-for-a-small-biotechnology-company-mo-mbutbcrrhw/ another pretty important activity for designers is making logos . This app makes an svg file : https://cookup.ai/a/design-tools-logo-create-svg-1aiwxrd8/ here’s the example for the dog logo above : https://cookup.ai/o/the-mockup-of-a-logo-of-a-dog-for-a-street-vendi-uvsmspphd3/ here’s another example https://cookup.ai/o/wireframe-instructions-using-adobe-illustrator-pyiov0ewwp/ i used the adobe illustrator output for that one . Remember the app for the lesson plans for the kids ? here’s an app that makes exercises based on the parameters of the lesson plan for any subject : https://cookup.ai/a/exercise-problems-kynz1tke/ here is an example for learning the french language : https://cookup.ai/o/difficult-french-adults-word-problems-3bkfl6ymlj/ here is an example with simple math problems for a 14 year old : https://cookup.ai/o/difficult-algebra-geometry-14-years-old-hldveryglw/ here is one for more difficult math problems for a 22 years old grad student https://cookup.ai/o/difficult-mathematical-reasoning-integrals-jya866uucz/ i dont know if would be able to solve these (but probably yes :-) ) Another app to do this maybe a bit better is the WorkBook app : https://cookup.ai/a/quiz-workbook-for-education-8qrs5rkl/ here’s an example for 17 year old student in 11th grade physics class https://cookup.ai/o/17-year-old-student-in-11th-grade-physics-class-747ywebagt/ here’s one for "4th grade, digestion rates https://cookup.ai/o/science-4th-grade-digestion-rates-practical-e-wl1n3swezt/ here’s another for worldwar 2 : https://cookup.ai/o/history-worldwar-2-15-year-quiz-workbook-nu9p3hvv2h/ folks have been using this app a lot actually ! Now that you have all your questions maybe you need help to solve some ? Here’s the Problem Solver App : https://cookup.ai/a/problem-solver-lrsnpcdw/ here’s an example for algebra : https://cookup.ai/o/fx-3x-3-for-x-real-and-gt-3t-3-for-t-fcap3rjn83/ here’s another for calculus : https://cookup.ai/o/let-the-interval-a-infinity-be-the-range-of-qmfbtjdgrs/ Maybe you’re a student that needs to write an essay or you need an example essay , or really, to write anything : https://cookup.ai/a/essay-writer-jv1aopmy/ this essay writter can help you write something for example on homeostasis : https://cookup.ai/o/efine-the-term-homoeostasis-and-using-examples-e-irvfwvrrhy/ or an essay on how to stop procrastinating : https://cookup.ai/o/listing-the-4-ways-to-help-you-stop-procrastina-5kkqxt00pt/ if you’re afraid of running afoul detector policies , try the detector proof easy essay app free here : https://cookup.ai/a/easy-essay-detector-proof-y9ojklov/ here’s an example : https://cookup.ai/o/on-the-topic-of-figure-painting-in-paris-easy-86vcnkq9fe/ it replaces certain letters with a nullspace then the letter to evade detection, if you’re getting a lot of symbols in the essay copy paste it into a markdown editor and they should disappear. See here since markdown is not supported : https://cookup.ai/o/how-to-avoid-plagiarism-detectors-easy-essay-n7ntedsdnn/ sometimes when you’re writing you need to argue from A to B , try it here : https://cookup.ai/a/from-a-to-b-reasoning-from-a-to-b-1jda5cyp/ here’s an example : https://cookup.ai/o/nucleotides-are-important-for-cellular-signallin-8eb9wmdan0/ try it in any subject. Conversely, you might need a counter argument for a given claim : https://cookup.ai/a/logic-counter-argument-mh23bzhc/ here’s an example for If you want to find a good job, you should work hard: https://cookup.ai/o/if-you-want-to-find-a-good-job-you-should-work-savzaceiie/ In many writings you’ll also need tables, copy paste unstructured data (ex. from a pdf ) to make a table in markdown format : https://cookup.ai/o/chemicals-peptides-and-recombinant-proteins100-3xqvttyphl/ copy paste the output in a markdown editor for best results. sometimes you want to analyse your data , check out this app , copy paste your pdf data and give context : https://cookup.ai/a/data-results-analysis-ykrjxb31/ see here the results for a blood test : https://cookup.ai/o/tsh-serum-chimiluminescence-abbott-alin-da3rkw8of0/ Let’s be honest, most folks use excel , check out this app to describe any excel function : https://cookup.ai/a/excel-9chnuveu/ enter your function in freeform to get the function : https://cookup.ai/o/a-formula-to-describe-the-date-and-time-excel-dfw434foep/ or for a macro : https://cookup.ai/o/a-macro-to-link-my-sheet-with-a-document-called-rq4ol7luzv/ actually i made a special app just for macros : https://cookup.ai/a/excel-macros-esxm4uaz/ here is an example of a complicated macro : https://cookup.ai/o/hi-i-need-a-macro-code-to-copy-the-an-adjustant-8ptt9hzlfv/ here is one for an even more complicated one: https://cookup.ai/o/i-want-to-a-excel-vba-programming-file-for-road-etdl4mkvqw/ and here is a simple one for a vinyl shop : https://cookup.ai/o/i-am-working-on-an-excel-database-of-vinyl-recor-cacxxdd4bz/ most people who actually work with formulas do so in LaTeX , this app produces LaTeX formulas : https://cookup.ai/a/latex-formula-00spf7gu/ here is the example for Bailey–Borwein–Plouffe formula https://cookup.ai/o/baileyborweinplouffe-formula-latex-formul-ktd09xaoks/ this one represents Pi : https://cookup.ai/o/displaystyle-pi-sum_k0inftyfra-fjpnjfsqkv/ this one is for social science : https://cookup.ai/o/incentive-structure-of-employment-contract-lat-hulr6ppzhu/ Actually many folks use LaTeX to write things, this app will use latex to write a preprint : https://cookup.ai/a/pre-print-latex-vy0hga2j/ this is an example for the Peter Principle : https://cookup.ai/o/the-peter-principle-summarize-pre-print-qqm2bwiugd/ here is one for Use of God in vain, Neopentecostal https://cookup.ai/o/use-of-god-in-vain-neopentecostal-pre-prin-098nsf1ari/ here is one in Spanish : https://cookup.ai/o/nergysens-en-la-industria-nergysens-pretende-w7aovgv09l/ to do any kind of research you need to do a search, but a lot of folks do systematic search , this app generates systematic search terms : https://cookup.ai/a/systematic-search-boolean-search-strings-z6ng0grb/ here’s an example from diabetes research : https://cookup.ai/o/diabetes-mellitus-patient-empowerment-systemat-8el8qpek2d/ here’s another from biology : https://cookup.ai/o/across-the-tree-of-life-systematic-search-eq4dtp8tgf/ once you find your references you need to make a bibliography so here’s the app for that : https://cookup.ai/a/bibliography-jucn4woy/ it creates a bibtex script in the format you want : https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-0sts6dgrae/ & https://cookup.ai/o/cheng-p-w-1997-from-covariation-to-causati-bc1wbkxg9f/ sometimes research or something else is too confusing, here’s an app to make a lay summary : https://cookup.ai/a/lay-summary-4rvs8flz/ here’s a summary of fossil fuel environmental research : https://cookup.ai/o/the-substantial-body-of-literature-documenting-aywxbutrjs/ another run about ExxonMobil : https://cookup.ai/o/the-substantial-body-of-literature-documenting-ogcsccg9rd/ Sometimes you’re looking for information not just summarizing it , so i made an encyclopedia app : https://cookup.ai/a/encaiclopedia-7cmwjq1c/ i wouldnt be surprised if encarta got GPT at some point : https://cookup.ai/o/sometimes-giants-are-smaller-than-you-think-e-tzxphjmrm4/ here’s for Kirchhoff's voltage law : https://cookup.ai/o/kirchhoffs-voltage-law-encaiclopedia-zsxhyhwh5u/ and the potter identity : https://cookup.ai/o/potter-identity-in-electrical-engineering-enc-zgtgli3ge4/ encyclopedias are cool but do you remember almanacs ? here’s the almanac app : https://cookup.ai/a/almanac-bkmwaeqj/ here’s the output for 21st of december : https://cookup.ai/o/21st-of-december-multiple-years-almanac-w4qp2c0zii/ I also made an app to create content in wolof : https://cookup.ai/a/wolof-future-xlw6gpuw/ I’ll be trying to get content creation for local languages to take off : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-ovfunzxwss/ contact me if you’re interested in that : https://cookup.ai/o/moo-di-ko-def-jangu-na-ci-sujet-ci-nii-ci-philos-w6wgkaoped/ actually AI is really good at translation, translate whatever you like here : https://cookup.ai/a/translate-remwokk4/ i translated some passages from the wolof examples above : https://cookup.ai/o/jangu-na-ci-sujet-ci-nii-ci-negritude-ci-philoso-5luudnxkim/ and : https://cookup.ai/o/negritude-ci-cosaan-yu-and-ak-cosaan-yi-daal-di-xvgj7tufcs/ Once you' can speak any language and have passed all your classes, you might want to talk to an admissions counsellor : https://cookup.ai/a/admission-whnqib7b/ here’s an assessment for a community college in california : https://cookup.ai/o/community-college-student-40-gpa-political-sc-wlfubay93c/ If you’re a star student aged 15-16 consider applying to my alma matter : https://cookup.ai/a/special-school-selector-lhr8oncj/ I’m part of the french selection commitee so it’s in french : https://cookup.ai/o/eleve-francais-15ans-1820-dans-toutes-les-matie-lrv16nvje0/ remember when you were young and you played “who would win” in a fight ? here’s the app for that in case you need it : https://cookup.ai/a/who-would-win-tssvciza/ here’s the example for : a boa constrictor & cat https://cookup.ai/o/a-boa-constrictor-cat-who-would-win-mw2prpyiid/ and archbichop desmond tutu vs marie curie (Dr. Curie wins) https://cookup.ai/o/archbichop-desmond-tutu-marie-curie-who-wo-qzqgt6dt5d/ Folks love going on trips. Use AI to help plan your iterary https://cookup.ai/a/trip-planner-little-routurier-a2azneqe/ here’s an example for baroque art in Malta : https://cookup.ai/o/la-valette-malta-busy-trip-baroque-music-for-latxxdvlbp/ here’s an example for paris for 4 days : https://cookup.ai/o/paris-france-for-4-days-trip-planner-little-6hgvyzaagl/ and 5 days : https://cookup.ai/o/paris-france-for-5-days-trip-planner-little-qqcuhtdqzl/ what should you bring on your trip ? good question, try this app : https://cookup.ai/a/what-to-bring-kswnufpq/ here’s an example from normandy in february : https://cookup.ai/o/im-going-on-a-day-trip-to-the-beach-in-normandy-1mrn6vmkvd/ If you’re travelling or have an email box , you should be careful for scams . Here’s the scam detector app : https://cookup.ai/a/anti-scam-detector-p1kjgvjw/ just copy paste or describe what you’re seeing, here’s an example for a tax scam in the uk : https://cookup.ai/o/foraoternh8uogeowebnefirqupeizsaotnoi34hus-4wpf1jxnma/ and an email upgrade scam : https://cookup.ai/o/c12-outlook-dear-user-all-hotmail-customers-ha-hlf2awn30x/ I also made an app to debunk conspiracy theories and fake news : https://cookup.ai/a/debunker-apx1db8w/ here’s an example for mangoes cure covid : https://cookup.ai/o/la-mangue-gueri-la-covid-19-debunker-6hs4nlxhjr/ and that the vaccine is a conspiracy : https://cookup.ai/o/le-vaccin-covid-est-un-complot-debunker-zjwbaeuxpx/ the most interesting one is the bomb plot from congo : https://cookup.ai/o/httpsaupicinfoscomnord-kivu-explosion-dune-0rsx2gdxud/ just from the URL input it produced something really quite well done. Another app i made is the conspiracy theory creator : https://cookup.ai/a/russophile-k9zjyymf/ i called it russophile because everything russian is just garbage fakes lol , here’s an example for “Jewish Nazis From Ukraine Smoking Pot And Building Underground Biolabs To Engineer Mosquitos To Target Ethnic Slavs In Russia Guess The Rest Of Them Were Like Whatever” : https://cookup.ai/o/jewish-nazis-from-ukraine-smoking-pot-and-buildi-ng4qetdw84/ works quite well, maybe it will help make the entire russian foreign service redundant ? end the nightmare by donating here : u24.gov.ua i heard a lot of rusian soldiers were targetted because they were using dating apps. If you want to join them in dating hell, try this dating profile generator : https://cookup.ai/a/sincerely-dating-profile-generator-lf1m9l6s/ i think people liked it because they tried to hack it but here’s one i made as an example : https://cookup.ai/o/32-male-84-kg-straight-white-172m-i-like-to-7aqvxyifbo/ i originally made it because the cookup platform is flirting with these “spammy” types of apps, but mine is way better :-) whether you find someone to or not, you need to sleep, perhaps even dream . Here’s an app to keep a dream journal : https://cookup.ai/a/dream-explainer-yjmnu3vr/ here’s an example from when i was younger : https://cookup.ai/o/i-had-a-recurring-dream-of-stealing-an-egg-after-cpkibppswt/ someone had another dream : https://cookup.ai/o/dream-about-my-girlfriend-cheating-on-me-dream-grka1oadue/ Remember T8 ringtones ? i dont know why i made this , but here it is a Ringtone Generator for T8 keyboards : https://cookup.ai/a/t8-ringtone-generator-n6pgangt/ here is the Zelda theme : https://cookup.ai/o/zelda-melody-polyphonic-t8-ringtone-generator-mjnnevotvj/ The next few apps are just tributes to Codex & Co-Pilot both of which are better suited in your IDE , Gitlab or something like VBS . Check the first one out here : https://cookup.ai/a/co-pilot-ai-to-help-you-code-zsfgk4nm/ remember the NASA experiment from above? here’s the code for it : https://cookup.ai/o/develop-an-app-that-uses-data-from-the-telescope-1n2eugkknb/ here is one to scrape a website to excel : https://cookup.ai/o/create-script-to-scrape-a-website-to-excel-go-qdxeyouinx/ here’s an app to create top level code : https://cookup.ai/a/co-pilot-top-level-code-bccjfqgs/ an example for folks to make a ghost blog api microservice: https://cookup.ai/o/a-link-using-apis-and-microservices-to-link-ghos-2ulpfhwl7o/ Another way to get good results is with boiler plate code : https://cookup.ai/a/co-pilot-boiler-plate-code-fmhetodq/ here’s an example to create a chat bot: https://cookup.ai/o/a-chat-bot-for-matrix-servers-and-discord-server-qgnqvxnvzn/ here’s an app to create regex expressions : https://cookup.ai/a/co-pilot-regex-expression-k5hctbve/ here’s one in python : https://cookup.ai/o/function-to-scrape-all-profile-information-nam-da0uncppew/ here’s one in Golang : https://cookup.ai/o/function-to-use-google-api-to-scrape-a-website-f-y7el3rffmi/ for whatever reason you might want to simulate command line returns . here is the command line app : https://cookup.ai/a/command-line-y70oh4of/ try it with chmod +x readfile ./readfile filename.txt https://cookup.ai/o/chmod-x-readfile-readfile-filenametxt-comm-61ljxmpaqu/ or any other command . A lot of folks have been asking about data creation. I really like this Prolog app for that : https://cookup.ai/a/co-pilot-data-creation-prolog-68sa5kbr/ here is an output for a chatbot : https://cookup.ai/o/to-test-a-chatbot-using-google-api-co-pilot-6y9xnvewhf/ here is what happens for the digestion example from above : https://cookup.ai/o/demonstrate-the-steps-in-digestion-i-will-be-us-kjjou8iswf/ another more straight forward app is the create data app : https://cookup.ai/a/create-data-my8wzz4a/ here is an example for a list of books :https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-yrx8uy53uf/ and another example : https://cookup.ai/o/type-book-struct-id-uint-jsonid-go-xhqjpp2qxo/ i really like these. Another way to test a function is a unit test. Try the unit test app here : https://cookup.ai/a/unit-test-sp6f7pl3/ here’s an example to test quick sort in java 8: https://cookup.ai/o/write-test-cases-to-ensure-that-the-new-quick_so-uj7r1jelu3/ Your function is still not working ? try the stack trace app : https://cookup.ai/a/stack-trace-error-message-lz9df4ld/ just copy paste your error message : https://cookup.ai/o/use-key-stack-trace-error-message-cte9ognj5o/ here’s another example for ggplot : https://cookup.ai/o/error-in-ggplotiris-aesx-sepallength-y-jamfmpobfu/ Once you get your app working , you’ll want to figure out the information model. try this app : https://cookup.ai/a/information-model-crwdl7ah/ here’s an example for : mobile app to rent cars like uber https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-information-wq5bfzzind/ and if you have an information model you’ll need a data model : https://cookup.ai/a/data-model-kjqpe7ua/ here’s the same example but for data model: https://cookup.ai/o/mobile-app-to-rent-cars-like-uber-data-model-kvcpenu2y2/ if you’re going to ship you’ll need an infrastructure plan : https://cookup.ai/a/cloud-infrastructure-plan-oyxvoc8b/ here’s an example for a biofabrication firm : https://cookup.ai/o/we-are-a-life-sciences-company-pioneering-a-nove-gptg16oyh3/ I also made prompt apps to practice prompt making. Try this app for a simple prompt interface : https://cookup.ai/a/prompt-follow-on-leabsbpn/ here’s an example for a payment service : https://cookup.ai/o/pix-payment-in-installments-prompt-follow-o-8yevsi9c81/ someone from Canary Islands used it to write a poem : https://cookup.ai/o/crea-un-poema-sobre-tenerife-prompt-follow-o-xw6td2j1qd/ and write a biography of a historical figure : https://cookup.ai/o/biografia-breve-de-josefina-de-la-torre-gran-can-nmatn2svv6/ pretty cool ! Ready to learn more sophisticated techniques ? try the Prompt App : https://cookup.ai/a/prompt-lbuxx1ed/ i made it to teach folks how to write prompts on cook up , here’s an example for : social inequality, political scientist https://cookup.ai/o/social-inequality-political-scientist-promp-tmhjeoaeny/ here’s one for Universal Basic income , economist https://cookup.ai/o/universal-basic-income-economist-prompt-wohvomtbbk/ here’s for “Help create business systems to run a small business. From the perspective of a franchise developer “ : https://cookup.ai/o/help-create-business-systems-to-run-a-small-busi-hz0r5xb4cu/ and here is “Diagnose Dry Eye, Assess the Above from the perspective of an Ophthalomologist, Print complete answer in markdown format” https://cookup.ai/o/diagnose-dry-eye-assess-the-above-from-the-pe-85a1nvkllp/ hope it helps !
-
The ultimate rebuild of an ancient Yaesu FT-817.
I think it was a couple of years ago now I ordered a QRP Labs QMX transceiver. It quickly, but temporarily, became my favorite radio for portable field operations. I have written before about why I believe the QMX is a mighty fine piece of miniaturized technology but is less suitable for the rigors of being operated in the kind of field operating environment to which I expose my radios. My QMX is the low-band version and I also miss the opportunity to explore the higher bands when propagation conditions permit.
What’s a poor Ham to do?
I could buy another QMX, but order the high band version this time. It would be a very modest investment, but would still require ruggedizing. Another downside is the long, long wait time betwixt ordering and receiving the tiny parcel from Turkey. I could also order a QMX+ which is a fine all HF band radio, but then what to do with the QMX low band? There is another solution.
The Paranoid Android
I recall a quote from the book “The Hitchhikers Guide to the Galaxy” by Douglas Adams in which the perenially depressed robot “Marvin the Paranoid Android” moans: “The first ten million years were the worst.” When I look at the front panel of my ancient Yaesu FT-817 non-ND version it kinda has a Marvin look about it. It has spent almost a quarter of a century waiting patiently in a drawer for the day when it might be called into action again. Many radios have come and gone during that time but – even though I had planned to sell it on many occasions – I still own it and it’s day to see the sunshine again has finally come.
Where are the features?
The non-ND version of the FT-817 is a barebones rig. I needed a CW memory keyer – it doesn’t have one. Activating a POTA park sometimes requires great patience and many, many CQs. My QMX at least has that covered. I also needed an audio filter. It used to be possible to buy a Collins mechanical filter but they are no longer made. My QMX also has that feature covered, but the FT-817 requires an external audio filter.
Failure is not an option
The FT-817 does have a higher level of ruggedness than the QMX. With a few extra precautionary measures it can be protected from the ingress of sand particles during a beach activation, or unexpected spray from waves on the shores of the Great Lakes. The QMX will not tolerate wide variations in DC supply voltage; the FT-817 has that covered. The QMX uses inexpensive but fragile PA transistors (mine have not succumbed to failure – yet). Well, the FT-817 also had fragile PA transistors in its early days and mine did indeed fail during a field deployment. The FT-817’s PA board is a small module that is easily replaced with the new upgraded module – as was mine.
Assembled rebuilt FT-817 portable operations rig. The battered, field protective canvas pouch on the right contains a Talentcell LiFePO4 battery. Right hand side view of the “helper modules” showing the input jack for connecting a cable from the headphone output of the FT-817. The switch allows the K4ICY AF filter to be bypassed for a barn door wide audio bandwidth. Left hand side view of the “helper modules” showing the switch allowing selection of 2-stage or 4-stage audio frequency filtering. To the right of the switch is the AF output jack for connecting headphones. The jack on the K3NG keyer connects to the “Key” jack on the FT-817. On the back of the AF filter module is the power switch controlling the internal
9-volt battery (now replaced by a buck converter) which supplies both modules. Internal view of the keyer module and the filter module. The 9 volt battery has now been replaced with a buck converter that converts the radio’s DC supply from 12.6 volts down to 9 volts to power the helper modules.I get by with a little help from my friends
The feature shortcomings of the FT-817 have been overcome with two “helper modules” assembled inside aluminum Hammond project enclosures. The front enclosure contains a K3NG Arduino nano based CW keyer and a very simple no-thrills set of 3D printed paddles. Well who really needs to spend $300 on a fancy set of paddles for a brief POTA exchange? These paddles get the job done FB. The same cannot be said about the fist that operates them!
The front panel controls are very simple. The paddles protrude through a cutout in the Hammond enclosure.
Beside the paddles is a knob. This knob is used to operate a rotary encoder inside. Clicking the knob operates the switch built into the rotary encoder and triggers the sending of a “CQ CQ POTA de VA3KOT VA3KOT k” stored message in the Arduino keyer.
Rotating the knob adjusts the speed of the CW over a wide range. I have found this to be a very useful feature. I usually send at 20wpm and receive responses that are slower and faster than my sending speed. With this prominent control front-and-center I can quickly adjust my sending speed to suit.
I built the K4ICY audio frequency filter module around a quad op-amp DIL chip. This is a very simple circuit that provides 2 or 4 stages of filtering to narrow the bandwidth of a received signal. Each stage contains identical components whose values are selected according the operator’s desired sidetone frequency. The whole module can be bypassed if required allowing an audio bandwidth wide enough to pass a crosstown bus sideways.
Both modules are rigidly secured to each other using two aluminum rails made from scrap material. I hoard scraps of metal, plastic and other materials – you just never know when you’re gonna need ’em.
The dimensions of the two modules provide an ample flat surface on which to mount the ancient, but revered, transceiver. I purchased some “peel & stick” Gorilla brand “Slipstick” gripper pads and applied four of them to the base of the FT-817. This is a genuinely useful product I recommend to any hambrewer. The radio has been secured to the top of the helper modules with two woodland zip ties made from thin cordage. These simple cord fasteners work just as well as plastic zip ties and can be easily undone for servicing the modules.
I purchased a box load of these Hammond enclosures at an auction many years ago. They have proved very useful. In another build, using the same enclosures configured in an identical manner, I was able to construct two battery modules each containing four 18650 Lithium Ion batteries in 4S1P configuration for powering another one of my ancient QRP transceivers.
This is not the first time I have revived my FT-817, but previous rebuilds were clumsy. It is one thing to put together multiple modules on the shack bench. Clumsy, cluttered, loose modules might work in a picnic-tables-on-the-air type activation. But would it work in a situation where there are no convenient surfaces to mount the equipment; where – at any moment – we might be politely asked to vacate the area by a hungry bear looking for a space to eat his lunch? This new build is a grab-and-go package that works in small, tight spaces – even on top of a rock in the backcountry – and that’s the kind of environment where I like to operate.
Help support HamRadioOutsidetheBox
No “tip-jar”, “buy me a coffee”, Patreon, or Amazon links here. I enjoy my hobby and I enjoy writing about it. If you would like to support this blog please follow/subscribe using the link at the bottom of my home page, or like, comment (links at the bottom of each post), repost or share links to my posts on social media. If you would like to email me directly you will find my email address on my QRZ.com page. Thank you!
The following copyright notice applies to all content on this blog.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. -
One advantage Huawei had was the backing of its government.
US and European observers say China packs standards meetings with engineers who can be eyes and ears on the ground.
Rivals also complain that Chinese companies work together in lockstep; even ostensible competitors will set aside differences to support a compatriot business.
For a brief moment in the middle of 2016, it looked as if that national wall of support wouldn't hold.
In a preliminary round of the 5G New Radio standards process, the Chinese company #Lenovo expressed its preference for LDPC, because it was a more familiar technology.
That didn't last long.
Lenovo changed its opinion later that year.Lenovo's founder, Liu Chuanzhi, called Ren Zhengfei to make sure that no offense was taken by the original stance.
Liu and other executives even drafted an open letter that read like a forced confession.“We all agree that Chinese enterprises should be united and not be provoked by outsiders,” Liu and his colleagues wrote. “Stick to it … raise the banner of national industry, and finally defeat the international giants.”
Thus united behind polar codes, Chinese industry prepared to do battle at the final, critical stage
—the November 2016 engineering standards meetings held in Reno, Nevada.The venue was the Peppermill resort and casino. Engineers, hunkered in hotel conference rooms arguing about block codes and channel capacity, had little time to enjoy the craps tables or eucalyptus steam rooms.
Simultaneous meetings to determine a number of standards kept engineers hopping from one conference room to the next, says Michael Thelander, a consultant specializing in wireless telecommunications.
“But polar coding versus LDPC, that was the hot topic,” he says.
On the night of Friday, November 18, the conference room was packed, and the meeting, which began in the evening, turned into a standoff.
Each company presented its work, including its testing results.
“The battle was pretty well drawn, with most of the Western vendors lining up behind LDPC,” says Kevin Krewell, a principal analyst at Tirias Research, who follows 5G.
Some Western companies backed polar codes too, but, significantly, all the Chinese companies did.
“There was no obvious winner in the whole game, but it was very clear that Huawei was not going to back down,” says Thelander, who was on the scene as an observer.
Neither would the LDPC side. “So we can sit there and spend six months fighting over this thing and delay 5G, or we compromise.”
So they did.
The standards committee split the signal-processing standard into two parts.One technology could be used to send the #user #data.
The other would be applied to what was known as the #control #channel, which manages how that data moves.
The first function was assigned to LDPC, and the second to polar codes.
It was well into the wee hours when the agreement was finalized.
Huawei was ecstatic.
But it was not just Huawei's win; it was China's too.
Finally, a Chinese company was getting respect commensurate with its increasingly dominant power in the marketplace.“Huawei-backed polar code entering the 5G standard has a symbolic meaning,” one observer told a reporter at the time.
“This is the first time a Chinese company has entered a telecommunications framework agreement, winning the right to be heard.”
Qualcomm professes to be fine with the result.
“It was very important for Huawei to get something,” says its CEO, Steve Mollenkopf.“Huawei is actually quite good. They are a formidable company. And I think that's one thing that people need to acknowledge.”
#standard #Reed #Hundt #3GPP #5G #New #Radio #standards #Qualcomm #LDPC #Wen #Tong #5G #patents #Arıkan #polar #codes #Alexander #Vardy #Ido #Tal #Technion #Ren #Zhengfei #Huawei #Chinese #government #ZTE #stolen #intellectual #property #Cisco #Department #Justice #Nortel #downloading #documents
-
@Kellam⚙️Бур This may come as a surprise, but: Nomadic identity is not an abstract concept or a science-fiction idea for the Fediverse.
It is reality. It exists. Right now. In stable, daily-driver software that's federated with Mastodon. And it has been for over a decade.
I'm literally replying to you here from a nomadic channel that simultaneously exists on two servers.
Nomadic identity was invented by @Mike Macgirvin 🖥️ (formerly American software developer of about half a century who has been living in rural Australia for decades now) in 2011 and first implemented in 2012. Almost four years before Mastodon was first launched.
In 2010, he had invented the Facebook alternative Friendica, originally named Mistpark and based on his own DFRN protocol.
Over the months, he witnessed lots of privately operated public Friendica nodes shut down with or without an announcement and the users on these nodes lose everything. He added the possibility to export and import Friendica accounts. But that would only help if a permanent shutdown was announced. It did not protect you against shutdowns out of the blue.
There was only one solution to this problem. And that was for someone's identity to not be bound to one server, but to exist on multiple servers simultaneously. The whole thing with everything that's attached to it. Name, settings, connections, posts, files in the file storage etc. etc., everything.
So in 2011, Mike designed a whole new protocol named Zot around this brand-new idea of what he called "nomadic identity" back then already.
In 2012, Mike forked Friendica into something called Red, later the Red Matrix, and rebuilt the whole thing from the ground up against Zot. Red was the first nomadic social networking software in the world, almost four years before Mastodon.
In 2015, ten months before Mastodon was first released, the Red Matrix became Hubzilla, the Fediverse's ultimate Swiss army knife.
I am on Hubzilla myself. This channel of mine is constantly being mirrored between its main instance on https://hub.netzgemeinde.eu and its clone on https://hub.hubzilla.de. Anything that happens on the main instance is backed up on the clone. I can also log into the clone and use that, and whatever happens there is backed up on the main instance.
https://hub.netzgemeinde.eu could go down, temporarily, permanently, doesn't matter; I still have my channel, namely the clone. And I can declare the clone my new main instance.
Well, Mike didn't stop at Hubzilla and its original version of the Zot protocol. He wanted to refine it and advance it, but in ways that wouldn't be possible on daily-driver software.
Zot went through several upgrades: Zot6 in 2018 (backported to Hubzilla in 2020, along with OpenWebAuth magic single sign-on). Zot8 in 2020. Zot11 in 2021 which had become incompatible with Zot6 and therefore was renamed to Nomad. Today's Nomad would be Zot12.
Also, in order to advance and test Zot, Mike created a whole bunch of forks and forks of forks. Osada and Zap for Zot6 in 2018, followed by another short-lived Osada in 2019. A third Osada, Mistpark 2020 (a.k.a. Misty) and Redmatrix 2020 in 2020 for Zot8. Roadhouse for Zot11 Nomad in 2021. All Osadas, Zap, Misty, Redmatrix 2020 and Roadhouse were discontinued on New Year's Eve of 2022.
The most recent software based on Nomad is from October, 2021. It can be found in the streams repository. It is officially and intentionally nameless and brandless, it has next to nodeinfo code that could submit statistics, and it is intentionally released into the public domain. The community named it (streams) after the code repository.
I also have two (streams) channels, one of which is cloned so far.
The newest thing, and that's what the Friendica and Hubzilla veteran @Tim Schlotfeldt ⚓?️? referred to, is nomadic identity using nothing but ActivityPub, no longer relying on a special protocol.
This was not Mike Macgirvin's idea. This came from @silverpill, the creator and developer of the microblogging server application Mitra. He wanted to make Mitra nomadic, make it resilient against server shutdown. But he didn't want to port it to Nomad. He wanted to achieve it with nothing but ActivityPub.
So he hit up Mike. The two came to the conclusion: This is actually possible. And they began to work on it. Amongst the results were several FEPs coined by silverpill.
This time, Mike did not create another fork to develop nomadic identity via ActivityPub. He did it all on the nomadic branch of the streams repository while silverpill did his part on a special development branch of Mitra.
In mid-2024, after enough sparring between (streams) instances, between Mitra instances and between (streams) and Mitra, Mike was confident enough that his implementation of support of nomadic identity via ActivityPub was stable enough. He merged the nomadic branch into the dev branch which ended up being merged into the stable release branch in summer.
Now, at this point, (streams) didn't use ActivityPub for nomadic identity. It still used the Nomad protocol for everything first and foremost, including cloning. But it understood nomadic identity via ActivityPub as implemented on experimental Mitra.
However, while it worked under lab conditions, it blew up under real-life conditions. At this point, (streams) had to handle so many different identities that it confused them, and it couldn't federate with anything yet.
In mid-August, while trying to fix the problem, Mike eventually forked the streams repository into Forte. It got a name again, it got a brand identity again, it got its nodeinfo back, it was put under the MIT license again.
But most importantly: Any and all support for Nomad was ripped out, also to get rid of a whole number of IDs, namely those for Nomad-actually-Zot12 and for Hubzilla's Nomad-actually-Zot6. Forte only uses ActivityPub for everything. And so, Forte also had to fully rely on ActivityPub for nomadic identity, cloning and syncing.
For almost seven months, Forte was considered experimental and unstable. For most of the time, the only existing servers were Mike's.
But on March 12th, 2025, Mike Macgirvin released Forte 25.3.12, the first official stable release of Forte. This is what Tim wrote about. Because this actually made it into Fediverse-wide news.
Not because it's nomadic. Nomadic identity has been daily-driven for over a decade now.
But because it uses ActivityPub for nomadic identity. Which means that you can theoretically make any kinds of Fediverse software nomadic now, all without porting it to the Nomad protocol first.
For the future, Mike and silverpill envision a Fediverse in which one can clone between different server applications. A Fediverse in which one can have one and the same identity cloned across multiple servers of Mastodon, Pixelfed, PeerTube, Mitra, Forte, Mobilizon, Lemmy, BookWyrm etc., all with the same name, all with the same content and settings (as far as the software allows; you will certainly not be able to clone your PeerTube videos to Mastodon and Lemmy).
Even if you don't intend to clone, it will make moving instances and even moving from one software to another dramatically easier.
If you're concerned about your privacy, let me tell you this:
Hubzilla's privacy, security and permissions system is unparalleled in the Fediverse. Except for that on (streams) and Forte which is another notch better.
I can define who can see my profile (my default, public profile on Hubzilla where each channel can have multiple profiles).
I can define who can see my stream and my posts when looking at my channel.
I can define who can see my connections (Hubzilla, (streams) and Forte don't distinguish between follower and followed; they aren't Twitter clones).
I can define who can look into my file space (individual permission settings per folder and per file notwithstanding).
I can define who can see my webpages on Hubzilla (if I have any).
I can define who can see my wikis on Hubzilla (no shit, I've got wikis on my Hubzilla channel).
On Hubzilla, I can define individually for any of these whether it's- everyone on the Internet
- everyone with a recognisable Fediverse account
- everyone on Hubzilla (maybe also on (streams); anyone using ActivityPub is definitely excluded here)
- everyone on the same server as myself (AFAIK, only main instances of channels count here, clones don't)
- unapproved (= followers) as well as approved (= mutual) connections
- confirmed connections
- those of my confirmed connections whom I explicitly grant that permission by contact role
- only myself
There's a whole bunch more permissions than these. And they all have seven or eight permission levels (depending on whether the general non-Fediverse public can be given permission).
On (streams) and Forte, I can define whether things are allowed for- everyone on the Internet (where applicable)
- everyone with a recognisable Fediverse account
- all my approved connections
- only me myself plus those whom I explicitly grant that permission in the connection settings
Yes, connection settings. Hubzilla, (streams) and Forte give you various ways of configuring individual connections, much unlike Mastodon. This includes what any individual connection is allowed to do.
Hubzilla uses so-called "contact roles" for that, presets with a whopping 17 permissions to grant or deny for any one individual connection. That is, what the channel generally allows, a contact role can't forbid.
(streams) and Forte still have 15 permissions per contact, but they lack some features which Hubzilla has permissions for. These permissions can be set individually for each connection, or you can define permission roles that cover all 15 permissions to make things easier.
Okay, how about posting in public vs in private? And when I say "private", I mean "private". It's "private messages" on Hubzilla, (streams) and Forte, not "direct messages".
Hubzilla, (streams) and Forte let you post- in public
- only to yourself
- only to your connections ((streams) and Forte only; Hubzilla requires a privacy group with all your connections in it for this)
- to all members of one specific privacy group (Hubzilla)/access list ((streams), Forte); that's like being able to only post to those on one specific list on Mastodon
- to everyone to whom one specific non-default profile is assigned (Hubzilla only)
- to a specific group/forum (I'll get back to that later)
- to a custom one-by-one selection of connections of yours
Now, let's assume I have a privacy group with Alice, Bob and Carol in it. I send a new post to only this privacy group. This means:- Only Alice, Bob and Carol can see the post and the conversation.
- Alice can reply to me, Bob and Carol.
- Bob can reply to me, Alice and Carol.
- Carol can reply to me, Alice and Bob.
- Nobody else can see the post. Not even by searching for it. Not by hashtag either. Not at all.
- Nobody else can see any of the comments.
- Nobody else can comment.
If one of them was on Mastodon, they'd see my post as a DM, by the way, and they could only reply to me. But that's Mastodon's limitation because it understands neither threaded conversations nor permissions.
Or how about reply control? This is something that many Mastodon users have been craving for quite a while now. Hubzilla, (streams) and Forte have them. Right now. And they work. They have since 2012.
Hubzilla optionally lets me disallow comments on either of my posts. Users on Hubzilla, (streams) and Forte won't even be able to comment; they won't have the UI elements to do so. Everyone else is able to comment locally. But that comment will never end up on my channel. It will never officially be added to the conversation. And at least users on Friendica, Hubzilla, (streams) and Forte will never fetch that comment from my channel as part of the conversation, i.e. never at all.
(streams) and Forte can go even further with all available options. They can disallow comments like Hubzilla. But in addition, they can allow only the members of one particular access list to comment, regardless of who can see the post/the conversation. On top of that, comments can be closed at a pre-defined point in the future. And then you even have a channel-wide setting for how long people can comment on your posts.
Oh, and there's even a setting for who is generally permitted to comment on your posts. And you can additionally allow specific connections of yours to comment on your posts.
Lastly, I've already mentioned groups/forums. Like, you know, Web forums or Facebook groups or subreddits or whatever. Like Guppe Groups on a mountain of coke and with moderation and permission control and optionally private.
Hubzilla has them, and it has inherited them from Friendica. (streams) has them. Forte has them. They're basically channels like social networking channels, but with some extra features. This includes that everything that's send to a group/forum as what amounts to a PM is automatically forwarded to all other members.
On Hubzilla, a forum can be gradually made private by denying permission to see certain elements to everyone but its own members (= connections): the profile, the members, what's going on in it. Depending on what you want or do not want people to see.
On (streams) and Forte, you have four types of forums:- public, and members can upload images and other files to the forum channel
- public, but members cannot upload images and other files to the forum channel
- like above, but additionally, posts and comments from new members must be manually approved by the admin(s) until their connections are configured to make them full members
- private, non-members can't see the profile, non-members can't see the connections, non-members can't see what's going on in it, but members can upload images and other files to the forum channel
In addition, on all three, a group/forum channel can choose to hide itself from directories. This is always an extra option that's independent from public/private.
What we have here is the most secure and most private Fediverse software of all.
And, once again, at its core, this is technology from 2012. It pre-dates Mastodon by almost four years.
Finally, if you want to know how Hubzilla and (streams) compare to Mastodon: I have made a number of tables that compare Mastodon, Friendica, Hubzilla and (streams).
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #Mitra #Friendica #Hubzilla #Streams #(streams) #Forte #ActivityPub #Zot #Zot6 #Zot8 #Nomad #NomadicIdentity #Security #FediverseSecurity #Privacy #FediversePrivacy #Permissions -
Samsung releases the changelogs of One UI 8.5 for the Galaxy S25!
One UI 8.5 brings a new ambient design language that is designed to provide you with more modern appearance, as well as new AI features and enhancements to existing features. This version of One UI was found in the Galaxy S26, the Galaxy A57, and the Galaxy A37 before the rollout started.
As One UI 8.5 for the latest flagship devices becomes available in Korea, here is a list of changes that are made (source):
One UI 8.5
Visual design
Fresh new look
One UI seamlessly integrates into your daily routine by combining immersive visuals with meaningful personalization for a more refined and sophisticated design. Transparent blur effects add depth and make content easier to navigate, while floating elements react organically to your workflow for a more focused experience. Through familiar and intuitive data visualization, One UI delivers a design that feels both personal and relatable, helping you focus on what matters.Galaxy AI
Screen calls before answering
See who’s calling so you can decide if you want to talk. You can let a call assistant answer for you and ask the caller who they are why they’re calling.Edit images with text prompts
Image editing has never been easier. Just describe how you want your image to change. You can change the color of someone’s clothes, add something to an empty table, or anything else you can think of.Add items from one image to another
Photo assist makes it easy to combine elements from different images. Take an object from one picture and add it to a different picture. Galaxy AI smooths it out and makes it look natural.Add style to any photo
You can now apply fun styles to any photo with Photo assist, not just pictures of people or pets. In thumbnail view, you can touch and hold to reorder your styles and put your favorites near the front.Continuous image generation
Keep creating without stopping. Photo Assist now lets you generate AI images using different features from the results screen without saving each iteration. When you’re done, you can review all your creations in your history and pick your favorites.Create images with Creative Studio
Creative Studio is now available on the Apps screen for easier access. You can use creative studio to create custom wallpapers, unique stickers, and personalized profile images that you can use throughout on your phone.Now brief on the Lock screen
Get more personalized suggestions on your Lock screen. Now brief will show useful information based on your context.Enhanced AI select
Start AI select instantly by touching and holding the edge handle. Missed something in a video? Use the Rewind button to go back and select exactly what you need.Auto language detection in Interpreter
Keep the conversation flowing. After you choose which languages to translate, Interpreter will detect when each one is being spoken so you don’t need to press the Microphone button each time someone talks.Bixby
Smarter device control
Talk to Bixby in your own words. Bixby is now better at finding the setting or feature you need, even if you don’t use exact commands or feature names. Just say what you need and let Bixby do the rest.Ask anything, anytime
Whether you need a quick answer or detailed information, just ask Bixby for an instant response. There’s no need to spend time on multiple searches or switching between apps.Conversation history
Looking back at past conversations with Bixby is easier than ever. You can now access your conversation history from the side panel in the Bixby app.Camera
Pro-grade document scans
Scanning documents is now faster and more powerful. A scan button will appear automatically whenever you point your camera at a document. You can easily capture multiple pages into a single PDF file, while the new Remove tool automatically cleans up distracting fingers, folded corners, and unwanted moire for a perfect finish.Auto motion photos
When set to Auto, your camera will only record a motion photo if it detects movement in the scene. Otherwise, it’s saved as a still image to save space.Capture both sides of the story
Now you can record yourself and the action in front of you. Just tap the dual recording icon in the Video mode quick controls to start filming with the front and rear cameras at the same time.Log video color previews in real time
Take the guesswork out of filming in Log. You can now apply a cinematic LUT preview while you record, letting you see exactly how your final color-corrected video will look before you even start editing. LUT previews are also available in Gallery and Studio.New portrait filters
Three new filters are available to add vibrant film-like effects to your pictures.Home and Lock screens
Automatic Lock screen layout
Wallpapers with pictures of people or pets now fit perfectly every time. When you choose a photo for your Lock screen, the photo will automatically be adjusted to best fit your clock and widget layout.New downloadable wallpapers
Discover new wallpapers featuring interactive elements. Wallpapers are downloadable so they don’t use up your storage space when not in use.Add weather effects to wallpapers
Bring your wallpaper to life with the current weather conditions. When you choose your wallpaper, you can add weather effects directly from the preview screen.More customizable clock fonts
Personalize your Lock screen clock. You can now adjust the thickness of more font styles to match your preferred look.Weather
Enhanced weather widget
Quickly check upcoming precipitation in the Weather widget on your Home screen. The widget now shows a graph if precipitation is expected in the next few hours.Pollen index
Check how much pollen is in the air to help manage your allergies. You can check pollen levels for trees, grass, and ragweed.Communication
Direct voicemail
Can’t answer right now? Let callers record a voice message directly on your phone that you can listen to later. The message will appear on your screen as it’s being recorded so you can answer at any time.Decline calls with personalized messages
When a call is ringing, new quick decline messages will appear based on your activity. You can tell callers that you can’t answer because you’re driving or exercising even without typing.Clock
Weather alarm backgrounds
Wake up to an alarm that gets you ready for the day’s weather. Your alarm screen can now show the current weather conditions as a background when it rings.Time zone converter
Compare time zones at a glance. The new slider in the Clock app makes it easy to check the time difference between places around the world.Connectivity
Storage Share
Access your files anywhere. Files from your other Samsung phones, tablets, and PCs are available in the My Files app on your phone. You can also access your phone’s files on other Samsung devices, even your TV.Quickly connect to Smart View devices
Connect to your favorite display faster. You can now add a shortcut on your Home screen to instantly mirror your phone’s screen to a TV or other display device.Enhanced Auracast features
It’s easier than ever to listen to and broadcast sound with Auracast. Options for both broadcasting and listening are now located in the Audio broadcast menu in Settings.Voice broadcasts
Broadcast your voice to people around you with Auracast. In addition to media sound, you can now broadcast your voice using your phone’s built-in microphone.Quick Share
Share with Apple devices
Share with even more devices than before. You can now use Quick Share to seamlessly share photos, videos, and other files with iPhones, iPads, Macs, and other devices that support AirDrop.Avoid unwanted sharing requests
You can now set Quick Share to only receive files from other devices signed in to your Samsung account or Google account.Photo sharing suggestions
Share photos with the right people faster. When you share pictures that include friends or family, Quick Share can recognize who’s in them and suggest sharing directly with those people.Samsung Health
Enhanced weekly reports
See a fuller picture of your health each week. Weekly reports now include data from your medication tracker and mindfulness sessions.Upgraded sharing experience
Share your workouts your way. Mix and match your exercise stats with photos from your workout to create the perfect social media post.Start meditations from your watch
Find calm right from your wrist. You can now start favorite or recommended meditations directly on your Galaxy Watch without picking up your phone.Antioxidant measurements from your watch
Check your antioxidant levels anytime. Measure directly from your Galaxy Watch, even if it’s not connected to your phone. Works with Galaxy Watch8 and Galaxy Watch Ultra.Battery and power
Revamped battery info
See your battery use more clearly. The redesigned Battery settings screen makes it easier to check remaining time, charging status, and daily usage over the past week.Improved Power saving
Use Power saving to make your battery last longer without charging. Choose Standard for moderate savings and customizable limits, or choose Maximum to turn off all non-essential features and make your battery last as long as possible.Security and privacy
Privacy alerts
Stay informed about your privacy. You’ll now get alerts when an app’s permissions could put your personal data at risk along with suggestions for what you can do about it.Theft protection
Keep your phone and data safe in case it is lost or stolen. Turn on Failed authentication lock to automatically lock the screen in case there are too many failed attempts to verify your identity using your fingerprints, PIN, pattern, or password. Identity check also protects even more settings than before.Turn off Auto blocker temporarily
If you need to temporarily disable Auto blocker’s security protection, a new option lets you turn it on automatically 30 minutes later so you don’t forget.Check the security status of your devices
Keep all your devices protected. Knox Matrix now shows when any of the supported devices signed in to your Samsung account need a software update for the latest security protections.Accessibility
Easily control Bluetooth hearing aids
Access settings for your Bluetooth hearing aids directly from the Accessibility shortcut. A pop-up will appear that lets you change your hearing program, turn Ambient sound on or off, and more.Control magnification with mouse or keyboard
Keep what you need magnified in view with these new options. You can make the magnified area follow the cursor as you type or move when you change focus using the keyboard. When using a mouse, you can make the magnified area shift as you move the pointer to the edge of the screen.Dwell action and Corner actions
The Auto action after pointer stops feature has been divided into 2 features. Dwell action lets you set custom actions when your mouse stops moving for a certain amount of time. Corner actions let you set a different action for each corner of the screen.Dim strobing in videos
A new setting lets you dim strobing effects in videos for more comfortable viewing.Even more improvements
More customizable quick panel
Arrange your quick settings just the way you like them. You can now add, remove, reorder, and reorganize controls in the quick panel.Customize Calendar countdown widgets
Make your countdown widgets look just the way you like. Use Creative studio to generate a background image, choose an image from Gallery, or go with a solid color.Early alerts for reminders
Get alerts before reminders are due to make sure you don’t forget important tasks. You can choose how far in advance to get an alert for each reminder.Insert tables in Samsung Notes
Organize information in your notes with tables. You can adjust column widths, colors, and border designs while the auto calculation feature helps you stay productive and save time.Redesigned New tab page
The page that appears when you open a new tab in Samsung Browser has been redesigned to help you quickly access the websites and features you need the most. The New tab page now shows the current security status as well as open tabs from Samsung Browser on other devices.Partial screen recording
Include only what you need in your screen recordings. You can now select only the part of the screen that you want to record.Calculator nudges
Save time on calculations. Numbers and formulas copied to your clipboard will be suggested when you open Calculator so you can enter them with a quick tap.Keep window sizes in DeX
DeX now remembers your app window sizes and positions. When you open an app again, it appears just as you left it.To update your Galaxy to One UI 8.5, follow these steps:
- Open Settings, and navigate to System Update
- Tap on Check for Updates
- Press Download and Install
- Wait until the download and the installation is complete, then press Reboot Now
- Wait until the phone reboots successfully
Make sure that you’re connected to a stable and fast Wi-Fi network to avoid high mobile data fees. Never interrupt the update in any way, or problems could occur later. Make sure that you apply all available updates once you update your phone for maximum stability. An update might take 10 to 20 minutes to apply, depending on the device and the type of the update being applied.
If you’re seeing “Your software is up to date,” this means that the update hasn’t reached your device yet. Keep checking for updates, as Samsung rolls it out gradually to all devices from country to country, usually starting from Korea.
#Android #Android16 #news #oneUi #OneUI85 #Samsung #smartphone #Tech #Technology #update -
@Decenta LyzedMeanwhile #Friendica
& #Hubzilla have some groups too.
Friendica has groups. Hubzilla has groups called "forums". Both have had groups for longer than Mastodon has even been around.
(streams), a fork of a fork of three forks of a fork (of a fork?) of Hubzilla created and still maintained by Friendica's and Hubzilla's own creator, has groups.
Forte, a fork of (streams) by the same developer again, has groups.
All four are in the Fediverse. All four are federated with Mastodon (Hubzilla optionally and off by default, (streams) optionally and on by default, Friendica and Forte always). By the way, this comment comes from Hubzilla.
For self-hosters: All four are written in PHP, and they require no more than a LAMP stack. But if you don't know them, e.g. if all you know in the Fediverse is Mastodon, I recommend you try them out on a public server before setting up your own one. They're all very different from Mastodon in a lot of ways. Don't just expect Mastodon with groups because that's far from what they are.
Here are several tables that compare the features of Mastodon, Friendica, Hubzilla, (streams) and Forte.How they work
A Friendica group is an account with special settings. Likewise, a Hubzilla forum or a (streams) or Forte group is a channel with special settings.
Speaking in Mastodon terms, what they do is take incoming posts and automatically boost them to all their followers.
An exception exists on Friendica, Hubzilla, (streams) and Forte themselves: If you're there, you must send a DM to the forum/group. Public posts to a group/forum are not forwarded, only DMs are. This ensures that a group/forum doesn't forward any and all posts that happen to mention it.FLOSS
Friendica is open-source (https://github.com/friendica) and under the GNU Affero GPL v3.
Hubzilla is open-source (https://framagit.org/hubzilla/core) and under the MIT license.
(streams) is open-source (https://codeberg.org/streams/streams) and in the public domain.
Forte is open-source (https://codeberg.org/fortified/forte) and under the MIT license.Character limits
The character limit on Friendica and Hubzilla is over 16.7 million.
The character limit on (streams) and Forte is over 24 million.
Nobody will run out of characters anytime soon, no matter from where they post. However, this also means that neither of the four has Mastodon's character-limit-induced culture of brevity.Moderation
Friendica groups can be co-moderated/co-administrated by users on the same server as the group.
Hubzilla forums, (streams) groups and Forte groups can be co-moderated/co-administrated by anyone on Hubzilla, (streams) or Forte.
Two of the public (streams) and Forte group types allow for new content to be moderated: Any new post or comment must be manually approved by the moderators. In both cases, this is mainly for new members. Trustworthy members can be permitted to post or comment immediately.Privacy and security
Friendica groups, Hubzilla forums, (streams) groups and Forte groups can optionally be hidden from directories and made "secret".
Friendica groups can optionally be set to private, i.e. non-members can't see the group profile, the member list or what's going on in the group.
On Hubzilla, (streams) and Forte, the profile, the member list and the stream can be reduced in visibility separately from each other. You can make the group profile public, and at the same time, you can only permit group members to see the member list and/or the stream.
Hubzilla offers eight levels of permission for seeing the forum's main profile, additional profiles that can only be seen by members/certain members, eight levels of permission for seeing the forum's member list and eight levels of permission for seeing the forum stream. One level of permission depends on individual permissions for certain members granted by contact role.
(streams) and Forte offer four group types, one of which is private, four levels of permission for seeing the group's member list and four levels of permission for seeing the group stream. The non-public levels can be overridden by granting individual permissions to certain members.
(streams) and Forte also offer the same four levels of permission plus overrides for searching the group stream.
Note: It may not be possible to join a private group/forum with an account on Mastodon or anything else that isn't one of these four. Public groups/forums can be joined by anyone (unless they're blocked, of course).Resilience
Hubzilla, (streams) and Forte offer nomadic identity, i.e. the forum/group channel can exist simultaneously on multiple servers as live, hot, bidirectional backups of each other. If one server goes down, the forum/group lives on on the other server(s).
Something like this has been announced by Bluesky as a new and revolutionary technology. Bluesky has yet to deliver. Hubzilla has had this technology since 2012.
Downside: Server software that doesn't understand nomadic identity, i.e. everything except Hubzilla, (streams), Forte and at least the development branch of Mitra, sees the instances of a cloned, nomadic channel as multiple individual, independent accounts.
CC: @Fedi.Tips
CC so that everyone else in this thread will read this, even if they're on Mastodon (I wouldn't have to do this if the whole Fediverse supported threaded conversations, and everyone got this automatically anyway, but I don't want to post this several times over because someone on Mastodon hasn't received it due to Mastodon's intentional, by-design limitations): @Georgiana Brummell @Magical Cat @Michael Gisiger :mastodon: @LucileDT @Glowing Cat of the Nuclear Wastelands @AlsoPaisleyCat @Zeroday Podcast (stefan) @mtjm @amy
Also:{re-toot & boost my post if you find it helpful}
Twitter = Retweet
Mastodon = Boost
Twitter = Like
Mastodon = Fave
#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Friendica #Hubzilla #Streams #(streams) #Forte #Groups #FediGroups #FediverseGroups -
Skill Faire anarchiste
CÉDA, Sunday, May 17 at 10:00 AM EDT
On Sunday, May 17, CÉDA transforms into the sprawling, chaotic Skill Faire—a kind of anarchist science fair where trifold displays are encouraged and “please touch” is the norm. Tables and stations will showcase hands-on skills and tools, inviting people to try things out, ask questions, and leave with practical knowledge. In addition to tabling, there will be rooms reserved for longer, more in-depth skillshares that require time, focus, or specialized equipment. We welcome contributions in a wide range of topics, including:
Street medicine
Autonomous technology
Self-defense
Navigating conflict
Resolving conflict
Song, dance & art
Repairing your stuff
Altered states of consciousness
Construction & deconstruction
“Research”
-
I had the great pleasure of being invited to the Open University of the Netherlands and, later in the day, to EdLab, Maastricht University a few weeks ago, giving a slightly different talk in each place based on some of the main themes in my most recent book, How Education Works. Although I adapted my slides a little for each audience, with different titles and a few different slides adjusted to the contexts, I could probably have used either presentation interchangeably. In fact, I could as easily have used the slides from my SITE keynote on which both were quite closely based (which is why I am not sharing them here). As well as most of the same slides, I used some of the same words, many of the same examples, and several of the same anecdotes. For the most part, this was essentially the same presentation given twice. Except, of course, it really, really wasn’t. In fact, the two events could barely have been more different, and what everyone (including me) learned was significantly different in each session.
This is highly self-referential. One of the big points of the book is that it only ever makes sense to consider the entire orchestration, including the roles that learners play in making sense of it all the many components of the assembly, designed for the purpose and otherwise. The slides, structure, and content did provide the theme and a certain amount of hardness, but what we (collectively) did with them led to two very different learning experiences. They shared some components and purposes, just as a car, a truck, and a bicycle share some of the same components and purposes, but the assemblies and orchestrations were quite different, leading to very different outcomes. Some of the variation was planned in advance, including an hour of conversation at the end of each presentation and a structure that encouraged dialogue at various points along the way: these were as much workshops as presentations. However, much of the variance occurred not due to any planning but because of the locations themselves. One of the rooms was a well-appointed conventional lecture theatre, the other an airy space with grouped tables, and with huge windows looking out on a busy and attractive campus. In the lecture theatre I essentially gave a lecture: the interactive parts were very much staged, and I had to devise ways to make them work. In the airy room, I had a conversation and had to devise ways to maintain some structure to the process, that was delightfully disrupted by the occasional passing road train and the very tangible lives of others going on outside, as well as an innately more intimate and conversational atmosphere enabled (not entailed) by the layout. Other parts of the context mattered too: the time of day, the temperature, the different needs and interests of the audience, the fact that one occurred in the midst of planning for a major annual event, and so on. All of this had a big effect on how I and others behaved, and on what and how people learned. From one perspective, in both talks, I was sculpting the available affordances and constraints to achieve my intended ends but, from another equally valid point of view, I was being sculpted by them. The creators and maintainers of the rooms and I were teaching partners, coparticipants in the learning process. Pedagogically, and despite the various things I did to assemble the missing parts in each, they were significantly different learning technologies.
The complexity of distance teaching
Train journeys are great contexts for uninterrupted reflection (trains teach too) so, sitting on the train on my journey back the next day, I began to reflect on what all of this means for my usual teaching practice, and made some notes on which this post is based (notebooks teach, too). I am a distance educator by trade and, as a rule, with exceptions for work-based learning, practicums, co-ops, placements, and a few other limited contexts, distance educators rarely even acknowledge that students occupy a physical space, let alone do we adapt to it. We might sometimes encourage students to use things in their environments as part of a learning activity, but we rarely change our teaching on the fly as a result of the differences between those environments. As I have previously observed, the problem is exacerbated by the illusion that online systems are environments (in the sense of being providers of the context in which we learn) and that we believe we can observe what happens in them. They are not, and we cannot. They are parts of the learners’ own environments, and all we can (ethically) observe are interactions with our designed systems, not the behaviour of the learners within the spaces that they occupy. It is as hard for students to understand our context as it is for us to understand theirs, and that matters too. It makes it trickier to model ways of thinking and approaches to problem solving, for example, if the teacher occupies a different context.
This matters little for some of the harder elements of the teaching process. Information provision, resource design, planning, and at least some forms of assessment and feedback are at least as easy to do at a distance as not. We can certainly do those and make a point of doing them well, thereby providing a little counterbalance. However, facilitation, role modelling, guidance, supporting motivation, fostering networks, monitoring of learning, responsive adaptation, and many other significant teaching roles are more complex to perform because of how little is known about learning activities within an environment. As Peter Goodyear has put it, matter matters. The more that the designated teacher can understand that, the more effective they can be in helping learners to succeed.
Because we are not so able to adapt our teaching to the context, distance learning (more accurately, distance teaching) mostly works because students are the most important teachers, and the pedagogies they add to the raw materials we provide do most of the heavy lifting. Given some shared resources and guided interactions, they are the ones who perform most of the kinds of orchestration and assembly that I added to my two talks in the Netherlands; they are the ones who both adapt and adapt to their spaces for learning. Those better able to do this in the first place tend to do better in the long run, regardless of subject interest or innate ability. This is reflected in the results. In my faculty and on average, more than 95% of our graduate students – who have already proven themselves to be successful learners and so are better able to teach themselves – succeed on any given course, in the sense of reaching the end and achieving a passing grade. 70% of our undergraduates, on the other hand, are the first in their family to take a degree. Many have taken years or even decades out of formal education, and many had poor experiences in school. On average, therefore, they typically have fewer skills in teaching themselves in an academic context (which is a big thing to learn about in and of itself) and we are not able to adapt our teaching to what we cannot perceive, so we are of little assistance either. Without the shared physical context, we can only guess and anticipate when and where they might be learning, and we seldom have the faintest idea how it occurs, save through sparse digital signals that they leave in discussion forums or submitted assignments, or coarse statistics based on web page views. In a few undergraduate core courses within my faculty it is therefore no surprise that the success rates are less than 30%, and (on average) only about half of all our students are successful, with rates that improve dramatically in more senior level courses. The vast majority of those who get to the end pass. Most who don’t succeed drop out. It doesn’t take many core courses with success rates of 30% to eliminate nearly 95% of students by the end of a program.
Teaching with a context
We can better deal with this if we let go of the illusion that we can be in control and, at the same time, find better ways to stay close: to make the learning process including the environment in which it occurs, as visible as possible. It is emphatically not about capturing digital traces and using analytics to reveal patterns. Though such techniques can have a place in helping to build a picture of how learners are responding to our deliberate acts of teaching, they are not even close to a solution for understanding learners in context. Most learning analytics and adaptive systems are McNamara Machines, blind to most of what matters. There’s a huge risk that we start by measuring the easily measurable then wind up not just ignoring but implicitly denying that the things we cannot measure are important. Yes, it might help us to help students who are going to get to the end anyway to get better grades, but it tells us very little about (for instance) how they are learning, what obstacles they face, or how we could help them orchestrate their learning in the contexts in which they live. Could generative AI help with that? I think it might. In conversation, an AI agent could ask leading questions, could recommend things to do with the space, could aggregate and report back on how and where students seem to be learning. Unlike traditional adaptive systems, generative AI can play an active discovery role and make broader connections that have not been scripted. However, this is not and should not be a substitute for an actual teacher: rather, it should mediate between humans, amplifying and feeding back, not guiding or informing.
For the most part, though, I think the trick is to use pedagogical designs that are made to support flexibility, that encourage learners to connect with the spaces live and people they share them with, that support them in understanding the impact of the environments they are in, and, as much as possible, to incorporate conduits that make it likely that participants will share information about their contexts and what they are doing in them, such as through reflective learning diaries, shared videos or audio, or introductory discussions intended to elicit that information. A good trick that I’ve used in the past, for example, is to ask students to send virtual postcards showing where they are and what they have been doing (nowadays a microblog post might serve a similar role). Similarly, it can be useful to start discussions that seek ideas about how to configure time and space for learning, sharing problems and solutions from the students themselves. Modelling behaviours can help: in my own communications, I try to reveal things about where I am and what I have been doing that provide some context and background story, especially when it relates to how I am changing as a result of our shared endeavours. Building social interaction opportunities into every inhabited virtual space would help a lot, making it more likely that students will share more of what they are doing and increasing awareness of both the presence and the non-presence (the difference in context) of others. Learning management systems are almost universally utter rubbish for that, typically relegating interactions to controlled areas of course sites and encouraging instrumental and ephemeral discussions that largely ignore context. We need more, more pervasively, and we need better.
None of this will replicate the rich, shared environments of in-person learning, and that is not the point. This is about acknowledging the differences in online and distance learning and building different orchestrations around them. On the whole, the independence of distance students is an extremely good thing, with great motivational benefits, not to mention convenience, much lower environmental harm, exploitable diversity, and many other valuable features that are hard to reproduce in person. When it works, it works very well. We just need to make it work better for those for whom that is not enough. To do that, we need to understand the whole assembly, not just the pieces we provide.
https://jondron.ca/on-the-importance-of-place/
#analytics #architecture #context #distanceEducation #distanceLearning #environment #learningToLearn #lecture #lms #motivation #onlineEducation #onlineLearning #orchestration #place #technology #visibleLearning
-
Resilience is community and trust, this resilience grows by connecting the actions of today to the possibilities of tomorrow, even when that future is unknowable. It’s rooted in community, and community thrives on mutual trust. Trust isn’t about keeping a ledger; it’s about giving freely without expectation. Money is not the foundation of resilience. Across the world, billions live resilient lives by supporting each other, because if they don’t, they all go under. From our privileged view, we often forget that resilience is nurtured in these commons.
We need to think about this: The idea of dual power isn’t new. It goes back to revolutionary moments when people realized the need to build alternatives to existing oppressive structures rather than only confronting them head-on. In the current political climate, where the failures of state and capitalist control are glaring, we need to revisit and reframe this idea of “dual power”. This isn’t a utopian dream or a naïve belief that we can merely build around the edges while the world burns. It’s about creating practical, grounded alternatives that directly challenge the existing system by living outside of it and dismantling it from the inside.
The current mess, look around. We are surrounded by a mess of our own making. The relentless march of #neoliberalism has commodified every aspect of our lives, and the #dotcons have taken over our social spaces, transforming genuine human interaction into data points for corporate profit and control. The state, meant to serve the people, is a tool of the greedy and nasty, maintaining control through fear, surveillance, and repression. It doesn’t take much to see that the paths we are currently on are leading to #climatechaos, widespread inequality, social and ecological breakdown.
But here’s the problem: most people still think we have choices within this mess. They talk about reforming the system, fixing capitalism, or making dotcons tech more ethical while continuing to operate on the same lost paths. This is delusion, a comfortable delusion for some, but a delusion nonetheless.
On the #DIY path, dual power is about creating parallel paths that coexist with the current ones but serve entirely different functions. Instead of asking for scraps from the masters’ table, we build our own tables, with food that nourishes everyone. It’s about constructing alternative social, economic, and political structures that are directly in opposition to the current hierarchies and power dynamics.
It’s not just about building alternative structures, though. It’s more important for actively delegitimizing and dismantling the existing power structures of capitalism and the state. This involves #directaction, solidarity, and collective organizing to challenge and change state and capitalist control in all its forms. It’s about a two-fold strategy: building the new while composting the old.
Why dual power matters, for too long, the left and radical movements have been stuck in reactionary paths, fighting battles on terrain chosen by the state and capital. We need to change this by recreating a new path, a space where we shape the traditions and myths that shape us. This is not just some theoretical exercise; it’s already happening in many parts of the world.
We see it in the #fediverse, on #mastodon, #bluesky and #noster networks, in grassroots mutual aid networks springing up during the current crises when the state and corporate structures fail. We see it in community run food cooperatives, decentralized digital spaces, and local assemblies where decisions are made collectively, rather than by a few in power. This is not an abstract idea, it’s lived practice, a shift from fighting against the system to creating something new and more humane.
Building dual power in a digital age, the #openweb and federated networks offer a glimpse of what dual power can look like. Unlike the #dotcons that feed on greed and manipulation, the openweb is rooted in principles that serve the community, #4opens, transparency, open collaboration, and autonomy. But even here, we often fall into the trap of merely copying the structures we’re trying to replace, creating the same mess under a different banner. The next step needs to be truly native to the 4opens path, transparent, open, and accountable, rejecting the commodification that the dotcons have normalized.
But digital spaces alone won’t save us. They are tools, important ones, no doubt, but we need a broader focus. We need to create real-world spaces of resistance and creation. Think community gardens that also serve as meeting points for local decision-making. Think of decentralized energy cooperatives that break free from corporate control. Think of neighbourhood assemblies that replace the hollow, bureaucratic local governments that most people have lost faith in. This is dual power in practice.
The roadblocks, the #Geekproblem and #Fasherista paths, let’s not romanticize this process. We need to acknowledge the challenges within our movements, the #geekproblem and the #fashernista paths that unconsciously block the change we need. The geekproblem is the obsession with technical solutions over social and political ones, while the fashernista path focuses on trendy but superficial activism that serves as more of a social club, careerism, than a serious challenge to power. Both paths have their place, but they should not dominate our paths. We need to keep our focus on the bigger picture.
Moving beyond the noise, to those who say, “Now is not the time,” I ask, “When will it be?” The crisis is here. We are all worshiping the #deathcult, masking 40 years of #neoliberal ideology, pretending we have choices that simply don’t exist. Now is precisely the time to dig in, get our hands dirty, and start composting this mess we’ve been dragged into. The work ahead isn’t easy, and there will be mistakes, missteps, and mess-ups along the way. But that’s okay. Composting is messy work, and so is building a more open and sustainable world.
If you’re waiting for someone to tell you what to do, you’ve already missed the point. Dual power isn’t a blueprint; it’s a living practice. It’s a call to start building the new and composting the old, right now, where you are. Lift your head, look at the mess, and start digging. Together, we can build something better than the scraps we’ve been given. Join us on this humanistic adventure in social technology and direct action. The #openweb, the #commons, and the real-world spaces we build are where the future lies. Let’s make it happen #OMN
#4opens #bluesky #climatechaos #commons #deathcult #directaction #diy #dotcons #Fasherista #fashernista #fediverse #geekproblem #Mastodon #neoliberal #neoliberalism #noster #OMN #openweb
-
The ultimate rebuild of an ancient Yaesu FT-817.
I think it was a couple of years ago now I ordered a QRP Labs QMX transceiver. It quickly, but temporarily, became my favorite radio for portable field operations. I have written before about why I believe the QMX is a mighty fine piece of miniaturized technology but is less suitable for the rigors of being operated in the kind of field operating environment to which I expose my radios. My QMX is the low-band version and I also miss the opportunity to explore the higher bands when propagation conditions permit.
What’s a poor Ham to do?
I could buy another QMX, but order the high band version this time. It would be a very modest investment, but would still require ruggedizing. Another downside is the long, long wait time betwixt ordering and receiving the tiny parcel from Turkey. I could also order a QMX+ which is a fine all HF band radio, but then what to do with the QMX low band? There is another solution.
The Paranoid Android
I recall a quote from the book “The Hitchhikers Guide to the Galaxy” by Douglas Adams in which the perenially depressed robot “Marvin the Paranoid Android” moans: “The first ten million years were the worst.” When I look at the front panel of my ancient Yaesu FT-817 non-ND version it kinda has a Marvin look about it. It has spent almost a quarter of a century waiting patiently in a drawer for the day when it might be called into action again. Many radios have come and gone during that time but – even though I had planned to sell it on many occasions – I still own it and it’s day to see the sunshine again has finally come.
Where are the features?
The non-ND version of the FT-817 is a barebones rig. I needed a CW memory keyer – it doesn’t have one. Activating a POTA park sometimes requires great patience and many, many CQs. My QMX at least has that covered. I also needed an audio filter. It used to be possible to buy a Collins mechanical filter but they are no longer made. My QMX also has that feature covered, but the FT-817 requires an external audio filter.
Failure is not an option
The FT-817 does have a higher level of ruggedness than the QMX. With a few extra precautionary measures it can be protected from the ingress of sand particles during a beach activation, or unexpected spray from waves on the shores of the Great Lakes. The QMX will not tolerate wide variations in DC supply voltage; the FT-817 has that covered. The QMX uses inexpensive but fragile PA transistors (mine have not succumbed to failure – yet). Well, the FT-817 also had fragile PA transistors in its early days and mine did indeed fail during a field deployment. The FT-817’s PA board is a small module that is easily replaced with the new upgraded module – as was mine.
Assembled rebuilt FT-817 portable operations rig. The battered, field protective canvas pouch on the right contains a Talentcell LiFePO4 battery. Right hand side view of the “helper modules” showing the input jack for connecting a cable from the headphone output of the FT-817. The switch allows the K4ICY AF filter to be bypassed for a barn door wide audio bandwidth. Left hand side view of the “helper modules” showing the switch allowing selection of 2-stage or 4-stage audio frequency filtering. To the right of the switch is the AF output jack for connecting headphones. The jack on the K3NG keyer connects to the “Key” jack on the FT-817. On the back of the AF filter module is the power switch controlling the internal
9-volt battery (now replaced by a buck converter) which supplies both modules. Internal view of the keyer module and the filter module. The 9 volt battery has now been replaced with a buck converter that converts the radio’s DC supply from 12.6 volts down to 9 volts to power the helper modules.I get by with a little help from my friends
The feature shortcomings of the FT-817 have been overcome with two “helper modules” assembled inside aluminum Hammond project enclosures. The front enclosure contains a K3NG Arduino nano based CW keyer and a very simple no-thrills set of 3D printed paddles. Well who really needs to spend $300 on a fancy set of paddles for a brief POTA exchange? These paddles get the job done FB. The same cannot be said about the fist that operates them!
The front panel controls are very simple. The paddles protrude through a cutout in the Hammond enclosure.
Beside the paddles is a knob. This knob is used to operate a rotary encoder inside. Clicking the knob operates the switch built into the rotary encoder and triggers the sending of a “CQ CQ POTA de VA3KOT VA3KOT k” stored message in the Arduino keyer.
Rotating the knob adjusts the speed of the CW over a wide range. I have found this to be a very useful feature. I usually send at 20wpm and receive responses that are slower and faster than my sending speed. With this prominent control front-and-center I can quickly adjust my sending speed to suit.
I built the K4ICY audio frequency filter module around a quad op-amp DIL chip. This is a very simple circuit that provides 2 or 4 stages of filtering to narrow the bandwidth of a received signal. Each stage contains identical components whose values are selected according the operator’s desired sidetone frequency. The whole module can be bypassed if required allowing an audio bandwidth wide enough to pass a crosstown bus sideways.
Both modules are rigidly secured to each other using two aluminum rails made from scrap material. I hoard scraps of metal, plastic and other materials – you just never know when you’re gonna need ’em.
The dimensions of the two modules provide an ample flat surface on which to mount the ancient, but revered, transceiver. I purchased some “peel & stick” Gorilla brand “Slipstick” gripper pads and applied four of them to the base of the FT-817. This is a genuinely useful product I recommend to any hambrewer. The radio has been secured to the top of the helper modules with two woodland zip ties made from thin cordage. These simple cord fasteners work just as well as plastic zip ties and can be easily undone for servicing the modules.
I purchased a box load of these Hammond enclosures at an auction many years ago. They have proved very useful. In another build, using the same enclosures configured in an identical manner, I was able to construct two battery modules each containing four 18650 Lithium Ion batteries in 4S1P configuration for powering another one of my ancient QRP transceivers.
This is not the first time I have revived my FT-817, but previous rebuilds were clumsy. It is one thing to put together multiple modules on the shack bench. Clumsy, cluttered, loose modules might work in a picnic-tables-on-the-air type activation. But would it work in a situation where there are no convenient surfaces to mount the equipment; where – at any moment – we might be politely asked to vacate the area by a hungry bear looking for a space to eat his lunch? This new build is a grab-and-go package that works in small, tight spaces – even on top of a rock in the backcountry – and that’s the kind of environment where I like to operate.
Help support HamRadioOutsidetheBox
No “tip-jar”, “buy me a coffee”, Patreon, or Amazon links here. I enjoy my hobby and I enjoy writing about it. If you would like to support this blog please follow/subscribe using the link at the bottom of my home page, or like, comment (links at the bottom of each post), repost or share links to my posts on social media. If you would like to email me directly you will find my email address on my QRZ.com page. Thank you!
The following copyright notice applies to all content on this blog.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. -
A Story of Radio RSA (7): “A Process of Integration”
Previous blog:
A Story of Radio RSA (6), June 8, 2025Adapting the Message
By the late 1970s, while still an apartheid state, South Africa wasn’t the same as it had been in the 1960s – and it had taken ways neither Hendrik Verwoerd nor Albert Hertzog would have approved of. In 1977, Stellenbosch University opened its doors for a few black students, provided that there were no stages for further education available for them at non-white universities, according to German news magazine “Der Spiegel” at the time. At the same time, some relaxation in racial segregation probably made the rules even more elaborate, like joint inter-racial sports teams were OK, black-and-white staying at the same “international hotels” and having meals there at the same tables was legal, but dancing together or swimming in the same pool was as forbidden as ever. Racial segregation had been formalized and made universal in South Africa in 1953. In 1971, one hotel become multi-racial on an experimental basis, a number of "international hotels" followed, and the end for "whites-only" hotels came in 1986.
A quote from then foreign minister Roelof Botha probably helps to summarize the late-70s status: "I’m prepared to go to war over our right to exist, but I’m not prepared to die for signs in a lift."
Strikes, although illegal according to the apartheid script, had been a way for the black working South African majority to make its power felt to the white rulers, and quotes from ruling Boers, passed down from the 1960s, showed that this power was really feared. The boom years had ended in the 1970s, and at the same time, skilled or half-skilled labor came into high demand. 1973 saw an accelerated emergence of new unions and growing union membership, and although the government did its best to neutralize their attractiveness to the black workforce, it also recognized labor unions, for the first time under apartheid, in 1979. Probably to the chagrin of the government however, the black unions were much more politically aware than expected. And obviously, they were very aware that South Africa was a welfare state for white, but not for black workers.
The ANC thought of itself as a people’s movement and army. That may have been so, but it was probably more radical in its demands, including its call for international economic sanctions, than the general South African population – blacks included. Not only the white minority was divided during its rule, but so was the "black majority", plus Coloreds, Indians, yes, Chinese, too (though not so many after 1910.
I’m not familiar with the programs of the ANC’s Radio Freedom that broadcast from Tanzania, and later from Zambia, but a radio drama on one of the recordings of the ANC’s Radio Freedom that is available on Youtube takes divisions between black South Africans into account – divisions even within families. And while much of the programs may have been rather "foreign" to Radio RSA’s European listeners (and hard to relate to, especially the obligatory machine-gun fire at the opening of each program), there is an element of progressiveness in the radio drama that follows here: the preparedness of a man’s daughters and wife to address Daddy’s erroneous views on the 1984 elections to a tricameral parliament, – right into his face. That was probably in line with the same values that would be expressed in any progressive household in Europe or North America, or in Wembley (on certain days).
The Boer propaganda was elaborate, but it was out of tune with "the trend that normally will triumph because it agrees with the great myths of the time, common to all men".1
So Radio RSA took on some new stories. Rather than praising purported "harmony and peace" between South Africa’s "ethnic groups and races", they now emphasized that "a process of integration" was underway and that the need for skilled labor had "already led to integration at the workplace." The program added that "sanctions would interfere with exactly this process of healthy evolution"2.
Besides content, the station’s technology park had also seen changes. From 1966 to 1979, Chris Greenway counted the installation of seventeen transmitters at Meyerton, seven of which were dedicated exclusively Radio-RSA – the four 250-kW transmitters as had been known since the beginnings in 1966/67, plus three 500-kW transmitters, added "in the late 1970s"3.
The Usual Suspects
Radio RSA continued to discount the ANC as a mere "terrorist organization", alleging that the ANC wouldn’t even be illegal if it wasn’t "responsible for bomb attacks, sabotage, or murder"4.
Which was rich, when you look at the time table of apartheid legislation through the 1950s and 1960s. It didn’t take much to be illegal in South Africa.My hometown wasn’t full of shortwave listeners and DXers. Nobody in my school class shared my radio hobby. In that light alone, Radio RSA couldn’t have been a game changer, even if its message had been whole-heartedly bought by every listener.
But although shortwave wasn’t a universal medium, "Sender und Frequenzen", a German version of the WRTH (but no relation), reportedly had 40,000 users5.Neither TV nor radio made me aware of what was missing in Radio RSA’s presentation of South Africa. As far as I was concerned, the realities presented on South African shortwaves and on German and Dutch VHFs contradicted each other, but they co-existed without demanding judgment.
Two books carried the weight to broaden my horizon.
Can Themba wasn’t well-known even among bibliophiles in my hometown, but an anthology of political essays and prose excerpts had just been published in Hamburg6, almost at the same time I happened on Radio RSA. The collection of articles and short stories included "Crepuscule", published in 1972. It told a few days in the life of a black Sophiatown resident in the 1950s, legally in love with Brandy, and illegally with a white girl ("chocolate on cream").
The story didn’t exactly get me at the time, but it did point out realities to me that weren’t there in Radio RSA’s German programs. There, it was Afrikaans language, Afrikaans poetry, and Afrikaans what-have-you when it wasn’t Our Wildlife Heritage. It helped that the edition of Themba’s story7 that I read was a German translation. That’s how that non-white parallel universe of Radio RSA’s, South Africa’s "crepuscule" world, became visible for me.
Another reality, never mentioned by Radio RSA either, was torture in South Africa. James Michener’s "The Covenant", also in a German translation, informed me. And "Der Spiegel", again from Hamburg, noted that 21 non-white prisoners in South Africa had died, frequently in mysterious ways", within about just twenty months8. Radio RSA did bring up necklacing however – the other guys’ kind of torture and murder.
Themba’s stories also shed light on divisions within racial groups – divisions that were big enough for the Sophiatown first-person narrator to crack jokes about "African nationalists who profess horror at the thought that any self-respecting black man could desire any white woman," and bridges wide enough for a cop to let the narrator emerge from his Johannesburg subway arrival station without passport control because it’s "the one who drank with me Sis Julia’s shebeen on an afternoon off." In short, there was disagreement within the privileged white class and within the oppressed majority respectively, enough to enable a lot of illegal action or nonfeasance.
As far as international radio was concerned, just as there was Radio RSA, always on message with up to 500 kW, there was the ANC’s Radio Freedom, always on message with maybe 50 kW. That was one reason why you wouldn’t usually catch Radio Freedom’s shortwave signals in Europe. Another was that South Africa’s authorities reportedly jammed Radio Freedom’s transmissions. And, of course, the ANC’s target area was always south of Zambia and other "frontline states" that helped Radio Freedom out with airtime on their shortwave stations – the opposite direction of Europe or North America. Radio RSA’s signals always went north, and were carefully targeted at African and Western countries and regions.
Even 50 kWs of ANC radio were too much for Pretoria though. Any listener in South Africa who listened to it could face up to eight years imprisonment, if caught.
How did Radio RSA handle the parallel universe, in that "crepuscule"? At times by demonization, and mostly by omission. There was a series about the Zulus in the late 1980s, but it was about Zulu history, with King Shaka at the center, not about modern, let alone urban, life.
Listener’s Questions
Listeners’ questions didn’t always get answers either: Ake Magnusson, author of an academic booklet about Radio RSA in 1976, wrote that
The foremost programme for listenersis called ‘P.O. Box 4559’. In this so called Mailbag programme it was announced on February 5, 1974: ‘Mr. Ake Magnusson of the Institute of Political Science at Göteborg’s University. We have written to you, giving the details you wanted on Radio RSA.’ Along with a rather stencilled description of a technical nature of the Voice of South Africa, this was the station’s answer to a letter from me concerning four vital questions about the South African shortwave station. Another letter from me has not led to any reactions at all. This example, though it may be a unique case, shows how the letters from listeners are sometimes used in dubious ways.9
To be fair, I’m pretty sure that no shortwave broadcasters at the time answered every question they were asked – nor would they nowadays. But of course, Magnusson’s experience wasn’t unique. When Radio RSA had a news bulletin about a group of French parliamentarians who had concluded their visit to South Africa with a lot of – reportedly – complaisant findings, the newsreader made no mention of the delegation’s party affiliations. In the most unfavorable case, that could have meant a complete National-Rally traveling group, and as there was no internet to answer my question, I turned to P.O. Box 4559’s German edition. Rather than answering my question, the mailbag program simply repeated the original message from its earlier news bulletin:
The deputies declared on a concluding press conference that after their visit, they are of the view that Apartheid had been abolished, and that they also heard in talks with the numerous political groups and population groups that South Africans, with an overwhelming majority, opposed sanctions. Indeed, the parliamentarians noted that there is a problem of rural flight in South Africa,that there are mixed-races residential areas, that the vexed passport legislation that had led to a discriminating cuts into free movement of persons, have been abolished, that the blacks’ standard of living has risen this much, in contrast to rises in the white population’s real incomes, for example, that the question of residence must, logically, beyond the [group areas act] develop into a further process of integration.10
So I sent another letter and repeated my question.
Answer:
We endeavor to give a balanced view of South Africa, and in the cases we remember, when we rendered statements from foreign politicians, their party affiliations were also mentioned as a matter of principle. If that didn’t happen, it was an unintended oversight we would like to apologize for. However, there are German or rather German-speaking politicians who only come here to confirm preconceived views to shine with on TV at home later on. As these views existed before these Gentlemen came to South Africa We don’t consider such statements productive when it is about our mission to raise understanding for the situation of this country.11
I’ll never know who those visiting guys from France were, back in 1986.
Radio Freedom seems to have had some success among younger listeners in South Africa, despite the threat of jailtime, and despite reported South African jamming. One important reason was probably the music they played – music that was frequently banned in South Africa. One of the best-known names among the bands and musicians could be “Dollar Brand”, aka Abdullah Ibrahim, a jazz musician.
Whatever the South African radio landscape looked like, it wasn’t everyone’s stuff, not even among whites. "Lourenco Marques Radio" (LM Radio) from Mozambique wasn’t an opposition broadcaster, but a private station with a lot of the kind of music younger South Africans wanted to listen to, and that wasn’t greatly available on SABC programs. Although medium- and shortwave-based, LM Radio seems to have been a real alternative – until it "lost much of its sparkle", when taken over by the SABC in 1972.
I’m not sure how much Radio RSA really stood out within the South African radio landscape. Above all, its target area, in terms of content and target areas, wasn’t South African. But while the SABC, the domestic service, wasn’t necessarily popular among all segments of their audience, Radio RSA seems to have ruled among international shortwave listeners of the 1960s, 1970s and 1980s. They regularly were among the top-three stations in the German SWL club’s ADDX (Assoziation Deutschsprachiger DXer) popularity polls, often along with the BBC’s and Radio Canada International’s German services, and they were probably liked both for their ways of presentation that came across as rather spontaneous, and for showing appreciation for their listeners. Appreciation manifested itself in effusive praise for listeners’ fidelity, and in unusually refined letter paper, for example, and, according to Peter Orlik during the first years of Radio RSA’s life cycle, the station’s mailbag program P.O. Box 4559 reacted to listener feedback in a respectable manner:
The letters come from all over the world including some of the nations of Black Africa and deal with facts about South Africa as a whole as well as its music and personalities. Little attempt is made to hide the fact that some of these letters are critical of the Republic and its policies. Many of these are rebutted over the air and it is RSA’s hope that "the facts we have given in reply have led to a better understanding of our position: to know is to understand. We believe that most of the misconceptions about South Africa are the result of misunderstanding and misinformation. The task of RSA is clear." (RSA CAlling, No. 1 /1968, p. 1)
It is to the credit of the program that these replies are entertainingly presented with never the slightest hint of ill-feeling.12I don’t know if that remained so until the end. As far as Radio RSA’s German service was concerned, some of their staff sometimes reacted rather accusingly to criticism from the audience. But that probably didn’t hurt in terms of acceptance in the German-speaking target areas. While shortwave doesn’t provide media with market segmentation tools as powerful as the internet, at least the smaller languages – like Dutch, German, and (for a few years) Danish – provided some opportunities to do so after all. In English or French, only the way Radio RSA directed and slewed its antennas would be of some help.
________________Notes
1 Jacques Ellul: Propaganda, New York, 1965, p. 42 2 Radio RSA, German Service, P. O. Box 4559, October 22, 19873 Donald R. Browne: International Radio Broadcasting, New York, 1982, page 2064 Radio RSA, German Service, P.O. Box 4559, October 10, 19865 ADDX-Kurier, Sept 15, 19906 Das Rowohlt aktuell Lesebuch, Reinbek, 1983, 1984, pages 179 to 1897 An audio book of "Crepuscule" can be found here. 8 “Kopf gegen die Wand”, Der Spiegel, December 11, 19779 Ake Magnusson, The Voice of South Africa, Uppsala, 1976, page 5010 Radio RSA, German Service, P. O. Box 4559, October 22, 1987 – same as quoted under FN-2. I’m not sure if the Group Areas Act is what the mailbag program referred to at the time, but I suppose so. In German, Radio RSA said "Gruppenwohnraumvorbehaltsgesetz", and they pointed out that South Africa’s need for skilled labor had already led to "integration at the workplace". Their original answer in German:Die Abgeordneten erklärten auf einer abschließenden Pressekonferenz, dass sie nach ihrem Besuch die Auffassung vertreten, dass die Apartheid abgeschafft worden sei, und sie außerdem im Zuge der Gespräche mit Vertetern der zahlreichen politischen Gruppierungen und Bevölkerungsgruppen vernommen haben, dass man sich in S.A. in der überwältigenden Mehrheit gegen Sanktionen ausgesprochen habe. In der Tat haben die Parlamentarier festgestellt, daß esin S.A. ein Problem der Landflucht gibt, daß es in S.A. gemischtrassige Wohngebiete gibt, daß die leidlichen Paßgesetze, die zu einer diskriminierenden Einschneidung der Freizügigkeit in der Bewegung geführt hatten, abgeschafft worden sind, daß der Lebensstandard der Schwarzen derart gestiegen ist, im Gegensatz zur Steigerung z. B. des Realeinkommens der weissen Bevölkerung, daß sich die Frage des Wohnsitzes über das Gruppenwohnraumvorbehaltsgesetz hinaus in der Zukunft als logische Konsequenz zu einem weiteren Integrationsprozess entwickeln muß. Der Bedarf an Fachkräften durch die südafrikansiche Wirtschaft hat ja letztendlich schon einmal zur Integration am Arbeitsplatz geführt, zu einer gezielten Kampagne um die Schuausbildung der schwarzen Bevölkerung auf den gleichen Stand mit der weissen Bevölkerung zu bringen …
You get the picture.)
11 P.O. Box 4559, Radio RSA German Service, November 5, 1988:
12 Peter Orlik, The South African Broadcasting Corporation, page 186Wir bemühen uns zwar, ein ausgewogenes Bild Südafrikas zu zeichnen und in den uns erinnerlichen Fällen, bei denen wir in unseren Nachrichtebsendungen Aeusserungen ausländischer Politiker wiedergaben, wurde aus Prinzip auch die Parteizugehörigkeit solcher Politiker genannt. Wenn dies nicht geschah, so ist das ein Versehen, das bestimmt nicht beabsichtigt war, und für das wir uns gern entschuldigen wollen. Es gibt jedoch deutsche oder sagen wir besser deutsch-sprechende Politiker, die hier her kommnen, nur um eine vorgefasste Meinung zu bestätigen, mitder sie dann späterim Fernsehen in ihrer Heimat brillieren. Solche Aeusserungen halten wir für wenig produktiv, wenn es um unseren Auftrag geht, Verständnis für die Lage dieses Landes zu wecken. Da die dort geäußerten Meinungen und Ansichten längst bestanden, bevor diese Herren nach Südafrika kamen, sehen wir sie auch kaum als berichtenswerte Neuigkeit. […]
#Africa #foreignRadio #Germany #music #propaganda #RadioRSA #SouthAfrica
-
AI Features in Adobe Photoshop That Actually Changed How I Work: A Designer’s Field Report
This post contains affiliate links. We may earn a commission if you click on them and make a purchase. It’s at no extra cost to you and helps us run this site. Thanks for your support!
Photoshop just became dangerous. Not the old-school dangerous, where you’d accidentally flatten layers at 3 AM. The new kind. The kind where you question whether you’re still designing or just prompting your way through projects.
I spent three weeks testing Adobe’s latest AI toolkit. What started as curiosity turned into something more unsettling: a complete workflow transformation. These aren’t incremental updates. They’re category shifts that redefine what counts as creative labor.
What Makes Adobe’s AI Implementation Different from Generic Tools?
Here’s the framework I developed while testing: Contextual Fidelity versus Prompt Randomness. Most AI image tools operate on the randomness principle. You type words, hope for magic, and regenerate seventeen times. Adobe flipped this model. Their AI features in Adobe Photoshop read existing image data first, then augment rather than replace.
This distinction matters enormously. Generative Fill doesn’t create from nothing. It analyzes surrounding pixels, lighting direction, perspective angles, and color temperature. The AI becomes a collaborator that actually understands your canvas. Traditional generative AI remains blind to context. Adobe’s approach integrates awareness directly into each tool.
The Three-Tier Intelligence Model
I’m proposing a classification system for Photoshop’s AI features based on autonomy levels:
Tier One: Assisted Operations — Tools that require minimal input but significant human decision-making. Remove Tool and Neural Filters fall here. You point, they execute, you validate.
Tier Two: Contextual Generation — Features that create new content while respecting existing parameters. Generative Fill and Generative Expand operate at this level. They produce novelty within constraints.
Tier Three: Semantic Understanding — Advanced capabilities that interpret intent beyond literal commands. Object Selection and the revolutionary new Harmonize feature demonstrate semantic processing. They recognize what things mean, not just what they are.
How Generative Fill Actually Works (And Why Multiple AI Models Matter)
The first time Generative Fill genuinely shocked me: I selected a boring parking lot in a product photo. Typed “cobblestone plaza with cafe tables.” Expected garbage. Got something I’d have spent two hours compositing manually.
But understanding the mechanism reveals why it works. Adobe Firefly is trained on licensed stock imagery. This creates what I call Style Consistency Inheritance. Generated elements match not just your image’s content but its production quality. Stock photo gets stock-quality additions. Illustration gets illustrated elements. The AI doesn’t just add pixels. It matches provenance.
The Partner AI Model Revolution
Here’s where things get genuinely exciting. As of early 2026, Photoshop now offers multiple AI model options within Generative Fill. You’re not locked into Adobe’s Firefly anymore. Google’s Gemini 2.5 Flash Image (nicknamed “Nano Banana”) and Black Forest Labs’ FLUX.1 Kontext Pro now integrates directly into the workflow.
Each model serves different creative purposes:
Gemini 2.5 Flash Image (Nano Banana) excels at stylized elements and imaginative additions. Want surreal, graphic-heavy imagery? This model delivers. It handles text generation inside images remarkably well. The latest Nano Banana Pro variant offers unlimited generations for Creative Cloud subscribers until mid-December.
FLUX.1 Kontext Pro specializes in contextual accuracy and environmental harmony. Need a realistic perspective? Proper lighting integration? This model understands spatial relationships better than alternatives. It generates single variations rather than three, but quality often compensates.
Adobe Firefly models remain the commercially safe choice. Licensed training data means zero copyright concerns. Production-ready results. Up to 2K resolution output. Professional workflows demand this reliability.
The practical workflow integration proves transformative. Generative Fill delivers three variations automatically when using Firefly models. This Constrained Optionality proves more useful than unlimited randomness. Partner models generate single variations but offer a stylistic range Firefly can’t match.
I tested this on client work. Real deadlines, real budgets. Generative Fill replaced background elements in product photography 40% faster than traditional methods. More importantly, it eliminated blank-canvas paralysis. Starting points appeared instantly. Refinement replaced creation as the primary task.
The limitation? Faces still look suspicious. Human features hit an uncanny valley threshold around 60% realism. For anything containing people, expect additional retouching. Adobe acknowledged this gap. Future updates target portrait-specific training data.
Harmonize: The Compositing Breakthrough Nobody Expected
Previously teased as Project Perfect Blend at Adobe MAX 2024, Harmonize launched in beta during the summer of 2025 and became generally available by October. This feature solves the most persistent problem in image compositing: making inserted objects actually belong in their environment.
Traditional compositing required painstaking manual work. Match the lighting direction. Adjust color temperature. Paint shadows manually. Tweak highlights. Hours of labor for a single realistic composite. Harmonize automates this entire process through AI-powered environmental analysis.
How Harmonize Actually Works
The technology reads your background scene’s lighting conditions, color palette, shadow angles, and atmospheric properties. Then it applies corresponding adjustments to your foreground element. Not just color matching—comprehensive environmental harmonization.
I tested Harmonize on real estate photography. Placed furniture into the empty room in the photos. The AI adjusted object shadows to match the window light direction. Colors shifted to match the room temperature. Reflections appeared on glossy surfaces. Results looked photographed, not composited.
The feature generates three variations per use, similar to Generative Fill. Each variation applies a slightly different interpretation of environmental conditions. You choose the most convincing result. Sometimes none work perfectly. Generate again. Eventually, you find the right balance.
Technical implementation: Harmonize consumes five generative credits per generation (standard features use one credit). Available across Photoshop desktop, web, and iOS mobile app through early access. Works only on pixel layers, not adjustment layers or smart objects.
The research behind Harmonize reveals fascinating technical challenges. Adobe’s team experimented with HDR environment mapping but discovered most users work with standard LDR images. They developed specialized diffusion models that extract lighting information from low-dynamic-range backgrounds. This adaptation makes the technology practically usable rather than theoretically impressive.
Where Harmonize Excels and Fails
Harmonize performs brilliantly with clearly defined objects against well-lit backgrounds. Product photography, architectural visualization, marketing composites. The AI understands spatial relationships. It casts appropriate shadows. It adjusts highlights realistically.
Failures occur with complex transparency, overlapping elements, or extreme lighting mismatches. Placing a daylight-shot person into a nighttime scene produces obviously fake results. The AI handles lighting adjustment but can’t relocate light sources. Use judgment. Maintain atmospheric consistency.
The feature doesn’t replace manual compositing for critical projects. It establishes baselines. You still refine. Mask edges. Adjust opacity. Fine-tune color. But starting 80% complete beats starting from zero.
Generative Expand: Solving the Aspect Ratio Problem
Every photographer knows this pain: Perfect composition, wrong dimensions for the platform. Vertical shot needs a horizontal crop. Magazine layout demands a square format. Traditionally, you compromised composition or faked edges with blur and a clone stamp.
Generative Expand eliminates this compromise through Compositional Extrapolation. The tool analyzes scene geometry, then extends canvas edges with contextually appropriate content. Sky continues naturally. Architecture follows perspective lines. Foreground elements expand without distortion.
When Spatial Intelligence Becomes Obvious
I tested Generative Expand on architectural photography. Original image: tight vertical of a building facade. The client needed horizontal orientation for a banner. The AI extended sides by generating accurate brick patterns, window spacing, and atmospheric perspective depth.
The critical insight: it didn’t just repeat patterns. It understood spatial recession. Bricks appeared smaller toward vanishing points. Window reflections showed appropriate sky portions. This demonstrates genuine three-dimensional scene comprehension, not simple pattern replication.
Professional use case? Absolutely viable. I now shoot tighter compositions, knowing expansion handles format variations later. This inverts traditional photography practices. Instead of shooting wide for cropping flexibility, shoot exactly with expansion capacity. The Precision-First Paradigm emerges directly from this capability.
As of early 2026, Generative Expand now supports the new Firefly Fill & Expand model (in beta), delivering higher resolution and cleaner edge detail. Partner models haven’t integrated here yet, but Adobe’s roadmap suggests future expansion.
Generative Upscale: Resolution Enhancement with Partner Models
Generative Upscale launched in beta during mid-2025, addressing one of Photoshop’s most requested features. The tool enlarges images up to 8 megapixels while maintaining detail quality. More significantly, it now integrates Topaz Labs’ Gigapixel AI as a partner model option.
This partnership demonstrates Adobe’s strategic direction. Rather than building every capability in-house, they’re integrating best-in-class external technologies. Topaz has specialized in upscaling for years. Their algorithms outperform generic approaches significantly.
Practical Applications
AI-generated images are frequently output at lower resolutions. Generative Upscale makes them print-ready. Older digital photos lack detail for modern displays. Upscaling recovers sharpness. Social media managers repurpose assets across platforms. Resolution requirements vary. Upscaling accommodates flexibility.
I tested this on archival product photography. Original 1200×800 pixel images needed a 4K output for new marketing materials. Traditional upscaling produced blur and artifacts. Generative Upscale with Topaz integration preserved edge definition. Text remained readable. Product details stayed sharp.
The limitation: extreme upscaling still produces unconvincing results. Doubling resolution works well. Quadrupling shows strain. Realistic expectations matter. This tool enhances, it doesn’t create information that never existed.
Neural Filters: The Uneven Revolution
Neural Filters sound revolutionary. Reality proves more complicated. These AI features in Adobe Photoshop apply machine learning to common editing tasks. Skin smoothing, style transfer, and colorization. Some work brilliantly. Others feel half-baked.
Smart Portrait deserves attention. It manipulates facial features through slider controls. Want wider eyes? Subtle smile? Different head angle? Adjust parameters, watch changes happen. The technology reads facial geometry, then morphs while maintaining photorealism.
Where Neural Filters Stumble
Style Transfer disappoints consistently. Applying artistic styles to photos produces muddy, unconvincing results. The AI can’t distinguish important details from ignorable texture. Faces become abstract when they should remain recognizable. Backgrounds lose necessary definition.
This reveals a fundamental AI limitation I call Semantic Prioritization Failure. Human artists know what matters in an image. They preserve critical elements while stylizing secondary areas. Current AI applies transformations uniformly. Everything gets equal treatment. Results suffer accordingly.
Landscape Mixer shows similar issues. Combining multiple landscape photos theoretically creates new scenes. Practically? Blurry composites that lack coherent lighting or logical geography. The AI merges without understanding environmental logic.
Object Selection and Remove Tool: Speed Improvements That Matter
Selection remains fundamental to image editing. Adobe’s AI-powered Object Selection changed this tedious process into something almost thoughtless. Hover over objects. Click once. Selection appears.
The underlying technology uses Boundary Prediction Networks. The AI doesn’t just detect edges. It predicts where edges should exist based on semantic understanding. A dog obscured by grass? The selection still captures the complete outline. Traditional edge detection would fail here.
Remove Tool Versus Content-Aware Fill
Adobe separated these functions deliberately. Remove Tool handles quick deletions with automatic fill. Content-Aware Fill provides manual control and preview options. Understanding when to use each determines efficiency.
The enhanced Remove Tool launched in August 2025 with improved Firefly Image Model integration. Results show noticeably better quality and accuracy. Tourist removal from landscapes happens cleanly. Power lines disappear convincingly. The AI analyzes the surrounding context more intelligently than previous versions.
Content-Aware Fill becomes necessary for complex removals. Large objects, important compositional elements, and areas requiring precise control. The preview dialogue lets you customize source sampling. Results improve dramatically with manual refinement.
Sky Replacement: Environmental Harmonization Done Right
Sky Replacement sounds gimmicky. Replace boring skies with dramatic alternatives. Seems like Instagram filter territory. Using it seriously changed this perception entirely.
The sophistication lies in Environmental Harmonization. The AI doesn’t just swap skies. It adjusts foreground lighting to match new atmospheric conditions. Sunset sky? Warm tones appear on buildings. Stormy clouds? Cooler color casts throughout the image. The entire scene rebalances automatically.
The Technical Implementation
Adobe’s approach analyzes multiple image layers simultaneously. Horizon detection, subject masking, lighting direction calculation, color temperature assessment. These processes happen instantly but represent complex computational work.
I tested this on real estate photography. Original images showed flat, overcast skies. Replaced with blue sky variations. The AI adjusted building facades to reflect changed lighting conditions. Windows showed appropriate sky reflections. Shadows maintained correct directionality. Professional results in under thirty seconds.
The limitation? Extreme sky changes create obvious discrepancies. A bright midday sky in a scene with long shadows looks wrong. The AI handles lighting adjustment but can’t relocate light sources. Use judgment. Maintain atmospheric consistency.
Sky Replacement launched with Neural Filters in October 2020, but operates independently through Edit > Sky Replacement. It predates the current generative AI wave but demonstrates Adobe’s early commitment to intelligent automated editing.
The Bigger Question: What Happens When AI Does the Boring Parts?
Here’s my forward-looking prediction: Skill Bifurcation Acceleration. As AI handles technical execution, creative direction becomes the differentiating factor. Designers split into two categories—those who use AI as assistants, and those who become AI’s assistants.
The first group maintains creative control. They know what they want. AI speeds execution. These professionals become more productive without sacrificing vision.
The second group outsources decision-making to algorithms. They accept AI suggestions without critical evaluation. They optimize for speed over quality. Their work becomes indistinguishable from anyone else using identical tools.
The New Creative Skillset
Future Photoshop mastery requires what I call Algorithmic Literacy. Understanding how AI features work internally. Knowing their limitations. Recognizing situations where manual methods remain superior.
You need to know when Generative Fill produces better results than manual compositing. When Object Selection fails, manual paths work better. When Neural Filters create unwanted artifacts. This knowledge separates competent AI users from people letting software make decisions.
Additionally, Prompt Engineering becomes crucial. Generative features respond to text descriptions. Precise language produces better results. Vague prompts generate mediocre outputs. The ability to describe desired outcomes clearly determines success.
Understanding model selection adds another layer. Knowing when Gemini produces better stylization than Firefly. When FLUX handles perspective more convincingly. When commercial safety requirements mandate Adobe’s trained models. These decisions require judgment developed through experience.
Real-World Testing: Where Adobe’s AI Actually Saves Time
I tracked time savings across typical projects. E-commerce product editing saw 35% reduction in processing time. Background removal and enhancement happened faster with AI tools. Manual refinement still occurred, but started from better baselines.
Editorial photography showed 25% improvement. Object removal, sky replacement, and compositional expansion handled common requests instantly. Complex retouching still required traditional techniques, but volume work accelerated significantly.
Design mockups gained 40% efficiency. Generative Fill created placeholder content rapidly. Instead of sourcing stock images for concept presentations, AI generated appropriate elements directly. Client presentations happened faster.
This urban billboard Photoshop mockup with generative AI by Pixelbuddha Studio is available for download from Adobe Stock.Harmonize specifically saved approximately two hours per complex composite. Previously, manual color matching, shadow painting, and lighting adjustment now happen automatically. The time redirects toward creative refinement rather than technical correction.
Where AI Doesn’t Help Yet
Detailed illustration work sees minimal benefit. Character design, complex graphic elements, precise vector work. These tasks require human decision-making at every step. AI features in Adobe Photoshop don’t fundamentally accelerate creative processes.
Fine art photography retouching remains largely manual. Subtle color grading, dodging and burning, and selective adjustments. These require artistic judgment that current AI can’t replicate. Tools assist but don’t replace expertise.
Anything requiring brand consistency needs human oversight. AI generates variations but can’t maintain identity guidelines without explicit constraints. Corporate work demands this consistency. Manual verification remains essential.
My Controversial Take: Adobe’s AI Makes Bad Designers Obvious
Unpopular opinion incoming. These tools expose skill gaps ruthlessly. Previously, bad designers hid behind time constraints. “I would have done better work, but deadlines…” AI removes this excuse.
Now you can execute technically proficient images quickly. If results still look amateurish, the problem isn’t tools or time. It’s vision. You can’t blame software for poor compositional choices. You can’t excuse weak color palettes with workflow limitations.
The Democratization Myth
The tech industry loves claiming new tools “democratize creativity.” Anyone can be a designer now. Just use AI. This narrative is fundamentally misleading.
AI democratizes execution, not creativity. Removing technical barriers doesn’t create artistic vision. Someone without compositional understanding produces bad images faster. Tools amplify existing capabilities. They don’t generate taste or judgment.
Professional designers benefit most from these AI features. They already know what good looks like. AI helps them achieve it efficiently. Amateurs generate more content but not better content.
Learning Curve: How Long Before You’re Actually Productive?
Realistic assessment: two weeks of regular use before these tools feel natural. The interfaces seem simple. Click, type, generate. But understanding when and how to use each feature requires experience.
Initial results often disappoint. Generative Fill creates weird artifacts. Neural Filters look obviously filtered. Sky Replacement produces uncanny lighting. This frustration phase lasts about five projects.
The Proficiency Timeline
Week one: Exploration and disappointment. Nothing works as advertised. Results look artificial. You question the hype.
Week two: Pattern recognition begins. You notice which prompts work better. You understand tool limitations. Results improve incrementally.
Week three: Integration starts. AI features become workflow components rather than novelties. You know when to use them versus traditional methods.
Month two: Fluency arrives. Tools feel intuitive. You develop personal techniques. Productivity gains become measurable. Model selection becomes instinctive.
The mistake? Expecting instant mastery. These AI features in Adobe Photoshop require skill development, like any tool. Proficiency demands practice.
What Adobe Should Fix: The Honest Criticism
Generative Fill needs better prompt guidance. The text input box offers zero feedback. You type descriptions blindly, hoping AI interprets correctly. Adobe should implement suggestion systems. Show example prompts. Indicate effective phrasing patterns.
Neural Filters require transparency improvements. What’s actually happening when you apply style transfer? Which aspects can you control? The current black-box approach frustrates professionals who need predictable results.
Performance and Processing Speed
Cloud-based processing creates annoying delays. Generative features send requests to Adobe servers, wait for responses. Fast internet helps, but doesn’t eliminate latency. Local processing options should exist for paying subscribers.
Additionally, batch processing needs implementation. Applying AI features to multiple images requires manual repetition currently. Professional workflows demand automation capabilities. Adobe announced Firefly Creative Production for batch editing, but integration into Photoshop proper remains incomplete.
Preview quality could improve substantially. Low-resolution previews make evaluation difficult. You can’t assess the detail quality until full processing is complete. Better preview rendering would accelerate decision-making.
Partner model integration remains incomplete. Only Generative Fill and Generative Upscale support external models currently. Harmonize, Neural Filters, and Sky Replacement remain Firefly-exclusive. Expanding model choice across all generative features would increase creative flexibility.
The Economics: Is Creative Cloud Worth It for AI Features Alone?
Adobe charges monthly subscriptions. As of February 2026, pricing breaks down as follows:
Photography Plan (1TB): $19.99/month — includes Photoshop, Lightroom, Lightroom Classic, mobile apps, and 1TB cloud storage. This represents the most cost-effective Photoshop access for photographers and most designers.
Single App (Photoshop only): Approximately $22.99/month — provides Photoshop across desktop, web, and mobile, plus 100GB storage.
Creative Cloud Pro: Around $69.99/month for individuals — includes 20+ applications plus Adobe Express Premium, Frame.io, and extensive cloud storage.
Students and Teachers: Currently $24.99/month for the Pro plan — represents a 64% discount from standard pricing.
For professionals billing clients, these costs are easily justified. Time savings generate revenue exceeding subscription expenses. Forty percent efficiency improvement means handling more projects monthly. Increased capacity creates profit.
For hobbyists and students, the calculation differs. AI features provide value but might not justify ongoing expenses for casual use. Alternative software offers similar capabilities at lower prices. Affinity Photo costs $69.99 once. Includes solid AI features without subscriptions.
The Competitive Landscape
Canva integrated AI aggressively. Their generative tools work surprisingly well for basic tasks. Interface simplicity appeals to non-professionals. Monthly cost: around $12.99 for individuals.
Luminar Neo specializes in AI-powered photo editing. Sky replacement, skin retouching, object removal. Subscription model now standard, but pricing remains lower than Adobe.
Adobe maintains advantages in professional workflows. Better color management, extensive plugin ecosystem, and industry-standard file compatibility. Partner model integration creates unique capabilities competitors can’t match. For serious work, these factors outweigh cost considerations.
The generative credits system requires understanding. Standard features (Firefly-powered Generative Fill, Generative Expand, Remove Tool) consume one credit per generation. Premium features (partner AI models, Harmonize at five credits) consume more. Creative Cloud plans include monthly allowances—typically 4,000 credits for premium features.
Future Predictions: Where Adobe’s AI Heads Next
Prediction One: Semantic Style Consistency. Within eighteen months, Adobe will implement style learning from user editing patterns. The AI will observe your color grading choices, compositional preferences, and retouching approaches. It will then suggest adjustments matching your personal style.
Prediction Two: Three-Dimensional Scene Understanding. Next-generation Generative Fill will comprehend spatial relationships better. Perspective-accurate object insertion. Proper occlusion handling. Shadow generation matching light source positions. This requires advanced 3D scene reconstruction capabilities. Early signs appear in FLUX Kontext Pro’s environmental awareness.
Prediction Three: Conversational Editing Interfaces. Late 2025 saw Photoshop integration with ChatGPT, enabling conversational image editing without leaving chat interfaces. This capability will expand. Natural language instructions will replace complex menu navigation. “Make the sky more dramatic” triggers exposure, contrast, and color adjustments automatically.
Prediction Four: Expanded Partner Model Ecosystem. Adobe will integrate specialized models for specific tasks. Medical imaging partners. Architectural visualization specialists. Fashion-specific generators. The model picker becomes a marketplace. Users select tools matching project requirements.
The Augmented Creativity Paradigm
I’m coining a term here: Augmented Creativity Paradigm. This framework describes the emerging relationship between human designers and AI tools. Neither fully automated nor entirely manual. A hybrid state where AI handles bounded tasks while humans maintain strategic control.
This paradigm requires new professional competencies. You must understand AI capabilities and limitations. Furthermore, you must direct tools effectively, and you must evaluate AI outputs critically. Traditional design skills remain essential but insufficient alone.
The designers who thrive will embrace this hybrid model. They will use AI as a tool for efficiency without relinquishing creative control. They will question its outputs rather than accept them at face value, recognizing both its strengths and its limits. Instead of following generic suggestions, they will train the system to reflect their own taste, standards, and creative intent.
Harmonize represents this paradigm perfectly. It automates environmental matching—a technically complex but creatively straightforward task. This frees designers to focus on composition, concept, and narrative. The AI handles photorealistic integration. Humans handle meaning.
Ethical Considerations: The Commercial Safety Advantage
Adobe’s Firefly training exclusively on licensed stock imagery and public domain content creates a genuine competitive advantage. Generated content carries zero copyright liability. Clients accept AI-assisted work without legal concerns.
Partner models introduce complexity. Google’s Gemini and Black Forest Labs’ FLUX are trained on broader datasets. Licensing clarity varies. Professional use requires careful consideration. Adobe maintains that user outputs remain user-owned and aren’t used for AI training, regardless of model choice.
The photography community expresses legitimate concerns about AI replacing human creativity. Stock photography markets face disruption. Junior creative positions evolve. These developments deserve serious discussion rather than dismissal.
My perspective: AI tools amplify rather than replace human creativity when used thoughtfully. They eliminate tedious technical work, accelerate iteration, and democratize execution. But they don’t generate original vision. That remains human domain.
Frequently Asked Questions (FAQ)
How accurate is Generative Fill compared to manual compositing?
Generative Fill achieves roughly 70-80% accuracy for simple background extensions and object additions. Complex composites still require manual work. The AI excels at texture generation and atmospheric consistency but struggles with precise detail matching. Professional results typically need AI generation plus manual refinement. Partner models like FLUX Kontext Pro improve contextual accuracy significantly.
Can AI features in Adobe Photoshop replace traditional retouching skills?
No. AI tools accelerate workflows but don’t eliminate skill requirements. Object removal works automatically for simple cases. Complex retouching demands manual techniques. Color grading, dodging and burning, and detailed masking—these require human judgment that AI can’t replicate currently. Consider AI as efficiency multipliers, not skill replacements. Harmonize automates environmental matching but creative composition decisions remain human.
Do Generative AI features work offline?
Currently, no. Most generative AI features in Adobe Photoshop require internet connectivity. Processing happens on Adobe’s cloud servers. This enables complex computations but creates dependency on network availability. Adobe hasn’t announced local processing options yet. Work requiring offline capability should use traditional tools.
Which AI feature provides the biggest time savings?
Remove Tool delivers the most consistent efficiency gains. Simple object removal that previously took five minutes now completes in seconds. Harmonize ranks second for compositing work, saving approximately two hours per complex project. Generative Expand helps dramatically for photographers needing aspect ratio flexibility. Sky Replacement accelerates real estate and landscape work. Your specific workflow determines which feature saves the most time.
Are there ethical concerns with using AI-generated content commercially?
Adobe’s Firefly AI trains exclusively on licensed stock imagery and public domain content. This addresses copyright concerns other AI tools face. Generated content using Firefly models is commercially safe for most uses. Partner models (Gemini, FLUX) have different training sources—verify licensing terms for specific projects. Client contracts may prohibit AI-generated elements. Check agreements before deploying AI content professionally.
How does Adobe’s AI compare to standalone tools like Midjourney?
Different use cases entirely. Midjourney excels at creating original images from text prompts. Adobe’s AI features augment existing images contextually. Midjourney generates without constraints. Photoshop’s AI respects existing image parameters. For editing workflows, Adobe integrates better. For pure generation, Midjourney offers a more creative range. Most professionals use both for different purposes. Partner model integration now brings some generative flexibility into Photoshop.
Will these AI features make junior designers obsolete?
Unlikely. AI automates technical execution but doesn’t replace design thinking. Junior designers learn by solving problems, not just operating tools. Entry-level positions will shift toward creative direction earlier. Technical proficiency develops faster with AI assistance. Thoughtful employers recognize this creates better-trained professionals, not redundant ones. Design judgment remains fundamentally human. Harmonize automates lighting matching, but can’t decide what should compose the image.
How do generative credits work with partner AI models?
Standard features (Firefly-powered Generative Fill, Remove Tool) consume one credit per generation. Partner AI models like Gemini Nano Banana and FLUX Kontext Pro are premium features consuming variable credits—typically more than standard features. Harmonize consumes five credits per generation. Creative Cloud plans include monthly credit allowances. Photography Plan includes credits for standard features; premium features may require Creative Cloud Pro or additional credit purchases. Check current plan details for specific allocations.
What’s the difference between Harmonize and Color Matching?
Harmonize performs comprehensive environmental integration—adjusting color, lighting, shadows, and visual tone to blend objects realistically into scenes. Color Matching only adjusts the color palette to match reference images. Harmonize goes far beyond color correction. It analyzes light direction, casts appropriate shadows, adjusts highlights, and modifies atmospheric properties. Think of Harmonize as complete compositing automation, while Color Matching handles only color temperature and tones.
Can I use multiple AI models in a single project?
Absolutely. Professional workflows increasingly combine multiple models for different tasks. Use Firefly for commercially safe background generation. Switch to Gemini Nano Banana for stylized graphic elements. Apply FLUX Kontext Pro for perspective-accurate object insertion. Each model serves different creative purposes. Layer these capabilities strategically. The model picker makes switching seamless within the Generative Fill workflow.
Check out WE AND THE COLOR’s AI and Technology categories for more.
Subscribe to our newsletter!
By continuing, you accept the privacy policy -
CW: Classic creations by Arcadia Asylum a.k.a. Lora Lemon/Aley at OpenSimFest 2023; CW: long (post text: 258 characters, first image description: 38,650 characters, second image description: 26,213 characters, third image description: 9,687 characters, full net length: 76,780 characters), eye contact
OpenSimFest 2023 doesn't only offer the latest and greatest in OpenSim creativity. It also shows some classics made by Arcadia Asylum in Second Life and legally preserved in OpenSim. This includes her space themes which are exhibited on three large displays.
The pictures in this post are digital 3-D renderings of exhibition displays at the annual OpenSimFest (official website) which has started on September 15th and will continue until September 30th. They were created using shaders, but without ray-tracing, as they were taken inside a virtual world based on OpenSimulator.
OpenSimulator (official website and wiki), OpenSim in short, is a free and open-source platform for 3-D virtual worlds that uses largely the same technology as the commercial virtual world Second Life. It was launched as early as 2007, and it mostly became a network of federated, interconnected worlds when the Hypergrid was introduced in 2008. It is accessed through client software running on desktop or laptop computers, so-called "viewers". It doesn't require a virtual reality headset, and it actually doesn't support virtual reality headsets.
Just like Second Life's virtual world, worlds based on OpenSim are referred to as "grids" because they are separated into square fields of 256 by 256 metres, so-called "regions". These regions can be empty and inaccessible, or there can be a "simulator" or "sim" running in them. Only these sims count a the actual land area of a grid. It is possible to both look into neighbouring sims and move your avatar across sim borders unless access limitations prevent this.
OpenSimFest takes place on its own grid. It is connected to the Hypergrid, so it isn't necessary to have an avatar on the OpenSimFest grid because you can visit it with an avatar that you have on another grid. It features a schedule of 12 hours each day, starting at 9 a.m. PDT. PDT is the standard time zone both in Second Life and on all OpenSim grids. On most days, from 11 a.m. to 7 p.m., there are live performances or DJ events on one of the four neighbouring event sims. Most of the other sims are much larger. They are so-called "varsims", something specific to OpenSim that doesn't exist in Second Life. They stretch across multiple regions arranged in a square without borders between the regions. Two of them are merchant sims where OpenSim creators offer mostly payware, but also a few freebies. Others are, for example, exhibition sims.
The motto of OpenSimFest 2023 is the Jazz/Blues Era.
These pictures were all taken on Sulfur, one of the two merchant sims. What they show, however, are displays of creations by the famous Second Life creator Arcadia Asylum. She started around 2006, and she was banned from Second Life several times, likely because she refused to charge money for her creations. Instead, she offered them for free, under a free, non-commercial copyleft license and with full permissions. Due to always being banned after a while, she went through several names. Arcadia Asylum was the first, followed by names such as Aley Arai, Lora Lemon and finally, when Second Life had removed the last names feature for new users, Aley Resident or simply Aley.
Her creations were mostly preserved by exporting them from Second Life and importing them into OpenSim. She wasn't opposed to this, she actually eventually gave her own official permission to do so. But she was never in OpenSim herself.
What is shown here are the preserved creations from her Space Pirates and Galactic Trade Union themes which she created from 2008 to 2011 under the guise of Lora Lemon except for a few items which she had to release through her Aley avatar. Most of them are static, unscripted objects. The displays are mostly surrounded by cubes which she had made, too, and which are amongst the items which she released as Aley. These cubes show space pictures on the inside, and they are fully transparent from the outside. Normally, they are the size of a whole region, but they were resized for OpenSimFest to work as display backdrops. The sides show various nebula while the top and the bottom only show a star field.
In the foreground, there is always a small bit of the broad walkways that connect the displays on Sulfur. Their textures give the impression of polished tannish stone tiles cut into two rectangular sizes, one wider, one narrower, but both with the same length. Between the walkways and the space cubes, there is always a very slightly sloped "ramp" with a medium grey texture that shows a stylised moon landscape covered in craters of various sizes.
The direction of view in the first picture is not perpendicular to the edge of the walkways; it is rotated to the left by about 10°.
The space cube in the first picture shows a photograph of otherwise nameless IC 434, as it is designated in the Index Catalogue, on the left-hand side. It is a part of the Orion B molecular cloud, a star-forming region in the constellation of Orion. However, the image seems to be altered. For starters, it is mirrored with the north to the right and the east to the bottom.
IC 434 itself is shown as a rose-coloured nebula extending mostly horizontally with an almost sharp lower edge below its long and thin brightest part, but flaring upwards from there with its brightness increasing in a number of steps. These flares increase in height, the farther to the right they are. In front of it, almost in the middle, there is the dark shape of the Horsehead Nebula, also known by its designations Barnard 33 and LDN 1630 in Lynds' Catalogue of Dark Nebulae.
Below and to the right of the Horsehead Nebula, the star HD 37903 can be seen shining with a faint lavender tint, but not so much the reflection nebula NGC 2023 which it would normally illuminate. What is even stranger is that Alnitak or Zeta Orionis which should be a very bright star to the right of IC 434 in this picture is missing; there is another, smaller purple nebula in its place. The Flame Nebula, also known by its designations NGC 2024 and Sharpless 277, is in its usual place below where Alnitak would be, glowing orange-red while being partially obscured by a darker cloud in the middle.
The texture in the back is a photograph of the Crab Nebula, also known by the designations Messier 1, NGC 1952 in the New General Catalogue, Taurus A and Sharpless 244. It is the remnant of the supernova SN 1054 that was observed on Earth from July 4th, 1054 on, and it is in the constellation of Taurus.
The Crab Nebula generally consists of two components. The remains of the supernova explosion have formed thin, thread-like and chaotic structures that glow from lime green near the upper right limits above the edge of the image to yellow slightly closer to the centre already to orange farther to the lower left to a deep red on the lower left limits. In addition, there is a diffuse, faint aqua blue cloud of glowing gas created by the Crab Pulsar which is what is left of the exploded star. It is smaller than the supernova remnants, and it doesn't reach nearly as far to the lower left.
The texture on the right-hand side is a photograph of otherwise nameless NGC 604, the ninth-largest known nebula. It is a star-forming region that resides in the Triangulum Galaxy which in turn is in the constellation of Triangulum.
The gases that make up the nebula are slowly contracting under their own gravitation to chaotic fibrous structures which might eventually form stars. The brightest parts are in the middle of the nebula, in the upper right corner of the image, where a cluster of about 200 young and massive stars are making the nebula glow by ionising it. Close to these stars, it is shown glowing in a cream or champagne tone. With no gradient in-between, the outer parts are glowing in a much less bright Burgundy red.
On the edge of the walkways towards the ramp, way to the right of the picture, stands a sign-like structure. It is actually a scripted teleporter on which destinations all over OpenSimFest can be chosen, but not outside OpenSimFest. Its basic structure is a flat, rectangular, upright box with a texture that roughly mimicks stainless steel brushed in an elliptical pattern. At the very top, still on the stainless steel texture, there is the name of the device or most of it in vantablack in an unidentified monospace typeface: "MD Teleport System".
Apart from the wide margin, the rest of the front is occupied by various rectangular panels, most of which share the same full width which is about 90% of the width of the whole device. Also, most of these panels are vantablack with yellow writing in the DejaVu Sans Mono monospace typeface on them. The top panel names the destination chosen for teleporting, "Steam Fair by Aley c.2015".
Below it is an image that shows a preview of the destination. The centre of this is a semi-elliptical arch construction that serves as the entrance of a Victorian-age amusement area on a wooden boardwalk. The structure itself is fairly elaborate with a texture that resembles slightly yellowish light wood.
At its front, there is a partially transparent sign that gives the impression of being three-dimensional through highlights and shading, implying light falling in from the left. It shows a light grey silhouette of a boardwalk with four different buildings in various sizes and shapes on it, two of them with one triangular pennant standing off a small flagpole on the roof towards the left, one with two of these. To the right of the left-most building, there is a silhouette of a ferris wheel that bears a strong resemblance to a ship's steering wheel with its eight spokes and no visible cabins.
The boardwalk silhouette is standing on a medium grey horizontal rod. Above it and connected to the rod at its end, there is a semi-elliptical double arch in the same medium grey. This double arch carries the writing "SEAVIEW" in sky blue letters in a very ornate but unidentified serif font which follows the shape of the arch. There is a light grey cartoon crab with big googly eyes and a happy expression with an open mouth and pincers spread wide wearing a white bowtie and a black top hat with a white hatband below the left-hand end of the "SEAVIEW" writing. Likewise, there is a light grey kraken with curled tentacles on the right.
Between the "SEAVIEW" writing and the boardwalk silhouette, there is the horizontal writing "Amusement Park" in a less ornate, Western-style typeface with small capitals, seemingly held in place by two horizontal rods that connect to the inner medium grey arch, one at the bottom and another one at the top only holding the actual capitals. In the same typeface, also in medium grey and with small capitals, but in front of the boardwalk silhouette and only slightly above the horizontal rod that carries it, there is another writing, "Est. 1869".
The floor of the entire structure is textured to resemble longitudinal and transversal wooden beams made of darker wood with diagonal planks made of even darker but still medium brown wood filling the large spaces between them, held in place with one large blue nail at each of their ends.
The point of view is above the bridge that leads to the boardwalk, going slightly uphill. It is lined with fence-like guards on both side, the same as those which surround the whole boardwalk, with a wooden texture that is about as light as that of the wooden "beams" in the ground texture, but more yellowish. These mostly consist of four long planks, the top one being oriented horizontally and mounted against the tops of the support poles, the other three being oriented vertially and mounted against the boardwalk sides of the support poles.
The sides of the bridge are also lined by two strings of small pennants that lead past the on-looker and end on the arch. The one on the left shows eight pennants in, from front to back, green, blue, yellow, blue again, yellow again, red, green again and blue again. The one on the right shows six pennants in, from front to back, green, this one is barely visible, red, green again, blue, yellow and red again.
To the left of the arch, there is a lamp on a lamppost. Both the lamp and the post seem to be made from the same wood as the fence except for the lamp glass which shows a yellow glow. To the right of the arch, there is one dark wooden booth. Behind that booth, there is another different arch with the same wooden texture as the one that is the centrepiece of the preview image.
In extension of the bridge, a wheelbarrow with a market stand with six boxes textured like they contain various unidentified items is standing on the boardwalk. Various other structures are on the boardwalk, mostly in the background, like tents with tarpaulins striped in beige and red or cream and brown as well as a target and another string of pennants.
All objects in this preview image so far were made by Arcadia Asylum.
Above the whole scene, there is a "ceiling" with a transparent texture that refracts the dark purple night sky. Farther in the background, barely identifiable through the "ceiling", two structures can be made out. To the left, there is the semi-transparent, black, box-shaped display booth of the Focus virtual art magazine. The fourth nebula texture of Arcadia Asylum's space cube can be seen through it; it is part of the third Arcadia Asylum space display which will be described along with its image. To the right, there is an enormous static wave with a constantly moving aqua blue texture on it.
Back to the teleporter itself: This image also triggers the actual teleport. If you click it, you are taken to the chosen destination.
The ten vantablack panels below list ten possible destinations. They show these destination labels in yellow writing: "A Whale of a Tale", "Diamond Queen - Ruth 2.4" which refers to the free, open-source mesh body Ruth2 v4, "Fashion Temple", "Kimberley's Fashion Lab", "FOCUS Magazine of Virtual Art", "Galactic Truckstop", "Space Pirates by Aley Arai", "More spaceships by Aley Arai" which is where this teleporter is standing, "Steam Fair by Aley c.2015" which is what is currently selected and "Chez Faire Beach display". Clicking them will select them as the teleport destination. These ten destinations are all on this sim, so they can also be reached by walking which would take a while due to the size of the sim, though.
At the bottom, there are four square vantablack buttons with yellow labels on them. The leftmost one has a question mark in the middle and "(DE)" in the bottom left corner. It gives you a notecard with a manual for the teleporter in German. The rightmost one is similar, only that "(EN)" is written in the bottom left corner. It also works the same, only that it provides an English manual. The buttons in-between are labelled "Pg Up" and "Pg Dn" respectively. With these two buttons, several pages with up to ten teleport destinations each can be flipped through.
On the far edge of the grey ramp, a few metres to the left from where the teleporter is standing, there is a vantablack sign that names and describes the display. In the same yellow DejaVu Sans Mono as the teleporter, it reads, "Name: More spaceships by Aley Arai | Owner: Ada.Radius | Description: Assets from the Arcadia/Aley library owned by New Media Arts, Inc., a 501(c)(3) nonprofit foundation. Complete Opensim collection in Kitely grid." Kitely is the third-largest OpenSim grid and one of the oldest, launched in 2011 after preparations had started as early as 2008. The pipes in this transcription, the vertical lines, mark line breaks in the original.
While the sign is actually hovering above the ground, it is seemingly held by two more of Arcadia's creations, two robots facing the sign from the sides, both of which were released through her Aley avatar.
On the left, it is Rosie the Robot Maid which can also be used as an avatar. She is mostly a darker sky blue. Her head is "cylindrical" with a horizontal, transversal axis. On each side, along the extension of the head axis, sits one horizontal, conical antenna which is about 60% as long as the head is wide and ends in a bright red, double-conical knob. The sockets of the antenna consist of a short cylinder a bit more than 20% the diametre of the head and a slightly longer cone with about 20% the diametre of the head. Two red cylinders are the eyes. On top of each eye, there is one black protrusion in a shape roughly resembling a much-widened obelisk turned slightly outwards, mimicking eyelashes. A red box serves as the mouth with a sky blue box below it serving as the lower lip and another sky blue feature in a harder-to-describe shape above it serving as the upper lip and the tip of the nose.
The upper body is a trapezoid with separate rounded sides that widens more at the front and the back than to the sides. It has three small, cylindrical, bright red buttons at the front. Both arms consist of an upper and a lower arm with separate joints. The shoulder joints are held together and in place with one big bright red slotted pan head screw each. The elbow joints only have one sky blue cylindrical pin each. The hands are two-part clamps with cylindrical pins.
The lower body is shorter, black and can best be described as two trapezoids with rounded sides on top of each other. The top one is rather low and widens downward; the upper body protrudes through the rounded sides. The bottom one is basically of the same shape, but turned upside-down and stretched to about three and a half times the same height. The only foot is sky blue again. It consists of a cylindrical leg, an elliptical, conical upper part, an elliptical, but non-conical lower part and two simple black cylinders as wheels.
Rosie wears multiple white objects shaped like something between half an eight-point star and half a bloom with eight petals. One is standing on top of her head. Two are surrounding each of her wrists. Another two, arranged in an angle of 60 degrees, resemble an apron. Finally, there is a white bow made of two flattened cones on her lower back, right above where her upper and lower body meet.
Due to the low resolution of the meshes, everything that is supposed to be round is actually octogonal.
The robot on the right of the sign is Asteroid Al. He is much more humanoid and uses fewer, but more complex shapes. He also makes more use of complex textures, especially for his body and his head which are mostly covered in detailed metal-like textures. The head is stretched upwards and backwards with large deep cavities for eye sockets and where the ears would be. The mouth is a grille and part of the head texture. The eyes are almost completely baby blue and more reminiscent of two headlights, but they aren't glowing. They're textured onto the ends of what roughly appears like two black cylinders bending into the head towards the back with several golden rings around them.
He is wearing a brick red sleeveless shirt which is textured on rather than a separate object. On the front and the back, there is a picture of a "galactic truck stop" which looks completely different from what Arcadia had built and given the same name and rather resembles that in the Mel Brooks film Spaceballs. From what can be seen in the very-low-resolution image, it seems to have been built on top of an artificially flattened asteroid with the debris from the flattening still around it, and it has three circular landing pads with spaceships on it and structures both above and below landing pad level. The highest point is a purple "GALACTIC TRUCK STOP" sign. The same writing is on the shirt as well, "GALACTIC" above the image, "TRUCK STOP" below it.
Another robot is floating above and behind the image, closer to Asteroid Al than to Rosie: the tiny maintenance bot Widget. Widget is basically a sphere with things attached to it. These are two short clamp arms, three jointless legs with suction-cup-like feet, two eyes similar to Al's, but with silver rings around the cylinders, two tool-like hexagonal attachments on the upper sides, a structure on the back built around an elliptical orb glowing teal and two cylindrical red protrusions, one at the top, one at the bottom. The one at the top serves as the attachment point for a small "satellite dish" that is oriented more forward than upward.
Most of Widget's textures have too low a resolution to be able to identify them. The full-resolution textures might never have made it over from Second Life. But the dominant texture for the attachments is black with diagonal yellow stripes. And the texture of the cylindrical body, probably mostly black with diagonal yellow stripes, too, shows circular blue signs on the left and the right, each surrounded by a silver rim and showing two crossed white tools which may be a pickaxe and a hammer.
Behind the sign and the three robots, slightly to the left again, there is a vortex-like object that is not textured onto the space cube. It looks like the accretion disc of a black hole. The inner half is mostly white, lavender and baby blue whereas the outer half is rose and brick red. It implies a clockwise rotation, but it is static. In order to appear blurrier, it was made of two semi-transparent objects with similar textures. The one up front has a texture that is blurred more, and it has a higher transparency. The object is labelled as a wormhole, but non-functional.
As for spaceships, this display shows tens of them, three of which are parked on the grey ramp in front of the space cube.
The leftmost ship in the foreground, oriented with its bow to the right, is named Retro Rocket Ship. Its fuselage is cylindrical in the middle with slightly elongate spherical ends. It has five fins with a curved, back-swept shape reminiscent of Buck Rogers aesthetics, but with a rectangular cross-section. Two of them are mounted on the sides of the cylindrical part like wings. The other three are mounted on the rear, one on top, the other two rotated slightly downward from the sides. The ship has a short nose that ends in a sphere. Fuselage, nose and fins have textures that suggest that they're riveted together from steel plates with no surface treatment. The ship has no visible landing gear.
The interior of the ship can be seen through 15 portholes which are riveted into the fuselage. The spherical bow contains the cockpit with two padded seats and eight portholes. Behind it, in the fore half of the cylindrical section, there is the crew compartment with a double bunk bed. It has two portholes on each side and more control panels like those in the cockpit below them. The other half of the ship is the engine room with a "rocket engine" that leads to a dark grey rocket nozzle on the back of the ship. It has one porthole and the ship's only door on the port side, two portholes on the starboard site and even more control panels below the portholes. The compartments are separated by double sliding doors which are closed.
While this ship was only inspired by Buck Rogers, the tiny ship in front of its nose, bow oriented roughly towards the front, had its design lifted from actual 1930s Buck Rogers toys. It is one out of only two ships on this display with no visible interior, and it is one out of only two with a glossy surface. Unlike the toys, but following Arcadia's style, it still looks like it's riveted.
Its front contains the cockpit. It is spherical with a strongly semi-elliptical cross-section. On top, there are six roughly rectangular windows in side-by-side pairs of two with light blue panes. Farther back, there are two short, stubby wings, one on each side, with partly elliptical fore edges and straight aft edges. Above each wing, there is one porthole with a light blue pane in it. There is a partly cylindrical, partly conical tube on the nose from which a structure made out of two long, thin, very slight cones protrudes.
Right behind the cockpit, nine elliptical pipe-like objects are arranged in such a way that they appear like 18 small thrust or exhaust nozzles, judging from the soot on their ends and the fuselage aft of them. The soot also covers the door with porthole on each side. The longer aft section of the fuselage is semi-elliptic in shape again, but stretched more than the cockpit section. Four semi-elliptical fins are mounted on it, one on the top, one on each side, one on the bottom. Between these fins, there are four slightly larger and much longer nozzles. Unlike those behind the cockpit, they aren't straight but protruding from the fuselage in a curve. A small normal rocket nozzle sits on the rear end between the fins.
This ship has landing gear. Two wheels are located under the cockpit at the same length as the portholes and the wings. Dark patches in the fuselage texture suggest that they can be retracted; actually, they are static. The third wheel is mounted on the bottom fin slightly aft of the larger nozzles. All three wheels sit in streamlined shrouds which add to its 1930s-style looks, tying in neatly with the motto of OpenSimFest 2023. None of the wheels touch the ground, though.
The ship behind these two is near the ground of the space cube, facing out of the cube, but rotated about 20 degrees clockwise away from standing perpendicularly to the walkways. It is labelled as the Retropolis retro future spaceship. At first glance, it is very similar to the Retro Rocket Ship, but shinier, neater and less grubby. It has a more elaborate nose which ends in a cone. Instead of the two wings, it has three fins around the cylindrical section. These wings are more simple in shape than those on the Retro Rocket Ship. They have multi-part, largely conical insertions vaguely reminiscent of early aircraft jet engines, one sitting on the outer edge. Between the outermost two, the wings are extended towards the back. The stern is surrounded by four diagonally-mounted fins now, similar in shape, but each with only one two-cone construct on the outer edge. The rocket nozzle was replaced with a different, more obviously octogonal and non-conical one, surrounded by four "cylindrical" objects above and below it as well as on its sides which could have been booster nozzles earlier. It's rather obvious that not all original textures have come from Second Life to OpenSim with this ship. Arcadia's space themes are rather problematic in this regard.
The interior is easier to access, also because the single door is open; it opens downwards. The engine compartment has some additional handles and pipes and a larger rocket engine. The other two compartments can be access through the sliding doors, one of each is open now. In fact, one of the cockpit doors is misplaced and clips through the fuselage on the port side. The crew compartment has a small round table, a chair, four cargo shelves, eleven wooden crates all over the port side place and a third bunk. The four shelves even extend into the cockpit where they hold another five crates. Also, the cockpit not only has one handwheel in front of each seat, but it also has a ship's steering wheel in the middle and, for some reason, even a periscope above it.
Another vessel is half-hidden behind the retro future spaceship. The Centurion cargofighter of the Galactic Trade Union has a strong resemblance to post-war jet fighters. It doesn't have a modelled interior; the glass of the cockpit cupola is completely opaque and black. The long nose is slightly curved from the sides, but hexagonal in its cross-section. The two wide wings have winglets on their ends, slightly tilted outward. They also carry what appears to be four hexagonal ray weapons on their weapon mounts.
Most of the rest of the ship is more rounded except for the four square engine nacelles, one mounted into each of the four fins arranged in an X. The nozzles at the ends of the nacelles are round again. Most other details are drawn onto the textures. These include 14 "portholes" similar to those on vintage Buicks, four behind the cockpit and above the wings and three below the wings on each side, as well as several safety markings with black and yellow diagonal stripes, different safety markings with black and red diagonal stripes on the rayguns and a painted-on "shark maw" on the underside below the cockpit.
The "landing gear" consists of three rather elaborate, but unarticulated vertical legs. They suggest or rather require vertical take-off and landing capabilities of which the rest of the Centurion doesn't show any traces.
Right above and farther to the back hovers another, larger, less elegant ship: the Behemoth Freighter of the Galactic Trade Union, facing to the left and slightly to the front. This ship was a cooperation with Jim Carter. It is covered almost entirely in a texture that looks like a wild and chaotic "patchwork" of rectangular metal panels, only that these aren't riveted.
The centre-piece of this ship is its boxy main cargo hold. On each side, two massive cylindrical engines are mounted with intakes at the front which make them partially seem more like turbofan engines. On top of the cargo hold, there is an empty dome which can be accessed via a ladder. The trapezoid stern features the loading ramp which is the only access to the ship's interior. The ramp is lowered almost completely. Above the ramp sits a third engine which is as big as the other two, but of a different type. Invisible from the on-looker's point of view, there are also twelve cube-shaped crates of different kinds in the cargo hold.
Forward from the cargo hold, the fuselage not only narrows, but also rises both at the bottom and at the top towards the elevated cockpit. This section two crew seats, a bed, a touch panel, a microwave and a "Mr. Coffee" coffee maker from Spaceballs. The cockpit has only got one seat which is surrounded by control panels. It is also the only part of the ship with windows. Two rows of ten rectangular windows with rounded corners each are wrapped around the semi-elliptical cockpit section.
The landing gear is lowered again. It consists of four legs, each with four feet with four extending pads each, connected to the upper struts via double shock absorbers. One pair is installed under the rear end of the cargo hold, the other one under the rear end of the "neck" between the cockpit and the cargo hold.
To the right and farther above, there is a ship simply named Saucer that looks the part. It is basically the stereotypical flying saucer. Most of its details are painted onto the texture again. It is oriented in such a way that the open hatch which doubles as a ramp faces the on-looker. The improperly installed double sliding door behind it grants a glimpse into the interior of the ship which, however, lacks any notable details except for the ladder up to the cockpit.
As usually for flying saucers, the cockpit is under a cupola on top and in the middle of the vessel. It shows a great deal of part recycling by Arcadia: Not only are the textures for the control panels standard, but the textures for the 16 windows surrounding the cockpit are the same as on the Behemoth, and the three black padded seats are the same as those in the cockpit of the Retro Rocket. On top of the cupola, there is a structure which is identical to the Retro Rocket's nose except for the texture and the pulsating blue glow around the narrow part below the sphere at the top.
Three partly diagonal, partly vertical struts with round feet make up the extracted landing gear. Also, glowing, translucent purple rings are slowly descending from the bottom of the ship to where the ground would be. Normally, four of them are visible at the same time.
Another much smaller flying saucer is hovering to the right of the Buck Rogers ship. It is simply named the Small Saucer. The very detailed texture on the main fuselage gives it a worn-out apperance. Above it, there is an egg-like cupola with the now-well-known window texture and 32 panes altogether, but the tiny vessel lacks an interior. It emits similar purple rings from the bottom as the Saucer, but they widen on their way down, and only two are visible most of the time.
The light-grey ship seen from behind below the Saucer is the Orion Jump Freighter, another cargo ship. Its rear is facing the on-looker with its rather inconveniently installed cargo hatch open, showing an arch-shaped black and yellow safety marking around its outer edge and granting an easy view into the cargo hold. The surface is mostly covered in identical rectangular texture panels which have rectangular safety markings with diagonal black and yellow stripes and rounded corners in two corners and slightly darker patches with one large circular structure between two smaller ones in the other two corners. The seams are shown as being covered with silver metal stripes.
Its fuselage mostly consists of two half-spheres, connected by a half-cylinder. The bottom halves of all three are actually flattened. The rear half-sphere contains the cargo hold. It also carries four fins with cylindrical engine nacelles at their end, two sloping sharply upward, two sloping slightly downward. The engines have white and orange textures on their rear ends. Between the upper nacelles, there is a rear wing much like on a sports car. The cargo hold contains the usual cube boxes, this time in various sizes. Together with the rear wing, they suggest that the ship has been made in jest.
The front section contains the spacious cockpit with three brown seats with black padding. It is half-surrounded by four rows of ten rectangular windows, re-using the same window texture yet again. In the middle of both the cockpit and the cargo hold, there is one column each carrying what might be a holoprojector. A semi-translucent cube is rotating slowly and clockwise above the one in the cockpit, but showing an animated standard plywood texture because the original texture is lost. Three dark grey ranged weapons are mounted next to each other under the cockpit.
The landing gear consists of three legs of the same kind as under the Behemoth, one under the cockpit, two under the cargo hold, but with different textures.
A rather unusual vessel, created in cooperation with Jim Carter again. is located in the background to the right of the Orion in the image. The Dromedary Super Freighter of the Galactic Trade Union is basically a space-going big rig. It doesn't have a fuselage in the traditional sense. Instead, it has a structure to which six standardised, octogonal cargo containers can be attached, two on each side and two on top. This structure also carries the six landing legs like those on the other two freighters which don't look like they can be retracted here. Three big drive engines are attached to the rear end, the middle one being mounted higher than the other two by a bit more than half its diametre. All four have the same white and orange textures inside their nozzles as also seen on the Orion.
The front, mostly obscured by the Orion and shaped like two joined trapezoids, looks more like the driver's cabin of a lorry. It is mostly red with one wide and two narrow stripes on the sides, the front and the roof. Said front is also adorned by two double headlights and a chrome-plated grille, all of which are part of the texture. There are several hatches and even two stainless-steel fuel tanks textured on the sides.
Access to the cockpit is granted by a door on the port side which leads into a room clad in red artifical leather padding except for the inside of the door and the ceiling which are covered in structured stainless steel. Other than the ladder that leads up to the actual cockpit, it only contains a bed. Likewise, the cockpit is mostly clad in the same padding except for the stainless steel floor. The single seat is the same brown seat as in the Orion's cockpit. The window texture has been re-used, too, but tinted red. On the roof, there is a communications dish aiming forward and slightly upward.
All six container bays are occupied. The front left container is orange. It shows a white label with the black writing "TITAN SHIPPING" and "UNIT 14 ANDROMEDA SPACE DOCK" on it. It is the only one without graffiti. The rear left container is dark red. Any writing it might have is covered in graffiti. The front top container is green with lots of graffiti on it and labelled "GRIDLAG SHIPPING INC." in a white stencil typeface. Grid lag refers to a phenomenon that might happen if a server running an OpenSim grid cannot keep up with its tasks. The rear top container is yellow; any labels on it are covered in graffiti again. The front right container is brown with lots of graffiti and "GREY GOO INTERSIM TRANSPORT" written on it in a yellow military stencil typeface. The rear right container is grey and unlabelled except for the number 3669 and the usual lot of graffiti.
Finally, standing on the grey ramp all the way to the right, the tenth and last spaceship is also the most unusual one. Its shape is mostly defined by a seemingly wild arrangement of ellipsoids, and its glossy surface texture is separated into panels with a large variety of "greebles" on them. Even electric wires appear to be strapped openly across the dome-like shape that makes up the top. The nose object from the Retro Rocket re-appears yet again with the same flashing blue light as on the Saucer, but since the object is much smaller now, the flashing is more easily visible.
The cockpit is almost entirely surrounded by black control panels with mostly white, red and blue buttons on them. It features a single medium grey, dark grey and dark blue seat. It cannot be accessed because the bottom hatch is too small; ironically, the open lid is way too big for the hatch. It can only be seen through the windscreen which is covered in a pattern of ellipses. One ranged weapon is installed on each side. Radiation warning signs on them suggest that they use something radioactive at least internally. The ship is standing on three strangely shaped and actually asymmetrical legs.
To the left, behind the rear end of the Retro Rocket, a bit of natural ground can be seen with the default diffuse green texture with irregular patches of light brown. It ends at a somewhat irregular and steep shoreline. Beyond it and all along the left-hand edge of the image, the ocean is stretching up to the horizon. It is mostly a bluish lilac with slightly less saturated reflections of clouds on the lower parts and a gradient towards purple near the horizon. The sky above it shows a gradient from a faint rose on the horizon to purple near the top left corner.
Close to the horizon, right next to the left-hand edge of the space cube, a single star is glowing.
The scene is illuminated by ambient light and by "sunlight" coming in from a low position opposite the display. There is no actual sun in the scene.
The second picture shows the second display of space-themed Arcadia Asylum creations. It has a direction of view which is straightly eastward and perpendicular to the walkways. These and the grey ramp area between the walkways and the space cube are basically identical to the first image.
The space cube is pushed back by about a metre and a half, uncovering the ground below which has the same mostly green default texture as the ground described in the first picture. It is the same space cube as in the first picture, but rotated counter-clockwise by 90 degrees. The Crab Nebula is on the left-hand side now, and NGC 604 is in the back.
On the right-hand side, there is a photograph of the Lagoon Nebula, also known by the designations Messier 8, Sharpless 25, RCW 146 in the Rodgers, Campbell & Whiteoak Catalogue and Gum 72 in the Gum catalogue of emission nebulae. It is a star-forming region in the constellation of Sagittarius. The nebula itself is greatly shifted to the left on the texture and thereby towards the background from the on-looker's point-of-view.
In comparison with NGC 604, the Lagoon Nebula appears much more as an actual nebula. The gases are more diffuse and spread more homogenously. The brightest spot is also known as the Hourglass Nebula or NGC 6523. On its left-hand edge, hardly separatable from the Hourglass Nebula itself, there is the very young star Herschel 36 which ionises the gases in the nebula and makes them glow, is left of centre in the picture, but far to the right in the nebula. The Hourglass Nebula shows a light teal glow. In turn, it is surrounded by darker clouds through which some more young stars manage shine, including smaller, very dark and dense clouds which are slowly collapsing under their own gravity and may eventually turn into stars themselves. Immediately to the right of the Hourglass Nebula and below it in a dark cloud, there are a few bits of nebula glowing purple.
To the left of the large dark cloud to the left of the bright centre, there is NGC 6530, a particularly striking open cluster of young giant and hypergiant stars which contribute to the brighter glow extending farther to the left than to the right. The cluster extends to the top left of the bright centre behind a very large dark cloud, contributing to the unbalanced spread of the glow some more. Towards the edges, the nebula fades through a faint taupe to Bordeaux red. The faint glow to the left of the star cluster NGC 6523 is designated as an individual nebula, IC 4678; a small part of it is cut off at the texture edge.
Outside the Lagoon Nebula, way to the right and above the bright spot that is the Hourglass Nebula, on the bottom right edge of a Bordeaux red nebula cloud, there is a bright star designated as HD 164385 in the Henry Draper Catalogue. Farther in the same direction are two more, less luminous stars. The brighter one is HD 314895; I couldn't find a designation for the one nearby to its upper left.
In front of NGC 604 on the rear side of the space cube, what appears to be an image of Earth edited into the texture towards its top left corner is an actual sphere with an Earth texture on it. It is oriented so that open international waters east or northeast of French Polynesia in the Pacific Ocean way to the west of South America are facing the on-looker.
On the edge between the walkways, a few metres right of centre, there is a teleporter that is identical to the one in the first picture. I myself have set it to the same teleport target as the one in the first picture so that I wouldn't have to write another description for an image within an image with over 4,000 characters.
On the far edge of the grey ramp, right in the middle, there is a vantablack info sign with yellow writing in the DejaVu sans Mono typeface on it which is similar to the one in the first place. This one reads, "Name: Space pirates by Aley Arai | Owner: Ada.Radius | Description: Astonishing artwork created in Second Life by the avatar known as Arcadia Asylum, Aley Arai, Lora Lemon, Aley and other alts, exported with the artist's permission by many volunteers to OpenSim." "Alts" are short for alternate avatars, avatars which users may have in addition to their primary avatar. In both Second Life and OpenSim, it is possible to have multiple avatars. The pipes in this transcription, the vertical lines, mark line breaks in the original.
To the left of the info sign, there is an info kiosk built by Arcadia Asylum and, like most other displays, published under the guise of Lora Lemon. It has a square footprint, and all four sides are identical. The uppermost part is a symmetrical trapezoid that narrows downward. Its top surface has a science-fiction-style "structured" grey texture which is also used on the sides of the lowermost part with vertical edges. Its sides show a trapeze-shaped image of a dense field of small asteroids in front of a star field, surrounded by frame in very light and medium grey, again, with a "structured", relief-like appearance. On the image, there is a writing in teal letters in a science-fiction-style, unidentified typeface: "The EXCITING History of Asteroid Mining!"
Right below is a semi-translucent cube that serves as an image display. It circles through 16 pictures and changes them every two seconds. All four sides always show the same image. Here it currently shows a picture of what appears to be a small mining vessel in an asteroid field. The latter is shown as about a hundred big and small rocks before a grey "haze" which is tilted from horizontal orientation to the left by about 30 degrees. The ship appears mostly black, so details are hard or impossible to make out. It has a vaguely egg-shaped main fuselage with a single ignited rocket engine nozzle at the back. It also has two probably cylindrical nacelles on the sides with rounded ends and position lights on their rear undersides, red on the left, green on the right. It is located way to the left within the asteroid field and aligned with it, the rear end facing the left, but it is rotated around its own longitudinal axis to the left by almost 90 degrees. It also appears to have made contact with an asteroid slightly smaller than itself on its bow, and the active rocket engine suggests that it is pushing the asteroid.
Between the screen cube and the lowermost box, there is another trapezoid of the same size and shape as the one on the top, but turned around with the small side up. On its top, it has a fairly abstract black and green science-fiction texture which can be seen through the screen cube and which is the same as on the bottom of the upper trapezoid. All four sides show a science-fiction-style control panel which is way too elaborate for an info kiosk with 45 square buttons, three round buttons, nine dial knobs, 34 rocker switches, a 3.5-inch socket and four black-and-mostly-green displays, including at least one radar. All displays are static.
The large display in the centre has a writing on it in the same typeface as on the trapeze-shaped picture on the uppermost part, but it is green and much smaller now. It reads, "80 years ago asteroid minng (sic!) was still a vibrent (sic!) buisness (sic!), With the advent of more advanced atomic fules (sic!) and subsequent improvements in intersteller (sic!) drive engines the need to refule (sic!) from asteroid minning (sic!) pased (sic!) into the glorious annels (sic!) of galactic hstory (sic!)... Blah blah."
The vantablack display info sign is also surrounded by altogether four robots. A worker robot labelled Sculpty Robot (Industrial Model) is standing between the display info sign and the info kiosk, facing the latter. It is similar to Asteroid Al in the first picture, but in a more simple posture, without the sleeveless shirt and with silver rings around the "eye apparatus" instead of golden ones. It seems to be the basic version of these robots. Apparently, it was released by Arcadia under the name Aley Arai.
The same applies to another derivative of this robot which is standing to the right of the display info sign, facing the on-looker. It is called the Bell hop bot (Bellbot). It is identical to the robot looking at the info kiosk except for a red cylindrical bell-hop cap with black and golden trim, a red bell-hop jacket with black and golden trim and many golden buttons, a white button-down shirt underneath and a black bowtie.
Another robot creation released under the Aley Arai guise is still in its original package and lying on its right side underneath the display info sign. It has a much more humanoid and actually female look. Its face is that of a human. She has the same eyes as the two other robots, only that they are elliptical now instead of circular. She has an ellipsoid on her head that stands in for hair; it has an angular cutout for the face all the way back to the ears which are built into the head. She has a more pronounced chest with two round features on the texture that suggest a pair of breasts, a slimmer waist below and a skirt-like attachment around her waist farther below. Also, her arms and legs are somewhat more human-like.
The package box has metal grey science-fiction outer textures all around except for the mostly transparent front where it re-uses the spaceship window texture. The inside is completely textured in what looks like aqua blue padding. There is an opaque, light blue rectangle extending from the left-hand edge of the window about 70% across and from right below the robot's knees to about a third of the way up to its thighs. It has the product name of the robot written on it in black letters in the same science-fiction typeface as used on the asteroid mining info kiosk. The upper line reads, "ROBOMAID-3000", and the lower line reads, "ROBOT DOMESTIC".
The gap between this rectangle and the right-hand edge of the window is closed by another, upright rectangle in the same tone of blue which extends beyond the upper and lower edges of the first rectangle by 75% of the latter's height. It shows the logo of the manufacturer. In the middle, there is a black rectangle with rounded edges surrounded by a thin black line with a light blue robotic hand modelled after a human's left hand in front of a background of zeroes and ones in dark grey digits in an unidentified monospace typeface. "Positronic" is written above the rectangle in what appears to be a bold, italic and condensed Helvetica variant except for the quite stylised, science-fiction-style capital P. Below the rectangle, "ROBOTICS" is written in a different, unidentified sans-serif title typeface. All this writing is in black again.
Below the first rectangle, there are two barcodes. The one to the left appears to follow the Universal Product Code standard as per International Standard ISO/IEC 15420. The code number is 1-33023-81220-0. To my best knowledge, it is either a fantasy code, or it has expired years ago. The barcode to the left is a fantasy code that makes use of what appears to be a 16-colour scheme in three rows with various heights.
At both the top and the bottom of the window, "CAUTION HANDLE WITH CARE" is written in a stencil typeface which can also be seen on one of the containers on the Dromedary Super Freighter in the first picture, but in yellow with thick black outlines. On both sides of each writing, there is a triangular caution sign with rounded corners, a red frame and a black exclamation mark in front of a yellow centre.
The fourth robot in the group, released under the Aley guise again, is another female robot and much more well-known. It is modelled after the robot Maria from Fritz Lang's 1928 silent movie Metropolis. Unlike the other robots, it looks like it was entirely made from brass. It has also got a very detailed body instead of details drawn onto the textures. It is standing to the right of the Bell hop bot on a trapezoid pedestal which has the official logo of the film on the front, surrounded by a golden rectangular frame. The pedestal is partially sunk into the grey ramp below, however. This robot was actually made to be used as an avatar. The avatar variant can be acquired for free elsewhere, and yet another place which I've described several months ago uses it as an automated non-player character.
Above Maria and slightly to the right, a spherical contraption called Confederation Police Drone is hovering, another product by Aley. It is mostly spherical with bright yellow-orange cylindrical extensions at the top and the bottom, similar to the red ones on Widget in the first picture. Again, only a low-quality version of its main body texture seems to have been preserved. It is mostly Prussian blue. Two stripes full of technological "greebles" with dark grey trim along both edges surround the body below the top and above the bottom. One night blue stripe each goes around its vertical axis and its longitudinal axis with black, silver and black again trim along both edges. The "greeble" stripes cut through the blue stripe around the longitudinal axis, but their dark grey trim doesn't.
On both sides, where the blue stripes meet, there is a circular police badge with medium blue as its basic colour. It has a multi-layer frame around its edge which starts with a thin silver grey or bright golden circle, followed inward by a gradient from what appears to be dark grey to medium grey, followed again by a thick golden inner frame which appears to be elevated due to the shading on its edges. The same applies to the other golden elements in the badge. There is a star with four points at the top, at the bottom and on the sides which connect to the thin outer ring of the surrounding frame and cut through the elevated golden ring and four less-than-half-sized points between them. In the middle of the star, the outlines of the number 42 are cut into it. "Confederation" is written across the top of the badge and "Police" across its bottom, both cutting through both the inner frame and the star. "SECURITY DRONE" is written in two lines on the blue stripe to the left and to the right of each badge. All writing uses the previously seen science-fiction typeface again.
It has three horizontally arranged identical weapons at the front. What kinds of weapons they are remains unclear. Otherwise, it doesn't have any farther attachments.
Farther up and fully inside the space cube, there are also four different spaceships. The highest up, right in front of the nebula NGC 604 in the background and the farthest back in the space cube, hovers the Pirate Shark Ship which belongs to the Galactic Trade Union theme. It is pointing past the on-looker to the left. Its fuselage is mostly cylindrical with semi-spherical ends. On the top and slightly below the middles of the sides, three fins are mounted, backswept like those of a shark. Each one of them has an engine installed near its end. The engines have ellipsoid, hollowed out casings with a funnel on each end. The funnels have both the same chaotic blue and teal texture which might originally have been made for water surfaces. Here, however, it is animated. At the front of the engine, it moves inward, at the end, it moves outward. Also, each lateral fin has three dark grey ranged weapons mounted on its front edge.
The name is justified by the front design. From the upper half of the frontal semi-sphere protrudes an ellipsoid that emulates the nose of a shark. On each side of the nose, there is one bulgy, menacing eye with a red iris on a black eyeball mounted on the seam between the cylindrical mid-section and the sphere. Below the nose, on the frontal semi-sphere, there is a shark maw with two rows of pointy teeth on a dark red background which is shaded in order to appear like it's actually built into the ship rather than painted on. And on both sides of the maw, there is a dark grey structure that resembles a cogwheel with no hub which might even imply that the shark maw can be opened. In spite of the many "greebles" on the grey texture that covers almost the whole ship, it doesn't seem to have any hatches or other openings.
Also, it doesn't have an interior. The cockpit is not much more than a cupola on top of the ship, mostly on the nose, with four opaque black panes, one at the front, one at the back, one on each side. Right behind the cupola and in front of the top fin with its engine intake, a small communications dish is rotating clockwise, about once every three seconds, slightly tilted upward.
Both sides of the cylindrical mid-section are labelled. In the middle, there is a white human skill in front of two crossed sabers with black outlines in front of a black playing card spade with a white outline. Next to it, towards the bow, there is a sign made of three black chevrons with cream outlines, one from the top, two slightly tilted from the sides. On the other side, towards the stern, there is a hexagonal badge with black and yellow chevrons and a black outline which has previously appeared on the Orion Jump Freighter in the first image. The chevrons point towards the bow in the usual direction of movement. "PRIVATEER SPACE PIRATES" is written above these three emblems and "RESISTANCE IS FUN!" below them, both in the now usual science-fiction typeface and in black with beige outlines.
The tail consists of a cylindrical cone with a circular cross-section that is mounted against the middle of the rear semi-sphere plus two thin backswept hollow fins with two pointy ends each, one at the top, one at the bottom. Each fin has another one of the same engines installed as the fins on the middle fuselage section. On each side, there are two yellow lightning bolts pointing backwards; the lower one is a mirrored variant of the upper one.
There is no landing gear on the ship.
The ship below the middle that appears to be almost immediately below the Pirate Shark ship is actually a lot closer to the front. It is the Sloth Armored Transport, another ship from the Galactic Trade Union theme.
Its main fuselage section is about three and a half times as long as it is wide or high. It is octogonal from all sides, but differently from ahead or astern than from above or below and from the sides where it has the longest stretches of diagonal shape. It carries two large brackets on each side, consisting of a thick vertical connector plate and two thinner fins protruding from them diagonally which carry the actual turbine-like drive nacelles with the same white and orange rear nozzle textures as the Orion and the Dromedary, one from the top, one from the bottom. The fins also cut through one curved shield-like plate on each side which seems to be part of the brackets, and which seems to imply that the drives are not to be trusted. Most of the outside shows a texture that emulates slightly rusty steel plates with sometimes widening gaps between them.
The rectangular cargo hatch at the end is open, and since the ship is seen from behind, it reveals the interior which mostly shows a different, lighter, embossed texture. The same arrangement of twelve cargo boxes shaped like slightly flattened cubes is standing on each side, but rotated by 180 degrees towards each other. Only the boxes on the port side are visible in the image. Towards the stern, there are four stacks of four boxes each. Farther ahead, there are only two boxes. There are four different boxes, all with the same texture on all sides, arranged in alternating pairs in all directions.
Within the rearmost stack, the box at the top and the second one from the bottom have lids with a picture of a planet apparently made of melting cheese below the centre, slightly cut off at the bottom. A sleek, dark golden flying saucer comes dashing around it from the left, leaving a golden trail behind. Another mostly green flying saucer is in the top right corner, surrounded by a magenta halo and with a beige trail behind it. The planet is surrounded by an arch of golden embossed letters in a serif typeface which spell out, "PLANET CHEESE".
The other two boxes in the stack seem to be held shut with two yellow rectangular brackets riveted around each corner. In their middle, there is a rectangular logo with a medium blue background and a frame with diagonal black and yellow warning stripes around it. Towards the top right corner, there is a somewhat large grey cogwheel with six spokes and black outlines. Another slightly smaller and lighter cogwheel connects to it from the opposite corner. In the top left corner, there is the capital letter "C"; in the bottom right corner, there is the capital letter "G". Below the logo, "CAPITAL GOODS" is written. All writing is yellow and in a stencil typeface.
The boxes ahead of each Planet Cheese box have lime green corner reinforcements. Most of each side shows black and yellow diagonal warning stripes. In the middle, there is a circular logo with a faint golden frame around it and a crossed shovel and pickaxe together with three identical cream-coloured dodecahedra standing in for rock pieces on it. In black letters in the usual science-fiction typeface, "PROCESSED" is written above the logo and "ASTEROID ORE" below it.
The remaining boxes ahead of each Capital Goods box and above and below each processed asteroid ore box appear like they've got internal cooling systems and bolted-on lids. In the middle, there appears to be a window surrounded by black and yellow diagonal warning stripes through which various food items inside the box can be seen; this is of course only part of the texture. On each side of this window, "REFRIGERATED FOOD STORAGE" is written in yellow stencil letters. The writing is always vertical; to the left of the window, it is rotated clockwise, to the right, it is rotated counter-clockwise.
Ahead of the cargo hold, there is a box-shaped "neck" with the cockpit in a structure that can be described as a transversally-mounted barrel. Across the front, two rows of eleven windows using the standard space ship window texture allow for views inside or outside. The cockpit itself has two seats. The control panel ahead of them and below the front window is animated. Underneath the cockpit, there is the ship's only landing leg which is identical to those of the freighters in the first picture. Apparently, the ship uses the lower engines and the curved shields as rear landing gear.
Towards the right, below the Lagoon Nebula as seen in the picture, there is a smaller freighter with a quite angular fuselage whose most striking features are the four big engines protruding from the stern, each again with the white and orange textures. It is called the Tarsus II Tramp Freighter, another Galactic Trade Union ship, the smallest one of the cargo ships and the only one with an elaborate interior, but no access from outside. Its outside texture has lots of hatches, black and yellow safety markings, vents and other "greebles", but it does not have any door or hatch.
Most of the trapezoid bottom of the fuselage is used as the cargo hold which contains six boxes, two Capital Goods and refrigerated food storage boxes each and one Planet Cheese and processed asteroid ore box each. The top part is a bit more complex in shape. At its front, there are two rows of five windows for the cockpit; the usual window textures had to be modified for this use-case. On each side, a ranged weapon is mounted on the angular seam between top and bottom. A static dish is mounted on top of the ship.
The upper level, connected to the cargo hold via a ladder, has to be the most comfortable one on all ships. Apart from lots of control panels and the same brown seats with white seams and black padding seen on other ships before, it has a double bunk bed, and it is also equipped with the column of touch panel, microwave oven and Mr. Coffee also found inside the Behemoth freighter in the first picture. Camming through the ship would reveal a bathroom with a sink, a toilet and a bathtub filled with a slowly rotating bubble bath. Outside the bathroom, the upper has even got a patterned green carpet on the floor.
Last but not least, there is what may be the most unusual vessel of all. Fairly down low and a bit to the left, seen mostly from behind again, the Slee Banana Cruiser 2 is tagged as published by Aley again. Its main fuselage is yellow and actually shaped like a banana, riveted together from steel plates. At the rear end, there is a rocket nozzle which consists of three riveted funnels nested inside one another. The fin shape from the Retro Rocket in the first picture is re-used for one single fin on top of the nozzle, but with a simple brushed metal texture now. The front is decorated with a rusty figurehead shaped like a stylised bald female human.
The wings re-use both the rear fins from the Pirate Shark Ship and, like most of the ship, the riveted steel textures from the Retropolis retro future spaceship in the first picture. Each one holds a hexagonal vertical pod through its leading edge. From each one of these pods, a pair of double-bladed fans like on a gyrocopter protrude upward on a long shaft, and what gives the impression of a machine gun is mounted underneath. The guns seem to also double as landing gear.
The cockpit is inside a yellow sphere which holds onto the banana below with two humanoid arms. The lower half is made of riveted steel on the outside and covered in control panels on the inside. The upper half uses the window texture for a strangely asymmetrical arrangement of 15 windows. Inside, there is a padded red seat behind a hooded yellow instrument panel with a yoke.
To the left of the space cube, a bit of the neighbouring space cube from the first picture can be seen with a small part of its Crab Nebula texture. To the right, there is another bit of land, sea and sky as already described in the first picture. In the top right corner, there is a bit of a cloud. One particular bright star is shining right below the cloud and a smaller one farther below on the edge of the space cube.
Again, the scene is illuminated by ambient light and by "sunlight" coming in from a low position opposite the display. There is no actual sun in the scene.
The third picture shows the third and last display of space-themed Arcadia Asylum creations. Its direction of view has turned southward, but it is perpendicular to the walkways again. These and the grey ramp area between the walkways and the space cube are basically identical to the other two images.
Unlike in the second picture, but like in the first one, the space cube aligns with the ramp. It is placed with the same orientation as in the second picture, but it is being looked at from a different side now, thus showing NGC 604 on the left, the Lagoon Nebula in the back and the mirrored and edited picture of IC 434 with the Horsehead Nebula on the right.
On the edge between the walkways, a few metres right of centre, there is the same teleporter as in the other two pictures again. And once again, I have taken care that it also shows the same teleport destination.
To the left of it, there is a white sign which can also be found between the other two displays, but which cannot be seen in the other two pictures. It is white with black writing on it. It counts down Arcadia Asylum's main avatar names in Second Life and the themes associated with them: "Arcadia Asylum 2006-2007 | Slum City/Urban Blight, Hobos, Street Urchins, Subway System, Modular Sewer System, Greenies, Loli Caverns", a blank line following, "Aley Arai 2008-2011 | Space Pirates, Robots, Space stations, asteroids and wormholes", another blank line following, "Aley 2011 - 2015 | Flotsam Pirate Town, Pirate ships, The Abyss, Nemo's world and submarine, Mer, sunken ruins, Clockworks, Mad Scientist, Aquatics, Steam Fair". Again, the pipes in this transcription, the vertical lines, mark line breaks in the original.
The vantablack display info sign is in its usual place in the middle near the far edge of the grey ramp. This time, it reads, "Galactic Truckstop and Honest Zorg's by Aley | Owner: Ada.Radius | Description: Astonishing artwork created in Second Life by the avatar known as Arcadia Asylum, Aley Arai, Lora Lemon, Aley and other alts, exported with the artist's permission by many volunteers to OpenSim.." Once again, the pipes in this transcription mark line breaks in the original.
The centre-piece of this display is the Galactic Truck Stop in the back and almost in the middle. Its most striking feature is the two-level cupola on top. It uses the same texture for its ten rows of windows as some of the ships in the first two pictures use for their cockpit windows. The top level is a social area with eight dark grey armchairs. The level below has eight sleeping compartments, each with a double bunk bed, a hard-to-define piece of furniture and a scripted sliding door. Still, all these rooms have "glass walls" to the outside all the way to the floor, no curtains and illuminated ceilings.
The structure extends downward in a cylinder with a smaller diametre than the cupola. Directly below the cupola, there are four structures which appear to be fuel storages. They have a label on the side which consists of the Shell logo, a white rectangle below with a red and yellow logo that might be original and "FUEL" written under it in yellow letters with red outlines in a previously unseen science-fiction-style typeface and finally another upside-down Shell logo below that. There is a large porthole divided into 25 panes below each fuel storage.
Between the portholes, there are cylindrical airlocks protruding with two sets of doors. Each airlock leads to a landing pad shaped like a section of a circle. On the edges and towards the airlocks, these pads show striped black and yellow safety marking. The landing areas themselves are marked with white circles from which short white lines protrude into four directions. Inside the white circles, each landing pad has a label with an individual number, always written in red narrow and stencil-like characters with the number at the top, "PAD" below and a horizontal line between the number and the word. The landing pads on this level have even numbers; the ones towards the fronts are numbers 2 on the left and 4 on the right whereas the ones in the back are numbers 8 on the left and 6 on the right.
On the inside, this level contains a diner with a robot similar to Asteroid Al and two tables with four seats each. By default, when trying to enter any of the airlocks by clicking on them, one ends up sitting on one of these chairs.
The bottom level has its own set of four shorter landing pads. These, the corresponding air locks and the portholes between them are offset from those one floor up by 45 degrees. They have odd numbers; number 7 is oriented towards the on-looker. The portholes even have fuel storages above them again which are hanging underneath the upper landing pads. The airlocks appear to be standing wide open because the doors are misaligned; the outer door for airlock number 5 to the left even lacks textures. They are scripted nonetheless.
On the inside, the bottom level holds a big souvenir and duty-free shop with Asteroid Al himself behind the counter as the shopkeep.
All levels inside the station have brownish metal panels with lots of small slot-like holes in them on the ground. They are connected via a lift with red buttons inside which is actually a set of teleporters in disguise.
Above each airlock, the writing "GALACTIC TRUCK STOP" in the same fashion as on Asteroid Al's shirt in the first picture re-appears, but without the picture. In the typical science-fiction typeface from the second picture and the same tone of purple, "Last fule (sic!) n Restrooms for 20,000 Lightyears" is written below. The writing is not connected to anything.
Way to the right and near the front, there is the other part of this display: Honest Zorg's Used Spaceships. It is located on a small, slightly irregular round asteroid with a brown, crater-littered surface and an almost flat top. Interestingly, even the flat top has craters on it, so it came to exist naturally rather than through mining.
Four riveted steel poles are holding up two strings of pennants that surround the dealership. It's a pattern of 16 pennants in five colours: blue, white, red, yellow, green in this order. The 16th pennant to fill the number up after three repetitions is red again. The front left and rear right poles also carry signs painted onto riveted steel plates with the same structure texture as on the Dromedary on the back. The larger part of the sign with a slanted right-hand edge and a pointy upper right corner is painted denim blue with "HONEST ZORG'S" written on it in a heavy stretched Futura typeface and a thick yellow arrow pointing downward on its left-hand side; both are yellow. To the right of the arrow, there is an additional red and rectangular panel with the red writing "USED SPACESHIPS" on it which is made to appear like neon lights.
Within the strings of pennants, there are six small vessels which appear to be personal spacecraft, three on each side, most of which have rather odd shapes. In the back to the left, there is the only ship with transparent windows, another small flying saucer, which doesn't have any cockpit interior, though. Opposite of it, a rocket-style ship stands vertically on eight rear fins. It doesn't even have a cockpit, and with the sleeve around more than half its length, it rather resembles a big turbojet engine with a long pointy nose. The almost white ship to the left in the front has a chubby, mostly ellipsoid fuselage, a "collar" behind its small cockpit and eight tail fins. The oddly shaped one opposite of it in various tones of grey with a cockpit cupola similar to that on the Pirate Shark Ship has even got 16 tail fins. All these ships have in common that they lack visible drive components; this only doesn't matter for the flying saucer. But they all lack landing gear as well. Except for the upright rocket, they are sitting on their bellies.
The office in the back is basically a Retro Rocket Ship as seen in the first picture. However, its wings were cut off with no traces of their whereabouts. The rocket engine was removed; it is standing in front of the ship in two parts with a picnic table in front of the engine. The door is not only open, but dislodged and lying on the ground. The separation wall towards the cockpit including the doors is missing, as is one of the doors to the former crew compartment where the bunk beds have been removed, too. The former engine room is the office with the sales counter now. Honest Zorg turns out to be a grimy worker robot based on the same shape as Asteroid Al again. And the whole ship is slightly tilted forward because it seems to have dug itself into the ground, somewhat like in a crash landing.
There is a sign above the door which is completely obstructed by the dealership sign at the front. Through the porthole ahead of the open door, the bright teal sign on the counter is partially visible. In the same slightly stretched Futura as on the sign on the pole, but in blue, it reads, "Welcome to Honest Zorg's! We sell the finest in used and reconditioned Spacecraft". Below, in red and a bit smaller, there is added, "This is NOT the complaints office!!!" On top of the counter, the dark grey cash register can partially be made out.
This time, the image was taken in such a way that nothing is visible to the sides of the space cube. The scene is illuminated by ambient light and by "sunlight" coming in from the right. Due to the space cube not having visible outside textures, the directed "sunlight" can fall in through it, so, for example, parts of the Galactic Truck Stop or the ships at Honest Zorg's cast shadows. There is no actual sun in the scene.
#OpenSim #OpenSimulator #OpenSimFest #OSFest #OSFest2023 #ArcadiaAsylum #SecondLife #Metaverse #VirtualWorlds #VirtualPhotography #ScienceFiction #Spaceships #Long #LongPost #EyeContact #AltText #ImageDescription #ImageDescriptions -
🎉 New Kitten¹ Release: A little housekeeping 🧹
Today’s release only concerns production servers:
• Kitten no longer counts all *hits* in its stats. You can still see which of your *pages* are most popular, etc., and see stats for missing URLs, etc., as before from either the web interface or the interactive shell, but not every hit is logged. Instead, you can see the latest 25 served routes in Kitten’s Settings (at /🐱/settings/state/requests/ via the web on your server).
- Kitten production servers now carry out an automatic daily maintenance restart at some time between 3AM and 5AM local server time. (“Have you tried turning it off and on again?” as a Service™) This is to allow JSDB² tables a chance to compact themselves (especially important for high traffic/high mutation tables like sessions, so they don’t balloon up to take up all available memory on small VPS instances).
I don’t think anyone but us (Small Technology Foundation³) is running Kitten in production at the moment but, still. If you are playing with Kitten and experimenting with it in production, your servers will update to this latest version in a few hours.
Full details: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-07-29
:kitten: 💕
¹ https://kitten.small-web.org
² https://codeberg.org/small-tech/jsdb
³ https://small-tech.org -
"If you attempt to take a screenshot of Signal Desktop when screen security is enabled, nothing will appear. This limitation can be frustrating, but it might look familiar to you if you’ve ever had the audacity to try and take a screenshot of a movie or TV show on Windows. According to Microsoft’s official developer documentation, setting the correct Digital Rights Management (DRM) flag on the application window will ensure that “content won’t show up in Recall or any other screenshot application.” So that’s exactly what Signal Desktop is now doing on Windows 11 by default.
A stylized close-up crop of a movie screenplay that says "INT. COPILOT+ PC MANUFACTURING FACILITY - NIGHT - METALLIC SHELVES in endless rows stretch into the darkness. Two figures crouch in the shadows. ALICE: DRM technology has been consistently used against us. BOB: It won't be the first time we've turned the tables. ALICE: My life has always felt like a movie."
Apps like Signal have essentially no control over what content Recall is able to capture, and implementing “DRM” that works for you (not against you) is the best choice that we had. It’s like a scene in a movie where the villain has switched sides, and you can’t screenshot this one by default either."
https://signal.org/blog/signal-doesnt-recall/
#CyberSecurity #Privacy #DataProtection #Microsoft #Windows #WindowsRecall #Signal #Messaging
-
Earlier this year, Cendyne wrote a blog post covering the use of HKDF, building partially upon my own blog post about HKDF and the KDF security definition, but moreso inspired by a cryptographic issue they identified in another company’s product (dubbed AnonCo).
At the bottom they teased:
Database cryptography is hard. The above sketch is not complete and does not address several threats! This article is quite long, so I will not be sharing the fixes.
Cendyne
If you read Cendyne’s post, you may have nodded along with that remark and not appreciate the degree to which our naga friend was putting it mildly. So I thought I’d share some of my knowledge about real-world database cryptography in an accessible and fun format in the hopes that it might serve as an introduction to the specialization.
Note: I’m also not going to fix Cendyne’s sketch of AnonCo’s software here–partly because I don’t want to get in the habit of assigning homework or required reading, but mostly because it’s kind of obvious once you’ve learned the basics.
I’m including art of my fursona in this post… as is tradition for furry blogs.If you don’t like furries, please feel free to leave this blog and read about this topic elsewhere.
Thanks to CMYKat for the awesome stickers.
Contents
- Database Cryptography?
- Cryptography for Relational Databases
- The Perils of Built-in Encryption Functions
- Application-Layer Relational Database Cryptography
- Confused Deputies
- Canonicalization Attacks
- Multi-Tenancy
- Cryptography for NoSQL Databases
- NoSQL is Built Different
- Record Authentication
- Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
- Searchable Encryption
- Order-{Preserving, Revealing} Encryption
- Deterministic Encryption
- Homomorphic Encryption
- Searchable Symmetric Encryption (SSE)
- You Can Have Little a HMAC, As a Treat
- Intermission
- Case Study: MongoDB Client-Side Encryption
- MongoCrypt: The Good
- How is Queryable Encryption Implemented?
- MongoCrypt: The Bad
- MongoCrypt: The Ugly
- MongoCrypt: The Good
- Wrapping Up
Database Cryptography?
The premise of database cryptography is deceptively simple: You have a database, of some sort, and you want to store sensitive data in said database.
The consequences of this simple premise are anything but simple. Let me explain.
Art: ScruffKerfluffThe sensitive data you want to store may need to remain confidential, or you may need to provide some sort of integrity guarantees throughout your entire system, or sometimes both. Sometimes all of your data is sensitive, sometimes only some of it is. Sometimes the confidentiality requirements of your data extends to where within a dataset the record you want actually lives. Sometimes that’s true of some data, but not others, so your cryptography has to be flexible to support multiple types of workloads.
Other times, you just want your disks encrypted at rest so if they grow legs and walk out of the data center, the data cannot be comprehended by an attacker. And you can’t be bothered to work on this problem any deeper. This is usually what compliance requirements cover. Boxes get checked, executives feel safer about their operation, and the whole time nobody has really analyzed the risks they’re facing.
But we’re not settling for mere compliance on this blog. Furries have standards, after all.
So the first thing you need to do before diving into database cryptography is threat modelling. The first step in any good threat model is taking inventory; especially of assumptions, requirements, and desired outcomes. A few good starter questions:
- What database software is being used? Is it up to date?
- What data is being stored in which database software?
- How are databases oriented in the network of the overall system?
- Is your database properly firewalled from the public Internet?
- How does data flow throughout the network, and when do these data flows intersect with the database?
- Which applications talk to the database? What languages are they written in? Which APIs do they use?
- How will cryptography secrets be managed?
- Is there one key for everyone, one key per tenant, etc.?
- How are keys rotated?
- Do you use envelope encryption with an HSM, or vend the raw materials to your end devices?
The first two questions are paramount for deciding how to write software for database cryptography, before you even get to thinking about the cryptography itself.
(This is not a comprehensive set of questions to ask, either. A formal threat model is much deeper in the weeds.)
The kind of cryptography protocol you need for, say, storing encrypted CSV files an S3 bucket is vastly different from relational (SQL) databases, which in turn will be significantly different from schema-free (NoSQL) databases.
Furthermore, when you get to the point that you can start to think about the cryptography, you’ll often need to tackle confidentiality and integrity separately.
If that’s unclear, think of a scenario like, “I need to encrypt PII, but I also need to digitally sign the lab results so I know it wasn’t tampered with at rest.”
My point is, right off the bat, we’ve got a three-dimensional matrix of complexity to contend with:
- On one axis, we have the type of database.
- Flat-file
- Relational
- Schema-free
- On another, we have the basic confidentiality requirements of the data.
- Field encryption
- Row encryption
- Column encryption
- Unstructured record encryption
- Encrypting entire collections of records
- Finally, we have the integrity requirements of the data.
- Field authentication
- Row/column authentication
- Unstructured record authentication
- Collection authentication (based on e.g. Sparse Merkle Trees)
And then you have a fourth dimension that often falls out of operational requirements for databases: Searchability.
Why store data in a database if you have no way to index or search the data for fast retrieval?
Credit: HarubakiIf you’re starting to feel overwhelmed, you’re not alone. A lot of developers drastically underestimate the difficulty of the undertaking, until they run head-first into the complexity.
Some just phone it in with
AES_Encrypt()calls in their MySQL queries. (Too bad ECB mode doesn’t provide semantic security!)Which brings us to the meat of this blog post: The actual cryptography part.
Cryptography is the art of transforming information security problems into key management problems.
Former coworker
Note: In the interest of time, I’m skipping over flat files and focusing instead on actual database technologies.
Cryptography for Relational Databases
Encrypting data in an SQL database seems simple enough, even if you’ve managed to shake off the complexity I teased from the introduction.
You’ve got data, you’ve got a column on a table. Just encrypt the data and shove it in a cell on that column and call it a day, right?
But, alas, this is a trap. There are so many gotchas that I can’t weave a coherent, easy-to-follow narrative between them all.
So let’s start with a simple question: where and how are you performing your encryption?
The Perils of Built-in Encryption Functions
MySQL provides functions called AES_Encrypt and AES_Decrypt, which many developers have unfortunately decided to rely on in the past.
It’s unfortunate because these functions implement ECB mode. To illustrate why ECB mode is bad, I encrypted one of my art commissions with AES in ECB mode:
Art by Riley, encrypted with AES-ECBThe problems with ECB mode aren’t exactly “you can see the image through it,” because ECB-encrypting a compressed image won’t have redundancy (and thus can make you feel safer than you are).
ECB art is a good visual for the actual issue you should care about, however: A lack of semantic security.
A cryptosystem is considered semantically secure if observing the ciphertext doesn’t reveal information about the plaintext (except, perhaps, the length; which all cryptosystems leak to some extent). More information here.
ECB art isn’t to be confused with ECB poetry, which looks like this:
Oh little one, you’re growing up
You’ll soon be writing C
You’ll treat your ints as pointers
You’ll nest the ternary
You’ll cut and paste from github
And try cryptography
But even in your darkest hour
Do not use ECBCBC’s BEASTly when padding’s abused
And CTR’s fine til a nonce is reused
Some say it’s a CRIME to compress then encrypt
Or store keys in the browser (or use javascript)
Diffie Hellman will collapse if hackers choose your g
And RSA is full of traps when e is set to 3
Whiten! Blind! In constant time! Don’t write an RNG!
But failing all, and listen well: Do not use ECBThey’ll say “It’s like a one-time-pad!
The data’s short, it’s not so bad
the keys are long–they’re iron clad
I have a PhD!”
And then you’re front page Hacker News
Your passwords cracked–Adobe Blues.
Don’t leave your penguins showing through,
Do not use ECB— Ben Nagy, PoC||GTFO 0x04:13
Most people reading this probably know better than to use ECB mode already, and don’t need any of these reminders, but there is still a lot of code that inadvertently uses ECB mode to encrypt data in the database.
Also,
Credit: CMYKattSHOW processlist;leaks your encryption keys. Oops.Application-layer Relational Database Cryptography
Whether burned by ECB or just cautious about not giving your secrets to the system that stores all the ciphertext protected by said secret, a common next step for developers is to simply encrypt in their server-side application code.
And, yes, that’s part of the answer. But how you encrypt is important.
Credit: Harubaki“I’ll encrypt with CBC mode.”
If you don’t authenticate your ciphertext, you’ll be sorry. Maybe try again?“Okay, fine, I’ll use an authenticated mode like GCM.”
Did you remember to make the table and column name part of your AAD? What about the primary key of the record?“What on Earth are you talking about, Soatok?”
Welcome to the first footgun of database cryptography!Confused Deputies
Encrypting your sensitive data is necessary, but not sufficient. You need to also bind your ciphertexts to the specific context in which they are stored.
To understand why, let’s take a step back: What specific threat does encrypting your database records protect against?
We’ve already established that “your disks walk out of the datacenter” is a “full disk encryption” problem, so if you’re using application-layer cryptography to encrypt data in a relational database, your threat model probably involves unauthorized access to the database server.
What, then, stops an attacker from copying ciphertexts around?
Credit: CMYKattLet’s say I have a legitimate user account with an ID 12345, and I want to read your street address, but it’s encrypted in the database. But because I’m a clever hacker, I have unfettered access to your relational database server.
All I would need to do is simply…
UPDATE table SET addr_encrypted = 'your-ciphertext' WHERE id = 12345…and then access the application through my legitimate access. Bam, data leaked. As an attacker, I can probably even copy fields from other columns and it will just decrypt. Even if you’re using an authenticated mode.
We call this a confused deputy attack, because the deputy (the component of the system that has been delegated some authority or privilege) has become confused by the attacker, and thus undermined an intended security goal.
The fix is to use the AAD parameter from the authenticated mode to bind the data to a given context. (AAD = Additional Authenticated Data.)
- $addr = aes_gcm_encrypt($addr, $key);+ $addr = aes_gcm_encrypt($addr, $key, canonicalize([+ $tableName,+ $columnName,+ $primaryKey+ ]);
Now if I start cutting and pasting ciphertexts around, I get a decryption failure instead of silently decrypting plaintext.
This may sound like a specific vulnerability, but it’s more of a failure to understand an important general lesson with database cryptography:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
Canonicalization Attacks
In the previous section, I introduced a pseudocode called
canonicalize(). This isn’t a pasto from some reference code; it’s an important design detail that I will elaborate on now.First, consider you didn’t do anything to canonicalize your data, and you just joined strings together and called it a day…
function dumbCanonicalize( string $tableName, string $columnName, string|int $primaryKey): string { return $tableName . '_' . $columnName . '#' . $primaryKey;}Consider these two inputs to this function:
dumbCanonicalize('customers', 'last_order_uuid', 123);dumbCanonicalize('customers_last_order', 'uuid', 123);
In this case, your AAD would be the same, and therefore, your deputy can still be confused (albeit in a narrower use case).
In Cendyne’s article, AnonCo did something more subtle: The canonicalization bug created a collision on the inputs to HKDF, which resulted in an unintentional key reuse.
Up until this point, their mistake isn’t relevant to us, because we haven’t even explored key management at all. But the same design flaw can re-emerge in multiple locations, with drastically different consequence.
Multi-Tenancy
Once you’ve implemented a mitigation against Confused Deputies, you may think your job is done. And it very well could be.
Often times, however, software developers are tasked with building support for Bring Your Own Key (BYOK).
This is often spawned from a specific compliance requirement (such as cryptographic shredding; i.e. if you erase the key, you can no longer recover the plaintext, so it may as well be deleted).
Other times, this is driven by a need to cut costs: Storing different users’ data in the same database server, but encrypting it such that they can only encrypt their own records.
Two things can happen when you introduce multi-tenancy into your database cryptography designs:
- Invisible Salamanders becomes a risk, due to multiple keys being possible for any given encrypted record.
- Failure to address the risk of Invisible Salamanders can undermine your protection against Confused Deputies, thereby returning you to a state before you properly used the AAD.
So now you have to revisit your designs and ensure you’re using a key-committing authenticated mode, rather than just a regular authenticated mode.
Isn’t cryptography fun?
“What Are Invisible Salamanders?”
This refers to a fun property of AEAD modes based on Polynomical MACs. Basically, if you:
- Encrypt one message under a specific key and nonce.
- Encrypt another message under a separate key and nonce.
…Then you can get the same exact ciphertext and authentication tag. Performing this attack requires you to control the keys for both encryption operations.
This was first demonstrated in an attack against encrypted messaging applications, where a picture of a salamander was hidden from the abuse reporting feature because another attached file had the same authentication tag and ciphertext, and you could trick the system if you disclosed the second key instead of the first. Thus, the salamander is invisible to attackers.
Art: CMYKatWe’re not quite done with relational databases yet, but we should talk about NoSQL databases for a bit. The final topic in scope applies equally to both, after all.
Cryptography for NoSQL Databases
Most of the topics from relational databases also apply to NoSQL databases, so I shall refrain from duplicating them here. This article is already sufficiently long to read, after all, and I dislike redundancy.
NoSQL is Built Different
The main thing that NoSQL databases offer in the service of making cryptographers lose sleep at night is the schema-free nature of NoSQL designs.
What this means is that, if you’re using a client-side encryption library for a NoSQL database, the previous concerns about confused deputy attacks are amplified by the malleability of the document structure.
Additionally, the previously discussed cryptographic attacks against the encryption mode may be less expensive for an attacker to pull off.
Consider the following record structure, which stores a bunch of data stored with AES in CBC mode:
{ "encrypted-data-key": "<blob>", "name": "<ciphertext>", "address": [ "<ciphertext>", "<ciphertext>" ], "social-security": "<ciphertext>", "zip-code": "<ciphertext>"}If this record is decrypted with code that looks something like this:
$decrypted = [];// ... snip ...foreach ($record['address'] as $i => $addrLine) { try { $decrypted['address'][$i] = $this->decrypt($addrLine); } catch (Throwable $ex) { // You'd never deliberately do this, but it's for illustration $this->doSomethingAnOracleCanObserve($i); // This is more believable, of course: $this->logDecryptionError($ex, $addrLine); $decrypted['address'][$i] = ''; }}Then you can keep appending rows to the
Art: Harubaki"address"field to reduce the number of writes needed to exploit a padding oracle attack against any of the<ciphertext>fields.This isn’t to say that NoSQL is less secure than SQL, from the context of client-side encryption. However, the powerful feature sets that NoSQL users are accustomed to may also give attackers a more versatile toolkit to work with.
Record Authentication
A pedant may point out that record authentication applies to both SQL and NoSQL. However, I mostly only observe this feature in NoSQL databases and document storage systems in the wild, so I’m shoving it in here.
Encrypting fields is nice and all, but sometimes what you want to know is that your unencrypted data hasn’t been tampered with as it flows through your system.
The trivial way this is done is by using a digital signature algorithm over the whole record, and then appending the signature to the end. When you go to verify the record, all of the information you need is right there.
This works well enough for most use cases, and everyone can pack up and go home. Nothing more to see here.
Except…
When you’re working with NoSQL databases, you often want systems to be able to write to additional fields, and since you’re working with schema-free blobs of data rather than a normalized set of relatable tables, the most sensible thing to do is to is to append this data to the same record.
Except, oops! You can’t do that if you’re shoving a digital signature over the record. So now you need to specify which fields are to be included in the signature.
And you need to think about how to model that in a way that doesn’t prohibit schema upgrades nor allow attackers to perform downgrade attacks. (See below.)
I don’t have any specific real-world examples here that I can point to of this problem being solved well.Art: CMYKat
Furthermore, as with preventing confused deputy and/or canonicalization attacks above, you must also include the fully qualified path of each field in the data that gets signed.
As I said with encryption before, but also true here:
Where your data lives is part of its identity, and MUST be authenticated.
Soatok’s Rule of Database Cryptography
This requirement holds true whether you’re using symmetric-key authentication (i.e. HMAC) or asymmetric-key digital signatures (e.g. EdDSA).
Bonus: A Maximally Schema-Free, Upgradeable Authentication Design
Art: HarubakiOkay, how do you solve this problem so that you can perform updates and upgrades to your schema but without enabling attackers to downgrade the security? Here’s one possible design.
Let’s say you have two metadata fields on each record:
- A compressed binary string representing which fields should be authenticated. This field is, itself, not authenticated. Let’s call this
meta-auth. - A compressed binary string representing which of the authenticated fields should also be encrypted. This field is also authenticated. This is at most the same length as the first metadata field. Let’s call this
meta-enc.
Furthermore, you will specify a canonical field ordering for both how data is fed into the signature algorithm as well as the field mappings in
meta-authandmeta-enc.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-enc */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false /* example.superfluous.rewards-member */ ]), "signature": /* -- snip -- */}When you go to append data to an existing record, you’ll need to update
meta-authto include the mapping of fields based on this canonical ordering to ensure only the intended fields get validated.When you update your code to add an additional field that is intended to be signed, you can roll that out for new records and the record will continue to be self-describing:
- New records will have the additional field flagged as authenticated in
meta-auth(andmeta-encwill grow) - Old records will not, but your code will still sign them successfully
- To prevent downgrade attacks, simply include a schema version ID as an additional plaintext field that gets authenticated. An attacker who tries to downgrade will need to be able to produce a valid signature too.
You might think
meta-authgives an attacker some advantage, but this only includes which fields are included in the security boundary of the signature or MAC, which allows unauthenticated data to be appended for whatever operational purpose without having to update signatures or expose signing keys to a wider part of the network.{ "example": { "credit-card": { "number": /* encrypted */, "expiration": /* encrypted */, "ccv": /* encrypted */ }, "superfluous": { "rewards-member": null } }, "meta-auth": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true, /* meta-enc */ true /* meta-version */ ]), "meta-enc": compress_bools([ true, /* example.credit-card.number */ true, /* example.credit-card.expiration */ true, /* example.credit-card.ccv */ false, /* example.superfluous.rewards-member */ true /* meta-version */ ]), "meta-version": 0x01000000, "signature": /* -- snip -- */}If an attacker tries to use the
meta-authfield to mess with a record, the best they can hope for is an Invalid Signature exception (assuming the signature algorithm is secure to begin with).Even if they keep all of the fields the same, but play around with the structure of the record (e.g. changing the XPath or equivalent), so long as the path is authenticated with each field, breaking this is computationally infeasible.
Searchable Encryption
If you’ve managed to make it through the previous sections, congratulations, you now know enough to build a secure but completely useless database.
Art: CMYKatOkay, put away the pitchforks; I will explain.
Part of the reason why we store data in a database, rather than a flat file, is because we want to do more than just read and write. Sometimes computer scientists want to compute. Almost always, you want to be able to query your database for a subset of records based on your specific business logic needs.
And so, a database which doesn’t do anything more than store ciphertext and maybe signatures is pretty useless to most people. You’d have better luck selling Monkey JPEGs to furries than convincing most businesses to part with their precious database-driven report generators.
Art: SophieSo whenever one of your users wants to actually use their data, rather than just store it, they’re forced to decide between two mutually exclusive options:
- Encrypting the data, to protect it from unauthorized disclosure, but render it useless
- Doing anything useful with the data, but leaving it unencrypted in the database
This is especially annoying for business types that are all in on the Zero Trust buzzword.
Fortunately, the cryptographers are at it again, and boy howdy do they have a lot of solutions for this problem.
Order-{Preserving, Revealing} Encryption
On the fun side of things, you have things like Order-Preserving and Order-Revealing Encryption, which Matthew Green wrote about at length.
[D]atabase encryption has been a controversial subject in our field. I wish I could say that there’s been an actual debate, but it’s more that different researchers have fallen into different camps, and nobody has really had the data to make their position in a compelling way. There have actually been some very personal arguments made about it.
Attack of the week: searchable encryption and the ever-expanding leakage function
The problem with these designs is that they have a significant enough leakage that it no longer provides semantic security.
From Grubbs, et al. (GLMP, 2019.)
Colors inverted to fit my blog’s theme better.To put it in other words: These designs are only marginally better than ECB mode, and probably deserve their own poems too.
Order revealing
Reveals much more than order
Softcore ECBOrder preserving
Semantic security?
Only in your dreamsHaiku for your consideration
Deterministic Encryption
Here’s a simpler, but also terrible, idea for searchable encryption: Simply give up on semantic security entirely.
If you recall the
AES_{De,En}crypt()functions built into MySQL I mentioned at the start of this article, those are the most common form of deterministic encryption I’ve seen in use.SELECT * FROM foo WHERE bar = AES_Encrypt('query', 'key');However, there are slightly less bad variants. If you use AES-GCM-SIV with a static nonce, your ciphertexts are fully deterministic, and you can encrypt a small number of distinct records safely before you’re no longer secure.
From Page 14 of the linked paper. Full view.That’s certainly better than nothing, but you also can’t mitigate confused deputy attacks. But we can do better than this.
Homomorphic Encryption
In a safer plane of academia, you’ll find homomorphic encryption, which researchers recently demonstrated with serving Wikipedia pages in a reasonable amount of time.
Homomorphic encryption allows computations over the ciphertext, which will be reflected in the plaintext, without ever revealing the key to the entity performing the computation.
If this sounds vaguely similar to the conditions that enable chosen-ciphertext attacks, you probably have a good intuition for how it works: RSA is homomorphic to multiplication, AES-CTR is homomorphic to XOR. Fully homomorphic encryption uses lattices, which enables multiple operations but carries a relatively enormous performance cost.
Art: HarubakiHomomorphic encryption sometimes intersects with machine learning, because the notion of training an encrypted model by feeding it encrypted data, then decrypting it after-the-fact is desirable for certain business verticals. Your data scientists never see your data, and you have some plausible deniability about the final ML model this work produces. This is like a Siren song for Venture Capitalist-backed medical technology companies. Tech journalists love writing about it.
However, a less-explored use case is the ability to encrypt your programs but still get the correct behavior and outputs. Although this sounds like a DRM technology, it’s actually something that individuals could one day use to prevent their ISPs or cloud providers from knowing what software is being executed on the customer’s leased hardware. The potential for a privacy win here is certainly worth pondering, even if you’re a tried and true Pirate Party member.
Just say “NO” to the copyright cartels.Art: CMYKat
Searchable Symmetric Encryption (SSE)
Forget about working at the level of fields and rows or individual records. What if we, instead, worked over collections of documents, where each document is viewed as a set of keywords from a keyword space?
Art: CMYKatThat’s the basic premise of SSE: Encrypting collections of documents rather than individual records.
The actual implementation details differ greatly between designs. They also differ greatly in their leakage profiles and susceptibility to side-channel attacks.
Some schemes use a so-called trapdoor permutation, such as RSA, as one of their building blocks.
Some schemes only allow for searching a static set of records, while others can accommodate new data over time (with the trade-off between more leakage or worse performance).
If you’re curious, you can learn more about SSE here, and see some open source SEE implementations online here.
You’re probably wondering, “If SSE is this well-studied and there are open source implementations available, why isn’t it more widely used?”
Your guess is as good as mine, but I can think of a few reasons:
- The protocols can be a little complicated to implement, and aren’t shipped by default in cryptography libraries (i.e. OpenSSL’s libcrypto or libsodium).
- Every known security risk in SSE is the product of a trade-offs, rather than there being a single winner for all use cases that developers can feel comfortable picking.
- Insufficient marketing and developer advocacy.
SSE schemes are mostly of interest to academics, although Seny Kamara (Brown Univeristy professior and one of the luminaries of searchable encryption) did try to develop an app called Pixek which used SSE to encrypt photos.
Maybe there’s room for a cryptography competition on searchable encryption schemes in the future.
You Can Have Little a HMAC, As a Treat
Finally, I can’t talk about searchable encryption without discussing a technique that’s older than dirt by Internet standards, that has been independently reinvented by countless software developers tasked with encrypting database records.
The oldest version I’ve been able to track down dates to 2006 by Raul Garcia at Microsoft, but I’m not confident that it didn’t exist before.
The idea I’m alluding to goes like this:
- Encrypt your data, securely, using symmetric cryptography.
(Hopefully your encryption addresses the considerations outlined in the relevant sections above.) - Separately, calculate an HMAC over the unencrypted data with a separate key used exclusively for indexing.
When you need to query your data, you can just recalculate the HMAC of your challenge and fetch the records that match it. Easy, right?
Even if you rotate your keys for encryption, you keep your indexing keys static across your entire data set. This lets you have durable indexes for encrypted data, which gives you the ability to do literal lookups for the performance hit of a hash function.
Additionally, everyone has HMAC in their toolkit, so you don’t have to move around implementations of complex cryptographic building blocks. You can live off the land. What’s not to love?
Hooray!However, if you stopped here, we regret to inform you that your data is no longer indistinguishable from random, which probably undermines the security proof for your encryption scheme.
How annoying!Of course, you don’t have to stop with the addition of plain HMAC to your database encryption software.
Take a page from Troy Hunt: Truncate the output to provide k-anonymity rather than a direct literal look-up.
“K-What Now?”
Imagine you have a full HMAC-SHA256 of the plaintext next to every ciphertext record with a static key, for searchability.
Each HMAC output corresponds 1:1 with a unique plaintext.
Because you’re using HMAC with a secret key, an attacker can’t just build a rainbow table like they would when attempting password cracking, but it still leaks duplicate plaintexts.
For example, an HMAC-SHA256 output might look like this:
Art: CMYKat\04a74e4c0158e34a566785d1a5e1167c4e3455c42aea173104e48ca810a8b1aeIf you were to slice off most of those bytes (e.g. leaving only the last 3, which in the previous example yields
a8b1ae), then with sufficient records, multiple plaintexts will now map to the same truncated HMAC tag.Which means if you’re only revealing a truncated HMAC tag to the database server (both when storing records or retrieving them), you can now expect false positives due to collisions in your truncated HMAC tag.
These false positives give your data a discrete set of anonymity (called k-anonymity), which means an attacker with access to your database cannot:
- Distinguish between two encrypted records with the same short HMAC tag.
- Reverse engineer the short HMAC tag into a single possible plaintext value, even if they can supply candidate queries and study the tags sent to the database.
As with SSE above, this short HMAC technique exposes a trade-off to users.
- Too much k-anonymity (i.e. too many false positives), and you will have to decrypt-then-discard multiple mismatching records. This can make queries slow.
- Not enough k-anonymity (i.e. insufficient false positives), and you’re no better off than a full HMAC.
Even more troublesome, the right amount to truncate is expressed in bits (not bytes), and calculating this value depends on the number of unique plaintext values you anticipate in your dataset. (Fortunately, it grows logarithmically, so you’ll rarely if ever have to tune this.)
If you’d like to play with this idea, here’s a quick and dirty demo script.
Intermission
If you started reading this post with any doubts about Cendyne’s statement that “Database cryptography is hard”, by making it to this point, they’ve probably been long since put to rest.
Art: HarubakiConversely, anyone that specializes in this topic is probably waiting for me to say anything novel or interesting; their patience wearing thin as I continue to rehash a surface-level introduction of their field without really diving deep into anything.
Thus, if you’ve read this far, I’d like to demonstrate the application of what I’ve covered thus far into a real-world case study into an database cryptography product.
Case Study: MongoDB Client-Side Encryption
MongoDB is an open source schema-free NoSQL database. Last year, MongoDB made waves when they announced Queryable Encryption in their upcoming client-side encryption release.
Taken from the press release, but adapted for dark themes.A statement at the bottom of their press release indicates that this isn’t clown-shoes:
Queryable Encryption was designed by MongoDB’s Advanced Cryptography Research Group, headed by Seny Kamara and Tarik Moataz, who are pioneers in the field of encrypted search. The Group conducts cutting-edge peer-reviewed research in cryptography and works with MongoDB engineering teams to transfer and deploy the latest innovations in cryptography and privacy to the MongoDB data platform.
If you recall, I mentioned Seny Kamara in the SSE section of this post. They certainly aren’t wrong about Kamara and Moataz being pioneers in this field.
So with that in mind, let’s explore the implementation in libmongocrypt and see how it stands up to scrutiny.
MongoCrypt: The Good
MongoDB’s encryption library takes key management seriously: They provide a KMS integration for cloud users by default (supporting both AWS and Azure).
MongoDB uses Encrypt-then-MAC with AES-CBC and HMAC-SHA256, which is congruent to what Signal does for message encryption.
How Is Queryable Encryption Implemented?
From the current source code, we can see that MongoCrypt generates several different types of tokens, using HMAC (calculation defined here).
According to their press release:
The feature supports equality searches, with additional query types such as range, prefix, suffix, and substring planned for future releases.
Which means that most of the juicy details probably aren’t public yet.
These HMAC-derived tokens are stored wholesale in the data structure, but most are encrypted before storage using AES-CTR.
There are more layers of encryption (using AEAD), server-side token processing, and more AES-CTR-encrypted edge tokens. All of this is finally serialized (implementation) as one blob for storage.
Since only the equality operation is currently supported (which is the same feature you’d get from HMAC), it’s difficult to speculate what the full feature set looks like.
However, since Kamara and Moataz are leading its development, it’s likely that this feature set will be excellent.
MongoCrypt: The Bad
Every call to
do_encrypt()includes at most the Key ID (but typicallyNULL) as the AAD. This means that the concerns over Confused Deputies (and NoSQL specifically) are relevant to MongoDB.However, even if they did support authenticating the fully qualified path to a field in the AAD for their encryption, their AEAD construction is vulnerable to the kind of canonicalization attack I wrote about previously.
First, observe this code which assembles the multi-part inputs into HMAC.
/* Construct the input to the HMAC */uint32_t num_intermediates = 0;_mongocrypt_buffer_t intermediates[3];// -- snip --if (!_mongocrypt_buffer_concat ( &to_hmac, intermediates, num_intermediates)) { CLIENT_ERR ("failed to allocate buffer"); goto done;}if (hmac == HMAC_SHA_512_256) { uint8_t storage[64]; _mongocrypt_buffer_t tag = {.data = storage, .len = sizeof (storage)}; if (!_crypto_hmac_sha_512 (crypto, Km, &to_hmac, &tag, status)) { goto done; } // Truncate sha512 to first 256 bits. memcpy (out->data, tag.data, MONGOCRYPT_HMAC_LEN);} else { BSON_ASSERT (hmac == HMAC_SHA_256); if (!_mongocrypt_hmac_sha_256 (crypto, Km, &to_hmac, out, status)) { goto done; }}The implementation of
_mongocrypt_buffer_concat()can be found here.If either the implementation of that function, or the code I snipped from my excerpt, had contained code that prefixed every segment of the AAD with the length of the segment (represented as a
uint64_tto make overflow infeasible), then their AEAD mode would not be vulnerable to canonicalization issues.Using TupleHash would also have prevented this issue.
Silver lining for MongoDB developers: Because the AAD is either a key ID or NULL, this isn’t exploitable in practice.
The first cryptographic flaw sort of cancels the second out.
If the libmongocrypt developers ever want to mitigate Confused Deputy attacks, they’ll need to address this canonicalization issue too.
MongoCrypt: The Ugly
MongoCrypt supports deterministic encryption.
If you specify deterministic encryption for a field, your application passes a deterministic initialization vector to AEAD.
We already discussed why this is bad above.
Wrapping Up
This was not a comprehensive treatment of the field of database cryptography. There are many areas of this field that I did not cover, nor do I feel qualified to discuss.
However, I hope anyone who takes the time to read this finds themselves more familiar with the subject.
Additionally, I hope any developers who think “encrypting data in a database is [easy, trivial] (select appropriate)” will find this broad introduction a humbling experience.
Art: CMYKathttps://soatok.blog/2023/03/01/database-cryptography-fur-the-rest-of-us/
#appliedCryptography #blockCipherModes #cryptography #databaseCryptography #databases #encryptedSearch #HMAC #MongoCrypt #MongoDB #QueryableEncryption #realWorldCryptography #security #SecurityGuidance #SQL #SSE #symmetricCryptography #symmetricSearchableEncryption