Is RSS Dead?

A few months Steve Gillmor posted an article called Rest In Peace, RSS. He has this notion that the real-time web will take over and supersede RSS. If there’s one thing that I can be sure of, it’s that RSS is never going to go away. The biggest problem is that websites like Twitter and FriendFeed are single companies, but RSS is a protocol. A protocol is a general set of rules and RSS isn’t controlled by a single entity. The big question is, what happens if Twitter or FriendFeed fails? They are seemingly becoming large companies, but they aren’t public companies and rely on private investment. Unless they start becoming cash cows within the next few years, they’ll be thrust out of existence and a thing of the past.

This isn’t to say the entire idea of the real-time web is completely defeated. There are new technologies like Google Wave that emerging, but they’re still in a testing phase. There is no telling whether it will catch on or not. Although the problem of a single point of failure arises again. Twitter has been down a lot, but it most likely doesn’t affect 99% of the people in the world with internet access. If people start piling onto a single service, it creates a problem. This probably has even reared it’s ugly head in the enterprise as companies increasingly move their applications to the “cloud”.  The recent outage at Google shows that no matter how large a company is and how large it’s infrastructure is, there are still failures.

Of course failures will still happen on separate systems, but it’s a contained failure. If I get all my news through Twitter and then Twitter goes down, so does all my news. RSS allows for separation and if one feed goes down, it’s not an apocalypse. I have to admit that I’m now somewhat of a hypocrite though. I use NetNewsWire on the Mac for my news feeds. The new version syncs with Google Reader. I believe Google Reader has it’s own service that goes out and crawls the feeds and puts them in the reader. So instead of pulling directly from the site, there is an abstraction. I wish it pulled the feeds directly, but NetNewsWire is a great client and even if the feeds can’t update, I still have a nice list I can view on my computer of all the feeds I’m subscribed to and go there separately if need be.

Another problem Steve mentioned was information overload. He doesn’t want to parse through all the information. The problem is that the real-time web will eventually get like that. If you follow too many people on Twitter you’ll be getting updates faster than you can read them. I have about 50 feeds in my RSS reader and I currently follow 113 people on Twitter. I’m fortunate that many of them don’t post a lot otherwise I would probably have to stop following them. Newspapers have spoiled us in a way. They have editors that filter through a lot of news and gives us what they think is the best. Going onto the web, your friends and you are the only filter. The world is a large place and if you try to view all the raw news, your brain would explode.

Real-time and RSS both have their separate places. In my mind they serve different purposes and one will not be taking another over. I’ve always loved the fast pace of innovation in technology, but some technologies are so pervasive and deeply rooted in society that they’ll never leave. RSS is one of those technologies and it is not dying nor will it ever be dead.

PS: Just to note, there’s a button in your browser to subscribe to my RSS feed.

Advertisements

6 Basic Things A Techie Should Know

I recently read a few articles on Digg that said what every ‘geek’ should know. While some of the lists had good ideas, most of the items on the lists are really specific to ‘computer geek’. I figured I would make my own list of what a techie should know.

HTML

I’m not saying that you need to know how to program, but at least learn a bit of HTML. It only takes a few hours to grasp the basics and it’s always a good resume booster.

The Basics of Hardware

When you say you’re a techie you better know a little about hardware. I don’t mean that you need to know about every single component thorougly, but you should be able to open up a computer and understand what is going on inside. If someone says their computer isn’t booting, you should be able to test each piece of hardware and deduce what is broken.

The Basics of Software

Like I said with hardware, you don’t need to know about every single piece of software, but have general knowledge about how it works. You should know what a boot loader is and how to install an Operating System. You should hopefully understand the differences between the major operating systems and be able to suggest what is best for a user based on their own knowledge.

Read

I find this one very important. Technology moves so quickly nowadays, you need to stay up to date on the latest developments. I recommend getting a feed reader or use something like Google Reader and subscribe to some tech feeds. A few good sites to get started on are CNet, Slashdot, Digg, Techdirt, Engadget, Wired, TechCrunch, PCWorld, MacRumors, Technology Review, and Popular Science. I have about 50 feeds in my feed reader right now and they keep me up to date on the latest news.

History

Along with reading, you should really know some history behind technology. If you look at the past, you better appreciate what we have now and will give you a bigger picture of how technology has advanced over the years. While Wikipedia is always a good place to start, you can find a lot of books in your library or off Amazon.

Know Best Practices (Also Practice What You Preach)

A lot of people ask me for advice about what kind of anti-virus software they should get or what they should do to protect there data. You should know that backups of data is essential for everyone and storage space is so cheap these days, there isn’t much reason not to do it. You should also actually do the same things so you can talk about it from personal experience.

There is a lot more you can do, but I think these are the basics every techie should really know. If you are intrested in this stuff then you obviously like to expand your horizons and usually you like to get smart in a specific subject. For me, I understand a lot of hardware, but I’m more of a software person. I program with some languages and I read a lot of software-related books that interest me. It’s up to you to find your niche.

My Favorite Mac Apps

I’ve owned a Mac for a few months now and there are a few apps that I really can’t live without on a daily basis. These are in alphabetical order:

Adium (Free)

I love Adium. I can be signed in across multiple protocols seamlessly which is a plus because I have accounts on six different IM networks. Also, it is readily customizable with a plentiful amount of themes. It also integrates with growl so I get little notifications when people IM me.

Handbrake (Free)

Handbrake is an awesome application that takes DVDs and turns them into MPEGs to store on my computer. I have a pile of DVDs at home and I’ve already lost a few to scratches and unfortunate encounters with my cat. There are a plethora of options you can set, but you can also go with the presets if you don’t know what you’re doing. Handbrake will now also convert between other formats as well from your hard drive instead of a DVD.

Little Snitch ($29.95 to buy / 3 hour free trial)

Have you ever had the curiosity to know what apps are doing in the background? Well Little Snitch satisfies that need. It tracks all incoming and outbound traffic on your computer. It works much better than the built-in firewall in OS X and allows you finer grain control over port blocking and what types of packets you let through. It’s a little annoying for the first minute while it learns everything, but after that, the little network monitor pop up is fun to watch.

NetNewsWire (Free)

If you’re like me, you read a lot of news on the web. RSS feeds have simplified the consumption of all that data. I have some main feeds on my iGoogle homepage, but I have a lot more feeds in NetNewsWire. It automatically syncs so I can check them elsewhere and it will sync up when I get back on my main computer.

smcFanControl2 (Free)

The Macbook Pro has this nasty tendency to heat up to burn your lap. smcFanControl solves all of that. I tend to keep the fans running about 4,000rpm which keeps my lap cool and battery life isn’t affected that much. It sits in the taskbar and have your choice of display options, but the default is compact and gives the CPU temp and fan speed. This was the second application I downloaded besides Adium when I first got my computer.

TextMate (30 Free Trial / $51 to buy or $43.35 with EDU discount)

I absolutely love this text editor. Some people prefer BBEdit, but I’m on the TextMate side. It does exactly what I want it to do and the project features are hands down the best. I use it for everything I create from simple HTML templates to advanced PHP scripts.

Transmission (Free)

I use BitTorrent…a lot. I find Transmission to be a great minimalist application on OS X. It gets my torrents down at blazing speed and its integrated support of IP blocks and bandwidth throttling are a plus. uTorrent recently came out with a beta application for OS X, but I’ll wait until it’s out of beta.

Twitteriffic (Free, $14.95 helps support them and remove the ads)

I do the occasional twittering and this app is excellent. I used to use Snitter (which is a great app), but I heard a lot of good reviews of Twitteriffic, so I tried it out and I was sold. It sits in the task bar and it uses growl to show the updates. The text box is a bit small, but I don’t find it much of a nuisance.

UnRarX (Free)

This nifty little utility is a godsend. I’m always getting files to download in lots of different formats and broken up into a million different files. UnRarX handles them nicely and quickly. It can recover corrupted files and it supports password-protected archives.

Versions (~$50 / 30 Day Trial)

As a programmer, I use version control a lot on large projects with multiple people. There is TortoiseSVN for Windows, but I never found something easy to use on the Mac. Versions seemed to come out of nowhere. I downloaded the beta and instantly took a liking to it. There is no crazy menus or slow Java programs to run to update and commit files. It’s all done in a Mac native GUI. It’s a bit pricey, but it works REALLY well.

Woah!

Figured I would post to make sure I don’t go completely dark. Working on lots of projects and going to college soon!

Boo to Validity

Not really though. Validity is an important aspect of being a web developer, and as one, I believe that I should try my hardest to implement the various standards that have come to be on the web. Although, I occasionally get in arguments with people about some of the finer points of validity and semantics.

I just read HOWTO Avoid Being Called a Bozo When Producing XML, and I must say, it’s a little over the top. In reality, I think just about every single XML feed that is dynamically produced is done with sending the header text/xml and printing out lines while in a loop. It may not be the best way to do it, but it works. Sending it as application/whatever creates messy situations in IE and it’s all around not fully supported by any browser.

The same deal has happened with XHTML. It is suppose to be pure XML, styled and transformed with an XLST stylesheet. I have never seen that anywhere on the web with the exception of starcraft2.com. In place of true XML, we tend to just use HTML sprinkled with slightly stricter rules. Then, a text/html header is sent and the browser just ignores all the strict markup we did and parses it as normal HTML! I now understand why a lot of people like to use HTML 4.01.

It really isn’t the standard creators fault. The W3C has done a wonderful job creating very specific and well layed out standards. The problem is not them, it’s the browser makers. Some are obviously worse than others (*cough* IE *cough*), but none of them have fully implemented some of the latest standards. I can’t really pin down Mozilla because they’re an open-source, community developed browser. I can, however, yell at Microsoft. They have an entire team of dedicated people that just work on Internet Explorer. They get paid crap tons just to work on it. It seems like all that money really hasn’t paid off. Other browsers are light-years ahead of them in terms of speed, reliability, security, and just plain rendering ability. No one is perfect, but it seems to take YEARS for some basic implementations.

I would love to implement these standards on the sites I create, but the hard truth is, they just don’t work right yet. Until everyone can work together, nothing is ever going to work the best it can be.

PS: I know I haven’t posted in a while. I’ll keep trying.

Going To Get Back In It

I’ve been sick for a few weeks and have been busy with a bunch of school work. I have a couple partial posts which I’ll finish up and post when they are ready.

Logo

So I was bored recently and I decided to make a logo for the blog. I can’t put it in the header since I can’t modify the css because I haven’t paid the upgrade to do that. That doesn’t really matter to me and I just wanted to post to hold me over until I can post again; that being sometime within the next few weeks.

Technophile

Classic: Learning A Programming Language

This post was originally made on January 29th, 2007 on another blog I had.


You may not be a geek, but I’m sure you have always been curious as to what all that stuff on the screen of programmer actually means. You first need to understand that programming isn’t an easy task. Also, it requires dedication and the curiosity to learn it. Here are my thoughts on learning a programming language.Like I said in the introduction, this stuff isn’t easy. You may have heard of some magical programming language that is incredibly easy to learn, but it’s just a gimmick. To give an example, there is Visual Basic. By the title, you can guess that it is fairly simple. I have news for you though, it isn’t. Back in the day, BASIC was easy to learn, but no one programs in that anymore. Visual Basic is probably one of the easiest languages to learn, but it still requires reading a couple of books to really gain some experience in it.You shouldn’t get confused between markup languages and programming languages. HTML, the angled bracket tabs that allow your browser to display everything, is a markup language. HTML is easy to learn and isn’t used to program anything. If you really want to get into making programs for the web, you need to learn a web programming language.

Web programming languages are vast in number, but there are a few quality one’s that you should take a look at if you are interested. One of them is PHP. This site is actually powered by PHP. It isn’t the best by far, but it is the most widely used one. There is also Perl and Ruby. Those three are actually called server-side languages which means that they are parsed by the server before they are displayed to the user. Client-side programming involves Javascript mostly. Since Web 2.0 busted out, Javascript has had a second coming in the form of AJAX web apps and such. There are many libraries to help you out and if you’re interested in making all that glam, buy yourself a book and learn the basics.

There is also application programming. The majority of game development now takes place with C++. This is a complex language that may take years to master, but it will certainly be rewarding in both your sense of accomplishment and your salary. There is a program or collection of programs from Microsoft called Visual Studio. These components rely on Microsoft’s .NET Framework. That’s where Visual Basic is and also Visual C++ and Visual C#. Those are the most common ones. Visual C++ is different from normal C++ though. So you can choose either one or the other. When you use C++ to develop a game for example, you usually use a graphic library. You have probably heard of DirectX, but there are also others, like Qt.

Also, if you’re interested, there is programming for micro controllers. This is what I do on my robotics team and can be a pain, but it’s fun. When you are working with them, you have to take into account the memory limitations and capabilities of the microprocessor. If you are programming for a normal computer, you are able to use floating point numbers, on a microprocessor though, you would probably fry it. Microprocessors can be found anywhere from your car to your toaster. Someone has to program them, why not you?

I hope I gave you insight into the wonderful world of programming and maybe you want to get started on a project of your own. It can be frustrating at times, but that’s when you need to try your hardest to understand it. Sometimes you really have to push yourself because the programmers who made the languages usually make them for functionality, not ease-of-use. You can find programming books in most bookstores or online at Amazon. If you don’t have much money, fire up Google and find some tutorials.

Future Standards

I just read Kyle Neath’s article titled HTML5 and CSS3 are doomed for disaster. I took away a lot of information, but it kind of stated what a lot of people are thinking. Making specifications is easy compared to the implementations of it. Although I think HTML5 will be a bit different.

The specification for HTML5 is being created with browser developers as part of the process. Since they have an idea of how hard it will be to implement each part of the spec, it should go smoother. Also, HTML5 is an incremental upgrade. It’s nothing as radical as XHTML and provides several neat enhancements that will make developing for the web easier. XHTML is currently just HTML with self-closing tags in most implementations. It’s a struggle to try and design with standards when they aren’t even supported and you’re just left with “tag soup“.

Being a good web designer is partly being able to develop a design that works across multiple browsers and platforms. This can truly be a pain when you’re talking about trying to get your code to work with IE6. How I yearn for a scenario when we can just tag team IE6 and no one would create sites that are compatible with IE6. This would force the user to upgrade to a browser with a least some standards support. Our entire school system just made the switch from IE6 to IE7. If our school system with hundreds of computers can make the switch, any small company or personal user should be able to also. All they have to do is click the install button, and then it works (not 100% of the time, but hey, nothings perfect). I by no means advocate IE7 to people, but if it’s the only option, so be it.

The Flash Player 9 has been downloaded over 3.2 billion times.

The reason why Flash does so well is that it comes pre-installed on a lot of machines and it can automatically update from within the browser. As I have said before on other blogs, people are stupid. They are also a bit impatient. If they have to go out of their way to install another browser or upgrade to say, IE7, they aren’t going to want to. Hitslink provides a glaring example. IE still controls about 78% of the market with IE6 still ahead of IE7 by 4%. IE7 was pushed through as a priority update on October 18th, 2006 [source]. That’s over a year and it’s about even percentage-wise. Now look at the Firefox trend. Firefox 2.0 has 15% of usage while the previous iteration, 1.5, has .63%. Since then, Firefox has updated automatically within the browser itself and it’s updated when the browser is restarted. No fuss for the user and most of the people that use the browser are on the latest version. Flash just upgrades and installs and people get the latest version without them having to do much except maybe click a link to automatically download it.

I digress. For all my hopes, they may just be dashed. I want to be realistic about it, but I so desperately want standards to become, well, standard. Making it so the user doesn’t have to do anything would be a step in the right direction.