- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
iPhone: Using Pre-processor Directives for Device Testing

There may be cases where a certain setting needs to be tweaked based on whether you test on the device or simulator. It took me a while to find the pre-processor directive to detect whether or not the current build targets the iPhone device or the simulator, but with a bit of searching through the GTM code, I found everything I needed in "TargetConditionals.h". An obvious place, in retrospect, but I wasn't able to find this information easily elsewhere on the web, so I mention it here in case you find it useful.
Here's an example of how I've used it:
#if TARGET_CPU_ARM // Device will hit external server over cell network NSString const *ROOT_URL = @"http://www.external-site.com"; #else // Simulator will hit local server over LAN NSString const *ROOT_URL = @"http://localhost:8667"; #endif
This kind of tweaking is particularly important when the device itself can not participate on the local network, but needs to access some kind of external environment (or proxy server). Conversely, targeting the simulator to use a local 'development' server is often faster when deploying and debugging issues in your application, particularly if you are developing the server component in tandem.
Another example involved certain audio playback features which work fine on the device, but run into hiccups running on the simulator. Since in this case the functionality is not critical to test, I ignore it in the simulator.
Everything’s Coming Up Windows
I've been beating the drum of cloud computing and the advantage that it gives to companies building solutions on Linux. Microsoft needed to respond. Well, now we have two solutions for Windows on demand:
- Amazon EC2 is offering Windows on EC2, with the pricing at $0.125 per hour for a small instance running Windows Server (as compared to $0.10 for a Linux instance). You can run SQL Server Express at no extra charge. The SQL Server Standard smallest instance (Stadard Large) rings in at $1.10 per hour, however, which ain't such a good deal.
- Microsoft's Azure Services Platform. It's still in community evaluation mode, but there is one thing that is already clear about it: it's as confusing as all git out. One of the advantages of Amazon's services like S3 and EC2 is that they are simple and can form the building blocks for other applications and services.
If I'm provisioning a web application, I'm pretty comfortable thinking in terms of virtual servers or instances. Not sure how to think about scaling and cost with Azure. I think MS would have done better to start out with a KISS approach to drive adoption. Time will tell if their "it can cure cancer" approach will work out.
Will Q4 iPhone Sales Surpass Expectations?
I went to the AT&T store on Friday to buy another testing phone for our developers, who are busily churning out more iPhone applications, and to switch one of my cell lines over from T-Mobile to my iPhone. It was an interesting experience, with T-Mobile's very friendly and courteous customer service reps pitching me strongly on the G phone, and my service getting switched over in the middle of a business call. I asked the AT&T store manager what percentage of their sales were iPhones, and after a bit of thought, he said about 65%.
Granted, that's only one location, but based on all of the annecdotal evidence I have, as well as how well the T-Mobile folks were trained to deal with the iPhone switch (not only on my request, but on my wife's similar call last week) I am expecting some pretty strong numbers form Apple tomorrow.
I'm also expecting decent G phone numbers for Q4, but I'm not sure how well they'll hold up later.
Update: It looks like Apple's Q4 iPhone sales topped 6.9 million, about 800,000 units more than RIM's 6.1 million in the equivalent period, beating most analyst expectations by a mile.
Interesting discussion on this over at Daring Fireball (of course) as well as a piece on Fortune on traditional analysts versus bloggers on Apple sales and earnings. The bloggers got the iPhone numbers better than the analysts, but everyone missed on mac sales.
Microsoft to Jump on Board EC2
Hold on to your hats; Microsoft has just made a radical change in business model. A couple of months ago I wrote about the competitive advantage that firms using Linux and Amazon's EC2 cloud computing had over their competitors.
Server-on-demand providers like Amazon's EC2, Joyent,
and others have reduced the capital necessary to launch scalable,
server intensive businesses. Google has just launched a similar
on-demand service, and companies like RightScale and CohesiveFT are building mature businesses around managing EC2 configurations....
Facebook applications are just the most extreme example of business initiatives that can be scaled on demand from $70/month on one EC2 server to $10,000/month on many dozens of servers running web, application and database server clusters and farms. Compare that with the old school of investing in a large data center with a significant fraction of the hardware and bandwidth that you might need if your business is a success. What used to cost $100k in capital can now be done with just a few hundreds of dollars.
...
And it's all possible as long as you are using a unix variant - Linux for the most part - to power your apps. So there is a whole class of companies out there using Linux that can out compete their Windows-using rivals - again, the capital they need to launch is much smaller because of cloud computing. That means Linux will win among the class of young entrepreneurial businesses that are so vital to the US economy.
“Build half a product, not a half-assed product” - tips on clarity and focus from Jason Fried of 37Signals
Jason Fried from 37Signals spoke yesterday at the ITA "Speaking of Success" event, about the history of 37Signals, their philosophy and culture, and the critical business decisions they've made to get them where they are today.
The software biz is fundamentally broken. Too many products fail because of the obsession of adding more and more, and trying to do too much.
Jason went on to say that the approach of adding more and more only works for companies that have lots of money and lots of time, but that for the average company the main goal should be to build something that is "good enough," get it out to the users, and improve the design based on their feedback. The challenge of which features to include, and which to say "No" to, is covered well in the "The Innovator's Dilemma," which he said "everyone in this room should have read." The book resonates the core philosophy of 37Signals, which is evident from their blogs, their book "Getting Real," and the design of the Rails framework. As an example of the "Good Enough" philosophy, Jason used his laptop and its basic webcam to stream the Q&A session out over justin.tv and send out a text to the 37signals Twitter group. "The quality probably isn't that great, but its good enough," and with that quick setup he had now broadened the audience by 1,000 users or so. (I searched for the video archive at justin.tv, but didn't find it yet.)
Betting Your Business on the iPhone
Monopsony - the market condition that exists when there is only one buyer.
We all have heard the term "monopoly" and even know a little bit of what it means - a market where there is only one seller. But the related term "monopsony," a market where there is only one buyer, is not as well known and it's dangers not as well understood.
Certainly both monopolies and monopsonies will reduce competition, innovation and consumer choice, but they further constitute a big risk for the sellers. For businesses on the seller side a monopsony can be the kiss of death. Just ask Walmart's suppliers how good it's been for them.
Not all monopsonies are as obvious or as overtly damaging to suppliers as that of Walmart, but Apple's iPhone and iTunes appstore looks like a benign monopsony. A monopsony in that although the iphone consumer is the ultimate buyer, Apple determines what is permitted in it's appstore, and benign in the fact that Apple hasn't flexed that restrictive muscle more than a few times.
Startups, Software and the Vision Thing
If you can dream it, you can do it.
-- Walt Disney
You have a great idea, an idea that is going to transform an industry. You've turned a venture capitalist's head with your presentation and now you just need a software development firm to translate your vision into reality. This is where the trouble starts.
If you move in startup VC circles, you see enough of these deals go sideways or never get off the dime. Investors see hundreds of thousands or millions of dollars plowed into software development without a usable product or service coming to light. Fingers are pointed; tears are shed. For every success there are a half dozen failures. Why is that?
In my experience it all comes back to that word, "vision" as in "translate your vision into reality." What the heck is vision? If you've ever cracked a book on software project management (or just general project management), there's usually a section about having a project charter and a vision statement. As a young developer I would wince and turn to the next chapter. After all, I thought, isn't vision the same thing as what you're going to build? Isn't scope or, more basically, a list of things your are going to build, the same thing as "vision?" Why blather on in consultant speak about vision statements when a more concrete and practical project description could be had?
Big Changes Underway at LinkedIn for Groups
LinkedIn has made several significant changes along the way. The changes that are underway now are in regard to Groups. In the past, members have been able to join as many groups as they want. I’ve found it’s a great way to reach out to people and explore areas of common interest, since the group logos generally appear on your profile. If you are logged in, when you view someone else’s profile it shows you the groups you have in common with that person.
The changes underway with groups have some positive and negative attributes. First, as a negative, LinkedIn is imposing a cap of 50 groups that any member can belong to. Changes have already started but effective 9/12/2008 if you haven’t already reduced the number of groups down to 50 LinkedIn will do it for you based on the sequence of when you originally joined various groups. While 50 may sound like a lot to some people, I was in 1,351 groups and deciding which groups to keep has been difficult, especially since I initiated and sponsored over 10 groups myself.
On the positive side groups will now have the ability within LinkedIn to support discussion groups, blogs. That means for a lot of groups you won’t need a Yahoo Group or something akin to that as a base and although the feature set may be more limited you’ll have tighter integration. Another negative is that LinkedIn could ultimately control your group since they control membership in LinkedIn. Stay tuned for updates as to how this is progressing.
If you haven't experienced what's available in terms of groups from LinkedIn, here's a way to check it out. Groups are free to join and when you perform a LinkedIn search, you can specifically search within specific groups. Support Chicago’s 2016 Olympic bid by clicking the link below and Joining the Chicago 2016 LinkedIn Supporters Group:
http://www.linkedin.com/e/gis/54811
Topics: LinkedIn, Social Networking
That’s “Tyre” with a “Y”
The self licking ice cream cone that is blog awards has dripped on Agile Ajax. We've gotten a nod from Computer Weekly for the IT Blog Awards 08 as one of the best programming and development blogs. Funny thing, it's a list for the UK, and we've got offices in Chicago and New York.
To curry favor with the voters, we'll start blogging about tyre's and setting colour in CSS. What is it they say? Two peoples divided by a common language?
Anyhow, the self licking ice cream cone part. Go and vote for your favorite. Unfortunately, since we didn't make the short list, you can't stuff the ballot box for us.
Topics: awards
Google Health and the Changing Landscape of Healthcare Analytics
Google is at it again. Entire industries have sprung up around their search engine, adwords/adsense universe, and now they are set to do the same thing with healthcare data.
One of the major barriers to entry for companies offering services around processing healthcare data has been access to data. Who has the data? Typically the insurance companies. At least they have it in the kind of quantities that makes doing serious data analysis worthwhile. Managed care organizations are in second place, but from there you get to piddling amounts quickly. As you move from the heavily consolidated payer end of the industry to the heavily fragmented provider end, the comprehensive data view of the patient is balkanized to the point of uselessness.
This data problem even effects the valuation of companies. I've seen healthcare analytics companies that provide services to hospitals and clinics valued at less than $10 million, while another company that provides the exact same services to insurance firms is valued at ten times that price. Here, as in all things, follow the money.
Continue reading »
Topics: Google, Healthcare, Web 2.0
Agile Business, Microsoft and the Threat of Cloud Computing
Competition is the keen cutting edge of business, always shaving away at costs.
-- Henry Ford
I've been working with Java and Microsoft technologies -- .NET most recently -- in one form or another for quite some time. My company, now headquartered in Chicago with an office in NYC, was actually founded in Seattle by a group of four developers that had met around developing an Exchange-based bulk email system to replace the sendmail-based ones that Microsoft was using at the time. In that span, despite all of the food fights about total cost of ownership (TCO), etc., I haven't seen any evidence that Linux, Windows, Mac, Java, .NET, etc., puts you at a significant business advantage one way or the other. Until now.
Topics: Agile Development, Analysis, Editorial, Open Source
About Pathfinder
Recent
- Firefox Plugin Malware ‘Trojan.PWS.ChromeInject.A’
- Pathfinder releases version 1 of the its Flash Platform microsite (codename Mica)
- Pimp my Rails: Five Plugins & Gems to Make Rails Better
- iPhone: Using Pre-processor Directives for Device Testing
- Subtle OpenGL Projection Matrix Difference Between iPhone Simulator and Device
- App Security: Throw Out the Org Chart!
- Pimp my jQuery: Five plugins to replace the features Prototype and Scriptaculous users expect
- Thanksgiving 2008: What We’re Thankful For (In Rails)
- iPhone SDK: Testing with TextMate & GTM
- GWTQuery - JQuery-like Syntax in GWT
Archives
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006




