Profile Photo

John Maguire

I am a teenaged web developer and writer who has spent too much of his youth in front of a screen. I spend my days learning, tinkering, and writing code. These are little bits of information that I found interesting or useful. More info →

depressionbot: A fully-featured, flexible, node.js IRC bot

There is an IRC both in a few chatrooms I frequent that has always struck me as impressive. It handles stats well, it has tons of plugins, it’s easily configurable, on the fly, and handles lots of common issues regarding IRC bots extremely elegantly (e.g. ignoring users or channels completely, disabling a certain module from reacting to a user or channel, or connecting to multiple networks at once.)

It has a Web UI which tracks user and channel stats, and has a flexible “quote” database, allowing you to store information, such as links to frequently asked questions or fun quotes by users, and easily find the saved quote you are looking for.

I finally decided to investigate the code behind the bot, and found it’s written in node.js, a fairly new “language”, based on Javascript. The bot, named depressionbot, uses jsbot as its core (written by the same user).

I am posting this as an attempt to draw more attention to this project, as any attention is well-deserved. I’m also planning to start submitting contributes to the project (so far I’ve simply added TLS/SSL support to jsbot.)

Check it out!

Why I use Last.fm — not Pandora

Ages ago, I found a statistic that said Pandora’s library has approximately 900,000 tracks and Last.fm’s has 12 million tracks.

This is due to the fact that Last.fm allows artists and music labels to upload their music directly. Pandora, on the other hand, is more exclusive.

While both approaches have pros and cons, I found through experience that Pandora plays more popular music: the stuff you here on the radio all day. Last.fm on the other hand would play some more obscure bands.

In this regard, I found Last.fm better for music discovery while Pandora was better for creating a quick playlist to play with friends.

Regardless, I began using Last.fm almost exclusively and this is when I found the feature that sold me on Last.fm: scrobbling. Using apps on my phone, tablet, and laptop I can easily record all the music I’m listening to Last.fm and get some neat statistics.

On my tablet and phone (both are running Android) I use an app called “Simple Last.fm Scrobbler.” I simply login to Last.fm through the app, and listen to music through the normal music players on my phone, and my listens are recorded to the website.

On my laptop I use a music player called foobar2000 and found a component for it which allows me to scrobble to Last.fm. Last.fm also offers their own scrobbler which can be used with a magnitude of clients.

You can see on my profile, for example, the way that it provides statistics: you can look at your song listens by week, month, 3 months, 6 months periods or look at your listens overall. I can easily see my favorite artists and tracks by looking at what I’ve been listening to lately.

And the best part? When someone asks “what kind of music do you listen to?” I can simply link them to my profile and give them a much more exact answer than “oh you know, all kinds of stuff.”

My Windows 8 start screen
I spent my last hour cooking this up. Looking at the apps I use I noticed they fit into about four categories: things for school work and programming, things for the web and information, and media / entertainment. I created these three columns and then realized there were some webapps I also commonly use. I implemented these as a fourth column.
I used many metro tiles available all over the web, including two custom ones (Sublime Text 2 and KiTTY), and used OblyTile to put it all together.

My Windows 8 start screen

I spent my last hour cooking this up. Looking at the apps I use I noticed they fit into about four categories: things for school work and programming, things for the web and information, and media / entertainment. I created these three columns and then realized there were some webapps I also commonly use. I implemented these as a fourth column.

I used many metro tiles available all over the web, including two custom ones (Sublime Text 2 and KiTTY), and used OblyTile to put it all together.