Wow. Things have been busy and I have been neglecting my blog. I feel bad about that. My blog is so important to me, and things have been keeping me away.
I am a teacher at heart. I love to teach. That is why I blog, that is why I present at conferences, and that is why I am going to grad school. So the fact that I have been unable to blog for a while upsets me greatly. But I want to tell you a little bit about why. This is not about making excuses. This is about what is keeping me busy and what I am learning about. It will also motivate me to blog about these things, and that's the important part.
As many of you know, I recently started a new job. About a month ago I started working at Dakota County Technical College as a Web Application Developer. This last month has been SO MUCH FUN! I am learning so much, doing new things, and accomplishing things that I have wanted to do for years, but was unable to. Right now I am at a stage in my career where I am actually a little disappointed when Friday afternoon rolls around and I have to wait until Monday morning to get back to it. Awesome.
see more Lolcats and funny pictures
Things I have been learning about:
Server Administration - I've not done much with servers in the past. I manage my own VPS, and I have messed with server operating systems on my own, but I have never built a server from start to finish, until now. In the last month I have built three. One Windows Server 2008 machine with IIS 7.5 and ColdFusion 9, one Ubuntu Server 10.04 machine with MySQL 5.1, and one Ubuntu Server 10.04 machine with Apache, Tomcat6, and another unnamed application server. Learning how to do all this has been so exciting.
Virtualization - 2 of the three named machines above are virtual machines running in a VMWare environment. Virtualization is AWESOME. AWESOME. It is really cool to be able to say "We need a server for X", and then be able to have it up and running a few hours later with no need for additional hardware. I have also been doing a lot at home and work with virtual machines, to experiment with new OSs, for testing, and to try out new stuff in a clean environment.
Tomcat - I mentioned earlier that one of my Linux servers was running Tomcat6. I have been working with Tomcat a lot lately. I've been learning about JEE applications, connecting Apache to Tomcat, a little JVM tuning (VERY little), and running multiple instances of Tomcat. Last weekend I set up Tomcat instances for Adobe ColdFusion 9(Tomcat 7), Liferay Portal Server, Alfresco Enterprise CMS, and JIRA Issue Tracking. I've also used both mod_jk and mod_proxy_ajp for connecting Apache to Tomcat.
Ant - I have been working with Ant to get some automation going in my deployment process. Doing things manually sucks. Ant is not hard to use and can make deployment a much easier process. If you have not yet tried it, do so. It's worthwhile.
MXUnit and TDD - MXUnit gives me a happy heart. I have been using MXUnit on two projects in the last month. One using TDD, and one not. TDD is awesome, but it is tough to get used to. I am starting to get the hang of it. But MXUnit is just plain awesome. Even going back to an existing project and writing tests for it is fun and satisfying. I love seeing red turn to green. I see MXUnit being a big part of my future development and deployment process.
Java - One of my prerequisites for grad school is Java. To do a lot of the work for assignments, I guess I need to know Java. So I am taking Java II here at Dakota County Tech. I decided I knew enough to skip Java I, and I think I was right. I had my first class last Thursday and I feel I am already caught up to the rest of the class. This particular Java class is about desktop application development with Java and Swing versus JEE development, but it is still good knowledge and will give me an opportunity to learn more about desktop development. Which is good, cause I will be presenting about it in December.
Presentations - I have 5 presentations coming up in the next 8 months. Four of them will be new material. I will be speaking at Adobe MAX in LA next month on application security, I will be presenting twice in December at the MN Government IT Symposium (once on options for desktop and mobile development and once on cryptography for application developers), and I have been selected to speak at Scotch on the Rocks 2011 in Edinburgh , Scotland, where I will present on application security and hands-on hacking. I am very excited about all of these opportunities and what I will learn from them.
Security - Of course, we cannot forget security. Near and dear to my heart. I have been reading and experimenting with new topics in application security. Specifically with server security, web application firewalls, and integrating the OWASP ESAPI project with ColdFusion.
Cryptography - I have been researching and trying out crypto a lot in the last year. Stuff that I never thought I would understand is becoming quite clear to me. That makes me giddy.
OSS Projects - I have three OSS projects that are "in progress". No announcements about those yet, but I have been making progress on one of them (using TDD, awesome).
There is so much to learn, and to write about, but with limited time, it certainly becomes a challenge. And, of course, blogging is the easiest thing to put off when I have so many things to do (Geez, it's like those kids need to eat everyday). My wife is also in school. She attends full-time in the evenings, so I watch the children every night until they are in bed.
Anyway, cool things are coming. There is no way I am going to let all this new-found knowledge sit in my head and get stale. I NEED to share. If anyone has any interest in hearing more about one subject or another, or have any specific questions about any of these subjects, please feel free to let me know. Specific questions or requests can be a great motivator.