Archive for March, 2010

Is Apple Deprecating Itself Into A Hole? [Updated]

Update: This has nothing to do with Apple as this API was signaled for termination long ago.

Just had a hell of a time compiling Firefox 3.6.2 against the 10.6 SDK.

First, I forget to patch the sqlite3 bug (not sure why this is causing me problems as it was closed as fixed). Then after patching, a make clean didn’t get rid of enough cruft to let the build complete.

So starting from scratch and I get a new error I’ve never seen:

In file included from /Users/beetle/src/mozilla/toolkit/xre/nsSigHandlers.cpp:58:
/Developer/SDKs/MacOSX10.6.sdk/usr/include/ucontext.h:42:2: error: #error ucontext routines are deprecated, and require _XOPEN_SOURCE to be defined

And looking in /usr/include/ucontext.h, you see:

#else /* !_XOPEN_SOURCE */
#error ucontext routines are deprecated, and require _XOPEN_SOURCE to be defined
#endif /* _XOPEN_SOURCE */

This file has not been touched since Sep 30 of last year, so WTF. I usually do all my builds against 10.6, but someone asked me to do a 10.5 build so this issue JUST came up as of Firefox 3.6.2 (does not exist in 3.7, yet). Digging and diving a tad, I find that accelerometer controls are baked into 3.6.2 so this is probably what’s causing the problem.

Anyway, to fix this change the ucontext.h include to sys/ucontext.h like this (appears on lines 57-59 of toolkit/xre/nsSigHandlers.cpp):

#if defined(XP_MACOSX)
#include <ucontext.h>


#if defined(XP_MACOSX)
#include <sys/ucontext.h>

Things should be then be smashing, in the Austin Powers kind of way.

So who’s to blame? Mozilla takes the fall on this one, though this bug has already been fixed.

I’m on the bleeding edge here using not-publicly-available Apple dev tools (I’m in the Apple dev program, can’t say anything, NDA, sshhh).

Twitter: Fix These Three Things!

I could make this a list of a hundred things, but these three are really getting to me:

1) Get Straight Your Bulk Rules
Sites like Twitter Karma do not allow you to bulk unfollow because it’s against your terms of service, but they are allowed to bulk block! What do you think people are going to do? A) Click on each person, use the pulldown menu, unfollow or B) Bulk block. This does not make sense.

2) State Your Following Rules
The explanation you give for why you “are not allowed to follow more people at this time” is absurd. There is a link to Follow Limits And Best Practices Page, but it’s busted. And anyway, the rules have changed again over the past week and I’m yet to pin it down. The 24hr/1,000/1.1 ratio follow limit is no longer valid. Why do we have to guess at these things?

3) Delete Accounts
If an account is deleted, umm, I probably don’t want to follow it. I also don’t want to see it following other people (check list followers for an example).

Which brings me to another point….

Most people don’t know how to use lists. I get put on these follow-back lists, people follow the list, then message me about why I didn’t follow them back. You’re doing it wrong!

The Planet Sand Castle

The Planet Sand CastleI’ve been a long time fan of The Planet, the “Global IT Hosting Leader”, because they’ve always had outstanding service. They aren’t the cheapest out there, but in my experience they’re the most reliable.

Just one quick story, then I’ll get to the point. A couple years ago, a Sarasota news channel and paper were going to sit down with our startup and do an interview. The interview was scheduled for some time before I’m usually awake, no big deal, but on the day of, I get an escalation call from The Planet saying out main webserver is down. I immediately learn that our server had literally caught on fire and we were supposed to do this big interview where we planned to demo our website, IN HALF AN HOUR. To make this story short, the technicians were able to salvage our drives, swap chassis, and get new hardware back online within 15 minutes. We were able to demo our website just fine during the interview. It was an amazing coordination of effort that come together perfectly at the end.

Well, in setting up my next company, I looked to The Planet. By following their twitter stream, I found out about The Planet Sand Castle. In their words,

The first major hurdle for a software developer is finding the online space for new ideas to grow. The costs of rolling out and testing new software can be prohibitive, especially in uncertain economic times. The Planet is offering the developer community an economic stimulus of sorts to transform dreams into realities: The Planet Sand Castle.

I applied and within a week, I was in. I was initially given the mid level server, then at the last minute they bumped me up to the highest end server under the program (about a $500/mo. deal). Free! No strings attached! For a year!

The Planet also did something else pretty amazing under this program, they gave Rice University 50 servers for entrepreneurial research and development. Since I was one of the first into the program, I was asked for a quote for an article: Hosting Company Offers Free Servers to Developers.

I’m not a paid shill for The Planet, I actually purchased a year’s worth of service on my own dime for a different server days before all this happened (they wouldn’t even go beyond the lousy 6% yearly discount. I asked for a free t-shirt and I got a “lol” over the online support). I just think they offer superior services and I’m willing to pay for that.

Cashing Out

Another in my series of non-sequitur titles. I’m not cashing out of anything (wish I had a Ponzi scheme going or something)…

This is a follow-up to the last two posts. I’m going to combine 5 or 6 posts into this single one, so here goes:

1) Am I Selling Out On Twitter?
Talking to people over on Google Buzz cleared my mind on this topic. It all comes down to “if I feel OK posting something, go ahead and post it”. The giveaways and other promo looking things I post, I don’t get any cash for, I’m either trying to make my followers happy (so I get more) or I just genuinely like a product and want to promo it.

2) Hacking Google Buzz
I’m gonna wrap this together with Gaming Social Networks. Most social networks have APIs public and private that you can use with a fun, handy tool called cURL. So in certain cases, you can either a) use tcpflow and watch what is going over the wire or b) set up a local proxy and capture everything there. The local proxy helps quite a bit when uncovering iPhone APIs. I’ll leave it to the imagination, what you have to do next.

3) More Google Evilness
This is just a suspicion at this point and I don’t think I could ever find hard evidence so I’m not going into it. The gang at Google is not dumb so they wouldn’t leave things laying around in the open for people like me to find.

4) Why Chrome Sucks
Just going to list one reason here and shut my trap about the others. In OS X, open about 20 tabs in Chrome, use your machine doing other stuff for a couple hours and come back. Click to a different tab, it reloads because during those couple hours, Chrome decided to purge memory and unload that tab (same concept of memory management seen in Android OS). Since I use 20 tabs all the time, I just can’t deal with the loading/unloading. I’m also using the dev channel build so this may be different for mainstreamers.

5) Google Buzz Still Leaking Personal Info
Whenever you look at someone’s friends or followers, up to 10,000 user profiles are downloaded (even if you just want to see the first 10). In this JSON stream, you can see account aliases which more often than not are email addresses. I was able to see all of Jason Calacanis’ emails. I’m not sure if this has been fixed or not (haven’t been wading in the Buzz JSON stream lately).

6) The Holy Secret Of Compiling Mod_Python
And this goes for mod_wsgi as well. More often than not, you’re going to get some bs about not being able to move because it doesn’t exist. Why? Because the shared/static library it depends on doesn’t exist? Why? Because you don’t have the apr-utils installed. Why? Because you didn’t compile them when you built httpd. Why? Because it’s not obvious at all this is what you need to do.

And if you’re on RHEL, just install the httpd-dev RPM and all is good.

And if mod_python works, but everything you run gives you a 500 error, make sure python and httpd are using the same libexpat version (the ldd tool is handy for this). Even if it’s complaining about something super irrelevant, check that libexpat.

And if this doesn’t take the award for the most boring post on this blog, I don’t know what would.

Oh yeah, I’m adding my résumé to my about page. You can download the pdf here. Comments appreciated. And this doesn’t mean I’m on the market.

Follow Me On Twitter!

Down For The Count

This is a great image, by poopbear, of fictional vampires duking it out. There is no significance here, I’m not down, or out, or anything; just busy. Some topics that I’ve been meaning to write about:

  • Hacking Google Buzz
  • Google Buzz Still Leaking Personal Info
  • More Google Evilness
  • Why Chrome Sucks
  • The Holy Secret Of Compiling Mod_Python
  • Gaming Social Networks

These are just off the top of my head. I’ll write some of this stuff up soon, but if anyone is interested in something, let me know!

Follow Me On Twitter!