When one has programmed for years, he normally doesn’t pick up computer books to read for enjoyment. Well, I broke my own rules this week and purchased “Effective Java” by Joshua Bloch for my Kindle. What a great book! I know. I know! I was told about the book years ago and never read it, but I’m also writing code again now too. If you are a senior level Java person, you should read it. I recommend it. And, you will not be disappointed.
I really like how Bloch makes reference to pages in my “Design Patterns” book. This book has been helpful for me with my Blackboard project. This project has been very difficult but I am learning a great deal about analysis, design, coding, and refactoring. My project solves a problem using a blackboard AI model and I would estimate my completion at about 75%. The architecture is somewhat there but I’ve changed the design several times now. This has been a very difficult challenge. I took the idea from chapter 10 on artificial intelligence in “Object Oriented Analysis and Design” by Grady Booch. Since the design only is given using C++ semantics, I changed some things for use with Java. I also have a new edition copy for my Kindle and the new designs are a little different there too. I’ve made several changes from that too.
Joshua Bloch’s “Effective Java” has been a great reference for implementation and API ideas. Even though I’m implementing a blackboard framework (API), I’m also writing non-extendable classes (default implementation) to use the API and solve Booch’s problem. It’s fun but it’s very difficult. Stay tuned, I hope to have this problem solved soon. Then, I’m going to use the framework to solve a very different problem.
My blackboard project has been quite daunting because there are so many things to do. The system is not functional yet I have made many commit comments “v1.0.0 Release Candidate”. What does this mean? Version 1.0.0 of the blackboard project will be functional. The goal is to run the Main class and the system will solve the cryptogram described in the code documentation. I’m close but not there yet. I’ll edit this posting when I have time to describe my high level requirements and better explain what I’m doing. More to come …
I’ve finally found a Java project that should provide me long hours of nightly enjoyment. I spoke to this project in an earlier post and it was called cryptogram. I’ve decided to rename it blackboard because I’m trying to write reuseable code. I also want to build an API for continual enhancement, new implementations, or just plain code enjoyment. In an effort to build a development infrastructure for this project, I wanted to install JIRA for issue tracking. About 1 AM. this morning, I gave up. I never give up. I could not get the JNDI datasource for JIRA to create. I’ve had Confluence running successfully for some time now, but the JIRA install just wasn’t working.
I think I have a solution but I wanted to document the problem here for history sake. I’ll add the specifics from the server log tonight to this post. Here is a link to the project http://dlwhitehurst.com/blackboard
I have been working on the coolest Java project ever. I called it Cryptogram. I had an old book some of you may know called “Object Oriented Analysis and Design” by Grady Booch. There’s a chapter in there on AI and I thought I’d try my hand at implementing his design. It’s tough to say the least. I have to keep reading the chapter repeatedly to understand the concepts. Some of you competitive types should try it. I haven’t finished but here’s a link to the github repo for the source so far http://github.com/dlwhitehurst/cryptogram
I have a new job working for RBC bank. That’s the Royal Bank of Canada here in Raleigh NC. I am there as a contractor with ComSys/Manpower but also the possibility of going permanent. I took the position because I went salary with benefits and that was unique for them because most are hourly. I needed the benefits more than I needed my company’s high group rate premiums. Anyhow, I’m settled in now and working on web services. WebSphere is the server of choice and yes, we have the Rational tools. I am using Rational Software Architect. It’s basically RAD with UML. I like it.
I’ve also been writing PERL code again. I’m using PERL because I can do some systems programming with Apache to help the developers with some administrative tasks. I’m enjoying my work overall.
I’ll keep everyone posted as time moves along.
Welcome to the WordPress of David L. Whitehurst. That’s me. I had another blog using Roller on another server and I liked WordPress much better because my company site is hosted here too and it’s using WordPress. I liked Roller but I also like consistency. So, here we are. I will probably write about everything so enjoy!