Friday, June 5, 2009

Google Wave

I've very excited for Google Wave to come out.  It seems to address a lot of the problems that I've noticed in other media formats.  I often get copy and paste messages from some of my friends on IM where they want to bring me in on a conversation and I need to catch up.  With Google Wave, this isn't a problem, they would simply add me to the wave.  Sometimes conversations run longer than I have time to finish and so they turn into an e-mail, possibly with the conversation copied into the mail.  I've been frustrated by the lack of good ways of communicating in a wiki.  Talk pages and discussion pages just don't work extremely well.  I think that Wave can answer my issues with that too.  I think Wave is going to be The Next Big Thing.

After watching the video in the link, I thought: "I want to work on that!" I won't get the chance to be paid to do so, I'm sure, but it will still be a fun side project to write applications for it.

Monday, May 25, 2009

Higher Order Perl

There are a ton of "new" programming languages coming out of the wood work. All tend to solve different problems in varying ways. I'm completely fascinated with Clojure. Boo and F# look interesting.  Groovy seems right out for me because I don't know Java. Really many of these Java.Next languages look interesting. I'm planning to start with Clojure, though. The alternate languages that run on CLI could be useful at work. A lot of what draws me to these languages is the concept of Functional programming

Well, I just found a book on Perl (my "go to" language) that talks about using functional programming techniques in Perl. I started reading it online and it's clear that Higher-Order Perl: Transforming Programs with Programs is a must have for my bookshelf. One cool thing is that it puts names to some of the solutions that I figure out on my own. It made me feel smart. ;)  It also pointed out some of the potential dangerous behaviors that I have. For example, I've made some of my functions non-reentrant by using global dirhandles. It also gave me the solution to that problem. I now have an urge to go back through some of my larger Perl programs to see how much better I could write them now.

Higher Order Perl has already introduced me to some useful tools and I'm not even half way through reading it for free online. I think I've seen the Memoize module, but I never really thought it would be good for me. I never really took the time to read all the documentation on it. Now I know that I could have used it in a couple cases where I created my own caching. Here I thought I was being clever, but I was simply not using an existing module that would have done the job for me for free and probably would have done better than I did.

This all has me thinking: How much time do I want to invest in these cool new (to me) languages and how much time do I want to invest in making my current language skills stronger? I don't have an answer yet. I know I want to do some of both, though.

Tuesday, May 12, 2009

Java Virtual Machine (JVM)

I'm becoming more and more impressed with the Java Virtual Machine as I continue to read the Java(TM) Virtual Machine Specification. I haven't done any Java programming, but Clojure has really been fascinating me lately and I've been trying to figure out how to get started. Clojure is a dialect of the lisp programming language designed to compile into Java byte code. I don't know what really got me interested. I guess that it's just that am getting more and more fascinated with managed code and I like lisp. Getting started with clojure has been a problem, though. I don't think I have the background needed to jump in and start working right away. I've done a bit of emacs lisp programming and some common lisp programming, but the only Java I've done was modifying existing programs and all that was pretty basic stuff. So I've been reading the JVM Spec and I'm pretty impressed. It's a nice tight spec. The book itself is written well enough, but you have to understand that it is a specification. If you don't like reading specs, this might be a little tough. After reading this, I hope I'll be ready to get started with Clojure.

Wish me luck.

Monday, May 11, 2009

JEEP Thoughts

This will be my personal blog. I'll probably write about a variety of things that interest me or that I have struggled to figure out.

Some of the topics are likely to be martial arts, computer programming, board games, etc. My goal is to have at least a short post every week. I have little faith that I can be that consistent at first. We'll see.

I am sure that I'll thrive more with more feedback, so please leave me comments, questions, send me e-mails, whatever.

-JEEP