Swift Struct vs. Class

I've been having a tough time in Swift with the Struct vs. Class issue. Unlike Java and Objective-C, Swift allows value type "classes" known as Struct types. These behave very similar to C++ objects that are created without dynamic memory allocation - in other words they're created on the stack instead of the heap. This … Continue reading Swift Struct vs. Class

What in the Hell is a Grapheme Cluster?

In my previous post I talked about Swift's handling of strings and the problems making the characters of a string randomly accessible because of Swift Strings being Unicode compliant. Another part of the issue, and the reason that we can think of Characters in Swift as just Strings in and of themselves, is the concept … Continue reading What in the Hell is a Grapheme Cluster?

Thoughts on Strings in Swift

Okay, I really do understand the plight. Honestly I do. I mean, I get it! Strings in Swift are not randomly accessible collections of bytes like they are in C or 16-bit words like they are in Objective-C or Java. In Swift a String is a collection of grapheme clusters. So, why not allow you … Continue reading Thoughts on Strings in Swift

Working with Dynamic Libraries in Xcode

Here's just a little tidbit that I ran across recently where Xcode, which normally does a good job covering all the bases, fell short just a bit. When you're working with dynamic libraries in just about any environment, especially Linux and MacOS, there is a two-way street when it comes to a program or another … Continue reading Working with Dynamic Libraries in Xcode

How the VIC/64 Serial Port Works

By Jim Butterfield Originally published in Compute! July 1983 (page 178) The Serial bus connects VIC or Commodore 64 to its major peripherals, especially disk and tape. The workings of this interface have been a source of bafflement to most of us.  We know that it's somehow related to the IEEE-488 bus which is used … Continue reading How the VIC/64 Serial Port Works

C64/128 Port Pinouts

I've decided to collect these from the Internet to save time looking for them. IEC Serial Port C64 - Wiki: Serial PortHow the VIC/64 Serial Port Works: Compute! July 1983 The Video/Audio Output Port Very early versions of the Commodore 64 did not have pins 6, 7, or 8. Commodore 128 RBGI Port Commodore 128 … Continue reading C64/128 Port Pinouts

Bringing Back Some Old Friends

The designers of Swift seem to have really odd opinions regarding the merits of certain patterns that are very common across other languages. For example, they have deemed that the prefix and postfix operators "++" and "--" are, for some reason, not desirable. Weird. 🧐 Not a biggie because they also built Swift with the … Continue reading Bringing Back Some Old Friends

Byte Level File I/O in Swift

So, one of the first things I wanted to do in Swift was to start to port the Java model of XML over to Swift. But to do that I needed to be able to read the XML files as a series of bytes so that I could convert all the various character encodings (UTF-8, … Continue reading Byte Level File I/O in Swift

Swift – First Impressions

After playing with Swift a bit here are my first impressions of the language. There is definitely a lot to like about it! There's also a few things that annoy me. 😎 But first I'll start out with a giving you a 1,000 foot overview of the language itself. Syntax aside, Swift and Objective-C 2.0 (as … Continue reading Swift – First Impressions