Michael Primeaux

Parallel and Distributed Systems


Universal Frameworks for iOS

As of the time of this writing, Xcode does not offer a framework project to for Cocoa Touch (only Cocoa). Apple’s primary reasons behind this decision are security, performance, and memory footprint. As such Xcode limits iOS developers to the Static Library project type. Static libraries are quite cumbersome to work with since we must make compile-time decisions when working with the iOS Simulator or an iOS device. The iOS simulator on Mac OS X uses the i386 architecture whereas the iOS devices use either armv6 or armv7.

Read more...

Efficient Memory Usage in iOS

I wrote a post some time back on the value of singletons in a garbage collected language as an important component of scalability. The majority of my work these days targets Apple iOS devices and so a reduced memory footprint and overall memory management is not only fundamental but paramount. The use of singleton objects and an effective caching strategy are simple patterns to get you started.

Read more...

Apple WWDC 2011

I’ve attended the Apple WWDC for the past 4 years and it’s been nothing short of exciting each year. This year, event sold out in 10 hours and so I am fortunate to have a spot. In contrast to last year, the event sold out in approxiately 14 days. Steve Jobs delivered a very interesting keynote speech with features that in my opinion ensure Apple will continue to stay a few years ahead of all other mobile companies. It’s amazing to think how far we’ve come since my first 4 Macs, which were the Apple II, IIc, IIe, and IIGS. Ahhh…and let us not forget other microcomputers such as the Amiga, Commodore 64, and the earlier TRS-80 (also known as the “trash 80″). The TRS-80 was in fact technically my first personal computer.

Read more...

A Word on Elegance

What do I mean by elegance? Most software engineers equate elegance to efficiency. Still some equate elegance to robustness. Others choose correctness. All are variables in the equation of elegance. Many other variables exist and all are important.

Make no mistake, software is art. Some artists prefer oil on canvas as their medium. Others choose water color. As software design engineers (SDEs), we have chosen 1s and 0s to communicate our creative visions. Elegance must exist at each step in the engineering process and not only as an afterthought in the development phase. Elegance is the responsibility of each and every participant with accountability functioning as the enforcement point. Without accountability, chaos reigns. Accountability starts within.

Read more...

Fabric of a Distributed System

” It has been said that art is a collaboration between God and the artist, which works best when the artist contributes as little as possible; so too with designing distributed systems ” –Unknown

Try to imagine the strategic direction of distributed computing frameworks. Just for a moment transition into a state where you think of nothing and yet listen to everything. What key technologies (disruptive or otherwise) have we experienced over recent years?

Read more...

MethodImplOptions.Synchronized

Recent discussions with colleagues regarding use of MethodImplOptions.Synchronized prompted me to discuss its implications.

Let’s begin with formal documentation. The MethodImplOptions.Synchronized option “specifies that the method can be executed by only one thread at a time. Static methods lock on the type, while instance methods lock on the instance. Only one thread can execute in any of the instance functions and only one thread can execute in any of a class’s static functions”.

Read more...

Singletons in C#

In many ways software engineering strives to strike a balance between testability, scalability (and performance), execution logic and symmetry (in the case of distributed algorithms), and semantics (easily understood and usable) while remaining efficient in the use of system resources. In my opinion, these major variables are all of equal weighting; these define the elegance of a particular design.

For this discussion, I’d like to focus on two of the variables: testability and efficient use of system resources.

Read more...

Tribute to Honor Jim Gray

A dear friend and former colleague notified me of an upcoming event for Jim. From Werner Vogels‘ site:

On May 31 2008 a tribute will be held at UC Berkeley to honor Jim Gray, who went missing during a solo sailing trip in January of this year. Although Jim is listed as missing, and will be until 2011, a Tribute be held to honor him before too much time has passed. There are two parts to this event:

Read more...

Fiefdoms: Cause and Effect

I ran across a very good book titled The Fiefdom Syndrome, which discusses the cause and effect of fiefdoms.

“The fiefdom syndrome stems from the inclination of managers and employees to become fixated on their own activities, their own careers, their own territory or turf to the detriment of those around them.

People who create fiefdoms can become dangerously insular, losing perspective on what is happening in the world outside their own control. They also lose their ability to act consistently on behalf of the greater good, or in a way that enhances the effectiveness of the larger organization. They often resist new situations and change.

Read more...
Previous Page 2 of 3 Next Page