Things I hate about Zend Framework (a non-comprehensive list):
- Zend_Config
- Zend_Db
- Zend_Session_Namespace
- Zend_Application_Bootstrap_Bootstrap
- The fact that the Bootstrap has a Bootstrap
- Zend_Forms
- Action name CamelCase management
because a Reverend can't be wrong.
When I first jumped on Google+, there were a few things I really loved: refreshing aspects to the UI; a lack of limitations on post length and linking; circles concept; usage of existing web applications (YouTube, PicasaWeb/Picasa, Buzz) to tie services together.
But, mostly, I had complaints: no API; no exclusion based permissions; no RSS/ATOM feed; no integration with Twitter or Facebook; difficult to share only a handful of photos in an album; default stream is not customizable.
I knew I would still use the service because, even with those short comings, it felt better than anything else. But I honestly expected that Facebook would be the service that I gave up time with to spend, instead with Google+. That isn’t the case, though.
Instead, it seems that I’ve reduced my usage of Twitter. Sure, I still post there as my primary “microblogging” location. It feeds to Facebook, so they both get updated with the same content. I have to manually cross post to Google+ so, in that regard, some things just never make it there. And, if someone leaves a comment (or a mention, or a reply) on any service (Twitter, Facebook, whatever) I almost always read it and respond when appropriate. But when it comes to catching up with the updates of other people, I’m fully caught up on Google+ and Facebook, but I’m way, way, way behind on a regular basis when it comes to Twitter.
I think there are a few main reason for this. First, Twitter encourages content-less updates. 140 characters is just not enough. It’s good for a link with a little comment. It’s good for a quick update on an ongoing event, issue, or topic. But, in many cases, it’s just not long enough for a complete thought or idea. So most of the updates there are meaningless.
Secondly, Twitter doesn’t give you an easy way to ignore, hide, or mute someone while still following them. Yes, you can make a list and just read that list. But adding people and removing people from a list takes like a billion clicks. Too many. Compare to Google+: when I first add someone to a Circle I also add them to “Inbox”. If I find they are too noisy or not interesting enough to take time out of my regular reading intervals, I just take them out of “Inbox”. I can still catch up with them later when I check “Friends” or “Family” or whatever other group they fall into. And if they don’t fall into any other group, then there’s no reason to catch up on them. Facebook doesn’t give me that much flexibility without jumping through some UI hoops, but, at least I can quickly hit the “Hide” button and never see posts from that person again.
Ultimately, it’s the mobile interface that helps to keep me up to date. And with both Facebook and Google+ I can quickly get the list of updates that matter most to me. I can’t do that with Twitter and, therefore, it eventually becomes too much to keep up with, so I just start reading back at the top.
Also, one more interesting note is how much Circles have changed things for me. On Twitter, everything I write is Public. Which leaves me frightened to post anything too off the cuff for fear that it’ll come back to haunt me with such permanence. On Facebook, everything is “Friends Only” because it’s too hard to switch back and forth. Google+ is the only service where I have a nice mix of content going “Public”, “Extended Circles”, “Circles” and even individual circles for more “security”. It’s true that nothing on the web is “private” and I don’t expect it to be. But keeping some things out of the eyes of a would-be employer/client/future-father-in-law armed with Google Search is a good thing.
Hardware providers: listen up! Your users need data Synchronization, and you need them to have it. You lost the Desktop market to Laptops. Users were given very few good reasons to have both. Without Sync, you’re going to lose the Laptop market to Tablets and Smartphones. I know software isn’t your job. But if you don’t sponsor or otherwise encourage OS creators to build this it’s going to affect your bottom line.
In the beginning, there was the desktop, and it was good. Then came Laptops and Notebooks. At first, these were luxury items owned only by enthusiasts and business travelers. In almost every case, the user had a more powerful more useful Desktop at the home or office that they relied on as well. Over time, Laptops became more prolific.
Instead of Laptops augmenting the Desktop experience, eventually, the “Desktop Replacement” Laptop was created and highly sought after. In 2008, Laptop sales were greater than Desktop sales, and now there is no looking back. Only the power users and businesses remain as Desktop customers, and even those markets are starting to dwindle.
Part of this shift is due to the increase in available power at an affordable price in mobile computing platforms. Laptops could do more than they could in previous years and offered portability, many consumers were left wondering what they needed a desktop for at all. However, many Desktop users would have happily continued using both if they had an easy, built-in, fool-proof way to ensure that the media, documents, and settings they needed would be there regardless if they were using their Desktop or Laptop. But even today, 3 years after the scales tipped, this is not simple. Documents are getting easier, though not without added monthly fees that not every user is willing to pay. But media and settings are still a long way off.
Now Smartphones and Tablets are knocking on the Laptops front door. Netbooks blur the line a bit, but not for long. The newest versions of Microsoft Windows and Mac OSx are “touch ready”. Tablets and Smartphones are getting more and more powerful and more and more capable. Some analysts predict that mobile internet users will surpass desktop internet users somewhere in the middle of 2013.
So, hardware manufacturer, how can you keep as many Laptop users as possible, encouraging them to maintain both devices instead of trying to replace their Laptop with their Tablets and Smartphones? Sync.
Sync needs to be offered to the user as soon as a new device is detected. The user needs the option for automated synchronization that does smart things like always provide a happy combination of the newest media and the most often used media. Seamless remote access to additional media is the best way to ensure that, even if automated Sync made the wrong choice, the user can still get the files they want. All of the new cloud services make this easier on developers than ever before but can also be expensive for the user. If external services cannot be made free in most cases, then a service on the desktop should fill the gap.
The bottom line is, get Syncing, or lose customers.
Mobile phones have been doing Photo Caller ID since the day after mobile phones first got cameras. To know that even one of the major players in mobile phone operating system software gets this wrong is a tragedy. But to know that it is, in fact, all but one that get it wrong is almost unbelievable.
First, let’s point out the only OS to get it right: iPhone. Right out of the box iPhone displays your contact’s photo beautiful with no additional software required. It crops, resizes, scales, and gives you the best looking photo possible displayed very largely on the iPhone’s display.
Android tries. But it has quite a few issues. First of all, it only uses about 1/4 of the screen’s display to show the photo. Since there’s nothing useful on almost all of the remaining 3/4 of the display, why not fill the screen? Even worse, however, is when you activate your contacts for Google Sync. You see, almost everyone activates their contacts for Google Sync, because it’s easy and awesome. Except for when it comes to Photo Caller ID. You see the phone saves a nice large image to use for the Photo Caller ID. Even lets you crop it square yourself to decide what to show. Then your phone Syncs with Google. Well, Google only supports a 96×96 pixel image for a contact photo. So, when the sync is finished, that’s all you’re left with on your phone. The end result is that Android does the best it can to scale a puny little 96×96 pixel image up to fit the space reserved for contact photo display. You get a nasty looking, pixelated photo that barely resembles your contact at all.
Windows Mobile requires a 3rd party app to get this right. At least, however, once you have it it works well enough. Of course Windows Mobile is dead, so who cares.
Symbian Series 60 requires a 3rd party app as well. Lame.
When it comes to non smart phones, Nokia’s Series 40 is king. The phone does a pretty good job of displaying the photo in as much space as it can acquire. However, it doesn’t maintain aspect ratio, doesn’t give you the option to crop, and really only displays a chunk out of the center of the photo due to other onscreen display items being present. I’ve yet to find a template that shows exactly what size the image should be and which parts of it are completely obscured by onscreen text.
Can all the handset OS developers all just sit down and fix this problem already? And if someone has a template for Series 40 phones, can you send it my way so I don’t have to send myself 100 photos to reverse engineer it?
Less than a month ago, Google unleashed a new creature into the wild: Google Buzz. In an already crowded room full of social media giants, why would Google even bother? In part, because they are Google. Webmail already existed before google released gMail, and yet gMail has certainly taken its share. But also because Buzz is just unique enough to stand on its own.
Buzz is like Twitter in that it’s easy to use and by default open and public. It’s like Facebook in that you can share more than just a status update. It’s like Tumblr in that each of the different types of things you can share is formatted in a way best suited to it. It’s like Loopt in that you can publish your location as well.
It’s different than all of these in that it does these things in a way that is easy to understand, integrated with the gMail experience, very mobile capable, and built using a hybrid of open standards as up and coming protocols to tape it all together.
Will it let you do something that you couldn’t already do? Not exactly. Just like  gMail, it’s about making an existing experience better, not about making something altogether new. But, I’d argue that, even at one month old, it does a lot of things better already. Of course, it has some room for improvement too.
To understand what is better about it, you really have to try it. But it can be compared and contrasted with other services.
Take Twitter, for example. When it comes to making a status update, typing text into a box is typing text into a box. There’s no “better” or “worse” about it unless it can read our minds. Google hasn’t announced that feature, yet. However, Twitter was built around the age of the the text message, SMS. And while SMS is still widely used and isn’t going away anytime soon, smart and capable platforms (like iPhone, Android, and others) make SMS seem archaic in comparison. The 140 character limit of a Twitter status update is an example of this. As a PRO, Buzz has no such limitation. As a CON, however, Buzz is not capable of being delivered to your mobile handset by SMS.
The use off Twitter has sort of evolved though. It’s initial use case — a sort of global, opt in, mobile connected chat room — is no longer all it is used for. While it’s usage patterns have evolved, the service really hasn’t. People now include links, and hash tags with many of their Twitter updates. Even with URL shorteners getting shorter and shorter, a link takes up about 19 characters. Include a space separator, 5 characters for a hashtag, plus the hash and a separating space, and you’ve used up 27 characters leaving you only 113 to write commentary. This means that Twitter is being used less and less for new content and more and more for passing around content written somewhere else.
With its lack of character limitation, Buzz is better suited for sharing links and various media with commentary. Even without commentary, Buzz does a better job simply because, in Twitter, a link is still just a link. In Buzz, smart display features kick in to highlight photos, embed movies, and play audio.
Tumblr is an interesting service in that they were one of the first to realize that due to trending usage patterns, Twitter was, literally, dying for feature enhancements. They took the idea behind Twitter, stripped it of its SMS roots, and added new display features for the most commonly shared media types. They gave users the ability to embed and customize, tacked on comments and group blogs, and added features to allow for sharing and searching amongst one another. What was born was a beautiful, feature rich platform for sharing both thoughts and links to interesting things.
Tumblr pretty much stopped right there, but maybe that’s enough. As an engine for publishing short form thoughts and links, in a manner that allows you to express your own personality in look and feel, it is one of the best. Buzz doesn’t come close to the customization and embedding features Tumblr provides. And though Tumblr only allows two protocols for integration with other services, they are the most commonly used protocols: RSS and ATOM.
Since Tumblr, other services have come out with a slight twist on the feature set. The most notable of these is Posterous. While it lacks some of Tumblr’s customization and rebroadcasting features, it adds additional points of outgoing integration– Twitter, Facebook, and Flickr, to name a few. However, it doesn’t allow for any incoming service integration at all. And it’s preferred method of interaction is plain ole email. This means that there probably won’t be “an app for that” and you probably don’t need one.
Buzz’s greatest competition is Facebook. Compared with this social networking giant, the biggest differences are lock-in and open standards. Buzz relies, as often as possible, on open standards. This means that, as long as the site you wish to connect it to is using open standards, there is little to no learning curve or development required to get the two to integrate. Facebook, on the other hand, requires an application to be developed for it specifically suited to that integration task. The difference is subtle and, because of this, I’d argue that, right now, Buzz is closest to Facebook in it’s realized feature set.
Buzz has the strong, technical upper hand between the two in that it is more open and encourages interoperability. In fact, someone else could, tomorrow, invent a Buzz-alike service and, right out of the box, it would play nice with Buzz allowing content to flow back and forth between the two with little to no effort. Also, being integrated with gMail, Buzz has the potential of competing with Facebook’s user base. However, users, in the end, don’t care about this. What they care about is the answer to this question: who and what can I connect with RIGHT NOW? And, at least RIGHT NOW, between the two, Facebook wins.
But know this: Buzz is a force to be reckoned with. It doesn’t have everything right on the first pass. Not by a long shot. But if it continues to maintain technical superiority over Facebook, while adding new features implemented elsewhere (like Tumblr and Posterous and Twitter) and not currently present ion Facebook while maintaining its influx of users, it won’t be long before the two are neck and neck in who and what can be connected to. And at that point, Buzz might just take the lead.
To get a feel for some of these services, check me out there.
twitter: revjim (status updates)
twitter: revjimweb (automated updates from all my various blogs)
facebook:Â Facebook
tumblr:Â revjim
posterous: Now, Daniel! (status updates)
posterous: Life of Daniel (a log of interesting communication)
Google Profile
Google Buzz (all of my sites fed in along with some original content)
Location Sharing is a hot topic amongst mobile enthusiasts and social networking fiends. With new and improving services like FourSquare, Gowalla, Loopt, and Latitude, there are a lot of options.
Each of them has their own strengths and weaknesses from the Checkin-centric services like FourSquare and Gowalla, to the real-time location based services like Latitude, and hybrids like Loopt. But, in every case, one important feature is missing.
It’s nice to be able to let people know where you are. Real-time location provides that and, with tenacity on the part of your contacts, can even indicate if you is currently in transit. But if your friends don’t find out where you are until you get there, it often makes it difficult if not impossible to actually meet you there.
What these services lack is the ability to indicate the intent to arrive at a particular location and even an estimated arrival time. Instead of checking in at my local pizza place when I get there and finding my friends showing up just as I’m leaving, I should be able to, instead, check in my intent to go to that establishment at a certain time. Then my friends could contribute their mutual intents and then our paths would be highly more likely to collide.
A truly smart service could even indicate when a person was in transit and where they were in transit from based on either real GPS data or their last check in location.
I’m sure someone will build it. I’m just waiting to see who. Until then, I use Foursquare and Latitude, each with different purposes and neither really providing the most useful service.
A new protocol with a funny name, PubSubHubbub, is out in the wild, complete with a free-to-use implementation of the most difficult part, the hub itself. Instructions for use in wordpress are fairly straight forward.
So what does all this non-sense mean? If you happen to have a conforming RSS reader (like, say, Google Reader is now), or a service that understands this stuff (like, say, FriendFeed) then when a PubHubHubbub using website or feed updates, you can find out about it instantly, instead of having to poll for it. This means less network traffic and less work, with instantaneous updates. All the benefits of Twitter, LiveJournal, and Facebook, from the comfort of your own decentralized blogging engine.
Assuming I have all the bits in place. This should update my FriendFeed almost instantaneously. Let’s see.
Update: It works!
There is far too much bullshit on the Internet.
Too many of you assholes see something on the internet and think, “HEY! I can do that too! I’m gonna be fucking rich!”.
No, you can’t. And no, you’re not.
Just give up now before you litter my precious Internet with your crap. And before you start saying “but my idea is new and better and different”, just stop right there. It’s not new. There is nothing new. It’s all been done already. Yes, all of it. And it’s not better. It’s not even as good. Someone better looking, with more money and more time already did it. An no one wants different. We say we do, bit we’re lying. If you make something different, that just means it sucks that much more.
Save us all the trouble. Don’t clutter the Internet with your crap. Just give up now and go back to eating Cheetos and playing “Left For Dead” on an XBox that you didn’t and could never have invented.
These are my first impressions of the iPhone OS 3.0 versus Android 1.5.
I’ve been using Android for 3 months now and Android 1.5 for about 3 weeks.
I’ve only had 1 day with iPhone OS 3.0.
I’m running Android on a T-Mobile G1. I’m running iPhone OS on an iPod Touch 2G 8GB.
In comparison to iPhone hardware, I’m lacking the mobile network, the camera, and the built in microphone. Specwise, the Touch 2G is faster than the iPhone 2G and 3G but slower than the 3GS.
OnScreen Keyboard
iPhone
iPhone gets this right. The Android keyboard works, and even has some features that I prefer. For instance, when hitting “shift” the keys all change from upper to lowercase letters making it obvious if you are capitalizing or not. I also like that the word changes/choices appear above the keyboard (where my eyes are) and not up in the text (where my eyes only go sometimes). But, in the end, I can type A LOT faster on the iPhone keyboard and make fewer errors. And That’s only after 1 day of use. I’m sure, in time, I’ll get even better.
Physical Keyboard
Android
Since iPhone doesn’t have one, Android wins. If you want physical keys, then this is a good thing. If you don’t need them, then you don’t care. As it stands now, I can type faster on my physical Android keyboard than I can on the iPhone OnScreen keyboard. As I get better at iPhone, that may change.
Browser
iPhone
The iPhone Browser is FAST and easy to use. It still stalls now and then, but not nearly as often as Android. Plus the multi-touch hardware really excels here. Android seems able to display everything it can and in every case I tested it does so just as well in the end. But it typically takes longer to get there.
Photos
iPhone
Android photo browser sucks. It’s slow and complicated. Replacements available in the Market aren’t much better. iPhone is fast and easy, as it should be.
Mail
iPhone
Despite the fact that the Mail app on Android is native to gMail and that I use gMail, I still find the experience better on iPhone. Deleting and sorting mail is fast and easy. Despite the fact that some things I use are harder to get to, the speed of the app makes up for any difficulty.
Push Mail
Android-ish
My mail doesn’t seem to push at all on iPhone OS. But that may be because push only works with iPhone hardware and not with Touch hardware. Perhaps the mobile network is required for push? Regardless it doesn’t work. And Android does. But only for gMail.
Push / Pull
Android-ish
Android doesn’t implement Push. Individual apps do. Therefore, the apps must be running in the background to accept pushed content. When this happens, it typically works well, though each implementation is different. Other apps Pull content at regular intervals. This also works well but is more battery consuming, network consuming, and still requires the app to be running in the background.
iPhone has real Push. However, I’ve not seen many apps that use it. I tried AIM, because it was free and supported push. I found the Push interface to be obtrusive at best. I’m not sure if that method of operation is required or is simply how AIM chooses to implement it. Looking for other Push enabled apps to try.
I had hoped it would work similar to Android’s notification bar. A pushed message causes something to happen. Usually, a notification of sorts in a common place to inform the user of pending interaction. However, ideally, it would also allow for an action to take place without user interaction. For instance, Loopt might push a request for location. I don’t want to have to acknowledge that then fire up the app to update location. Ideally, the pushed notification would cause the update to happen and then the app to die. Apps requiring user interaction would notify in a common location and not with an annoying popup for each event. Then again, part of that may be AIM’s implementation. Perhaps all that I desire is possible and AIM just used it poorly.
General Use
iPhone
iPhone is smooth. Everything works almost exactly as expected with only a few caveats. On Android, when scrolling around on a webpage, for instance, I often accidentally click links. This never happens on iPhone. The UI programmers have put a lot of thought into when users are scrolling and when they are clicking and how to tell the two apart.
The same is true for all of the menus. Everything is fast, and pops, and is consistent with very few exceptions.
3rd Party Apps
iPhone-ish
iPhone has been around longer. There are lots of good solid apps available for iPhone. Especially in the “games” arena. It’s shocking, really. However, Android is catching up. And the Android apps that are available (General Use issues mentioned above aside) work just as good if not better (because of Push/Pull features) than the iPhone counterparts.
Hardware
iPhone
The iPod Touch screen is bigger and nicer looking. I don’t have a camera to compare or anything like that since I’m working with the Touch. The Touch is lighter than the G1 and I believe the iPhone is as well. It also feels more solid in the hand.
Development
Android
The Android SDK is free and available on Mac, Linux, or Windows. The iPhone SDK requires a membership and is only available on Mac. iPhone apps can only be distributed through the App Store, The same memebership for the SDK is required. Prices run $99-$299 depending on use. Android apps can be distributed outside of the Market. Placing an app in the Market requires a $25 developers membership.