The Miami University CIT Spring Meeting Details
I’m a member of the Miami University (Ohio) Computer and Information Technology Advisory Council. Basically, we’re a group of people who work in the IT industry that Miami U visits with at least twice a year to discuss curricula, industry trends, and other related IT issues that may help them increase enrollment, teach more relevant information, and better prepare students for a career in IT.
We had our Spring meeting today and it was pretty enlightening. Basically, the regional campuses are considering having a Bachelor’s degree program for CIT. That would mean that you wouldn’t have to transfer to the Oxford campus to ‘finish’ your 4 yr degree. I would have done it if they would have had it way back then. Another thing that was evident, and even mentioned by Marik Dollar (The Dean of the School of Engineering and Applied Science) was that computer science and IT degree enrollments around the nation were falling very rapidly. He mentioned some statistics that I found very interesting. Read more…
This guy is amazing on guitar
I’ve always loved playing the guitar. I’ve always loved tapping my hands and feet to drum beats (People always have to get on me for beating the table or desk or my feet while in meetings). I’m a decent rythm guitarist, but can’t play the drums worth a lick. This guy (Andy Mckee) does it all – with a single guitar. Truly amazing.
Old Java Dogs… continued
Well, the post on javalobby created quite a stir. There are stirs all the time and I usually don’t even bother opining about them, but as you can see from my previous post this time I did.
Two major ideas prevail in the post responses. The first is the argument about actually adding new things to the language and the other, more prevalent conversation, is arguing about the merits of closures, properties, generics, etc.
I like the arguments. There are some really smart people (in the academic sense, at least) mixing it up. I think its all good.
The only thing I don’t like about where the thread headed was that, to me, Yakov Fain’s original post was pretty straight forward – leave java where it is. I just do not agree with that. The language is not perfect and if things are added right (not that I have the answer) they wont affect backwards compatibility. Quoted from his post:
Is Java the primary language that pays my bills today? Yes it is. Are there other languages/technologies I work with? Yes, there are. Do I want to see new language constructs in Java? No, I do not. People propose adding closures to the language. There are some attempts to introduce data binding to Java Beans. I do not think you can teach an old dog new tricks. If you remember, Java has been created as a simple version of C++. Let’s keep it as simple as possible.
There’s no inferring of anything there Read more…
Old Java Dogs
There was a posting on Javalobby today that interested me. It was basically in response to a post by Yakov Fain, a well known java ‘opinionist’ (my term), where he basically said he didnt want anything new in the Java Language. At a very high level I understood where he was coming from, but in practicality it was something that bugged me… and I lost any interest I may have had (and it wasn’t much – I’m not big on technology evangelists for more reasons than one. Thats another post for another day, though) in anything he had to say. Anyways, this posting on javalobby was right on. I remember when Java was the new thing… every new thought was a breakthrough. Read more…
Entering the blogosphere – with purpose.
So why do I blog? Well, a few weeks ago I heard a guy in a podcast or something, can’t remember exactly, say something along the lines of “With the way information is flowing today, and what KIDS just know about the internet and online identities, if you’re in a tech field and you don’t have an online identity in 2010 then you will be at a disadvantage to those who do.” I can’t remember the details because at the moment I giggled about it. A few days later, during my daughters 3rd birthday party at my house, I walked into my office and found my wife trying to help my nephew upload a picture she had just taken of him into his myspace page. We fiddled around with it for a bit and finally got it done. I was somewhat taken by the fact that he’s 12 years old and was talking about this friends page and that friends page, how cool they were, and how many people visited them. I decided that the guy I had heard was probably right. I wish I would have paid more attention to who he was. I do remember that he had started and sold 4 or 5 companies that were on the edge of technology – basically the commentator was saying he had a knack for seeing things coming and being right about them. Read more…
Alternate site design

My previous site design was a white background with a white and blue theme. Of the 4 or 5 people I had check out the logo, they all liked it, but didn’t think the MW jumped out at you. It was as plain as day to me, but I made it. I still like it better than the current one, but if people think I’m ike itters and have some wierd code-ish looking symbol then thats not really going to work.
Designing this blog
You’d think the hard part of having a blog is coming up with content… and you’d be correct. I have yet to put more than a few minutes of thought into any of my posts. I’m just trying to build the site for now. One of the hardest parts for me has been designing this thing. There are hundreds of themes for a wordpress blog, but I didnt find one where I thought “Yep, thats the one”. Instead, I took the one I liked most and I’ve modified it to what you see here today (note the date of the post… who knows what it will look like tomorrow). Anyways, I’ve spent more time futzing with the look and feel than I have with the content – as if you couldnt tell by the stupidity involved in my posts. At least I hope you thought that… I’m a reasonably intelligent guy.
Running into an old friend
I ran into an old friend Saturday night. We hadn’t seen each other or talked to one another in nearly 3 years for one reason or another. We were in a band together for years, he the lead vocalist and I the rythm guitarist. We were great friends for way longer. I left the band as soon as my wife and I were expecting our first daughter because I didn’t have the time that I would have wanted to devote to it. Anyways, we exchanged numbers and hopefully we’ll be able to hang out again soon.
His band’s myspace page gives a glimpse into what a great success they’ve become. I mean, look at the client list for the recording studio where they recorded their album. Listening to their songs takes me back… being on stage with a guitar was fun. Im not sure whether it was more fun than the Tuesday and Sunday night practices, but definitely more gratifying.
Resume Writing 101 (says me)
Part of my job at my company is to interview potential employees whose resumes fit a technical profile – basically they’re a Java/WebSphere person (or aspire to be). They range from entry level people (who don’t really fit this blog post) to people who have been doing development for many years. I have two major pet peeves about resumes for potential candidates. Read more…
Development Guidlines for recent project
At one of my clients we were seeing the occasional spike in memory usage of their portal server. We’ve even seen some of the dreaded OutOfMemoryErrors. Most of the memory growth was natural – due to the growing usage of the portal. The errors are not natural – so something had to be done. At a minimum we needed to layout some guidelines for the developers to follow from hence forward to keep from compounding the problem.
This is a single server environment, no clustering. Over the past couple of years, the technical leadership at the client wanted to focus on speed over memory usage. In general, this meant that instead of re-executing the action phase when a page needed re-rendered, items that were needed for rendering were thrown onto the session. This alone can be considered OK in some circumstances. If the objects are small and few then it’s not that big a deal. But in a portal, almost by definition, there are a lot of applications. So if a lot of applications start throwing objects all over sessions then it can become a problem pretty quickly.
In addition to the times where the objects were small and few, there were times when it was done out of performance necessity. In one instance, searching for items in a Domino ‘archive’ takes over a minute. The fact that this might be fixable some other way aside; this is not something one would want to have happen every time you re-render the page that this portlet sits on. So you store the items on the session. The next question is how many do you store? Do you store the entire result set? Hopefully you limit it to some reasonable size, but reasonable to who?
These are a small subset of what we laid out. Note: These are definitely not specific to portal applications.
- Limit Session Storage
- Minimize information stored on session
- Use hidden variables in forms
- Do not store large collections on the session
- Limit to reasonable size with paging (# per page, alphabetic, date range, etc)
- Limit database result set sizes to smallest usable size.
- If your result sets have more items than the stated threshold, don’t retrieve all of them.
- If your result sets have less items than the stated threshold, don’t retrieve all of them unless you have to
- If you can page through them do that.
- Use reasonable judgment based on the ‘size’ of the objects in the result set.
- If you are building large complex objects for each result, limit to a smaller number stored on session or use design patterns to solve the re-execute issue.
- Use String constants when possible
- For any re-used string values
- Database library, table, and column names that are used more than once
- Use StringBuffers instead of String concatenation always
- Use client side sorting when possible
- Single level sorts
- Relatively small result sets
- Release any session memory by using session.removeAttribute when that data has been consumed and is no longer needed.
- Always cleanup resources, such as database connections, in a finally block to guarantee that they are done.