Category Archives: Apple

Apple owns. That’s all there is to know.

Rob Pardo on the “web game market” and seemingly PC gaming in general

The following is quoted from Gamasutra’s Paris GDC interview with Rob Pardo:

Finally, Jamil asked an extremely relevant question, given the state of the web game market – is it possible to get an ‘AAA game experience’ through the web interface?

Pardo was blunt: “I dunno, not until Microsoft, Intel, and Apple get their shit together. There’s such a dichotomy with hardware these days. With Microsoft, I think they have a bit of lip service with PC gaming. They have their own game system now, so I don’t think it’s really in their best interest to support [PC].”

However, he noted: “There’s been some Apple resurgence, so maybe Dell and Apple will get together and make a consumer box that has a decent graphics card in it, who knows? I do think it’s going to happen, but I wouldn’t be surprised if it doesn’t happen with Microsoft.”

Without commenting at all about Apple‘s stance on this, it is obvious to me that if Apple continues to increase their market share as current public data indicates, there’s going to be a shift of mentality in game studios still interested in developing for the PC platform. They’re going to seriously start looking at those millions of Mac customers who may have an available budget for the games they make. Of course, part of those customers are already buying those games thanks to Boot Camp, but there is an economic and psychological argument to be made that Mac versions of those games would get you an even larger share of that growing market.

It’s also interesting to note that Apple’s market is closer to that of consoles, in the sense that hardware diversity is much lower and there is greater integration between the OS, the software that runs on that OS and the hardware on which those two run, while retaining some of the advantages of the PC, such as less control from the hardware manufacturer (which Pardo cites as a problem for WoW content patches), the ubiquity of a pointing device and keyboard, more storage space, more mature development tools and the ability to develop and test on the same hardware.

Generating SSL certificates that will make Firefox 3 happy

Firefox 3 is annoyingly picky about SSL certificates, which has been an issue for people trying to access my Trac wiki or Subversion repository. I finally had enough and decided to nail the problem. So here are clear steps for generating SSL certificates that will make Firefox 3 happy. I will be using Leopard’s Certificate Assistant for most of the certificate work, with a bit of openssl at the end. The primary source of information I used to determine the requirements for SSL server certificates and signing certificates up in the chain is Mozilla’s All About Certificate Extensions technote.

Continue reading

Xcode 3.1 preview included in the iPhone SDK

Update: I initially had stated that LLVM was the future of Apple compiler technologies. This is the case in-so-far as I believe LLVM is the future of the gcc compiler backend. This is a personal blog and I’m obviously not speaking for anyone but myself.

While watching the iPhone SDK announcement video, I noticed some odd things in my beloved Xcode. Some UI elements were looking different. And indeed, the iPhone SDK includes a new version of Xcode (and many other dev tools) which may be of interest for anyone doing Mac OS X development. Some of the highlights:

  • Brand-new “New Project” and “New File” dialogs. I really like them, and the new templates make more sense.
  • Multi-platform support. Each platform can provide its own set of tools and SDKs. This was obviously added to support the iPhone. So the big picture now is Platforms > SDKs > Architectures.
  • Preview of gcc-4.2 and llvm-gcc-4.2. I am really excited to check this two out, particularly the LLVM powered compiler, which brings to Mac OS X developers modern link-time optimization that Microsoft Visual Studio and Intel CC customers have enjoyed for many years now. LLVM is the future of gcc compiler technologies, and it’s great to start seeing that get out into a lot of people’s hands.
  • Improved support for conditional build settings (AKA per-architecture build settings).

I hope to see the final version of Xcode 3.1 to be released at this year’s WWDC, if not some manner of new beta release.

CUDA for Mac OS X

CUDA is NVIDIA’s architecture and API for GPGPU – general purpose GPU programming. The fact is, those graphic cards are hugely powerful parallel computing units, and everyone stands to benefit by exploiting them to do far more than just outputting images to a screen.

Well today, NVIDIA made CUDA available for Mac OS X. This is a sign that times are changing for Apple when they start to make such a kind of inroad. And of course, everyone in the (probably small) Mac HPC business and in the scientific community is probably very happy about this.

So if you own NVIDIA hardware, go grab it and give it a try!

One of the best Mac OS X application has just gotten better

Omni released the first public beta of OmniGraffle Pro today. Version 5 boasts an impressive list of new features and refinements, such as GraphViz powered diagram layout, tables, bezier curves and better Visio and PDF import and export.

Give it a try. As far as I’m concerned, my only deception so far is not being able to buy a license already.

Mac OS X doesn’t have a BSOD

So the outdated APE and Leopard issue has promoted the idea that it leads to a “Leopard BSOD”. While I understand the potential confusion, please remember that a BSOD is a full fledged kernel panic when referring to Window’s famous blue screen. The blue you see when Leopard boots is actually drawn by the window server, before loginwindow finishes to start, at which point it will either log you in or draw the login panel and the default background picture.

Because of the way APE works, it’s most likely it’s simply preventing loginwindow from properly starting. Under the covers, the Mac OS X kernel is still “happily” humming along. So it’s not a BSOD as it is generally understood — just a coincidence.

Edit: Mac OS X certainly can kernel panic. But its death screen is not an intimidating blue screen. It’s a nice message telling you to reboot your computer (or a not-too-helpful dump if you passed the kernel certain debug boot flags).

Quick word

Just a quick word on what is currently going on.

  • My internship at Apple is soon coming to an end. It was an absolutely fantastic experience, which I will surely talk about some more in future entries, NDA permitting :p
  • There will be a new MPQKit release sometime by the end of August. It will likely be the last beta release before the release candidate for 1.0, which will happen sometime in September.
  • I have started intensive work on Riven X again, and there is a lot more to come for that project as well. There will also be a new binary release by the end of August. I plan on finishing this project before next summer (for real this time).
  • StarCraft II will be awesome.
  • OpenGL 3 (codenamed Longs Peak) will go final sometime in September or October. This is fantastic news for OpenGL, as LP brings some much needed fresh air to the API, particularly in the realm of object model and data / state transfer efficiency. It will be a while before we see LP implementations ship to customers, but at least the spec will be out there.

Much more coming in a week.

Congratulations Panic and Blizzard!

The Apple Design Awards reward applications that stand out, that define the Mac OS X experience and that make the Mac the best operating system by virtue of the quality of the applications that run on it. I would like to congratulate Panic for winning Best Mac OS X User Experience with Coda and Blizzard for Best Game with World of Warcraft: The Burning Crusade. Both of these applications are outstanding at what they do, push the limits of Mac OS X technologies and drive us at Apple to continually improve Mac OS X.

Of course Blizzard is closer to my heart, so I invite Mac users that play and enjoy Blizzard games to congratulate them for their exceptional work. Blizzard has kept Mac gaming alive through the difficult years and are now driving the development of OpenGL, not only on Mac OS X by constantly pushing the stack to its limits and helping us improve OpenGL, but also by actively participating in the OpenGL ARB. They have my utmost respect and they totally deserve this award. Congratulations again.

Check out all the winners at the Apple Design Awards 2007 page.

Live from Montréal-Pierre Elliott Trudeau International Airport

Whoa, it sure has been long since I wrote on this blog. Let’s fix that, shall we?

*Ahem* This is Jean-Francois Roy, live from Montréal-Pierre Elliott Trudeau International Airport. Tonight we have a special program, with exciting news about my various projects, and more! For a recap of what my summer projects are, have a look at Summer game plan.

Airport?

That’s right, I am leaving tomorrow today for beautiful San Francisco to assist Apple’s yearly Worldwide Developers Conference. In short, this is the most exciting week of the year for all Mac developers, with probably over 3000 of us converging on Moscone West convention center for sessions, labs, thematic lunches and evening fun in downtown clubs.

I thought it would be entertaining to post some pictures of where I currently am. After all, I am showing my geekiness by doing an all-night pre-WWDC coding marathon. Unfortunately, I only have my cell phone‘s digital camera at my disposal, so these won’t be the greatest pictures ever. In any case and without further ado:

World of Warcraft, everywhere.
Cindy travels with me.

Laptop, drink, caffeine.
A table, some power, energy drinks. What else can you ask for?

Trudeau Airport, 1 of 3.
Where I am.

The bar.
Drinks are served all night!

Trudeau Airport, 2 of 3.
Some of the airport.

Trudeau Airport, 3 of 3.
And some more of it.

Riven X

Truth be told, I have neglected Riven X these past 2 months. Between World of Warcraft, Longinus (the name of my World of Warcraft DKP and raid statistics system) and my summer internship at CHUL, I simply have not had the time to work on it seriously.

However, Riven X will be my priority at WWDC, as far as my projects are concerned. There are several components in my engine that need improvement, and I will take full advantage of Apple’s engineers in the various labs to address known issues. Stay tuned for more!

Longinus

Ah, so much to say about this. The project has become a lot bigger than I originally anticipated. Its objective is now to be a generic raid statistics tracking system as well as a generic (meaning extensible) item distribution system. An IDS is basically a method by which a guild distributes items that drop during raids to participating members. Alexstraza Dragon Riders uses slightly modified English auctions for example, while Trinity uses a zero-sum-based system.

There are two major components to Longinus.

The first is a World of Warcraft interface AddOn (thus written in Lua and XML) which handles gathering data during raids (such as player deaths, connection and disconnect events, joined raid and left raid events, boss fights (duration, outcome)) and in-game IDS functionality (for example, running an auction in the case of my guild).

The second is a Django-powered Python web application. Right now it only handles basic administrative functionality (officer checkout and commit), but I will eventually add public views to browser and consult raid statistics and all that good stuff.

The basic cycle of operation is as follows: an officer makes a data checkout. This essentially exports data the in-game AddOn required to function properly from the online database to a Lua file World of Warcraft will load (in WoW jargon, a saved variables Lua file). That checkout exists in the database and has a UUID, checkout timestamp, checkout officer, commit timestamp and commit officer (the latter two are of course initially NULL). There is no limit on the number of concurrent checkouts.

The officer then uses the in-game AddOn during raids for as long as he or she wants. However, after 3 days, Longinus will remind the officer, at most once per day, to commit back the data to the online database. When the officer does so, essentially by submitting his checkout saved variables file in a simple web form, the web application merges and updates the data in the database with the information from the saved variables file.

I’d like to finish by point (again) at the Trac wiki for Longinus. It’s got some interesting stuff, particularly the wowsv Python module, which not only loads Lua files (or Lua code as string data), but also serializes Python collections back to Lua code.

Wrapping up

Because Andrew is tired, I am going to wrap this entry now. Besides, I don’t have much else to report at this time. This was Jean-Francois Roy, for /dev/klog, in Montréal-Pierre Elliott Trudeau International Airport.