Archive for the ‘Apple’ Category

The Infinite Loop

Sunday, June 15th, 2008

You can separate the OS X feature engineering work done by Apple into two categories. There’s the features that are exciting to the typical Mac user, and then there’s the features that are only exciting to software developers. When Apple says that they’re “hitting the pause button on new features”, they’re talking about that first category of features. From a developer’s perspective, Snow Leopard is overflowing with exciting system enhancements, tantalizing new goodies to allow for faster development and huge performance improvements.

The tradeoff triangle.
Image credit: Microsoft

Pausing to focus on stability and performance is every large software company’s fantasy. The typical process of software development is a cycle: New feature requirements are handed down from on high, developers work furiously on the new features, cut corners to get them just to the point where they’re (mostly) working, and then rush them out the door on a slipped deadline. Fixes to critical bugs come iteratively as point release updates, but the majority of the engineering team has already moved on to the next batch of new features. There’s never any time to go back and improve on things.

It’s unprecedented for a company to have this luxury: To be able to pause the infinite loop and concentrate entirely on making the current feature set work better. In the large part, working better means running faster. It also means adding new frameworks and paradigms to allow future features to be built on a firm foundation. They’re improving the underpinnings of the OS. You can think of it like Verizon’s FIOS project. Customers might not see a huge benefit today, but by replacing their copper infrastructure with fiber-optic, they’re enabling future technologies. Similarly, Apple is building a powerful new infrastructure for the future of the platform. Competitors are going to be left with crackly old wiring.

A winning strategy

Clearly, I’m very excited by this strategy. By taking a whole engineering cycle to focus on enhancements and create performance-improving technologies, Apple is going to move so far ahead of competition that the competition might never be able to recover. They’re going to skunk the competition.

Concentrating on performance improvements isn’t something new for Apple. I haven’t verified this scientifically, but from personal experience, upgrading to Leopard actually results in a speed boost for things like boot time and application launch time. This comes as a surprise to many people. We just assume that a newer OS will require a faster machine and say things like: “I’m not sure my old laptop can handle Leopard.” In fact, Leopard is a faster operating system than its predecessors. Upgrading will actually result in a performance increase.

The things I saw this week at WWDC made my eyes bug out. They’re determined to squeeze every last cycle out of the CPU (and the GPU for that matter), constantly asking the question “How can we make this faster?”. I imagine a big banner, a la Office Space, hanging above the cubicle farm in Cupertino. Another important focus is enabling 3rd party developers to easily (or even automatically) benefit from these new technologies.

With each normal development cycle, performance might move up by some small amount. (In the competition’s case, it might actually go down.) In the Snow Leopard release, it’s going to make a huge jump.

Putting all your cores in one basket

While every shipping Mac is now a multi-core machine, programming languages and application architectures have not kept up in a way that allows developers to easily take full advantage. Until now, efficiently and properly taking advantage of all available cores has been a tricky and error-prone process even for the most brilliant of engineers. Snow Leopard will solve this problem in many ways, with new language features, and a new operation paradigm which shifts the burden of threaded programming away from the developer and into the capable hands of the OS.

Who needs so many bits?

For developers, moving to 64-bit is a cheerless and time consuming process, made even worse by the fact that consumers will not even notice an immediate difference. Apple is going to do it in Snow Leopard because they know it will make things better over the long run. It’s like getting your wisdom teeth removed when they’re not yet causing any discomfort. It’s going to need to happen at some point, and better to do it now when you can schedule a convenient time for the procedure. You won’t feel better right afterwards. In fact, for a short period of time afterwards you’ll feel worse. But once you’re recovered, you’ll be glad you did it. Apple’s investing in a healthy future. Competitors are going to end up wearing braces.

As hip as a software engineer

I love that Apple doesn’t try to use the current buzzwords and trendy technologies. They could be trying to generate investor excitement with things like XML and social networking, but they’re not. Instead they’re putting lay-people to sleep with things like OpenCL and gigaflops. It’s as if they’ve put the developers in charge and everyone else is out to lunch.

Way to go Apple. Power to the Programmers!

WWDC: The Gathering

Friday, June 13th, 2008

Once a year, Apple hosts the Worldwide Developers Conference in San Francisco. This year there are 5000+ developers here. A lot of developers wonder if going to WWDC is a good use of time and money. The short answer is that this is the event of the year for Apple developers and it should not be missed.

Just as important as the sessions, lectures and labs is meeting and hanging out with the people who have gathered here. The first WWDC I attended in 2005 was my initiation into the Apple dev community… I didn’t know a sole. I started working on Ecamm full-time shortly afterwards and now, three years later, I’ve met so many great people both here and at other events that I can hardly turn a corner without seeing a familiar face.

I know I’ll see many of them later this year at C4, some of them at MacWorld in January, and probably all of them next year at WWDC 2009.

Thanks to everyone for a great week!

iPhone SDK first thoughts

Thursday, March 6th, 2008

furniture BulgariaI haven’t even downloaded the SDK yet, but many of my questions can be answered from simply reading the documentation and license agreement.

1) How does File System access work?

From the FAQ:

How do I write information locally?
You can write to your application’s local storage area.

From the Agreement:

An Application may write data on a device only to the Application’s designated container area, except as otherwise specified by Apple.

??????So each application is sand-boxed. You cannot modify data from another application; for example, to edit the Notepad database, access iTunes media, etc.

2) What is Apple’s policy on using undocumented frameworks, classes or functions?

The SDK is great, but us developers have already reverse engineered the iPhone and know the iPhone OS inside and out. Can we still use routines we know about?

From the Agreement:

Applications may only use Published APIs in the manner prescribed by Apple and must not use or call any unpublished or private APIs.
??????

You are only allowed to do what is specified in the SDK manual. Anything else is completely off limits. Imagine if they had this rule on the Mac, just how stable things would be ;)

3) How picky will Apple be about UI design?

From the Agreement:
Applications must comply with the Human Interface Guidelines and other Documentation provided by Apple.

We are sorry to inform you that your app has been declined for inclusion in the App Store. Reason: Your app scored a 4.3 for Aesthetic Integrity. An Aesthetic Integrity score of 5 or higher is required. Please try again later.

4) What’s the problem with having to get your apps approved by Apple?

You have to play by their rules. Kind of takes some of the fun out of it.

Sneak Preview: iPhoneCam

Saturday, January 12th, 2008

Abstract:

Use your iPhone’s camera as a wireless Mac webcam! Stream video over Wi-Fi to any Mac video application such as iChat, Photo Booth or Skype.
meekus.jpg
Some History:

After the C4 Iron Coder contest where we made the video conferencing iPhone app, we put down our iPhones and got back to writing Mac software for the rest of year. Nobody knew, and we still don’t know, what the future of these iPhone apps would and will hold.

Last week I had a strange urge to get back on the iPhone again and solve some problems that had left us stumped this summer. More specifically, I wanted to get streaming video from the camera. (If you remember our video demo at C4, the frame rate was quite low. This was because, under the strict time limit of the conferece, we weren’t able to grab from the camera any faster than a frame or two per second.)

Meet iPhoneCam:

clipping
Click to download a recording of an iChat video conference where I demo it to Glen.

I figured it out: Now we can stream at up to 30 fps. My proof-of-concept is an iPhone app which streams video over Wi-Fi to a video driver component on the Mac. This way, you can use the iPhone’s camera stream in any Mac video program like iChat, Photo Booth or Skype.

Using iChatUSBCam (so that iChat can see non-iSight video sources), I did a video conference with Glen to show him how it looks. He recorded it with Conference Recorder so that we could share it on the blog. You can download a demo video here.

But I haven’t gotten to the clever bit yet.

The Clever Bit:

bonjourThe iPhone app and the Mac component find each other using Bonjour (zeroconf). There’s absolutely no configuration necessary. If there’s an iPhone-based camera available, the Mac finds it and uses it automatically. Glen had the idea to see if Bonjour could be used, and we noticed that IDMResearch had already provided a nice wrapper around CFNetService.

FAA: (Frequently Answered Answers)

A: No, it only streams video.

A: No, it’s only for Mac users.

A: iPhoneCam is not yet available to download. We’ll have something for folks to try soon. Stop by our booth at MacWorld Expo and maybe we can give you a live demo!

Meet us a MacWorld, Get Free Stuff

Monday, January 7th, 2008

The whole Ecamm team is going to be exhibiting at MacWorld ‘08. If you’re going to be at MacWorld, be sure to come by the booth and meet Glen, Midori, and myself. If you’re not going to MacWorld, consider it! This is the Mac enthusiast’s event of the year.

Shuffles!We’re doing a really fun promotion all week: Stop by at any time during the expo and instantly win cool prizes. Prizes include iPod Shuffles and completely free copies of our (not usually free) software. So come and win a copy of DockStar, iGlasses, iPhoneDrive, CardRaider, or if you’re lucky, an iPod!

We’ll also be demoing our software, showing off our iMage cameras, giving a sneak peak at the very new, improved and the never-before seen Huckleberry 3.

We’ll also have various iPhones and iTouches available, showing off some cool new iPhone hacks we’re working on, and for anyone who wants to see a demo of our other iPhone projects.


  • on viagra
  • prescription for viagra
  • where to buy viagra on line
  • buy propecia online
  • online viagra pharmacy
  • order viagra
  • buy generic viagra
  • tadalafil cialis