jessestay, Author at Stay N Alive - Page 26 of 105

Twitter’s @anywhere and Why it May Be Too Techie for Their Audience

In just one day, we’ll all be sitting in front of Ev Williams and Biz Stone as they announce Twitter’s new Facebook Connect competitor, @anywhere.  This is Twitter’s big statement in the developer ecosystem, stating that they are shifting from a script and backend-focused model of developer integration, to a very front-end, javascript-centered focus that centers around any brand or developer’s own site.  However, I’m worried that Twitter may actually be focusing too much on developers, considering their audience of large brands.

I wondered, just after @anywhere was announced at South-by-Soutwest in Austin, TX, how similar @anywhere would be to Facebook Connect.  Facebook Connect, a Javascript-focused set of libraries that sits on top of any website, enables just about any brand manager, marketer, or even developer from the new to the very advanced to simply copy and paste a piece of code and have it immediately create widgets that integrate tightly with the Facebook environment.  With Facebook Connect also comes a tag language, called FBML (I wrote the book for O’Reilly about it), which enables HTML-like tags to be placed anywhere on a website and also get similar functionality.  So basically, no Javascript knowledge is required.  Know how to write a little HTML?  You can integrate Facebook Connect into your website.  At least that’s the message Facebook wants to send to Marketers and Brand Managers (and it’s true how simple it is).

Twitter seems to have the same audience in mind for their @anywhere platform.  After just launching an Ad platform, you can bet more Enterprise features are about to be announced very likely at Twitter’s Chirp conference along with developer tie-ins to those features.  Twitter wants the brands just as bad as Facebook does.  Running a site that targets Brands, I know first hands that the Brands are where the money is.  Enterprise, and contractual relationships with big companies and brands is big money in this industry.  Twitter wants to be on each and every one of these major websites – that’s why they’re launching @anywhere.

I’m worried that Twitter is trying too much to please developers in this case though.  In a conversation I had with Ryan Sarver back in March, he asked what questions we had about @anywhere.  I asked if it would have an FBML-like tag syntax.  His answer surprised me:

“@Jesse think more @jquery than FBML 🙂 very developer-friendly”

I’m not going to say how, but I’ve been looking at some pieces of the @anywhere Javascript source recently and he’s right.  It’s a very jQuery-focused platform.  The problem with jQuery is no marketer or Brand manager in their right mind is going to want to touch it.  It’s too difficult to understand.  It’s going to take developers to convince the marketers, and I’m just not sure that’s the right approach.  Working with large organizations I know how it works – a marketer or product manager can’t get past the bureaucracy to bring a developer onto their project, so they try to do it themselves.  With Twitter’s jQuery approach, none of these guys will even try.

We’ll see what actually gets announced, but if I’m right, Twitter should really consider adding on a tag-based language on top of all of this.  Something that looks like HTML is going to be much simpler to understand than jQuery in the eyes of a marketer that just wants to try this stuff out.  I’m not sure this is the right approach, but we’ll see.

One good thing we can say about all this is that jQuery, as a framework, is going to have an amazing day in the sun on Wednesday.  Let’s hope they can get the developers to sell this to the big guys like they hope.

Twitter, Two Years Later and Nothing Has Changed

Last year, exactly 1 year yesterday in fact, I wrote an article reminding developers, while venting that we were in a constant state of being at Twitter’s mercy.  In the last year, Twitter has actually improved a lot in regards to stability – they attribute that to Unicorns.  I think it’s because they’ve hired a lot of good people over the last year.  Yet, the core problems of 2 years ago still exist, and you know what – I’m fine with it now.

http://qik.com/swfs/qikPlayer5.swf

Check out the interview (again) that Robert Scoble and I (mostly Robert) did with Ev Williams and Biz Stone almost exactly 2 years ago.  This was in response to Alex Payne writing a blog post calling Robert a “whale” and blaming Twitter’s scaling difficulties on that.  At the time I was also very concerned about the developer ecosystem, and that has not changed since.  Robert Scoble since has been replaced by pop-culture icons on Twitter’s suggested user list, and, as one of Twitter’s top promoters and even the top user for quite awhile, he was thrown under the rug by Twitter as well.

Here’s the thing though – as I said in my article yesterday, I have no problem with this.  Twitter is a business.  They have a core technology they need to build, and they’re going to continue building that to compete.  They even had auto follow for awhile – I competed, we provided a better service (and probably even had more users than Twitter using it), and Twitter eventually didn’t see the need to continue supporting it.  They’ve since replaced several other features my business offers.  We’ve continued to compete there as well.  They even asked me to remove specific features because it was not in their core interest.

At first I was dumbfounded at how I was being treated by Twitter.  I even left the service for a short while due to my disappointment.  Then I think I went into denial.  I’d continue making the same mistakes over and over, continuing to release features only to see Twitter replace them.  For some reason after each time I’d still get mad, complain, and the cycle would continue.  It wasn’t until this year that I’ve finally come to terms with all of this.  Yes, I have a service that relies on Twitter.  Yes, I have many features that risk getting replaced by Twitter.  No, I probably will never be acquired by Twitter, nor will any of my competitors.

I’m okay with that though.  I’ve provided some great services to many people and people actually pay for this stuff and like it.  We still provide the best stats of new and lost followers on Twitter.  We have some of the best filters on the planet for Twitter.  We have one of the best auto follow tools on the planet and have upheld our responsibility to keep Twitter clean in the process of doing that.  We’ll continue to improve these features and add new features in the future.  I started it – I can’t just quit until it’s all over and either someone acquires me, or Twitter completely puts me out of business.  I’ve come to complete terms with that, while at the same time I realize I need to come up with a core and move towards that as a focus.

I’ve been saying this over and over again on this blog over the past 2 years.  Twitter isn’t going to change their ways.  They’ll continue to compete.  They’ll continue to add features.  They’ll even buy one of your (or my) competitors.  That’s life.  And I’m okay with that.  I’ve been through this too many times to get mad any more.

One year from now I’m sure I’ll say the exact same thing I said this year, last, and the year before.  Twitter won’t change.  They’re a business, and they have to compete to stay alive.  It’s time we all start innovating, and let Twitter be Twitter.  The complaining, quite honestly, is getting old (I think I invented it).

It’s funny how Twitter gives us this reminder almost the exact same time every year, yet we all seem to think it’s news when it comes around.

What is Your Core?

In a typical Lego set, there is a core set of building blocks that make up the core of the object you are building.  My son just got a new Star Wars Tie fighter Lego set.  It relies on a few common objects, such as little flat Legos you might see in other sets, but overall, what you would see in this set would be much different than the core of Legos you would see in, say, a set to build a House, or even my 2 year old’s set of Duplos which builds just very simple objects geared towards people his age.  For a house set you will see more block-like structures.  For a Robot you may see more objects with holes in them, to accommodate for axles and gears.  For a plane you may see more flat structures for things like wings and a skinnier body.  In the end, you’re trying to build one core, unique object that is different than any of the other objects around it.

Too often I think entrepreneurs struggle to find out what their core is.  Social Networks should be ubiquitous.  Real time should be ubiquitous.  Open Standards should be ubiquitous. Search should be ubiquitous.  There are already companies out there that have these things as their core.  They’re the experts.  I think entrepreneurs and developers often get stuck (myself included) in this rut of fixing things the experts are already good at, rather than finding something new and innovative they can take ownership at.

There’s already a T-Shirt out there that says “Twitter destroyed my market segment, and all I got was this lousy T-shirt”.  Well, the reason that occurs is because developers are building core blocks that are already part of the Twitter core.  They are building something, the cockpit, the engine, the wheels, that were already destined to be replaced in the original scheme of things.  We developers like to see, and fix, the big picture – I know because I’m in the same boat (or ship?).  However, I think we need to be thinking bigger.  We need to be thinking about what our core is, not what’s missing from others’ cores.

When we talk about “filling holes”, I think the best position to be in is where others are filling the holes that you create.  You own the core that includes the missing parts.  The propellers of Twitter should be added to your core to make your airplane fly.  The Jet Engines of Facebook should be added to your core project to push it forward.  The wheels of Google should be added to your core project to get it off the ground.  But in the end, you still own the airplane.  You have control of the core.  All the other “cores” get to contribute back to your core to make it better.  Heck, you can even take pieces of your core and add it into the other existing cores to complement their space too – the power is you still own your space that way.

As you build new creations, think to yourself, am I contributing to others’ cores, or am I building the core that other cores can add their parts to and make better?  No one should be building another “social network” project.  No one should be building another “search engine” project.  The focus should be on the innovative creations we create, and how other “social networks” and “search engines” can make us better.  It should not be the other way around.

This is the “core” success story of the Building Block Web.  How are you letting Twitter or Facebook or Google make your core project better?

Getting Me to Share Your Posts

One of the things I like to do on my Twitter account is to share interesting articles around the web that I think would be interesting to my readers.  Such articles can be techy, geeky, mainstream, pop-culture, or anything I deem interesting.  Based on your retweets, I think you like it.  I had someone ask me the other day why I wasn’t sharing more of their posts.  It’s actually quite easy – I’d like to share how, and I’m pretty sure you can use this same technique on any other blogger that uses Google Reader.

I have a policy on Google Buzz – it’s the same policy I have on Twitter.  I follow everyone on Buzz who follows me.  The thing is that I think it’s even more powerful on Buzz because, just like Twitter, it gives me an opportunity to discover interesting people I may not have known about before.  For the spam, I have SocialToo for that.  However, with Buzz, for everyone I follow, I also see their Google Reader shares.  That means for every one of you that follows me on Buzz, if your content is interesting, I am very likely to discover your content that you share (that can even be your own blog posts!), and if I like it, that content goes straight to Twitter and Buzz.

So the secret is just to follow me on Buzz!  Yes, I hide many people in my Google Reader, so it’s important you share unique, and interesting posts.  Also, if I know you I’m also more likely to not hide your shares, so get involved in the conversation.  Comment on my shares, retweet my posts, reply to me, comment on my blog.  I read every single comment and try to respond where it makes sense.  As we have more discussions I get to know you better and I’m less likely to hide your content.

I hope that helps.  I don’t think the individual who asked me to share his content more is following me in Buzz.  I’m pretty sure I wouldn’t hide his content because I know him and I like his content.  The secret is to follow on Buzz, join the conversation, and I’ll very likely share your interesting shares on Twitter.  I think the same goes with anyone that uses Google Reader.  There’s a great opportunity here – I hope you use it.

You can follow me on Buzz over on my Google Profile.  Can’t wait to start seeing your shares!

Photo courtesy Creative Commons on Flickr.

Facebook’s Like Button for the Whole Internet – Here’s How it Works

Techcrunch today talked about a new “Like Button for the Whole Internet” which Facebook looks to be launching some time soon, and has been tested amongst several developers as they’ve been told.  What they didn’t mention is that you can access the code for this right now in the code to the latest open source Javascript SDK.  While it does not currently work in its current form, it is open for the entire public to see, and has been there for the last few months (along with a few other hints I’ll let you find).

Assuming the source of the new SDK (currently in alpha) remains the same, the XFBML button can be placed on any website on the internet, and it increments the number of likes when a user clicks on it.  By default it increments the likes for the current page, but there appears to also be the ability to specify a “permalink” attribute, along with a URL to another page.  It’s unclear if that will be changeable in the XFBML tag or not.  Also, a required “node_type” attribute that defaults to “page” can be set.  Lastly, an optional “page_url” can be set.  The XFBML tag loads content from /widgets/like.php (attributes of the XFBML tag get passed as attributes in the URL).  That URL appears to be disabled at the moment.

So it looks like the XFBML tag will look something like the following, and it will be part of Facebook’s widgets architecture:

Also of interest, Facebook has an entire tag library devoted to the new tag, like.js.  You can probably gain a little more info from that.  I can’t wait for them to turn on like.php so we can play with this.

My book, FBML Essentials, may just get a lot more interesting as Facebook prepares for their “OpenGraph API”, enabling any website to become its own Facebook Fan Page across the internet.  This is one of many tags I’ve seen that are very interesting – see if you can look through the code and find anything else that looks interesting like this.  I love being a developer. 🙂

Recurly Recurls Pricing – New Entrepreneurs Not Happy

Up until now I’ve been preparing a raving review about how much I love the recurring payment service, Recurly.  Previously, at simply a fraction of the price of each payment on the service, it was very simple for any entrepreneur to get set up with the service and have an out-of-the-box solution for recurring payments on any website.  Just today Recurly sent out a note to its beta customers stating they were changing that model, and rather than charging per transaction on either a percentage of revenue or the total number of subscribers (the lesser of the two), they would be switching to a flat-rate pricing model.  The pricing would increase based on the services you used rather than the number of transactions.  As a new entrepreneur, I’m horribly disappointed by this new plan.

Just today, Recurly’s CEO sent out a lengthy e-mail explaining the terms.  In the e-mail, Isaac Hall, CEO of Recurly, blamed the new pricing on their talks with entrepreneurs, claiming what entrepreneurs would “likely be paying”, and implying that for most of those they talked to this new pricing structure was more beneficial.  Unfortunately, I was not one of those he talked to, and evidently, nor was Damon Cortesi, another entrepreneur/developer and founder of UntitledStartup (where I learned about Recurly) who responded when I shared my disappointment on Twitter, “I agree re: the monthly fees. That’s a huge hit.”

“Our pricing is simple–we don’t get paid unless you get paid.” – the old slogan

The old pricing was simple – so simple they bragged, “Our pricing is simple–we don’t get paid until you get paid”.  It offered the option of a tiered pricing level where each tier represented a number of users with accounts on your system.  If you had more accounts, you paid more.  There was also a percentage model, where for each purchase a percentage of the pricing would be charged to the transaction – they claimed they would choose the best pricing model based on your number of transactions.  Unfortunately they must not have been getting paid enough.  The new plan is just 3 tiers – $49, $99, and $199/month.  The lower tier being a basic signup solution with no way to determine when users’ cards were declined and no way to whitelabel or do one-time transactions.  The middle layer adds API support and white-label support.  The final layer adds push notifications (for when cards are declined, subscriptions are canceled, etc), and one-time transaction support.

The old pricing model

For a budding entrepreneur trying to bootstrap his company with no guarantees as to whether that company will make any money at all, even $49/month is an expensive choice.  For someone like me who can’t guarantee the user will actually come back to the site after signing up through Recurly, or can’t guarantee the user’s card will be successful the second or third month in, I need the push notification support.  Currently even Paypal offers this on a per-transaction basis, and they provide one-time transaction support (which we’re using on SocialToo).  White label is also critical for maximum fulfillment (something that was next on my list for SocialToo).

However, at $199/month, I just can’t guarantee my sales will always be enough to cover that, pay for hosting (already near $1k/mo), cover maintenance, design, and other costs of supporting the site.  It’s simply too expensive for a site still in the early stages trying to build enough revenue to make something significant.  Considering most businesses are bootstrapped in this manner and not paid for through VC money, this may be something Recurly wants to reconsider.

So, considering, I am now forced to look back at my options and I will probably be considering implementing my own solution now through a service like Paypal or perhaps something native through Authorize.net or similar just like I’m doing on the one-time payments.  I really hope Recurly reconsiders on this.  Their previous plan made it so easy to set up a recurring payment plan it was the obvious choice.  I am stuck looking for more.

You can read the e-mail from the CEO of Recurly here.

Changing the World Quite Literally Through Social Media

The rumor is out – I thought I’d make it official.  This week I have started as the new Social Media Architect for The Church of Jesus Christ of Latter-day Saints.  In summary, I am in charge of the architecture and integration of Social Technologies for the Church.  I will be in charge of finding ways that make sense to integrate technologies such as Facebook Connect, the Twitter API, @Anywhere, OpenSocial, Google Buzz, Google Wave, FOAF, Google’s Social Graph APIs, OpenID, and just about any other Social technology you can think of in to the Church’s web properties.  This is quite a task!

The LDS Church (also called “the Mormons” by others) has some of the most visited websites on the internet.  I’ve talked about it before. As of now, LDS.org, the Church’s site for members of the Church, ranks at number 2,460 in Alexa rankings.  The Church has the largest database of genealogical information in the world.  The Church has one of the largest philanthropic organizations in the world, contributing significantly to the efforts in Haiti, Chile, and many other causes (you can donate over on the right).  The Church’s Relief Society is the largest non-profit womens organizations in the world, contributing to the welfare, support, and moral guidance and relief of women throughout the world.  The Church has a global audience, speaking just about every language you can think of, and the Church’s technology has to support that audience.

That’s why this is such an incredible opportunity.  Never in my life have I had the chance to support such a large, global audience in a way that could impact so many.  I see the use of Social Media enabling the Church to reach into areas and touch people in ways it was never able to do before.  I see Social Media enabling the Church to help more people, strengthen, and make the world a better place without boundary.  I will get to not only use Facebook and Twitter to help others benefit society, but on a global scale I’ll get to use Orkut, Hi5, Bebo, and other global networks, and find ways to deeply integrate these technologies into the work the Church is doing, on a global scale and to a mass audience.

Will this affect my business, SocialToo?  I anticipate not.  I am taking a leap of faith here for something I feel has an even greater effect to change the world, but my intention is to continue running SocialToo part-time (at least).  As it needs more attention we will see where things go at that point.  I don’t anticipate anything changing on SocialToo, and I also expect some really amazing new features, new partnerships, and more to appear, even while I am fulfilling my position at the LDS Church.

“I don’t like X about the LDS Church” — I don’t intend to respond to many of these comments, and if they’re persistent I may remove or block them – IMO they are irrelevant to the position I hold.  I am responsible solely for the Social Media-related technologies of the Church, nothing else.  Any post here I make in representation of that position will be technology focused, not Church Policy focused.  I’ve made it clear my intentions are to make the world a better place with this position.  It doesn’t matter what your personal beliefs or motivations are – I think we’re all in this purpose together, and IMO, that’s what matters most.  I hope you can support me in this.  I hope to work for better standards in the realm of Genealogy.  I hope to work for better, more friendly International standards, and better ways people can communicate globally in different languages.  I hope what I do can change the poverty levels, and the welfare of the world through technology.  That is my purpose.

There is no better job where I can “do no evil” better than in what I’m doing now.  This is something where I feel I can truly make a change for the better.  Will it help my faith, my religion? You bet!  What I’m most excited though is the effect this position will have on the world.  My faith and my religion are entirely centered around that, and my hope is that I have an effect on this more than anything else.

Have any questions? Please don’t hesitate to ask in the comments and elsewhere.  I’m very happy, as always, to answer questions and discuss these matters and my beliefs in the Church especially.  You can definitely expect much more from me on some of the related technologies we’re working on as I am able.  I’m excited to where this leads!  There is something very powerful about Social Media technologies and the potential they have to change the world.

As always, the content of this post and any other post on this blog are my own opinions, not the reflections of my employer, nor an official statement on my faith or religion.  Any comment or post outside official LDS Channels are my own opinion and views.

Google Re-Enables Adsense on RSS Feeds in Buzz

Some time in the last hour or two it appears that the Google Buzz team has re-enabled AdSense ads in RSS Feeds in Google Buzz.  Recently I wrote about this, criticizing the service for stripping out ads a blog author was including and importing into Google Buzz.  This included both RSS feeds directly imported into Google Buzz and those shared via Google Reader.  I argued this was a violation of the authors’ copyrights and their intended method of content distribution.

Google responded quickly, saying they had confirmed the problem, and expected to have it resolved “within the week”.  Apparently they meant a month, but I’m glad it’s fixed.  As both a book author and blogger, I always hate to see my content being modified in ways I had not agreed to.  It is a strict violation of authors’ copyright, and not to mention “evil” in a way.  It’s nice to see Google recognizes that and has fixed the problem.

If all goes well, if you visit my Google Buzz profile, you should see an ad now, right below this text.  Are you seeing the same?

Facebook Kills More Spammy Apps With New Policy Changes

A common technique used by developers to promote their apps very quickly on Facebook has been to tag all of a user’s friends in a photo.  I’ve complained about this before.  If you visit my Facebook Profile and look at the “photos of Jesse” section you’ll notice a few of these.  They’re usually a single image with a bunch of peoples’ photos, saying something like “people who have visited your profile”, or “your top friends”.  Often they’ll add a link in the comments back to the app to get more installs.  Just now, Facebook announced they’re trying to put an end to this practice with the introduction of new policies to their platform.

The most significant change involves this method of spamming a user’s friends through the photo tagging feature in the API.  Previously, any developer could take a list of a user’s friends without the user’s permission and tag them all on behalf of that user, to get their attention. As of today that’s no more – now developers must explicitely ask the user’s permission for each friend individually before tagging them in a photo on their behalf.  This significantly reduces the potential spamminess of this API call, and I’m sure many people will see much less of this photo spam in their inbox.

The second big change Facebook is enforcing involves the number of spammy wall posts you may be receiving on your Facebook wall.  Right now if you visit my Facebook wall you’ll notice several apps have posted there.  Most of these apps have not been given my permission to do so, but, because I’m friends with the individual that used the app, I’m subject to it sharing to my wall.  Much of this was due to the ability for developers to present a list of multiple friends at the same time that a user could select from and post to their wall.  The app would say something like, “post to 10 friends’ walls and get 10 points towards your garden”, the user would be encouraged to spam their friends, and more spam would appear on the walls of those users.

Now, Facebook is requiring developers to only invite one friend at a time.  No longer will users be able to select from a list of multiple at a time to spam their friends.  Also, users must explicitly have approved the app to publish that entry.  I expect much less spam will result.

Of course, all of this is dependent on Facebook’s enforcement of the measures, but Facebook is known to be pretty good at this.  Even as a developer, I welcome the new rules and the potential of a cleaner Facebook.  Let’s hope this improves the overall environment.

Geeky: PHP Client Library That Works With the New Facebook Javascript SDK

Occasionally I write more geeky posts that I don’t expect all my readers to understand.  I’m going to start prefacing those with “Geeky:” so you can know to ignore them in the future.  This is obviously one of those, so if the title doesn’t make sense to you, I don’t blame you for skipping over it all.

I have started playing recently with Facebook’s new Open Source Javascript Client Libraries.  It has actually been quite fun to work with, in that they separate all the code out in a manner that’s easy to access, read, and understand how it works.  Also, if I ever choose, I can host the Javascript files themselves on my own servers and reduce that potential failure point were Facebook’s servers to go down. (granted, you’re still relying on the Facebook API for them to work fully)  I can also contribute to the source in the event I feel something might work better (via my own Github fork).

One problem I’ve come across with the new libraries is that they have simplified the Javascript session cookies so that rather than 5 or 6 separate cookies all getting set and needing to be parsed on the client in order to identify the authorized user, only one cookie is set, and can be parsed using simple URI string parsing functions. This is actually a bonus in that there is less work to be done to authorize the user.  However, it means any old server-side clients that parse those cookies the old way will also need to be modified.  If you don’t modify your server-side client library to recognize the new cookies, your libraries will not be able to authenticate or authorize the user properly.

I needed a solution for the server side that worked well with the new format.  The specific code I’m writing is in PHP so it made sense to go with Facebook’s default PHP libraries, and I created a version of facebook.php that worked with the new Javascript SDK.  To set it up is simple – just take this file, unzip it, and replace the facebook.php in your default PHP Facebook client library install with the one you just unzipped.

Unfortunately, the file isn’t backwards compatible, so you will need to choose between either the new Open Source Javascript SDK or the old Facebook Javascript Client libraries.  This is because if you use the new Javascript SDK when you log the user out it only deletes the new format of session cookie.  Your PHP Client Libraries will set the old format if you don’t replace them with the version above.

There may still be a way to make all this backwards compatible, but for my purposes I haven’t had need to look into it.  Also, I’ve only tested this for my own use-cases, so there may be bugs.  Please send me a patch if you find any bugs and I’ll update my own version of the file.  As soon as it’s possible hopefully we can get this into the Facebook version as well.  I’m going to also update the Github Wiki for the new Javascript SDK so others can benefit.

Let me know if anything needs to be updated.  You can download the zipped facebook.php file here.