Got you

Last month, I had a massive bill from rackspace for my servers. Apparently the server acquired a trojan that was constantly downloading new versions of itself. At rackspace, pricing is $0.12 per GB of transfer. My server, after slowing to a crawl for a few days, sending out data, did about 3 TB worth of data in December, racking up my charge for that month to over $400.

After I found it I reimaged the server that was infected, after moving all of my databases and everything over to my backup next gen server, and it was clear. For a month.

Yesterday, I found the same virus running on both of my servers. This time, dedicated to tracking it down, and also having time to, I found it. More importantly, I found out how to get rid of it, but I haven't found out how exactly it found its way onto my server, or how to protect against it.

It is the Linux / DDOS trojan. It has an embedded rootkit. It is impossible to find by googling "Linux virus" as part of your search, as the only results returned are in relation to how Linux doesn't get viruses...

That article wasn't written at the time of the previous infection, and luckily I came across it this time. Otherwise, I would have had to re-image both servers, causing lots of down time. That was a pain, but at least now I know what was causing it, if that bastard finds his way onto my servers again.

I don't write good

I mean, I could, if I really cared about the writing I would sit and think up some points, counterpoints, develop a story, engage the reader.

But instead, I spend that time and effort writing code and I just want to put code samples up with some description of what's going on, so my writing has taken a severe hit over the past decade or so. Although I was reading through some of my old posts and some genuinely made me laugh out loud.  So I write for me, is one aspect of it. Also I structure some sentences weirdly... "So I write for me, is one aspect of it".  This is just evidence of a severe lack of thought process in writing. However, I believe my code is pretty nice.

I remember a writing class I took in college, I had started out, my first paper was a D+ or C-, something bad like that. These were 4-5 page papers on whatever subject with a pre-determined theme. By the end of the semester, I was cranking out As because I learned so much about writing in such a short time. That professor was very good, and I forget his name.

All memories of what I learned in that class are long gone, and you're stuck with dealing with unstructured ramblings with snippets of code strewn about, but at least the image at the top of the page changes every time you refresh the page. So life goes on.

Pretty!!

I have made my site a bit prettier.  I brought in bootstrap for some UI elements, like tag list and the year accordions on the right side, as well as the fixed header. I don't know how much more I plan on using Bootstrap for this site though, but I use it a lot in other places.

I was messing around with the fonts and decided I could use big bigger post titles as well as a different overall body text font.

Since I'm not the best with colors, I tend to just pick greyscale and use different combinations of various intensities of grey, black and white to get the job done. The header images are where the color is :)

Enjoy!

I should write more Node.js posts

They are consistently my top rated posts from an SEO standpoint. Also, according to Google Analytics, they lead to an average of a good 5 minutes on the site.  I will come up with more, but I feel like I'm not doing anything noteworthy or extraordinary with Node.js at the moment. I've put a lot of time and coding into the foundation of my site and other sites I've written, and I've already written a lot about building up that foundation.  I will come up with some other stuff to write about, it's what the people want!

Update to CKEDITOR

Recently I've updated my admin section of the site to use the CKEditor. It is pretty nice. Previously I was using NicEdit. It inserted DIV when I pressed enter. This one inserts paragraph tags, so I was manually editing a lot of HTML source. That's one major benefit. Plus there's a built in HTML source viewer/editor.

It should be easy to make clean content now.

This is a h2.

We'll see how it goes.  The other major benefit, and this is just a F$^#$ YEAH to the internet in general, is that the CKEDITOR source is hosted on a Content Delivery Network (CDN), meaning I don't have to junk up my solution and git repository with CKEDITOR scripts and resources. F@#% YEAH INTERNET.

The Moment of Truth

Every morning I have an email from pingdom that my site went down overnight. I've upgraded to node.js 0.10.20 a few weeks ago to take advantage of some other bug fixes and optimizations, and it shows in the Google Analytics page load times (they're all 0 seconds)

I have had no luck tracking down the cause, but I read about how to prevent a server error from bringing down the site. I've implemented the suggested solution using node.js domains, and we will see what's happening tomorrow.

It might be the same thing because when I go into the server, node is still running my webserver, it just appears the socket was destroyed... We shall see. Wish me luck!

Prettier Site

I updated the site by incorporating a random picture that I've taken, pre-cropped, into the header.

As a developer and overall lazy person, finding and cropping 10 images to the size that I want was way too much. I will have to rectify this. I got a flickr API key. Here are my plans:

  1. Obtain Flickr API Key - Done
  2. Take Pictures
  3. Upload them to flickr the normal way
  4. Add a tag to them specifying that they are suitable for the website, like jtccom
  5. Write a service that checks for new photos of mine with that tag, download them, flag them as new
  6. Write an admin interface to show new images, and for now, let me click the important part of the image, so it can crop to the size I need around the specified point. Sizes will be pre-determined (3 sizes for the 3 different breakpoints I have defined in my responsive design (not much to it).
  7. Continuously have an inflow of beautiful headers that will display on my web page

It shouldn't be that bad. Nothing I've mentioned above has me too concerned. It should be fun! For now, though, I have 10 canned images that don't populate directly from flickr. They are random so you have have to refresh more than just 10 times to see them all. Enjoy!

Tag List Added

I recently went about aggregating the tags used on my posts to create a sort of tag cloud. I never liked the display of tag clouds, so I just list them out in order of occurrence, with the most frequent showing first.

This should help me get some traffic. Node.js and MongoDB are super fast. It doesn't even stutter when loading the site, across 500+ posts. Actually, I have no idea how many there are.  Super fast.
Here's the code which pretty much finishes in -5 seconds
var db = require("../db"); this.tagCloud = []; this.initialize = function(site, callback){ var self = this; while (self.tagCloud.pop()); db.getPosts(site.db, {}, -1, -1, function(posts){ var tags = {}; posts.forEach(function(post){ if (post == null) return; for (var i = 0; i < post.tags.length; i++){ if (tags[post.tags[i]] == null) tags[post.tags[i]] = { tag: post.tags[i], count: 0 }; tags[post.tags[i]].count++; } }); for(var tag in tags){ if (tags[tag].count > 8) // arbitrary limit so we don't list like 200 tags with 1 post each self.tagCloud.push(tags[tag]); } self.tagCloud.sort(function(a,b){ return b.count - a.count; }); callback(); }); }

This is a Cloud Server

New "Cloud" Server

I've recently switched over to hosting my sites on a Rackspace Cloud Server. I should save a lot of money on hosting. I have the 2nd configuration from the bottom, at about $0.03 per hour! It's sweet. The management console is awesome. My old host would only allow 10 subdomains across all of my domains, this management interface is just like, "limits? what's that?"

So I've got everything set up, after figuring out that CentOS automatically firewalls port 80, and everything's working. I'll get givit.me moved over tomorrow. Check out that site!! It's gonna be the bomb when everyone's posting their shit on there.

Cheaper for Baby's Sake

I'm moving to cheaper everything. Before I was just like "Meh... whatever" but Amanda and I are having a baby!! I have to save up some cash and lower my spending overall! We're due April 26th!! It's exciting!

Piano

Piano lessons are going good. I have bouts where I suck, but right now I'm getting pretty good, and I'm understanding the stuff he's teaching me. I'm going the jazz route. He wants to have me be in the recital this year. He's a new teacher, and I've been taking lessons for 3 years and it was never even suggested that I be in the recital... I don't know... I would be a nervous wreck the night before.

Website is Back Up

As you can see.  Very simple, no images, but the bells and whistles are there.  I wrote it up over a weekend, probably 6-7 hours total, converting the original mysql database over to mongodb, and writing some quick code in node.js.

There's only one table, posts, so it was easy.  There is a mechanism for me to edit the posts, and add new ones, but it's very crude!

Take it easy. Peace.