Archive for July, 2007

On Inspiration…

Saturday, July 28th, 2007

Inspiration is remarkable. People are motivated to achieve greatness because of it, but without it, people have almost no desire to do or be anything. Inspiration, defined as “the act of influencing”, comes from everywhere; from a song that you hear, an article that you read, your friends, your parents and their friends, celebrities, athletes, and sometimes even simple objects. Inspiration plays an integral role in our lives by shaping our hopes and dreams.

I have tons of things that inspire me. I was inspired to write this blog by reading a lot of other blogs like Marc Andreessen’s, and also by reading essays by writers like Paul Graham. I even had some inspiration from my friend, Prashant, who used to write a lot of essays on his website. My inspiration to run and exercise comes partly from my dad, who is really athletic, partly from professional soccer players that I’ve watched on TV, and partly from some of my co-workers who are recreational marathon runners. I’m also inspired by my brother, who is always thinking about something, and who is a great programmer, my friend Arvind, who truly has that entrepreneurial mentality (he’s always thinking of unique ideas that he could profit from), and my parents, who are really organized and able to keep track of everything they have to do. Of course this is just some of my inspirations. I have many, many more that I can’t list here.

What’s interesting about inspiration is that it can easily make you a clone of someone else, or cause you to plagiarize the things you inspire. There’s a really fine line between inspiration and copying, and people need to notice when they’re just taking from the things that inspire them rather than using those things as a template, but adding something of your own to it. I’ve noticed this is a lot more common when you’re inspiration comes from only one source. I end up trying to mimic that one source and a lot of times the result is basically plagiarism. It’s happened with some of the drafts of my blog articles, and most of these have been articles that I discard after realizing I don’t have anything of my own to add to them. The concept doesn’t only apply to writing; in music, sports, even social situations, you can copy the style of your inspirations, making you a lot less unique.

Sometimes people complain about not having any inspiration or motivation, so they end up just sitting around killing time. Personally, I think that’s a lousy excuse for doing nothing. There are so many things out there that people can get inspiration from, how is it possible for someone to have no inspiration? I think the real problem is that people are often too lazy to look for inspiration, when it can be found literally everywhere. For me, whenever I can’t motivate myself to do something, whether it’s exercise, play guitar, code, or whatever, I just refresh my sources of inspiration by watching sports, listening to music, or reading software blogs. I don’t have anything wrong with killing time; I love sitting around watching TV or surfing the web, but I don’t do it because I’m not motivated to do the other things I want to do. I think it’s really important that people know where to find inspiration and how to replenish their sources of information; it makes people a lot more productive.

I really appreciate that I’m so easily inspired; it makes it a lot easier for me to want to do everything, which is a lot better than wanting to do nothing. My inspirations come for all over the place, the things I read, the things I see (or watch), and above all, the people that I meet and interact with. Inspiration really controls people’s hopes and dreams. In that sense, inspiration is amazing because it plays such an important role in shaping the way people turn out.

Album Review: Chasing Victory – Fiends

Friday, July 27th, 2007

I first heard Chasing Victory’s music on Last.fm radio a couple of weeks ago, and they were good enough that I decided to get this album. Since then, I’ve been listening to it almost non-stop Before I jump right into it, a little about the band: Chasing Victory is a 5-piece hardcore rock band hailing from Georgia. They came together just a couple years ago and have since released three albums (“Fiends” is their third). I’ve only heard a couple of tracks off of their second release, “I Call This Abandonment” but what I’ve heard also sounds pretty good.

I really like the singing on the album. Adam Harrell (the singer) does a good job of mixing up the melodic singing with high-intensity screaming, without going overboard on the screaming like a lot of other bands do. His singing has a really unique sound that seems to fit perfectly with the instrumental parts and the style of each song. I’ve always been a fan of pretty high-pitched vocal parts (i.e Circa Survive and others) and I really liked Adam’s vocal range. What’s more, backup vocals are use sparingly, but they do a great job of accenting the lead line in songs like “Wolves” and “Fiends”. The combination of brutal screaming and softer melodic vocals adds dynamic contrast to each song and makes the album a lot more interesting.

Lyrically, the song’s are all about combatting one’s sin’s, but the lyrics never seem to get cheesy. Chasing Victory uses a lot of metaphors, so it’s pretty hard to tell what sins they’re addressing in each song. They do a good job of keeping things abstract, with subtle hints of the “sins” theme scattered here and there. One critique I have here is that repitition is a bit overused. Many of the songs have simple chorus’s that just repeat one or two lines (“Chemicals”, “Janus”). Overall, though, I think the lyrics are fairly good except for the repetition.

The guitar work isn’t too technical, but at the same time it creates a unique style for each song that’s complemented by the vocal line. Like the vocals, the guitars add to the swells throughout the album by varying heavy breakdowns with some softer melodic lines. The two guitarists also do a great job dynamically, playing softly to put emphasis on the vocals but playing louder during instrumental parts and choruses. There are a couple of purely instrumental sections, but I wouldn’t classify anything as a guitar solo, which is a bit disappointing to me. Some of the bridges and breakdowns are really good though. All in all, the guitar parts are simple, but very tactfully played so that they contribute positively to each song.

I’ve never been very good at reviewing drum parts (probably because I don’t really know anthing about drumming), but the drum parts in “Fiends” seem to be pretty standard. They do swell with the rest of the parts and provide foundation for each song, but other than that, they don’t ever stand out much nor are they exceptionally different from other bands. A lot of the drum riffs are pretty generic riffs that I’ve heard on so many other albums, but at the same time, they go well with the rest of the song. Drumming may be the weakness on this album, but it certainly isn’t bad; it’s just not exceptionally noticeable.

Overall, the most impressive thing on “Fiends” is how all the parts build on each other and really meld together well. The tracks also flow together well without fillers and other garbage. Every track is good, but they’re all different so the album doesn’t wear itself out in a single listen. If you enjoy rock/hardcore music, you should definitely check this album out.

My rating: 8/10

Recommended Tracks: “Wolves”, “Fiends”, “Carnies”, “Zombies”

Chasing Victory

On Facebook…

Thursday, July 26th, 2007

Everyone knows about Facebook. It’s a great social utility, and probably the most popular online social networking site out there. Almost all college-going students in the United States have accounts, and the craze is spreading to high schoolers, and even to adults (although slowly). Yet, the company may not have such a promising future. Ever since the opening of the so-called “Facebook Platform” to third party developers, the site has severely deteriorated and unless some changes are made, Facebook may start losing out to competing social networking sites.

“Facebook Platform” is essentially an API along with a way for developers to embed and integrate their applications into Facebook. It sounds great in theory; it allows other developers to capitalize on Facebook’s massive user base and it adds value to Facebook itself, by adding more cool features for their users. Unfortunately, it isn’t that simple. Now, the site runs incredibly slowly, and many of the pages are too cluttered with third-party garbage for me to find what I’m looking for. It seems like Facebook would have been much better off without opening their website to other developers and instead just adding some more features of their own.

The thing that made Facebook so cool was its ease of use, but they seem to have lost some of that appeal. Nowadays, when I visit my friend’s profile pages to write something on their wall, it takes at least 15 seconds to fully load their page. The problem is that when I load someones page, I have to gather data from all of these different servers hosting the different applications, and this really slows things down. After that, I still have to scroll past all of their applications to get to their wall wasting even more of my time. Compare this to before, when people’s profile pages loaded almost instantaneously and weren’t filled with applications, and the old Facebook seems to be a lot better, at least in the “ease of use” sense. Ultimately, these two problems caused by the “Facebook Platform” are really taking away from the user experience on the site.

Although I don’t use any of the third-party apps, some of them are pretty cool I and can see why people like to have them. However, this doesn’t mean Facebook should compromise their performance just to allow them. I think they should have kept the site closed to external developers and just developed some of the cool apps internally. First off, this would really improve page load times because all apps would be requesting data from Facebook’s servers. Secondly, this would remove a lot of the garbage on pages because apps could be combined or better integrated. Since Facebook has more control than third-party developers, they are able to combine applications and present them a lot better than external developers can. Another option would be to have a thorough screening process of third-party applications. They can then restrict apps that take away from overall presentation of pages. Either approach probably would have worked better for Facebook in the long run, but the current “open” attitude doesn’t seem like it’ll work out.

I have a Facebook account, but have been using it less and less since the “opening.” I know there are other users that are annoyed with the latency and the ridiculously cluttered pages, but most people continue to use it. Maybe Facebook has such a monopoly on college student networking tools that it doesn’t really matter how bad the site is right now, but sooner or later someone is gonna design a networking site that looks a lot more like the old Facebook and I think they’ll beat out Facebook in the long run. It may end up being a trend with social networking utilities to be really good early on, but they slowly deteriorate after they’ve won over a large user base. It happened with myspace (which is now pretty terrible by the way) and it looks like it’s happening with Facebook.

Edited: August 12, 2007: Marc Andreessen wrote an article about the Facebook Platform soon after the platform was release. His opinion slightly differs from mine but he does mention the latency issues. Read it here.

On stupidity…

Wednesday, July 25th, 2007

I just wrote a really long entry in this stupid upload form that didn’t actually write anything so I lost like a 7 paragraph post that took me like 30 minutes to write. Note to self: always keep a copy of things somewhere else. I’m too frustrated right now to rewrite the post now, but maybe later tonight.

On akrish.net’s backend

Tuesday, July 24th, 2007

I’ve already briefly highlighted akrish.net’s structure in my previous post, but in this one I’d like to talk about some of the design strategies that I’ve used. Since I’ve already talked about how I read files, I’ll spend some time to briefly talk about how I’m writing into my xml files.

The first good design tactic I used was object oriented programming. So it’s really easy to use OOP in Java and some other languages, but in PHP it’s not the first thing that most people think about (at least I don’t). Yet it’s still really useful, because it allows you to compartmentalize all of your code into neat little objects that you can pass around and use really easily. So I have two classes: a Parser class and a Writer class. Both of them are for handling interactions between the web site and the xml documents that I’m using for feeds. The Parser object is pretty much what I explained in the previous post, except that it’s now an object. The Writer object has a function that writes a blog post into a specified xml feed, and that’s pretty much all it does right now. OOP is a lot better than functional programming in this case for a couple of reasons. First off, in the Parser object, all of the functions deal with an xml_parser object and so require an initialized xml_parser. This is easily solved by just iniitalizing one in the Parser constructor so that i’m only initializing the xml_parser once regardless of how many times I need to use it. Similarly parser functions need to know what feed to parse, but with OOP I can specify the feed in the constructor, rather than individually in each function. It prevents a lot of repetitive code. Another reason is that I can serialize objects and maintain all of their data as the user moves from page to page. I haven’t taken advantage of this yet, but I’ll need to it to allow a blogger to preview his/her new blog post. Anyway using objects makes the code a lot easier to read/change.

I also made the site highly modularized and functional. In addition to the objects, I also have a lot of functions that spit out content onto the pages. For example I have helper functions that spit out the html for the header, footer, and the navigation bars for all of the pages. These are really helpful, because I only have to make changes in one place, and the changes are propagated to the entire site. Furthermore, there’s a lot less code and a lot of my files end up having very little code, making everything easier for me to read later on.

I’ve also made change to how I show each feed, after realizing that I’d made a huge mistake. I used to have a separate file to show each feed (not the parser object, but each of these files calls the parser object and shows the content of the feed). This turned out to be a huge mistake because each of these files were the same except for which file name they passed to the parser. Anyway making changes got to be really tedious, because I’d have to make the same change on each of the files. I fixed this by making my index.php display all of the feeds. It selects a feed based on a parameter sent by HTTP GET. This is a lot better design wise for reasons that I’ve already mentioned.

Finally, the writer object is pretty straightforward. I set up an HTML form that’s password protected, with fields for feed, title, and body of the post. When I submit the form, I pass all of these parameters into the Writer. The Writer uses some simple regex’s to split up the text and add the proper xml tags. It then reads the old feed, and inserts the new xml into the old feed in the right place. Finally it re-writes the entire feed. I don’t think this is ultimately the best way to do it, because a lot of stuff stays the same in the file, and if the feeds get really long (which they may), this process may end up taking a while. For now it’s ok but I’m going to think about a better way to write xml files.

So that’s pretty much how this site is written. I do plan to add support for more tags, for example Image tags and Code tags so that I can style code differently will probably be added eventually. I don’t expect the rest of the back-end to change much so this’ll probably the last big post about akrish in here. Most of the other posts will probably be about wenote or any other ideas that I decide to execute. If you have any feedback about my design or if you’d like to see some features added, please let my know by commenting or by Thanks.