General Development Archive

Redacted for Mac launch

My dislike for application stores, the race to the bottom they enabled, and the myth of it being a great way for small developers to make it big is well-documented at OSNews, so yeah, I couldn't pass up this story (don't click the link yet!). Developer Sam Soffes released an interesting application on the Mac App Store, and when he looked at how well his application as doing later that day, he was in for a shock.

For launch, the price was $4.99. I may play with that some over time. I was originally thinking $2.99 and a bunch of folks on Twitter said $4.99 was better. Anyway, Redacted was #8 top paid in the US and #1 top paid in Graphics at the end of launch day. It was also at the top of Product Hunt with 538 up votes! Wow!

This sounds amazing, right? Surely, this is a story of an indie developer making it big, becoming a millionaire overnight. Good feels were had all around, right?

Now read the post.

The greatest program ever written

I'm a programmer. I write games. Games programmers get a lot of respect, but none of them, not me, not Carmak, and not Abrash. None of them deserve the honour which I want to bestow on David Horne. This is because David Horne wrote the greatest program ever written: 1k chess on the ZX81.

David Horne is not an urban myth. David Horne achieved what many would even now consider impossible. He wrote a chess game, with AI, that ran on a poorly documented, buggy machine that contained only 1k of memory.

Sometimes I feel like these kinds of programmers are a dying breed.

Hollywood 6.0 released

Hollywood 6.0 has been released. Since I'm not so sure most of you know what it is, here's the official description.

Hollywood is a multimedia-oriented programming language that can be used to create graphical applications very easily. It was designed with the paradigm to make software creation as easy as possible in mind. Thus, Hollywood is suited for beginners and advanced users alike. Hollywood comes with an extensive function library (encompassing almost 700 different commands) that simplifies the creation of 2D games, presentations, and applications, to a great extent. It has been in development since 2002 and hence is today a very mature and stable software package.

“Silver” brings Swift language to the .NET and Java worlds

While we're on the subject of Swift:

Fans of Apple's Swift language can now use their newly developed skills to write software for systems supporting both .NET and Java, including Android.

The Silver compiler, currently in beta, compiles Swift programs to run in the .NET and Java runtimes. It can also produce native binaries to run on OS X. With Silver, Swift developers can share their business logic and non-interface code across the different platforms.

It's a bit of an Apple news day today, isn't it?

Go 1.4 released

Today we announce Go 1.4, the fifth major stable release of Go, arriving six months after our previous major release Go 1.3. It contains a small language change, support for more operating systems and processor architectures, and improvements to the tool chain and libraries. As always, Go 1.4 keeps the promise of compatibility, and almost everything will continue to compile and run without change when moved to 1.4.

Half a decade with Go

Five years ago we launched the Go project. It seems like only yesterday that we were preparing the initial public release: our website was a lovely shade of yellow, we were calling Go a "systems language", and you had to terminate statements with a semicolon and write Makefiles to build your code. We had no idea how Go would be received. Would people share our vision and goals? Would people find Go useful?

Congratulations to the Go community and team.

Canonical Proposes LXD: A Next-generation Hypervisor

Take all the speed and efficiency of docker, and turn it into a full virtualisation experience. That's the goal of Canonical's new initiative to create the next big hypervisor around Linux container technologies. Imagine you could launch a new machine in under a second, and that you could launch hundreds of them on a single server. Hundreds! Now, imagine that you have hardware-guaranteed security to ensure that those machines can’t pry or spy on one another. Imagine you can connect them separately and securely to networks. And imagine that you can run that on a single node or a million, live migrate machines between those nodes, and talk to all of it through a clean, extensible REST API. That’s what LXD sets out to deliver. Update: a bit more about LXD from Dustin Kirkland.

Building a new programming language for games

Earlier this week, coder and game designer Jonathan Blow gave a presentation on his Twitch channel outlining his thoughts on why and how programmers might go about building a new programming language specifically for game development.

"We are literally killing ourselves every project, deathmarching to get games done," said Blow, during a Q&A segment. "It just really doesn't have to be anywhere near that bad -- at least for programmers."

Arment on ‘app rot’

We've touched on this topic several times already - most recently only a few days ago: the application store model is facing some serious issues at the moment, to the heavy detriment of users and developers alike. If you don't want to take my word for it - and really, you shouldn't, as you should make up your own mind - Marco Arment has written a great summary of all the problems the application store model is facing, with a lot of quotes from other sources to come to a good overview.

Apple's App Store design is a big part of the problem. The dominance and prominence of "top lists" stratifies the top 0.02% so far above everyone else that the entire ecosystem is encouraged to design for a theoretical top-list placement that, by definition, won't happen to 99.98% of them. Top lists reward apps that get people to download them, regardless of quality or long-term use, so that's what most developers optimize for. Profits at the top are so massive that the promise alone attracts vast floods of spam, sleaziness, clones, and ripoffs.

Quality, sustainability, and updates are almost irrelevant to App Store success and usually aren't rewarded as much as we think they should be, and that's mostly the fault of Apple's lazy reliance on top lists instead of more editorial selections and better search.

And:

As the economics get tighter, it becomes much harder to support the lavish treatment that developers have given apps in the past, such as full-time staffs, offices, pixel-perfect custom designs of every screen, frequent free updates, and completely different iPhone and iPad interfaces.

The application store model is under serious pressure.

Exploring Swift using GPUImage

Steven Troughton-Smith points to an article by Brad Larson:

I always find it more effective to learn new programming concepts by building projects using them, so I decided to do the same for Apple's new Swift language. I also wanted to see how well it would interact with my open source GPUImage framework. As a result, I made GPUImage fully Swift-compatible and I've built and committed to the GitHub repository a couple of Swift sample applications. I wanted to write down some of the things that I learned when building these.

It's interesting to see programmers get their hands dirty with what most likely will be the way forward for iOS developers.

The microg Project

The μg Project aims to provide a free, fully compatible replacement of the often used proprietary GAPPS package by Google.

Very little information is available at this point, but I've always wondered why nobody ever tried to create open source replacements for the various Google Apps - most notably Google Play Services. This is clearly in its very early stages, but it'd be fantastic if we could one day have a drop-in replacement for Play Services, ensuring you could have a truly Google-free Android device while still being able to run applications that use the Play Services APIs.

Full-motion video on a 1981 IBM PC

I gave a talk in 2007 that explained 8088 Corruption in detail, and in that talk I explained that displaying FMV using CGA in graphics mode would be impossible. This is because CGA graphics mode uses 8x the amount of video memory that 8088 Corruption was handling. Even a simple calculation assuming 24fps video reveals that the amount of data needing to be updated per second (24fps * 16KB = 384KB/s) is outside of the IBM PC's capability: CGA RAM can only be changed at a rate of 240KB/s, and most hard drives of the era operate at roughly 90KB/s. It sure felt impossible, so that's why I said it.

Then I thought about the problem for 7 years.

This is amazing. I also have no idea under which category to file this, but I settled for this one.