Radi 0.8.1 and EPS import musings

I finally managed to complete another update to Radi, my HTML5 content creation app. This new version 0.8.1 is all about fixing bugs and lots of workflow annoyances. Even though the version number increase is tiny, I feel that the improvements are substantial especially if you’re doing vector graphics animation. You can read more about it on the Radi news page, or go straight to the v0.8.1 release notes. (Radi remains a free download, of course.)

I’ve also started writing a real guide book for Radi. The title is Learn HTML5 Multimedia With Radi, and it’s still a work in progress. Only the first chapter is mostly done. I’m hoping to get it finished within the next months.

Well, I claimed that 0.8.1 doesn’t add new features, but actually I did sneak in one new feature that’s fairly major, at least in terms of programming complexity. You can now import vector graphics in the EPS format. This feature is “experimental” — that is to say, not working very well much of the time… Therefore it’s a bit buried away. (You can find the use instructions in the release notes.)

EPS (Encapsulated PostScript) is a complex format that’s designed more for printers rather than transferring graphics between applications. But EPS has been around for so long and is so widely supported by all the important vector graphics apps, so I felt that it’s the only practical choice if I have to pick one vector format right now… There are plenty of EPS graphic files around for things like company logos and icons, and now you can bring them into Radi as real vector shapes that remain scalable and editable.

Simple graphics like logos and outline drawings are mostly what the importer is suitable for. Complex fill styles, clipping masks and texts won’t be imported at all. (To import text, you should vectorize it first… But it’s generally better to recreate the text within Radi if possible.)

By the way, if you’re more interested in the second part of my Cocotron tutorial than Radi, fret not, it’s coming this month.

Posted in Animation, Mac-related | Leave a comment

Win-win with Cocotron and Xcode 4.3 — code for Mac, build for Windows (Part 1)

This is the first part of a tutorial in which I’d like to introduce you to one of my favorite open-source projects, The Cocotron (imagine the ominous silence of a Soviet nuclear reactor as the backdrop for pronouncing this name).

Cocotron lets you take a Cocoa-based Mac app and port it to Windows without ever leaving Xcode — just add a Windows target to your project and you’re set. Sounds too good to be true? Well, as usual, some limitations apply. Cocoa is a large and rapidly evolving framework, and it would be very difficult for a loose team of open-source volunteers to achieve 100% compatibility with Apple’s latest and greatest. But Cocotron can take you most of the way, and if you have the possibility to plan ahead for compatibility, the odds of being able to make use of Cocotron are further increased.

The Cocotron is not just a vapor framework outlining some kind of theoretical feasibility: it’s been publicly available since late 2006, and ports accomplished using Cocotron are out in the wild. Personally I have used it deploy Mac-developed custom apps on Windows, including a fairly complex GUI subtitling tool used by the Finnish Broadcasting Company for a popular TV game show. (Based on activity in the Cocotron mailing list, there is also a company with a well-known consumer-oriented Mac product who are nearing completion of a Windows port using Cocotron.)

Something that appeals to me in Cocotron is its strict, almost austere “no-frills” policy. Christopher Lloyd, the project’s initiator, runs a tight ship. Unlike some other cross-platform toolkits (* cough Gtk+ and Qt *), the framework is lean: Cocotron’s Windows DLLs for Foundation and AppKit only take about 6-7 MB. And it’s self-contained – there are no other dependencies by default. As fits this culture of independence, Cocotron is MIT-licensed, so you can basically do anything you please with the code as long as credit is given.

True cross-compiling on the Mac is a core part of Cocotron’s promise. As such, its fortunes are closely tied to Apple’s Xcode development environment which has undergone a lot of changes over the past five years. Luckily Xcode has consistently remained open enough to allow custom cross-compilers (perhaps largely thanks to the advent of iOS and Cocoa Touch on ARM CPUs, which has made cross-compiling an essential part of Xcode).

Xcode 4 was the biggest change in the product’s history. I had been long dreading making the leap to Xcode 4 for two reasons: the new UI would force me to re-learn many workflows, and I was worried that Cocotron might not work properly anymore. Now it has been a week since I finally made the change, and I can report that I’m pretty happy about it. That means you could be happy too with Cocotron and Xcode 4.3! This tutorial will tell you how.
Continue reading

Posted in Mac-related, Programming | 12 Comments

Good life at Happy Meal Central

It’s been about a decade since the last time I had a meal at McDonald’s. I heard that they’re trying to change their image, and indeed it turns out that they’re nothing as stuck to their singular success recipe as I had assumed:

Vegetarian McDonald's meal in Helsinki

That’s a vegetarian McFeast with rye bread; fresh apple slices instead of fries; and orange juice instead of a soda.

These options don’t cost extra over the standard fare. This was actually a very decent meal for the price, so I don’t think McDonald’s will have to wait another ten years until I bring them another 6 euros.

This begs the question — is it like this everywhere? Or does Finland, by some strange twist of fate, have the best McDonald’s in the world?

Posted in Uncategorized | Leave a comment

The opposite of thrifty

Spending is a key component of modern life. The biggest victory in post-war history was achieved not with guns and steel, but through spending: the United States successfully outspent the Soviet Union, as the latter went bankrupt trying to keep up with ever more extravagant and expensive military gadgets like stealth fighters and Reagan’s “SDI” space war initiative.

In recent years of economic crisis, spending has become more like a postmodern TV hero. He is the Magnificent Bastard who is also a Double Reverse Quadruple Agent: an inscrutable two-faced object of desire that plays the roles of angel and demon at the same time. On one hand, ever-increasing spending on credit is clearly the culprit behind the crushing debt woes faced by the United States and the eurozone countries. On the other hand, spending is a commonly accepted solution to avoid a looming recession. Opinions disagree whether it should be governments doing the spending to stimulate the economy, or whether we should figure out other ways to get individual consumers and companies to spend more, but the reasoning is fundamentally the same: spending equals growth.
Continue reading

Posted in Names, Society | Leave a comment

Why the Mac App Sandbox makes me sad

Apple announced today that, starting in March 2012, all apps on the Mac App Store will be required to run in the so-called “App Sandbox”.

The sandbox is an environment that locks down the Mac in ways that match (and exceed) the limitations found on iOS. A sandboxed app doesn’t have direct access to any files or frameworks on the system. It can’t access the network or any devices.

For the app, nothing else exists on the system except for those files and APIs that the operating system explicitly makes accessible to it:

By default, the sandboxed app doesn’t really have anything of its own. Even files in its own Application Support subfolder may be deleted by the operating system if it wants to e.g. reclaim some disk space. The sandbox analogy is quite fitting indeed — inside it, an app’s data has all the permanence of a sand castle.
Continue reading

Posted in Business stuff, Mac-related | 121 Comments

Canvas smartphone support hits 100%, video slightly behind

Microsoft has finally given a date for the release of Windows Phone 7.5, also known as Mango. The update will start rolling out “in the next week or two”, depending on operator and hardware vendor processes. Hopefully it won’t be long until all Windows Phone 7 devices have been updated to Mango.

Windows Phone 7 is a fluid and appealing operating system, but that’s not why I’m posting about it. Mango’s release is significant for web developers because it includes Internet Explorer 9 and hence substantial improvements to HTML5 compatibility.

This calls for celebration: with Mango joining the fray, all currently shipping smartphone operating systems now have support for the <canvas> element! This means you can design animations in Radi using Canvas and deploy on mobile without worrying about missing API support.

The complete list of mobile platforms with Canvas support is as follows: Continue reading

Posted in Web | 2 Comments

Why Radi uses Canvas – comparing CSS-based animation and immediate rendering

The market for HTML5 design apps has heated up lately. The number one question that I now get asked about my Radi application is: How does it compare to Edge and Hype? Isn’t it the same kind of app? On the surface that is the case – all three are animation tools that target the modern web. But there are important differences under the hood. Although the apps look similar, they answer a different need and have a different growth path going forward.

Comparing Radi to Edge and Hype is pretty much “apples to oranges”, as the old saying goes. Fruits are not a very informative analogy, though. For a more useful comparison, we could think of these apps as akin to musical instruments: if Edge and Hype are the electric guitar, then Radi is the software synthesizer. Unless you’re a genre purist, neither kind of instrument is objectively “better”. Either can be used to create a brain-wrecking cover version of Stairway to Heaven, but that doesn’t mean they are inherently flawed instruments…

For more sophisticated uses, the guitar and the synthesizer are more likely to complement rather than overlap each other, and so there are many individuals and creative groups that will want to use both together for the best effect. In this post, I’ll try to explain how the difference between Radi and other HTML5 apps, and how they can complement each other. I’ve got some simple content examples to illustrate things. (I’m also planning to write a second part that will concentrate on Canvas performance and WebGL, so stay tuned for more.)

First, a brief overview of the apps under discussion. My own Radi is at radiapp.com; check out the details there. Edge is a new application by the world’s most venerable content creation software company, Adobe. It is available as a free preview from Adobe Labs, and is also cross-platform (Mac + Windows). Hype is also a new application, but Mac-only. It’s created by Tumult, a company founded by two ex-Apple software engineers (who clearly know the Mac better than their own pockets).

As mentioned, Edge is free for now, but it stands to reason that it will eventually be included in Adobe’s Creative Suite because it’s clearly meant to complement Adobe’s other products rather than stand on its own. (For example, it seems unlikely that Edge will ever have vector drawing tools, with Adobe preferring instead to leave that task to Illustrator). Meanwhile Hype is available on the Mac App Store for $29. This is a limited-time offer upon its first release, which presumably means that Hype will cost more in the future. Continue reading

Posted in Animation, Mac-related, Web | 3 Comments

The Ten Abominations

A site called Test Your Vocabulary was a small hit on Hacker News today. The test takes only a few minutes, and you get an estimate of the breadth of your English vocabulary as the approximate number of words you know. In other words, it’s the perfect Sunday entertainment for all of us who get strange kicks from having our intellectual capacity rated and quantified…

The site got me thinking about the last time when I encountered an English word that was completely unknown to me. This was a few days ago; the word was contumacy, and it appeared in a particularly famous telex written by George Kennan. An online search revealed that ‘contumacy’ is the stubborn refusal to obey orders, and more specifically refers to contempt of court in modern English-speaking law practice.

Well, nothing particularly interesting there. But thanks to the wonders of hypertext, the word led me to discover the Ten Abominations, of which contumacy is one. These Abominations are a list of offences that were considered most serious under traditional Chinese law. They were regarded as the most abhorrent and hence necessitated the gravest penalties, even including the omission of some legal processes that were otherwise given to an accused. The list of abominations derived mostly from the writings of Confucius and even older archaic Chinese tradition. For over two thousand years of Imperial rule, the Ten Abominations were recognized as a moral baseline for justice, not unlike the role of the Ten Commandments in Judeo-Christian tradition.

What’s striking about the Ten Abominations is how precisely described and entirely non-abstract these offenses are. The ancient Chinese certainly didn’t practice relativistic handwaving when it came to morals. Specifically listed offences include damaging royal palaces, murdering government officials, having fun during grief periods, and having a sexual affair with one’s grandfather’s concubine… At least you can’t say you weren’t warned if grandpa catches up.
Continue reading

Posted in Uncategorized | Leave a comment

Radi updated to v0.6

I’ve just updated my Radi application to version 0.6. It’s still a free download.

If you’re interested in the possibilities of HTML5 content creation, give it a try!

There’s a bunch of interesting new stuff in this release — anchor points, keyframing improvements, publish for HTML embedding, a new popup help system, among others — so I figured the version number should be bumped to 0.6.

For more details, check out the release notes: What’s new in Radi 0.6 (…Now with 80% more screenshots of new features!)

I’m hoping to increase the release pace from now on. The 4-month lag between this release and the last was too long. I’ll try to concentrate primarily on bug fixes and manageable, incremental feature updates. If you have any ideas about what you’d like to see in Radi, don’t hesitate to contact me (my email is in the About page).

Posted in Uncategorized | Leave a comment

On Naming Things, and the CEO-Programmer

I started this blog a few months back, but it didn’t have a title except for Pauli Olavi Ojala’s Notes. I’ve discovered that the lack of a title makes it extremely difficult for me to come up with things to write. In a way the title represents the audience, and the lack of a title makes it painfully obvious that I don’t really know whom I’m writing for.

Hence I’m renaming this blog to Naming Things. This title is directly borrowed from my favorite programming-related saying. It was coined by Phil Karlton, and slightly paraphrased it goes like this:

“The only real difficulties in programming are cache invalidation and naming things.”

(At Netscape Communications, Phil held the title of Principal Curmudgeon. He clearly took his advice about the importance of naming to heart.)

The wording of this aphorism is such that it remains utterly impenetrable to non-programmers. The concept of ‘cache invalidation’ and its applications and challenges are not part of most people’s daily experience, and perhaps that’s all for the best… Yet I feel there is a kernel of wisdom here that could benefit a wide range of disciplines outside of computer science. Programmers have accumulated tremendous practical experience in dealing with complexity and information flows using only the sticky, slow-but-wide tools of a single human brain. There are many fields where these lessons could be applied if they were translated to a more generic language.

Let’s take an example from the global shadow society of large enterprises. In a company of more than a hundred thousand employees and thousands of projects, how can a CEO hope to stay on top of the big picture, much less shape it?
Continue reading

Posted in Business stuff, Names | 2 Comments