Wednesday, December 21, 2011
Spring Python 1.1.1, 1.2.1, and 1.3.0.RC1 are released
Monday, December 19, 2011
Open source - you're hired!
Okay, I'm not trying to bore you with our dating lifestyle. I just wanted to share the fact that my wife can jump between her Windows netbook, my MacBook Pro, Mac Pro, and Linux machines because she uses Libre Office to do all of her writing. I converted her a few years ago, and the results have been incredibly useful. There is no thought about what machine is being used. Because they ALL have Libre Office, it is a piece of cake for her to work on the story she has been writing for years.
Last night, I powered up her antique Windows 98 computer to dig up an old copy of her manuscript. It had over 30 pages of content that had been lost. Finding it was amazing. The trick was figuring out how to get it off the machine. At first, I tried to email it out. Unfortunately, Internet Explorer 5 doesn't work with Yahoo Mail or GMail. I tried to install a newer browser, but couldn't find one that would install successfully on that old system.
Next I tried inserting a thumb drive. Sadly, it needed drivers that I couldn't install. We had copied it to a spare floppy disk (hadn't used those in awhile). My next step would be to either pull the floppy drive out and plug it into a more up-to-date machine, or simply pull the entire hard drive. Before doing that, I decided to boot up the machine using an Ubuntu Live CD. That was tough because this machine had only about 500MHz of CPU power. Eventually it came up. I thought it would connect to the network immediately, but somehow it didn't.
Starting up Firefox froze the system because there just wasn't enough memory. Thankfully, the command-line interface saved the day. Ubuntu easily mounted the thumb drive. I decided at this point that installing Java and CrashPlan was ridiculous and I didn't have the time for it. I copied the old manuscript files onto the drive, ejected it, and powered the machine down. I walked downstairs and gladly announced I had rescued the files.
The point is that through the power of open source software, Ubuntu, cheap thumb drives, and Libre Office have commodotized the ability to write. My wife and I don't have to choose a computer, an operating system, or anything else in order to work on a fictional novel.
Tuesday, December 13, 2011
Stop SOPA
I've censored the following, in protest of a bill that gives any corporation and the US government the power to censor the internet--a bill that could pass THIS WEEK. To see the uncensored text, and to stop internet censorship, visit: http://americancensorship.org/posts/3673/uncensor
Do you █████ the ██████████ ███████? Me ███████. ████ is why we ████ to ████ the ████ ████ ████ is █████ ██████ the █████████ █████████ ████ ████. The ██████████ has ███████ ██████ ████████ ████████, and to █████ up █████ own ████████, █████ ██████ ███████. █████ ███████ █████████████ the ███████, ████ ████'t █████ one ██████ of an ███████. ████ ██████ ████ "█████ us". If ████ can ███████ do ████, ████ █████ do you █████ ████'ll █████ ████ ████ ████ the ████ █████████ of ████? It is █████ to ███████ the ████ ████████ ████ ██████ ███████ ███████ ████ don't own. ███████, it ██████ ██████ to ██████ ████ ████ ████████ ███████ ██████ ███████ ████████. ████ █████ it ████ for the ████ to ██████ ████████, ███████ or not ████ are at █████. If the ████ is ██████ ███████ ███████ a lid on █████ ███████████, why ██████ the ██████ ████████ ██████ █████ ████████ █████? Why ██████ we be ████ to ██████ for it? ███████ of ██████ █████'t ████ ███████ to █████ IP ███████, but ███████ the ████████ █████ the ████ of the ██████████ isn't the ██████.
Monday, December 5, 2011
Book review: "Just Spring"
The author states in the preface,
"Just Spring" definitely lives up to that goal. I was able to read through the book in a few hours, reading probably 90% of the code, and feeling like it hit home with the basics.If you wish to get introduced to Spring quickly and precisely, or would like to refresh your knowledge on Spring in couple of hours, or have only a weekend to learn Spring before you start working on it on Monday, this is the book that you should choose.
I am an experienced Java developer with a strong familiarity with Spring. This may sound like I was able to whisk through the book based on my experience, but that is not the case. I have read several Spring books and can say with complete confidence that the author was very good at making it a light read. The code samples are simple and easy to follow. He didn't dig into the more complex functionality of Spring, but instead stayed on target with covering the core parts.
Three of the five chapters focus on Spring, Spring Beans, and the Spring Container. They do a great job of introducing dependency injection (DI) as well as Spring's battle tested container. It shows the benefits of DI along with configuring things using XML and annotations. The author also gives pros and cons of XML vs. annotations. I really appreciated that after discussing this, he took a stand on his own preference and why.
In the fourth chapter, Madhusudhan discusses the essentials of Spring JMS and its powerful JmsTemplate. This includes a 2-minute intro to JMS for the unfamiliar. In ten pages, the author does a good job of showing how to create message driven POJOs. He is also good at pointing out some of the limitations of JmsTemplate, especially its synchronous nature, and how to receive messages asynchronously.
In the fifth chapter, the author wraps things up by introducing Spring Data. In about eight pages, he shows how to use both the JdbcTemplate and the HibernateTemplate. These two powerful utilities were some of the biggest tools that helped empower the Java industry. Some have even said that Spring and Hibernate go together like peanut butter and chocolate, and Madhusudhan does a good job at showing how to set up and use these tools without getting bogged down in unnecessary code.
While reading the chapter on Spring JMS, I debated in my mind whether I would have included this in "Just Spring" were I to write it myself. That is probably because I don't write heavily message-oriented systems. I would have preferred a chapter about Spring AOP (aspect oriented programming). Perhaps that would have the book too big to read over the weekend. Since the author is already working on another "Just Spring" book, perhaps he will eventually write one that focused on AOP.
I also felt like the Spring Data section was a little out of date when it delved into the HibernateTemplate. In its earlier days, Spring greatly simplified the Hibernate API, but since then, Hibernate has greatly improved their API. Similar things can be said for JDO and iBatis (which aren't part of the book). The point is, Spring 3 documentation now currently recommends coding against plain Hibernate, JPA, and JDO APIs. But if you are joining a team that uses classic ORM, this section will be of immense value.
Nonetheless, the light writing and easy-to-follow code samples definitely makes it easy to pick up the concepts of core Spring. I would recommend it to anyone who is getting started with Spring or joining a new Spring-based team and wants to catch up quickly.
Disclosure: I was provided a free copy of the book.
