Wednesday, July 25, 2012

We could not complete your purchase

I have a lightly used Core 2 Duo MacBook that I thought I'd upgrade to Mountain Lion, but I encountered an unexpected issue in the App Store: "We could not complete your purchase. OS X Mountain Lion is not compatible with this computer."

Requirements: "OS X 10.6.8 or later"

About This Mac says "Mac OS X Version 10.6.8"

How did Tim know that I didn't need this and should be doing something productive?

Friday, July 20, 2012

WSAEMFILE

The error code exists so it should be interesting, right?  I wanted to force this error for Apache httpd on Windows (7 in my case), so I thought I'd create sockets in the child until it failed, then free up the last n of those so that the server could basically work but occasionally encounter socket handle limits under controlled load.  I really didn't expect this:

[Fri Jul 20 10:28:09.269300 2012] [mpm_winnt:crit] [pid 4540:tid 444] (OS 10055)An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.  : error on last socket create request, after creating 1328724

I was able to successfully create 1.3 million AF_INET/SOCK_STREAM sockets before encountering WSAENOBUFS. So much for trivially forcing a real WSAEMFILE error... If I understand a few web resources correctly, there's no socket handle limit other than limitations on resources associated with the socket.

Thursday, July 5, 2012

Woo hoo! Compilers is done

Earlier this week, after a Friday-Monday a.m. heads down stint, I finished the last programming assignment — MIPS code generation for the Cool language — for Coursera's Compilers class.  Just now I finished taking the final, so I'm DONE.  What a relief!

The last programming assignment was great fun.  At the point that "Hello, world" actually ran on the MIPS emulator I started using the grading script and its testcases to identify the next bug or feature to implement.  The first run was 0 points out of 63 possible, and getting more than 1 or 2 points took quite a few hours :)   As I slowly filled in the implementation, each time I passed another testcase I ran around the house and high-fived anyone home. Finally, fixing a bug with calculating dispatch table offsets for overridden methods brought the score to 63/63 and I was done.  (No one will ever look at that blatantly unrefactored code I hope.)

Now, on to those things I'm behind on :)