Thursday, March 14, 2013

Goodbye Google Reader

Yesterday, I was browsing my feeds in Google Reader and came upon an article relaying the news that Google Reader will be retired on July 1st.  According to the post on Google's official blog, the service was launched in 2005.  I started using it shortly after launch and have visited the site most days since, so I was pretty disappointed to hear the news.  I knew it was a bad sign when the Reader link disappeared from the prominent section of the Google app bar and moved more than half way down the "More" menu, but I hoped that Google would at least keep it alive as long as it made them more money than it cost to operate.  Perhaps that's no longer true, but I have my doubts.  After a certain point, the service ceased to receive much in the way of UI or feature updates and it's hard to believe it's been a resource hog (the same can't be said of Google Wave).  Although I doubt it will make a difference, I signed a petition on, asking that the service be kept alive.

Rather than waiting around and hoping for its revival, I thought it would be worth exploring alternatives to Reader.  A quick Google search led me to a CNET article discussing five other options and Digg announced today that they'll be building one as well.  My plan is to try out Feedly in Chrome and on my phone and see what I think.  So far, so good, but I'll let you know if my opinion changes.

Wednesday, May 25, 2011

GPars For Beginners Presentation

I'll be giving a presentation titled GPars For Beginners to the Boston Grails Users' Group on Wednesday, May 25 at 7 P.M.  Here's my description of the talk:
The GPars (Groovy Parallel Systems) project provides multiple abstractions for concurrent, parallel programming in Groovy and Java. Rather than dealing directly with threads, synchronization, and locks, or even the java.util.concurrent classes added in Java 5, the project allows you to think in terms of actors, data flows, or composable asynchronous functions (to name a few).
In this talk, I'm planning to cover the basics of GPars, including what it's like to learn to use it. Although I've done a fair amount of concurrent programming, I've just started using GPars. As such, this talk should be suitable for Groovy beginners.
If you're a fan of Groovy and will be in the Boston-area, I hope you'll attend.  If you can't, I'll be posting a link to the slides here when they're ready.

In the presentation, I'll be referring to several resources I found helpful.  Here are links to each of them:
(Sorry if this shows up as an entirely new post.  Blogger seems once again to be acting funky.)

Update: Here are the slides from my talk.  Sadly, I forgot to record the audio to go along with it. Sad smile

Monday, October 4, 2010

Is Xmarks Dying or Not?

Early this year, I made the switch from Google Bookmarks to Xmarks. I've been really happy with Xmarks and have used it to sync the bookmarks and open tabs in Firefox, Chrome, and IE on Windows and Firefox, Chrome, and Safari on Mac OS. They had plans for an Android client which I would have installed the moment it was released. Unfortunately, the company announced on September 27th that they'd be discontinuing the service around the end of this year. You should have seen how much the news deflated me. I'd finally found a way to keep all of my browsers in sync and now the service would be going away! Well, I found out some promising news today. The outpouring of support and the number of disappointed users expressing their willingness to pay for the service has made the company reconsider. If you're an existing customer or even someone who just found out about the service and would be willing to pay at least $10 per year for it, please go and sign the pledge at PledgeBank! I really hope it reaches their 100,000 signature threshold.

Update: Xmarks was acquired by LastPass, a company that provides a password management service. You can continue to use each service for free, pay $12/year for each of the premium services separately, or do what I did and sign up for the combination for $20/year.  What a nice outcome! :)

Sunday, April 25, 2010

Technical Research Topics

As you can probably guess from reading this blog, I'm the sort of person that's constantly researching new technologies, often to the point where I move on from a given topic before I've given it the time and attention it deserves.  The point of this post is to both mention what I'm doing to make my attention less transient and to discuss some of the technologies I've decided to focus on.

How am I trying to keep my research interests under control?  Composing a list.  I created a Google spreadsheet and started entering my professional interests.  That probably sounds rather unexciting, but for the first time in a while, I had a concrete list I could look over and evaluate.  The first thing I noticed was that it was long, far too long.  There was no practical way to work on all of the items in the short term.  The natural next step was to sort the list into a rough priority order.  It was hard to push items down ("Ooh, I bet that would be fun!"), but there are only so many things a person can do.

Here's a subset of the list, not necessarily in priority order (I'm still trying to figure out how much I care about the technologies being relevant to my day-to-day work):

  • Git is the distributed/decentralized source control system that Linus Torvalds put together in 2005 to manage the source for the Linux kernel.  It took me a while to grok the notion of distributed source control (I'm not alone), but once I did, I became convinced that it could lead to great productivity gains.  Rather than trying to convince you of this directly, I refer you to the site Why Git is Better Than X, the Getting Started with Git DZone RefCard and Git 101 screencast by Matthew McCullough (registration required), and GitHub.  If you need any extra encouragement, you should know that Git is being used by Grails (and SpringSource generally), Eclipse, and many others that I'm forgetting at the moment.  Learning Git is definitely my top research priority.
  • Static Groovy (most call it Groovy++, but I can't stand that name!) is a project based on the not-yet-released 1.8 version of Groovy that provides annotations allowing developers to designate sections of code (methods or classes) as statically typed.  This brings large performance improvements for many operations, allows some errors to be caught at compile-time rather than run-time, and allows type inferencing similar to what's done in Scala.  I dug into this a bit and ended up changing my mind.  Along with making Groovy run faster, it makes significant semantic changes.  It's not just an addition to the language, it's a whole separate dialect.
  • GPars (formerly GParallelizer) is a project that aims to make it easier to write parallel programs in Groovy.  I originally learned about its smooth support for Fork/Join, but it also enables several other concurrent programming models such as actors, agents, and dataflow concurrency.
  • Gradle is a new build system/language written in Groovy that learns from and improves upon Maven.  Like Maven and Grails, it emphasizes convention over configuration, but unlike Maven, it doesn't become painfully awkward to deal with when you diverge from its conventions.  It uses Apache Ivy to implement its dependency management features.  Speaking of which…
  • Ivy is a sub-project of the long-lived Ant build system and separates management of dependencies from the rest of the build process.  It can be used with Ant or other build systems (see previous).
  • CouchDB is a relatively mature open source document-oriented database that is frequently grouped with other "NoSQL" databases.  It's written in Erlang and stores JSON documents.  It allows you to build views based on Map-Reduce functions written in JavaScript.  I recently signed up for a beta account with Cloudant, a company that provides a hosted version of CouchDB.  As a related alternative, Riak is also definitely worth considering.