Category: Web


Facebook’s New Niche

In the midst of Facebook’s widly-discussed UI changes this week, one new feature fell through the cracks: the Timeline (currently only in developer beta, but you can be involved by following these steps).

Timeline

This new Timeline feature solves a major UI problem that Facebook has been plagued by – the disorganization of each user’s content. The previously-separate Wall, Info, Photos, and so on have all been combined into a single, centralized profile page. But the timeline goes beyond that. In displaying your entire Facebook activity over time, it also allows you to add “life events”, from achievements to medical events to anything, really.

By now, you’ve probably realized that these features don’t just show your entire Facebook activity – they’re meant to show your entire life.

(Note: Sure, this situation is interesting in terms of privacy, but let’s just assume that people will be willing to share the events of their lives. So far, they have been pretty willing.)

The main thing going for Facebook here is how much information they have. Besides sharing information, users give Facebook a ton of personal data. They’ve finally started using this data for more than just targeted advertising; for example, the timeline has a map page that tracks your activity, intersecting place information with status updates and more.

Life-tracking might be Facebook’s niche. Google+’s focus is sharing, not identity creation. In terms of user identity, G+ certainly aims to consolidate your web activity under one profile. But Facebook doesn’t have the web – instead, they combine activity on their site (status updates, photos, places, and now app activity via Open Graph) with the life events you input. In a way, Google+ and Facebook aren’t currently competing in that realm, although Google might certainly try to follow Facebook. If anyone could do something like that best, it would be Google, specifically because of how much we rely on their services in our lives and how much information we have about ourselves on the web.

Hopefully, this timeline feature won’t be treated as just another annoying Facebook redesign. It has the potential to change the way we approach the Internet and collect our online identities. Facebook has been making dumb moves lately – but this might be their killer app.

Generalizing Task Management

Time – a very tricky business, I’m afraid… so subjective that the way one person manages it will probably not work for another person. Hence, there’s only one good way of solving this problem: by generalizing.

Tasks greet us at every step in life, so it is essential to figure out how to organize them. Almost everything is a task – meeting a deadline, preparing for an interview, etcetera. They are so diverse, yet all of them seem to fall into two categories.

I call the first category “time tasks.” These include things like the meeting you need to go to tomorrow afternoon, doctor appointments, and so on. What they have in common is that they are supposed to occur at a set time, hence the name “time tasks.”

I don’t have a great name for the other category, so let’s just call them “regular tasks.” These don’t have a set time at which they occur. If you were to need to buy something from the grocery store, for example, that would be a “regular task.”

The only reason why it’s important to separate different types of tasks is so that we can find the ideal method for managing each category.

My methods for managing

As “time tasks” are closely related to a specific date and time, my preferred way of managing them is by using Google Calendar or any other calendar. There, you enter all your tasks and you can clearly and easily see what you need to do and when.

“Regular tasks” don’t have the luxury of being organized by time, so they should be organized by priority, instead. I recently discovered Remember the Milk and have been using it for the past three weeks with great success. RTM’s interface is so streamlined that it will make sure you never forget the milk again (no guarantees).

By using both gCal and RTM, I was able to increase my productivity two-fold. I hope it works for you, too!

Open Sourcing Music

The open source movement has caught on to many an industry – software, hardware, information, text, etc. Most of these efforts are headed by Creative Commons.

But we haven’t changed what currently goes on in the music industry, yet.

Of course, there are public-domain sounds, tracks, and whatnot, but what I’m here to talk about is mainly musical compositions. The problem that we’re facing is two-fold:

  • Music composition is very private: music isn’t really written in big groups. Instead, one person or a few (in the case of a band) write the music.
  • Publishing is also very corporate: most compositions right now are published by big publishers, without an open Creative Commons alternative. Not only does this put huge restrictions on what can be done with published works and how they can be modified (assuming that they are corporately published), this also completely shuts out the additional community creativity that arises from open-source creation.

Wouldn’t you like to be able to work with other people to create music?

Let’s take an example. One person, who I’ll call Adam, wants to write, let’s say, a march. He has already thought up a few motifs, so he begins planning out the form. After beginning to notate some parts of the piece, he creates an open-source project, uploads his plan and his current score, and shares it with the world. Someone else comes along: his name is Bob. Bob finds the open-source project, checks it out, and wants to add to the piece. He uses the documents Adam uploaded to add more notation, which he then submits as a “patch”. Adam sees the submission, looks it over, and accepts the inclusion.

I think Creative Commons seriously needs to look into this field. Here’s how I think it should be organized:

  • Open format: MusicXML is proprietary, maybe create something very open called MML or MusicML (Music Markup Language)? There should then be converters from other proprietary formats (e.g. Sibelius files, Finale files, the aforementioned MusicXML, etc.)
  • Subversion/Github-based revision-tracking systems: Changes need to be kept track of, so that people can submit their additions to the music, these additions can be accepted, and every change is recorded. If something goes wrong, you can always go back to an older version!

The whole version control idea would be great, but how do you segment music creation and composition into “parts”/revisions? I think this should be approached the same way as it works in the software development field: each task of adding or changing something is inputed in separate check-ins, using common sense.

Of course, there may be some copyright problems. Arrangements of non-open-source musical works would probably be a no-no, but compositions are OK. Each work would be placed under the copyright of the originator or originating group and licensed under a Creative Commons license. Arrangements of this new music would be derivative works.

We can go so many places with this, just as was done with open-sourced software. Next: an online collection of user-submitted motifs, all open-source, as well as a system resembling Google Code for version control and project hosting.

I’m tired of all the Twitter API applications that force users to enter their Twitter usernames and passwords to log in. Why? Well, because it’s just so insecure!

Many people realized this for web applications some time ago, so now, most Twitter web services use OAuth to connect with the Twitter API. But for some reason, this hasn’t been done with desktop apps: most of them haven’t embraced OAuth.

Of course, there may be less of a security risk of providing your username and password with desktop applications, as one might think that there’s less of an opportunity for the provider of the Twitter app to capture and keep the username and password.

Yet, there’s still a huge risk of packet sniffing!

As an example, I opened Seesmic for Windows and started Fiddler2 to capture my traffic. Here’s what I found:

GET https://api.twitter.com/1/account/verify_credentials.json HTTP/1.1
X-Twitter-Client: Seesmic
X-Twitter-URL: http://www.seesmic.com
Authorization: Basic [REDACTED]
User-Agent: Seesmic
Host: api.twitter.com
Connection: Keep-Alive
That’s the request itself. Guess what happens if you decode that authorization token?
Authorization Header is present: Basic [REDACTED]
Decoded Username:Password= maximz2005:[REDACTED]

Oh look, it’s my username and password! Well, I hid the password here so that no one takes it… :)

Yet, there’s nothing to laugh or smile about here. Traffic from desktop Twitter apps that request a username and password is out in the open.

This all shows one major point: we must embrace OAuth. The OAuth system uses application tokens: in this case, Twitter creates a token for the application, the application connects using the token, and, if the user, at any point, wants to remove the application from his account, the user can just revoke the token, effectively revoking access for the application.

Twitter realized that this system would greatly increase security. Now, they’re phasing out the HTTP Basic Authentication (username & password) connection to their API, with a cut-off date of June 2010.

If you’re a desktop Twitter app developer: do you want your users to be out in the open? Do you want them to feel and be insecure? It’s not a great idea, though many apps are still doing this. Please, use OAuth, for your own benefit, and for that of your users, too!

Update 05/30/2010: The Twitter API Team has now instated a cut-off date for HTTP Basic Authentication connections. By June 30, 2010, a month away, all applications that utilize the Twitter API must switch to OAuth. Thankfully, OAuth isn’t a hard thing to implement, so we can expect a lot of our favorite apps to switch before time runs out. See http://countdowntooauth.com/ for more information.

I was surfing around on SuperUser today, and found a mention to a tool from Apple that I hadn’t heard of before. It’s called the iPhone Configuration Utility, which allows you to examine logs from your iPhone or iPod Touch, to apply configuration and provisioning profiles, and more. The tool is very interesting! [Download: Windows|Mac]

Every month, StackOverflow, the brilliant and completely open question and answer site for programmers, releases a Creative-Commons licensed dump of their database. You can download this huge dump yourself, but it’s typically a very large file, and then comes the hassle of getting the XML files into a database of your choice. Now, there is a way to get around those inconveniences, by simply bypassing the whole download procedure and querying the data dump in the cloud! That’s what StatOverflow is for. Just go to the sandbox, enter an SQL query, and voila! Also, there’s a  quite helpful meta.stackoverflow post which explains the anatomy of the dump, so that querying it is much easier. Enjoy!

In my last post, I explained what truly went on in the Twitpocalypse, which dealt with tweet IDs passing the limits of the 32-bit signed integer (from -2,147,483,647 to +2,147,483,647), which is the most common datatype in use in computer applications today. Yet, whilst computer science has limits embedded into its structure, Twitter does not – the number of users and tweets is growing, and FAST! In September, the Twitter API team estimates, we will pass the limits of the 32-bit unsigned integer which is up to 4,294,967,295. Thus, applications and libraries that utilise that datatype in conjunction with tweet identification numbers in the Twitter API will fail, once again. In the post where I explained the first Twitpocalypse, I recommended that all applications switch to the 64-bit signed (or unsigned even) datatype, and then maybe even consider storing the IDs as strings, with variable length (no arithmetic between IDs is really needed, so this should be extremely easy). The Twitter API team is doing the same thing – it has now informed developers that it is best to switch to a 64-bit implementation for storing those integers. Hopefully, this time, we will be prepared for the upcoming Twitpocalypse, and even less confusion and problems will arise when we pass that huge number of tweets. I myself am switching to a string implementation for the IDs in the Twitter client that I am developing (more info coming soon!), so that no matter how many tweets have been posted, the application will not fail. Good luck, everyone, in surviving this next round of this problem. [@twitterapi 's tweet; Twitter API Announcements (via TechCrunch)]

WordPress.com blogs have always lacked the feature of adding a custom favicon to a blog, which minimizes the possible level of customization. For those who don’t know what a favicon is, it’s the logo or picture you see next to the name of the website in your browser’s location (address) bar or tab bar. For example, the default WordPress.com favicon is a big white W in a blue circle with a drop shadow.

But to change that, WordPress has come up with a new and brilliant idea: Blavatars! View full article »

Copyright © 2010 Maxim Zaslavsky. All Rights Reserved.

Videos, Slideshows and Podcasts by Cincopa Wordpress Plugin