Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 570

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /home/martingo/martingordon.org/blog/wp-includes/wp-db.php on line 306

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/cache.php on line 103

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /home/martingo/martingordon.org/blog/wp-includes/cache.php on line 431

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/query.php on line 61

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/theme.php on line 1109

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /home/martingo/martingordon.org/blog/wp-includes/class.wp-dependencies.php on line 31

Strict Standards: Redefining already defined constructor for class WP_Http in /home/martingo/martingordon.org/blog/wp-includes/http.php on line 61

Strict Standards: Non-static method unfancy_quote::init() should not be called statically in /home/martingo/martingordon.org/blog/wp-content/plugins/sem-unfancy-quote/sem-unfancy-quote.php on line 55
<br /> <b>Strict Standards</b>: call_user_func_array() expects parameter 1 to be a valid callback, non-static method unfancy_quote::strip_quotes() should not be called statically in <b>/home/martingo/martingordon.org/blog/wp-includes/plugin.php</b> on line <b>166</b><br /> Martin Gordon's Blog / 2007 / August

On The iPhone Not Being IE4 and How iPhone Web Apps (Still) Suck

Scott Gilbertson of Wired writes on how the iPhone is breeding the next generation of IE4-only web sites in the context of iPhone-optimized sites:

In suggesting that developers use the web to build iPhone applications, what Apple has done (perhaps inadvertently, perhaps not) is force the creation of a subset of the mobile web that only works with the iPhone’s unique features — namely the touch-screen interface.

While Apple is pushing HTML and JavaScript for iPhone app development, they aren't (inadvertently or not) forcing the creation of sites that only work with the touch screen. In fact, I recall reading (correct me if I'm wrong) that the iPhone browser doesn't even support draggin or hovers/mouseovers. There's very little in the way of iPhone-only features (only a few CSS attributes and the tel:/map: protocol for dialing and Google Mapping, as I recall) and so the only way sites are being iPhone-optimized are that they're being dumbed down for the device, thanks to a lack of support for Flash and some JavaScript events (and possibly more). Furthermore, most iPhone-optimized sites are extensions of existing sites. There's no killer app for the internet out there that we're all missing out on because it only runs on the iPhone; hell, there isn't even a web-based killer app out for the iPhone (and I saw this as a launch day iPhone owner).

To be honest, I find all these iPhone-optimized web sites to be completely garbage. This stems largely from one thing: the sites are attempting to mimic Apple's native UI. Of course, the web apps have two huge disadvantage when compared to Apple's apps: they're loading data over a (potentially) slow data connection and JavaScript performance is atrocious on the iPhone.

For something I truly wanted to use heavily, I would go out of my to find a mobile, but not iPhone-optimized, site to use over its iPhone-optimized brethren. The two big winners in the mobile but not iPhone-optimized category are Google Reader and Twitter. I use both daily primarily because they're lightweight (prettier, slower competitors to both are out there). The most recent loser: Facebook – and I'm sure there are many others, but I stopped using them so long ago I can't even remember any of them.

The shoddy state of the mobile web being what it is, I went and jailbroke my iPhone last week, allowing for third-party apps to be installed. It was fairly straightforward, though I had to piece together instructions from a handful of websites to actually get it done. Tonight's release of the Mobile Twitterrific proof-of-concept also spurred me to get the iPhone development toolchain installed. Also, fairly straightforward except for finding out what the hell a "heavenly dmg" was (it's an unencrypted version of the iPhone restore image). There's nothing absolutely must-have out there yet, but it's only a matter of time. You don't really get a sense of how powerful and extensible the iPhone really is (or could be) until you've run a terminal on it or ssh'ed and sftp'ed in.

Technorati Tags: , , , , , , , , , ,

Facebook Tackles Spammin' Apps

This came across the Facebook developers feed tonight and through a message to members of the Facebook Developers group:

Over the last few weeks we have noticed several developers misleading our users into clicking on links, adding applications and taking actions. While the majority of developers are doing the right thing and playing by the rules, a few aren’t – and are creating spam as a result. Going forward, if you are deceptively notifying users or tricking them into taking actions that they wouldn’t have otherwise taken, we will start blocking these notifications. The bottom line is that if the notifications you send are the result of a genuine action by a Facebook user and that action is truthfully reported to the recipient so they can make an informed decision, you should have no problems. If you do find some notifications blocked, it was probably because this wasn’t the case and we will be happy to inform you of some best practices by other developers that have prevented this issue.

If you've been blocked by us for deceptive notifications, the error message you will see is - 200 Permissions Error.

Thanks,

The Facebook Platform Team

I'm glad they're doing something about it, because I was just about to write how I hate the (formerly) growing trend of apps posting notifications like, "so-and-so has posted on your Advanced Wall, click here to read" or "Click here to see what so-and-so said about you". I'm glad they're tackling this issue now so that Facebook doesn't become a MySpace-like spam-infested wasteland.

Technorati Tags: , , , , ,