Ryan Sloan

Landed safely in Boston.

Facebook’s latest move to show Twitter who’s boss

no comments

(Or some similarly long and overly dramatic title)

Exciting online news news last week! Facebook launched vanity urls at my favorite price: FREE. (I think there was also a new mobile phone launch or two, I think. Who knows?) Facebook users all over the world anxiously awaited the 12:01am landgrab, refreshing facebook.com/username/ until that magic text box appeared. I opted for facebook.com/ryansloan, but there were some more interesting choices. There was talk earlier this year about the possibility of Facebook monetizing vanity urls, but they opted for the free option instead. Benevolence? Hardly. Granted, they potentially passed up millions of real dollars when they decided to grant them to users free of charge, but I think Zuckerberg & Co. are just looking to the future. No, not the impending robot apocalypse, but a race with Twitter.
Everyone remembers the rumors of an acquisiton deal by Facebook, but it ultimately fell through. Shortly after that, Facebook announced more changes to the home page — they were moving to a live-feed format similar to Twitter. As usual, it was met with some resistance from the user base (surprise surprise) who felt that Facebook should stop “trying to be like Twitter,” and at that point that’s exactly how things seemed: Facebook was trying to be a cheap imitation Twitter with Photos ‘n Stuff ™. Their next move cleared things up a bit: vanity URLs. Vanity URLs enable access to any user’s profile without jumping through all kinds of search-hoops. As of now, if a non-friend visits your vanity URL they are just taken to your summary page. That was expected, after all, Twitter and Facebook have models of “friendship” that are fundamentally different. Twitter’s model is more open, whereas Facebook friendship is a two-way street. I think this is part of the reason that people have reacted so negatively to Facebook’s “imitation Twitter.” Assuming Facebook didn’t alter that model, then Twitter and Facebook could continue to exist as two similar services with different audiences.
The next phase makes the game much more interesting: real-time search of public posts. No longer are you limited to searching your friends, but everyone who chooses to make their status updates public. This brought Facebook into the real-time news ecosystem — one that was previously dominated by Twitter. But that’s not all! Word on the street is, Facebook is ready to make some changes to their privacy system, enabling users to choose privacy settings for each individual item they post. Assuming the interface isn’t a total pain, this is particularly interesting when applied to status updates. If you can make your status updates visible to (and searchable by!) everyone, then the playing field changes dramatically. Combine that with the vanity urls for easy access, and you have more than a “cheap imitation Twitter,” you have the functionality of Twitter (followers, live “news” stream, updates via web, mobile, etc.) with the features, API, and (possibly most importantly) user base of Facebook. Two of the common questions from people reluctant to adopt Twitter are “why would I need a Twitter? Who would follow me anyway?” Given that everyone and their mother (yes, that includes my mother) already has a Facebook, the argument becomes moot. If the users are already signed up, it can’t hurt to give it a shot. Who knows, you might like it.
So is this the end of Twitter? Probably not (not yet, at least) but the game has become much more interesting. Twitter’s recieved some great press lately, but is that enough to save them from their performance and scalability problems? More importantly: Facebook has monetized their product (albeit not very well.) Twitter, on the other hand, has yet to name their price. In the end, cash flow could be an important factor.
Either way, Twitter and Facebook get to share the spotlight for a little while, but can there be only one? What do you think? Is Facebook going after Twitter? Should we seek some sort of consolidated solution, or can the two services live together in harmony?

Written by Ryan

June 17th, 2009 at 12:08 pm

Posted in News

Tagged with , ,

Adventures in Teamwork

with 2 comments

I recently finished up my first real team software project. One of the classes I’m taking this semester is CS 2340 - Objects and Design. This is the first software project class at Georgia Tech, so it’s full of…well let’s just call them “learning experiences.” Most of the students have never really worked on a team before, and if they have it’s been in a more restricted environment. Technically I work in a team at CSI, but on a day to day basis I’m on my own. Most all of my tasks are delegated by my boss, and it was rare to work in sync with someone else. Needless to say, I approached this project more sure of myself than I should have been.

Our task for this semester was to develop our own version of The Oregon Trail in Smalltalk. No one in our class had any Smalltalk experience, and we’ll just say that it is “interesting” and leave the this-language-totally-sucks rants for another day. We split up into teams of Five, and were given a series of milestones and deadlines. Collectively, the milestones would represent 44% of our grade, leaving 16% for small projects and 40% for exams.

Our first milestone was due shortly after we were assigned to teams — we had to put together a rough outline of our Domain classes (a few scenarios and CRC Cards.) This milestone was no problem, but the next week we had to have our preliminary UML Diagram done. We worked to arrange a meeting, and this was where we hit our first roadblock.

Lesson one - People come and people go…

And sometimes there’s more going that coming. While we were trying to get our second meeting set up, we recieved an email from one of our group members in which she let us know she was going to be dropping the class for the semester. That was an understandable excuse, and only left us four-handed. Four seemed like plenty, so we arranged our second meeting for a night later in the week. This was the last time we heard from Teammate number four. He is still enrolled in the course, but we haven’t seen him in class and he hasn’t responded to our emails. Then there were three.

This was a real shock for me, I wasn’t expecting this sort of thing to happen. I got lucky in that the other two guys in my group have worked super hard and have been very accessible, but we could have been up a certain creek without a paddle. I realized that sometimes you just can’t count on everyone on your team. Sometimes people miss deadlines, sometimes people just up and quit, and there’s not much you can do about it. And, even though no one wants to admit it, that person could be you.

We had to scale back a lot of our plans because we were short-handed. This leads me to my second point…

Lesson two - If you can dream it, you can do it…

Given the proper amount of time and manpower, of course. This was a lesson that hit us fairly hard. We had some pretty extravagant plans for our Oregon Trail game: Markov Chains for realistic weather simulation, Procedural Generation of graphics (a la Spore), a hefty database back end, and some more all-around awesomeness. Unfortunately, when we lost team members, we realized fairly quickly that we had to adapt. We decided to scrap some of the “unessential” features. This translated to “just make the darn thing functional before demo time!” We had to scrap a lot of our cool features, but I do think we did something right here. Before we got knee-deep in late, half-finished special features, we laid out what these features would require. This made it easier to see what needed to be cut. Proper planning sort of saved us from digging ourselves into a hole this time.

The final product didn’t look quite as cool as we had hoped, but we prioritized. We managed to meet the requirements, and still had some time for bonus features.

Lesson three - Use the source (control), Luke…

Anyone who knows me will give me a lot of grief for even having to write this section (”Ryan, you ALWAYS preach the importance of adequate source control! How could you?”) and I probably deserve it. Normally I’m pretty good about source control. I try to set up a repository even for one-man personal projects. Yes, I have been known to complain about source control on other projects. But, in a moment of mass-foolishness, we decided we didn’t need a formal source control system. We set up a “repository” on Sakai, which pretty much just consisted of a Wiki with a “check out list” and a folder of the accepted “stable” Smalltalk source files. It worked just long enough to give us headaches in the end.

Initially, things were progressing slowly enough that the system worked fine. I might have the Wagon class checked out, and if a teammate decided he needed another feature in Wagon, he could just shoot me an email and have me add it while I had it in my possession. No problem. Problems began to arise the weekend before the due date when we were furiously working on features, trying to get things working (don’t judge, it happens to everyone) and we couldn’t always reach one another. Even though we knew better, we started modifying files that others had checked out. This resulted in one of my teammates having to do a (very messy) manual merge of source files right before the due date.

Even a simple setup of SVN would have saved time (and aspirin). Sometimes, it takes a little stress to reaffirm what you already knew.

Happy endings

Ultimately, everything turned out okay despite our problems. We met our deadlines, did fine on the milestones, and no one died of dysentery. My two remaining team members were great, and that was most certainly a factor. Working on a team is definitely a different experience. I have a feeling I’ll be shelving my Smalltalk knowledge after finals week, but the things I’ve learned about team work will follow me forever. Now my eyes are on next semester, where I can certainly look forward to more “Adventures in Teamwork”.

Written by Ryan

November 22nd, 2008 at 3:30 pm

Google Chrome - Initial Thoughts

with one comment

On the First of September, Google “announced” (if you can call it that) the release of their new web browser: Chrome. They brought in famed comic artist Scott McCloud to illustrate a comic explaining the theory and reasons behind Chrome, and apparently, a few copies of the comic went out a bit too early. Nonetheless, Google scrambled to get the Chrome website up, and announced that it would be released on September 2nd. Unfortunately, there’s only a Windows version at this time, so I switched over to the red-headed stepchild partition, and downloaded the Beta. I’ve only been using it for a few hours, so these are just my first impressions.

Setup

Getting Chrome setup was about as quick and easy as it can be. It was a fast download (most of the install files are not downloaded until you run the executable) and a faster install. It requested that I close my instance of Firefox so that it could import my bookmarks and settings. The bookmarks and settings were imported fairly flawlessly — the bookmarks toolbar was identical, and the other bookmarks were retained as well. I lost my saved login credentials, but I didn’t have that many. Chrome starts up lightning fast — especially compared to my install of Firefox 3. When you start Chrome for the first time, you’ll see a pop-up regarding your default search engine. It defaults to Google, but you can change it immediately.

User Experience

Chrome’s UI differs from IE and Firefox in it’s simplicity. One thing you’ll notice is that there is no title bar at all. I see this as a positive feature, because you can devote more of your screen to page content instead of menus and toolbars, but opinions vary. There is also no “Search” box (as in IE and Firefox) but the address bar serves as both. Depending on what you enter in the address bar, Chrome will visit that page or perform a search with your default search engine. Once again, I like this idea. It may be because I have faith in Google to interpret my jibberish, but I think simpler is better. I do miss the Firefox search box, though. It was nice to have a dropdown of search engines to chose from. (Although appending site:url to your query works fine.) Another feature I think is neat is the “Incognito Window.” It works the same way as a standard window (multiple tabs are allowed) but when you close the window, all the temporary files (history, cache, cookies, etc.) from that session are deleted. This will be very valuable if you’re using a shared computer to access any sensitive information (banking, birthday shopping…I feel certain that incognito mode will be used for less noble purposes as well!)

Performance

Chrome was designed to eliminate a lot of the performance problems that have plagued tabbed browsing. Each tab runs as it’s own process, and the memory from that process can be freed after the tab is closed. In Firefox, a specific amount of memory is allotted at startup for N tabs, and once you reach tab N+1, it allocates another big chunk of memory. Because of this, there are some memory usage and fragmentation problems. The memory usage of Chrome isn’t very different from Firefox at first, but in theory, after continued use, it is considerably less resource hungry. Pages tend to load faster in Chrome as well. While I’m not sure of the exact reason for this, it makes sense that you’d see improved load times for JavaScript heavy pages because tabs are independent of one another — they don’t have to wait on a hung script to finish executing/crash. Of all the sites that I visited, I only noticed one that didn’t work properly. The “Advanced” version of Georgia Tech’s Zimbra webmail service did not load — it always reverted to “Standard Mode.” Advanced Mode is very AJAX-y, so I’m not sure if it’s a problem with Chrome or Zimbra. I have a feeling Zimbra’s doing a browser test, and it doesn’t really know what to make of Chrome, so it just switches to the no JS version to be safe.

Geeky Stuff

Chrome has some cool features for those of us with a flair for technology, as well. The developer area of the “Control the current page” menu has a couple of cool features. One is the JavaScript debugger and console. These are almost identical to Firebug. I haven’t noticed any significant improvements over Firebug yet, but I haven’t really played with the console much. There’s a cool resources tab that lets you monitor resource usage by JavaScript running in the current tab.

There’s also a task manager that allows you to monitor the Memory usage, CPU usage, and Network activity of each running tab. If you want more detailed statistics, you can point your browser to about:memory. This page will show you the Memory usage of each tab and plugin. There are a lot of statistics here. If you have any other browsers running, their memory usage stats will be displayed here as well.

Other

Flash - Flash worked right out of the box. I’m assuming it automatically picked up on the version used by another browser, but it was nice to have one less thing to install.

Application shortcuts - Okay, this is kind of neat. You can create an “Application Shortcut” on your desktop or start menu based on the current page. This isn’t exactly new, but what is neat is that when you launch the page in Chrome, it hides all the navigation bars and runs it like a standalone application. Once again, this takes up less screen space, and treats the web application more like a traditional desktop app. This isn’t very convenient for browsing, but I think it’s great for Web Applications. Google Docs comes to mind. It allows you to focus that window on one thing. The separate process gives you some crash protection, as well.

Summary

All in all, Chrome is pretty slick. I think there’s some considerable work to be done (Linux and Mac version, anyone?) but if they deliver on a lot of their promises I can see it taking off. If they implement good customization and add-on support (like Firefox) then I think we’ll start to see a lot of users moving towards Chrome.

Written by Ryan

September 3rd, 2008 at 10:14 pm

Posted in Reviews

Tagged with ,

Birds gotta fly, fish gotta swim…

no comments

…and geeks gotta blog. That’s right, Ryan Sloan has entered the blogosphere!
What can I say? It was time for my voice to be heard.
-Ryan

Written by Ryan

August 22nd, 2008 at 5:53 pm

Posted in Uncategorized