Browsed by
Author: Alan

Software Development on the Mac

Software Development on the Mac

I'm starting some mac development. I'm reading "Programming in Objective-C" by Stephen Kochan. I also have "Cocoa Applications" by Simson Garfinkel & Michael Mahoney.

One way I justified buying a Mac Mini for Jane was the possibility of being able to do Mac development on it. It comes with all the development tools necessary. So hear I am.

I'll keep a log of my experience as a first time developer on OS X and post the most interesting comments on my blog.

GUI development on the mac vs the PC

Understanding XP

Understanding XP

James Shore, an Agile Programming proponent writes:

Understanding XP

Mock dialog: "In my last company, we didn’t have any structure at all. People just
did what they felt was right. That worked okay when we were starting
out, but after a few years we started having terrible problems with
quality. We were always under the gun to meet deadlines, and we were
constantly running into surprises that prevented us from releasing on
time. Here, although we’re still able to do what we think is right,
there’s enough structure for everyone to understand what’s going on and
make constant progress."

Self-Documenting Code

Simplicity is in the eye of the beholder.  It doesn’t matter much if you
think the design is simple; if the rest of your team can’t understand
it, or if future maintainers of your software find it too complicated,
then it is.

Code Abstractions

Code Abstractions

Jeff states In his post Respecting Abstractions, that abstraction is good and you don’t always have to know how things work under the covers.

While no abstraction is perfect– you may need to dip your toes into
layers below the Framework from time to time– arguing that you must
have detailed knowledge of the layer under the abstraction to be
competent is counterproductive. While I don’t deny that knowledge of
the layers is critical for troubleshooting, we should respect the abstractions and spend most of our efforts fixing the leaks instead of bypassing

Eric writes about the .NET Abstraction Pile

This is what programmers do.  We build piles of abstractions.  We

design our own abstractions and then pile them up on top of layers we got from

somebody else.  Abstractions can be great.  We use them because they

save us a lot of time.  But abstractions can also cause lots of

problems.

Both posts refer to Joel’s essay "The Law of Leaky Abstractions".

One reason the law of leaky abstractions is problematic is that it
means that abstractions do not really simplify our lives as much as
they were meant to.

Dependency avoidance in code

Dependency avoidance in code

Jeff writes:

I’m not against dependencies. Everything software developers do is one giant string of dependencies. I’m a pragmatist. Strive to make your dependency stack as small as you possibly can.

If you take dependency avoidance too far you might get the Lava Flow anti-pattern:

As we delved into it, we interviewed many of the developers concerning
certain components of the massive pages of code printed out for us.
Over and over again we got the same answer, "I don’t know what that
class is for, it was written before I got here." We gradually realized
that between 30 and 50%
of the actual code comprising this complex system was not understood or
documented by any one currently working on it. Furthermore, as we
analyzed it, we learned that the questionable code really served no
purpose in the current system, rather it was mostly there from previous
attempts or approached by long-gone developers. The current staff,
while very bright, was loath to modify or delete code that they didn’t
write or didn’t know what it did for fear of breaking something and not
knowing why or how to fix it.

Native UI vs Cross-platform UI

Native UI vs Cross-platform UI

In his post "Non-Native UI Sucks" Jeff states:

When two applications with rough feature parity compete, the application with
the native UI will win. Every time. If you truly want to win the hearts and
minds of your users, you go to the metal and take full advantage of the native
UI.

I'm not even sure the native application has to be at parity with a competitor to win.

I also agree with Jeff's comments about the Java UI. UGGG-LYYYYYY. And SLOW.  Never met a Java app I didn't hate.

Too much technology

Too much technology

If I needed proof I have too much technology in my home, my 10 year old made it crystal clear this evening. Cassidy wanted to watch a TV show in my office on our Samsung.  I have it set to cycle through the High-Definition stations only with the antenna setting set to over the air.  You have to switch the antenna setting to Cable to get all the stations available in our other rooms that are connected to our basic cable.  Anyway, she couldn’t find the station she wanted.  She DID know how to use the XBOX360 connected to the Samsung to access  Windows Media Center on my PC.  So she fired THAT up, selected My TV and promptly began streaming Live TV from the PC (with a TV tuner card) to the XBOX so she can watch it on our HDTV which is also connected to cable! Caramba!

HDTV: The Facts and Fiction of 1080p

HDTV: The Facts and Fiction of 1080p

The Facts and Fiction of 1080p

What is better, 720p or 1080i? This has been a topic of discussion for
a long time. If only taking into account the technical aspects, the
answer is simple. 720p is better than 1080i.

720p is better than 1080i in HDTV because the highest 1080 line formats
(1080i60 and 1080p30) as defined in the ATSC standard, deliver only a
few more pixels per second than the highest 720p variant (720p60).

1080i delivers a higher quality visual when static images are
broadcasted. As soon as you have fast changes in the visuals, 720p look
as good or better than 1080i.

Is 1080p essential?  Not really.  If you already own an HDTV, don’t feel that you’ve thrown your money out the window.   
Moving forward, getting a 1080p display that can accept 1080p signals
will be crucial for enjoying next-generation DVD movies and games at
their maximum resolution.

1080p is supported on the XBOX with this XBOX software upgrade.  I don’t have anything that outputs 1080p.  I would have to purchase a HD-DVD drive and game or movies created for 1080p.  My TV doesn’t even support 1080p.  Something to look forward to with my second HDTV purchase!