Archive for May, 2007

Happy Birthday Matti!

Today is my mom’s birthday!

New Photo Album

A new photo album for Memorial Day weekend is up. Check it out here or on the Photos page.

WWDC Excitement

For those who don’t know what WWDC is, this post will not make any sense. So, I will explain it, and then give you a link to go to to additional information if it so pleases you.WWDC stands for “World Wide Developers Conference” as is Apple’s massive conference for their developers. Its a week in San Francisco filled with presentations on the latest technologies of Apple’s operating system Mac OS X, and allows people who write software for the Mac to come, listen, learn, explore, ask questions, talk to us engineers, and such.The nice part about the conference for Apple engineers is that we get to go the conference if we sign up to run lab sessions (times when developers can come and ask questions). So we get to go the conference for free. However, there are rules for us, and they are rather clear: the developers who pay their thousands to come to the conference as the kings and queens, and we are basically janitors. That means that we get last dibs on getting into presentations. So if I really wanted to go to a presentation on “Performance Tuning Applications in Leopard”, for example, and it was full, I wouldn’t be able to get in.Though obviously I get to go to the lab sessions I am running, or rather helping at. Those labs are:

  • General Developer Lab
  • Developer Tools Lab: Code-level assistance for Xcode, GCC, and Interface Builder.
  • Performance Tuning Lab: Code-level assistance for tuning performance of OS X applications with Xray, Shark, and D-Trace
  • Cocoa Bindings in Practice: Getting Started: Cocoa bindings is a collection of technologies that provide a means of keeping model and view values synchronized in your application. This encompasses how to create a more consistent user interface with less code, and how to refactor your code to leverage built-in classes.
  • Cocoa Bindings in Practice: Advanced: Receiving help on the most difficult Cocoa bindings problems.

But, most of the time, Apple employees get into sessions, and so there are a few sessions that I am really excited for. I am just going to paste the description from the WWDC website so you can get idea what these sessions are.

  • Building Animated Cocoa User Interfaces: Delight your users with dynamic, responsive user interfaces. In Leopard, standard AppKit NSViews can be rendered and animated using Core Animation. Learn how to combine familiar Cocoa controls, views, and event handling with the power of Core Animation layers to create stunning user interfaces.
  • Cocoa Drawing Techniques: The options available to the artistically-minded Cocoa developer have multiplied over the past few years. Learn about the appropriate use of NSImage, CGImage, CIImage, CGLayerRef, CG transparency layers, CoreAnimation, NSImageRep, NSCustomImageRep and more. We will also discuss HiDPI drawing and Cocoa’s resolution-independent architecture.
  • Coding Smarter with Objective-C 2.0: Learn more about Objective-C 2.0 and how you can take advantage of it in your own applications. You’ll receive an introductory, hands-on primer to properties, fast enumeration, and common garbage collection design patterns. Gain a deep appreciation for how Objective-C 2.0 will help you write better, more maintainable, and more concise code
  • Creating Leading-edge 2D Graphics with Quartz: Quartz is the high-performance 2D graphics system at the heart of the Aqua user experience. See how to directly access the Quartz 2D APIs to handle even the most advanced vector or bitmap drawing needs. Learn the fundamentals of the drawing model and how to use advanced rendering features to create high-quality 2D graphics. A key session for all application developers interested in creating more compelling 2D graphics in their application.
  • Getting Started Performance Tuning with Shark: Shark is very powerful, yet easy-to-use tool for discovering where your application is spending its time. Learn practical ways to find performance bottlenecks, obtain tips on optimization, and understand how your software interacts with the system. Gain an understanding of how Shark can help your application perform at its best in today’s multi-core, 64-bit world.
  • Getting Started with Mac OS X Kernel Programming: If you are new to Mac OS X kernel programming, attend this session to learn about the basics of the kernel architecture, building kernel extensions, and use of the kernel programming interfaces (KPIs) for maintaining release-to-release binary compatibility.
  • Making Your Custom Controls, Icons, and Artwork Resolution Independent: If your application uses custom controls or artwork, make this session a top priority. Modern displays vary in size and pixels per inch. Find out how to design a rich, scalable user interface for your application. The session will discuss guidelines for revising icons and artwork, new functions to adopt, testing strategies, performance concerns, as well as common problems and solutions.
  • Getting Started with Core Data: Core Data provides an infrastructure that manages model object graphs and object persistence. Learn how to use Core Data to define your application’s data model, access it from your code, and handle undo, redo, and data persistence. Find out how you can use Core Data to create high-performance, feature-rich applications.
  • Optimizing Your Core Data Application: Learn how to make your Core Data application perform as well as it can. Discover how you can use new APIs in Leopard to create your own store type, and how you can fetch managed objects more efficiently, or avoid fetching them entirely. Find out how you can optimize the managed object model itself for a particular problem domain, and use multi-threading to maximize the responsiveness of application.
  • Partitioning Your Cocoa Application: Multithreading and multiprocessing are powerful techniques you can use to improve your Cocoa application. Find out why and how to separate an application into independent pieces, and ensure those pieces interact smoothly. This is a good opportunity to build on your knowledge of multithreading and interprocess communication.
  • Tracing Software Behavior with DTrace: Get an introduction to DTrace, the popular open source project that Apple has optimized for and integrated into Mac OS X. DTrace is embedded in the core of Leopard, underpinning many analysis instruments in the new Xray application. Learn how to directly interact with DTrace from the command line to observe the runtime behavior of an application, the kernel, or the entire system to gain valuable insight.
  • Using Advanced Objective-C 2.0 Features: Gain advanced insight into using properties in threaded applications, implementing fast enumeration in your own classes, and designing rock-solid applications with garbage collection. This session builds on the concepts introduced in Coding Smarter with Objective-C 2.0.

So obviously I probably can’t go to all of these, but I will try to get to as many I can. It will be a busy week, with lots to learn. I’m pumped!

Movie Review: Pirates of the Caribbean 3

I just spent $12 to go see Pirates of the Caribbean 3: At World’s End with some of the Apple interns. I wanted to be social, to branch out and not be a complete and utter hermit. After two hours and 45 minutes of film, I left.Actually, I fled. I think that the movie is one of the worst films I have ever seen, if not the worst. The movie had 15 different stories lines (literally, look it up), and none of them really got resolved. It was drawn-out, boring, confusing, stupid, cliche, and terribly implemented. OK, the visual effects and music (go Hans Zimmer) were ok, but everything else was utterly horrendous. I do not recommend that you waste your time to see the movie, but rather that you save the money, buy some popcorn, and watch a movie that your love at home. Pirates of the Caribbean 3 did not deserve to be made, watched, or enjoyed. (wow, that was pretty harsh).Kevin’s movie rating:

Shouldn’t have been made

Movie Rating Key:

  1. Best movie I have ever seen
  2. Pretty good
  3. I would watch it again
  4. Good, but only time I am seeing it
  5. Disappointing
  6. Not very good
  7. Horrendous
  8. Shouldn’t have been made

The George Family

When I was at MPPC (Menlo Park Presbyterian Church) last Sunday, I inquired to the Help Desk about families that lived in Cupertino who might be able to give a poor and car-less college intern a ride to church. This week, I got an answer. The George’s. On Tuesday or so, I received an email from Catherine George, welcoming me to the bay area and informing me that they would be my ride to church on Sunday.So Sunday came, and I waited just outside the Aviare gate for them to pick me up at 8:50. At 8:55, a Honda Odyssey arrived carrying Nathan and Catherine George, and there three children: Lawrence (11), Dougie (9), and Luke (6). And as they rolled down the window to say hello, I was greeted by the strong warmth of a British accent. They were 10 month newbies to the Bay area from the Horsham England. OK, I admit, I think it was Horsham. Basically, it was south England. Catherine and Nathan both run a ministry that sells products made in the slums of the world to Americans of all walks of life. It’s an incredible industry, and currently booming too.As soon as a child can walk, a soccer ball is placed in front of him. So, of course, all of the George boys were incredible soccer players. After church, we grabbed lunch at then headed to the park to join other church goers. It was a big church picnic in the park. After the typical small talk and chatter, Luke and Dougie challenged me to a game of football (soccer for us Americans). They destroyed me. I don’t even think I ever got the ball. I would run towards one of them, their feet would become a blur, and the ball would pass between my legs into the goal before I had a chance. Smashing.So for the next 12 weeks, the George’s will be my ride to church, and more than that, they will be friends that make my life for exciting, more interesting, and certainly more enjoyable on many levels.See my latest album in the Photos section

First week at Apple

I have completed my first week here in Cupertino, can you believe it has been that short amount of time? One week ago, my dad and I flew into San Jose, and a week later, I have been introduced to the culture of Apple and of its surrounding California sprawl.Has it been a good week? Of course. It has been an incredible week. I have had the chance to meet, to talk to, and to begin to develop friendships with the inventors of software that I use everyday. They have begun to teach me, to share what they know. It’s incredible. This summer is all about learning. Its all about knowing the fact that the person in the office next to me is the creator of Xcode, and the guy down the hall, he wrote Objective-C, and two floors directly above me sits the CEO of a company that has changed many of our lives. In this week, I have begun that learning experience. I actually am writing it all down, however I cannot publish it till Leopard gets released at WWDC in June because of the “confidential information” my blog page will contain.Thanks again for all those who are praying for me and supporting me. Your prayers are felt.One week down, hopefully many more to go.

New photo albums

Some new photo albums are up.

Aperture : Photo necessity

10,000 pictures finally organized.When Apple first released iLife, their suite of digital lifestyle applications, it included iPhoto, a very easy to use photo management tool. As iLife grew, the application grew too. However, it did not grow in one significant area: levels of organization. iPhoto only allows two layers of organization: your whole library and albums. So, if I wanted to organize all my Christmas photographs, for example, I would have to place them all in separate albums called “Christmas 2001″, “Christmas 2002″, and so on. Also, albums do not hold the master versions of the images themselves, they only store references to the images in the whole library. So you can have the same photo in multiple albums. There is a major drawback to the two levels of organization: where are my master images? On iPhoto’s back-end, images are handled by when they were imported (or added) to the library. The problem here is that every time you move computers with your library, or rebuild your library, you get one import group with your entire library: say 3,000 images. While most users never care about this, there are those who move their iPhoto library to other applications who do.When the Apple Aperture team visited U of I this spring, I went to get information on the Professional-grade industry standard photo organizational tool. I did not realize, till I arrived, that they would be giving me a free copy. “Yes,” I thought,” I can finally organize my photos the right way. Aperture is like the Photoshop of photo organization. It does everything you could ever imagine, and more. It works with RAW like you would work with a text file: fast and easy. It also handles virtually every file format, and allows you to do some adjustments to those images too (like brightness, exposure, color balance, levels, color replacement, and other stuff) with their very well done adjustments palette. The best part I find about Aperture is its levels of organization. Guess how many levels it has? Infinite. It’s awesome.So I imported my iPhoto library into Aperture to begin the process of really organizing my photos, and placing the masters where I want them, and where I need them. After a couple months of all that work, tonight I finally finished organizing all 10,000 of them. Because of that, I will be putting up pictures much more frequently, especially past pictures.You can see a picture of Aperture at work here.

First day at Apple

I apologize for not posting yesterday, we did not have internet temporarily.Today was the first day working at Apple. It was a day mostly filled with orientations and introductions (both with man and machine). In the morning was the four hour orientation, including mostly paperwork and them telling us that if we told anything to anyone about what we are doing, then they would kill us. So… I probably will never be able to tell you about what happens in my day, except big things like, “I went to work.” Sorry.After orientation, we met our manager and our team for lunch. They are really cool, and there is only a few of them (I am the sixth person on the team). The cafeteria is really good, a certain break from dorm food. After lunch I got a tour of my department (the Developer Technologies division), and met lots of people. Then my manager and I took a walk about the campus and talked shop before he showed me my cube. OK, it’s a cube, yes, but it has a huge window, and it is really open. The walls are only like 3 feet high, and it is really not bad at all. I actually think it is better than most of the offices (most people have offices, I saw like maybe three other cubes). Then I got to configure my workstation, and get all setup with accounts and such. I then spent the next two hours learning about my team, and the way IB (Interface Builder) does stuff. And we ended the day with the 4 o’clock coffee run.It was a good day, and Apple is a great company. It really is a good company. I don’t think it is just my love for Apple here, but just knowing more about the company. Apple rocks, and I am excited to be a part of it this summer.See my workspace here.

The first full day

Today was the first full day in California. We spent the morning at church: Menlo Park Presbyterian Church. It is really a cool church. The people are extremely nice, and John Ortberg (the pastor), is phenomenal. He is engaging, friendly, funny, but most importantly, he has content, and he uses the Bible! That, unfortunately, seems to be something a lot of pastors do not do these days. But the church cares about following the will of the Lord, and making an impact in the Bay Area.The rest of the day was spent with our friends the Docters, who live in Piedmont (just to the east of San Francisco). We drove up there, and spent a couple hours hanging at their house. They have decorated it so cool, and made their backyard a Jungle Cruise thing like in Disneyland, planting banana trees and bamboo. It is so cool. Then we headed into the city for dinner at a Vietnamese place. It was really good! But the Docters are great people, and fun to be with.A good first day in California.This post has an accompanying photo album