Thursday, January 1, 2009

New Year's Resolution: 365 Tweets, 52 Blog Entries

Well, 2009 is upon us, and for those of us who believe in them, it's time to make our New Year's resolutions. I have to admit, I've been one of those people who don't believe in New Year's resolutions. After all, if you're not eager enough to do something right now, you're probably not going to stick with it. Want to stop smoking? Do it when you're ready. That might be on January 1st, but it may just as well be on any other day of the year. So why bother making resolutions? And how do you make a resolution that's going to stick?

It's really refreshing to look at today as the first day of a completely new year where I can change important things in my life. Some of those things I wonder about, and others I just have to have the resolve to do, and they are in my reach.

Last year, I made a simple and attainable resolution that I hoped I would be able to stick with, and that would get me back into a habit that I'd been sorely missing: I resolved to read a novel every month. It's a resolution I was able to keep. I didn't have to work too hard to do it. I had about 50 minutes of reading time on the train every day during my commute from Pasadena to my job Downtown at the LA Times. I ended up reading 16 novels last year, up from only two novels in the previous five years.

Why did it work? I think it worked because all I needed was to form a new habit. I had plenty of time to read the books, it was something I truly wanted to do, and all I needed was to make a commitment to myself that I was going to take the time to do it.

This year I'm resolving to be better about social networking. Everybody I know is already involved with social networking, and I'm partly involved already. I know that if I improve my social networking, it will be good for both my personal life and for my career. I have a decent LinkedIn profile, a Facebook account complete with friends from high school I still don't talk to, a Twitter account, and several blogs that I haven't updated in a while. I'm picking two of those for improvement: Twitter and blogging.

For those of you who don't know Twitter, you should really check it out. It's a great way to stay connected to people around you, and of course it's a lot more fun, the more people you know who are active on Twitter.

So, this year, I resolve to:

  • Tweet at least once a day
  • Post at least one blog entry a week on one of my blogs
Good luck to all of you in the new year!

P.S. Yes, this blog post counts as my first of the year. Maybe this is gonna be too easy. I'm already 1.92% of the way there!

Tuesday, August 19, 2008

Yu Go Club

I've started a new blog for the Go club here in Pasadena, the Yu Go Club. You can find it here: Yu Go Club Blog In particular, I want to start writing about the future of Human-Computer Go. You can find my first article on the subject here.

Tuesday, July 15, 2008

Advice to a fellow developer

Here's my advice to a fellow Java developer who asked me how to learn Ruby on Rails. Having gone 100% Ruby on Rails since October of last year, I had a lot to say:
Join a local Ruby group if you can find one in your area. I would say definitely get the newest version of the Rails book, but wait a month or two if a new version is about to come out. Older versions aren't useless, but things change every day. Even the newest book will be missing things before ink even touches paper. I highly recommend Rails for Java Developers as the fastest way for you to get up to speed. After slogging through the Ruby and Rails books, I found RfJD wished I had read it first. They build on what you know from Java instead of starting you from ground zero, and that will save you a lot of time. Build a couple of VERY SMALL projects first before you launch yourself on a big project. Your first few projects will be very messy and hard to maintain, despite your best intentions to the contrary. Practice Ruby with simple problems like the ones at Project Euler. Ask a lot of questions. Shun the Rails Wiki pages. The information there is generally a mix of wrong AND out of date. Watch Railscasts videos. Suffer gracefully. Ask more questions.
Got any more advice to share? Post it here!

Wednesday, July 2, 2008

BookMooch vs. PaperbackSwap (Part 1 of 2)

I've been using BookMooch to trade books with people, and it's generally worked pretty well for me. However, I found myself ultimately with a number of points and a big wishlist of books that I wanted that nobody offered. Enter PaperbackSwap. I've been a member for about a week now. What do I think about it? I think they got a bunch of stuff right that BookMooch hasn't. Take a minor example: That's a referral banner that I can include in my blog post. I get points if you sign up through it. If you find this post at all helpful, I hope you'll use that banner to sign up for PaperbackSwap. What's the difference, you're asking? The most compelling reason for me is that they have a bigger catalog than BookMooch. Checking out the "Under the Hood" link earlier today, I found that they have around 4 books posted every minute. Right now the site says 2,280,827 books available. One of the most striking differences, to me, is the fact that BookMooch only gives you 2 points to start with (meaning you can request 2 books), and after that you can only ship books to other members or buy points, as a means of getting more points to request books. BookMooch, on the other hand, awards 0.1 points for every book posted and 0.1 points for every book you receive and provide feedback on. This means that BM is creating points constantly regardless of whether you're posting useful books into the system or not. More points received than spent means that it's easy to mooch books, and you don't even have to post books that anybody wants.

Thursday, May 8, 2008

Surprising findings using Ruby Arrays as Queues

I'm working on an Aho-Corasick implementation in Ruby, and found something interesting about Ruby. Well, something interesting to a relative newbie, I suppose... Arrays are the Ruby object that people use for Queues in Ruby. Which is a little odd, because the performance of Ruby arrays as queues is pretty poor. Worse, in fact, than inserts into a Hash. This is probably due to the fact that pushing objects into an array requires growing the array. Furthermore, I found that the performance of Array#+ is better than Array#push and Array#<<, even though all three methods ostensibly do the same thing. It turns out that Ruby does have a Queue object that performs well. It's intended for producer/consumer operations across multiple threads, but nonetheless it performs much better as a Queue than arrays do. Here it is, the Queue class in all its glory.

Sunday, April 27, 2008

2008 Presidential Election Poll

I've created a 2008 Presidential Election Poll using my Range Voting poll that I wrote about earlier. The polling application is ready for general use, although I do have a few more features I want to add to it. In the meantime, cast your vote for president!

Sunday, April 20, 2008

Range Voting Application

I'm happy to announce my new Range Voting Application, which allows you to set up your own range voting polls. After finding that Approval Voting didn't give my co-workers at the LA Times enough expressiveness, I started looking for a Range Voting system I could use for my weekly polls. When I didn't find a great Range Voting application, I decided to create my own. It's easy to use, both for voters, and for poll administrators. Try it out by voting in one of the example polls on the home page or jump right in by creating your own poll today! If you want to learn more about Range Voting, the folks over at RangeVoting.org have a fantastic site with lots of great information about Range Voting.