To upgrade MacPorts use: sudo port -Ru upgrade outdated
Monthly Archive for July, 2007
I just read Jeff Atwood’s post about the sorry state of software installation on OSX. I couldn’t agree more. Since I switched months ago, this is just about the only thing I have found to truly hate about the Mac.
But Jeff didn’t even mention half of the problem: un-installation. Because of the Mac’s drag-and-drop install philosophy, there is no control panel or other UI which answers the question, “What the hell is installed on this thing anyway?” This leads to 3rd party solutions like AppZapper — what a mess!
Apple should solve the install process forever, in the grand tradition of Apple innovation, by ripping off someone else’s idea. If you’re going to steal, steal from the best. In this case, there are much better sources of inspiration than Windows. Apple could completely leap-frog Microsoft and adopt Debian’s fantastic APT system. For the uninitiated, here’s all you need to know:
apt-get update
apt-get upgrade
(Hint: every freaking piece of software installed on your machine is now up to date.)
All they’d have to do is slap a decent GUI around it and encourage developers to package and upload their software. I suppose they’d also want to add an iTunes-store like payment system, for that pesky commercial stuff.
Here’s my contribution to the lore of software development:
Any piece of software larger than a screenful is a steaming pile of crap.
Pessimistic, yes, but perhaps also liberating in a way. Think about it.
Update:
Apparently I’m not the only one with this sentiment.
The classic semantics of C/C++ volatile are: “Please Mr. Compiler do exactly the reads and writes I specify.” Consider the following program:
int x = 0;
void foo( int c )
{
while( --c )
x += c;
}
In this case x is just a regular integer, so the compiler is free to register allocate and thus generates this:
sub ecx, 1
je end ; zero-trip loop
mov eax, DWORD PTR x
looptop:
add eax, ecx
sub ecx, 1
jne looptop
mov DWORD PTR x, eax
end:
Notice how x is loaded before the loop begins, allocated to the register eax, and has its final value stored back to memory after the loop. Now let’s see what happens when x is qualified as volatile:
Continue reading ‘Surprising Effects of Volatile Qualifier’

Latest Comments
RSS