I am not clear what I should use my free time doing. Right now I am still going through the Struts 2 tutorials, and I am also upgrading a few web apps that I made a few years ago.
I tried to recompile an old app with Maven, and it took a long time because I had to track down the latest versions of all the dependencies. I am also struggling with testing it as well. I am having a hard time setting things up so that the tests hit a different database than the “production” app. I could just edit the hibernate.cfg.xml file in src/main/resources, but I would prefer to do things the “right” way.
I tried using src/test/resources/hibernate.cfg.xml, but that did not work. I know that editing the prod file is not quite correct, but I figure I could spend more time trying to work on that, or I could write some tests.
It is a bit frustrating that there are a LOT of sample apps that do not have tests included, and also do not have test configurations as well.
I know some people say that tests should never touch the database, but personally I think that is kind of dumb. All this app does is change the database. I am not against mocking and stubbing, and if you are calling external services you need it. But I do not understand the stance that some fundamentalists take that your tests should NEVER touch the database. Changing databases is what a lot of applications do. If all you are doing is using mocks, then you are not testing your app. You are testing some artificial thing that is not really your app.
I am still going through Venkat S’s book.
I had gotten through the chapter on STM. A lot of the examples for STM dealt with some old versions of APIs. The first time I just read through them pretty slowly. I was able to follow. But then I did a bit more googling, and I was able to find later versions of the STM libraries he was using.
I had already started the chapter on actors. I decided to go back and work on the STM examples. It is taking a bit of time.
I still am going through Programming Concurrency on the JVM by Venkat Subramaniam.
I have hit a bit of a snag. I am on the chapter covering Actors. He uses the Akka library, but he uses an old version of it. A lot of the packages have changed, and I could not find some of the classes in the documentation. I would like to say that it is nice that they now have javadoc in addition to scaladoc. Frankly, I am not too thrilled with Scala. The Java code that calls Clojure STM classes still works.
Also: Venkat S was here a couple of days ago to speak at the Austin JUG. He gave the same concurrency talk I saw a couple of years ago at No Fluff Just Stuff. I took some notes, and I will post them in a few days. Some of the Java 8 stuff looks interesting.
I am pretty late, but here is an update.
I am kind of thinking about reviving RailsPress. A Rails user group had another thread complaining about WordPress. In addition, there was an article on Naked Capitalism that the site was having some issues with a WordPress host called WPEngine. WPEngine is in the Capital Factory, an incubator in Austin that hosts the Austin Ruby and Austin Rails groups. If I get RailsPress up and running, I doubt I will be talking about it at the Capital Factory.
I am also looking at Groovy and Grails. I am porting a DNS server written in Java to Groovy. I got the tests written in Spock. I have not started porting the server itself yet. Getting the tests from JUnit to Spock took a while.
I am also looking at Java concurrency. I am going through Programming Concurrency on the JVM by Venkat Subramaniam. I don’t know if I will ever use some of this stuff (I might use GPars in my Groovy DNS port), but this has been a big hole in my Java knowledge that I think it’s time I should fill. I might post about the Callable interface.
Not too much happened this week.
I met with the dev whose app I am upgrading from Rails 2 to Rails 3. His app helps people transcribe documents/books/papers. He deals with people who have interesting collections. He is involved in a few projects that could be huge in the digital archiving space. I am pretty much done with all the Ruby stuff. Now I have to add some JQuery.
There was an Austin Groovy meeting. I think that there will be some interesting things happening in the Groovy space going forward.
I am involved with the SciRuby project. I might curtail that a bit and use Commons Math and Groovy to learn linear algebra for now. It would be good practice with Groovy, and I am more familiar with the JDK. I would like to encourage scientific computing in Ruby, but for now NMatrix requires some hand-compiled C libraries. Right now it does not work on Ruby 2. And someone wants to contribute a library that runs on JRuby. I like Java, I like Ruby, but I don’t like putting them together.
I have heard there are a lot of Java shops that are running JRuby to transition from Java to Ruby. If a Java shop wants to try out dynamic languages, I think they should look at Groovy.
I am a bit late with the weekly update.
Last week was kind of like the week before. I am still at the new job. I am still working on a couple of side projects.
One is helping a local dev upgrade his site from Rails 2 to Rails 3. I fix errors as they come up. I am also adding some tests. I have some for the models. I am starting to add some for the controllers. I was just running the controller test and I thought I finally got it working. Bypassing the authentication took a while. (He is using an obscure gem for authentication.) Then I finally ran the whole suite, and some of the model tests broke. So I had to do some refactoring. Some of it might not be up to the best standards. I am explicitly creating objects instead of doing it all with FactoryGirl. But as Voltaire said: Do not let the perfect be the enemy of the good.
I am also still working with Groovy a bit, rewriting a DNS server in Groovy. It has some JUnit tests. I might replace them with Spock tests. If I am going to do it in Groovy, I should probably do as much in Groovy as I can.
Here is an update on what I am doing (I try to post at least once a week).
I am still employed, so that is good. They are hiring a lot of people, so things are a bit chaotic.
I am still working on a side Rails project, helping a local developer upgrade from Rails 2 to Rails 3.
I did upgrade a few of my apps on github from Ruby 1.9.3 to Ruby 2. So far it all seems to be working.
I am also trying to port a DNS server written in Java to Groovy, and also picking up some Gradle in the process.
I may not be posting too much since I started a new job recently. I spend a LOT of time in traffic, so that cuts down on a lot of other stuff.
I am helping a local developer upgrade his Rails app.
I am also going through the book Seven Databases In Seven Weeks. I doubt I will go through all seven. It might take longer than seven weeks. I am taking notes and putting them on github.
I got through Postgres. Now I am on HBase. A couple of weeks ago I went to the Austin JUG, and the talk was on Big Data and Hadoop. They did not get to the Hadoop demo. There are a lot of projects and APIs associated with Hadoop. I hope the 7 Dbs in 7 Wks book will take care of that. Hadoop out of the box looks pretty intimidating.
So I am looking at a Java job. From what I have been told, there is a lot of REST involved, so I am trying to get through a Jersey tutorial. I was having a lot of issues with Eclipse. I could not get it working with Tomcat. It turns out I had the wrong bundle. There are a lot on the “Download” page. “Eclipse for Right-handed People”, “Eclipse For Redheads”, “Eclipse for Australians”, etc, etc. I just want Eclipse, dammit.
I got it to run with Tomcat, but every time I tried to run the Jersey example, the Eclipse UI would crash. Tomcat would still be running, so I could still call the service. And Eclipse would be running in the background. But I had to keep killing it (at least I think I did) and restarting it. That got old fast, so I am going to try it with Netbeans. I always felt more comfortable with Netbeans. There are not as many plugins, so you have to do more things yourself, but having fewer versions makes it easier in some ways.
So here is an update on what I have been doing lately.
I am looking for work.
I might try going freelance. I might have a couple of gigs in the pipeline. One is Rails, one is Scala. I don’t really like Scala, but it might be an excuse to try the Play framework. I don’t like Scala, but I think Akka is interesting. I have only briefly looked at the Play website, but I think it uses Akka actor framework. I attended No Fluff Just Stuff in 2011. I attended a talk on Akka. The presenter went over the way that concurrency in Java is broken. I asked him if that means that all existing Java web apps are not thread-safe, and he said it does. I think running apps on Akka are going to displace the container-style Java apps.
I went through the Akka example app written in Java. I will post about that.
I am also working on some Ruby stuff.
I am working on a Twitter app to retrieve my tweets and format them in HTML. I have used a couple of Twitter plugins for WordPress that each week get your Tweets and post them on your blog. I liked it because I could use my blog to bookmark something. I could tweet the link with a note, and then later search for it on my blog. But they do not seem to be updated. The developers lose interest. One was really good, but the developer added a dependency, and it stopped working. So I decided to make my own. All this will do is run manually and spit out some HTML. I will then just copy and paste it to my blog. So I will just make something for myself.
I am also looking at the Rails Apps. There are a couple that I still have not gone through.
I am also looking at SciRuby. I submitted a proposal to give my SciRuby presentation at a conference in Dallas called Big Ruby. They said you could interpret the themes broadly, so I did. The NMatrix library in SciRuby uses ATLAS, which is written in C and Fortran. I will go through the Khan Academy videos for linear algebra to learn linear algebra and learn how to use NMatrix.
In addition to the SciRuby project, there is an upcoming conference on using Ruby for scientific computing. I think that Ruby is under-represented in this niche, and that working on these issues could open up new markets for Ruby developers, in addition to the usual hyper local mobile social web stuff that Rails is known for. I think this could even have a positive impact on scientific research and scientific software. Thanks to Rails, Ruby has brought people from other walks of life to web applications. So I think Ruby could expand science research.