Pages

    Tuesday, October 28, 2008

    I'm Pushing this on You

    So, one of the requirements we have is to be able to alter the content of a page given a users input, where that user is either another user entirely or the main user of the given session. The aim is to impart a collaborative aspect on a given page so that anyone on the page can view the collective changes that have been made to that page.

    This has brought me around to thinking about AJAX in a different manner. Normally, AJAX is used to pull info from the server. The page (or component on the page) makes a request of the server, and the server sends the response to the page/component. However, what do you do when you need to reflect changes to your model in near real time?

    Well, the thought that comes to my mind is that you move to a push model. In the push model, whenever the data model changes it pushes those changes out to the view. Now, this is totally doable with AJAX, it's just a different way of thinking about things. I think it's been termed reverse AJAX.

    Of course, the poor man's way of doing a push model is to actually do a pull model with automated (instead of user-requested) pulls on a short interval. The downside to this is that it can result in a ton of network traffic at the very least. Another downside is that you don't have true data coherence. You're basically taking a guess as to when the data model has changed.

    So, I'm now investigating ways in which I can use a push model. I've found two promising leads: CometD and Pushlets. I might still opt for the poor man's approach, at least for now, but both of these bear investigation. When I know more, I'll post it here.

    If you're interested in a good article which outlines some of the ways of going about this, check out this article here.

    Monday, October 27, 2008

    J2EE Survey Software: Opinio

    A requirement came up recently wherein we need to be able to conduct online surveys. Thinking that this was an area where I'd best be served leveraging existing software, I started searching for Java based survey tools.

    I quickly found that there is a severe dearth of Java survey tools in the open source community. Most projects haven't been updated since 2005 and all of them seem cumbersome. If I am going to use something, I'm going to make sure it is easy to use and also looks good.

    So, abandoning open source for the moment, I started looking at what was available in the closed source world. I quickly found a piece of software that fit my needs perfectly. Called Opinio, it is a very nicely built J2EE application that can be deployed on anything from Tomcat to JBoss (even IIS, or so they claim).

    It has 3 versions: Lite, Corporate and Enterprise. The Lite version is free for use, but has a much reduced feature set. However, the reduction is in the analysis side and since we're going to be building our own analysis tools, this application fit perfectly!

    My only gripe so far is that it doesn't have a great community or a good set of docs. I'm currently trying to set it up so that it will write the surveys to our SQL Server database. There are directions on the site for setting up MySql and Oracle, but no SQL Server. Once I get the issue solved, though, I may post how to do it, here.

    Wednesday, October 22, 2008

    And the Winner Is...

    JBoss.

    1. First and foremost, JBoss has the best community. Documentation exists for all facets of using JBoss, from developing on it to deploying it to a production environment. Most of these docs exist in Wiki form on the JBoss.org website, but a Google search of any term prefixed by JBoss (ie: JBoss Administration) will return many, many relevant links. This in and of itself is the primary factor for using JBoss.
    2. While GlassFish provides the latest in JEE 5, JBoss is not far behind (actually having a release candidate with JEE 5 support available). Further, we will most likely not be harnessing a lot of the JEE 5 specification. What we will be using of the JEE 5 specification, mainly JSP and Servlet are provided, along with a JAX-WS compliant stack in the form of JBossWS.
    3. JBoss has an Eclipse plugin (as does GlassFish).
    4. JBoss’s system requirements are lower than GlassFish’s.
    5. While GlassFish’s admin console is very nice and very polished (specifically it’s log viewer), the lack of being able to run in a console window is constrictive to development. From a developer productivity standpoint, having to open up a web page and refresh the view to get the latest log files would be detrimental.
    6. Hibernate, the ORM solution we will be using, is a JBoss project, and is built directly into JBoss.

    The choice came down to JBoss vs. GlassFish. I never really considered Tomcat with Metro.

    While I really liked GlassFish, it didn't seem as suitable for a development environment. Both of them seemed completely competent in a production environment, with each having its best features. So, it came down to which would be better to develop on.

    The answer to that question is that JBoss is easier to develop on and it has the most widely available community. Those two factors weighted things to JBoss.

    Friday, October 17, 2008

    The Alarm Clock

    One of mine and Dalynn's biggest issues with Cole is that he's an extremely early riser. The child would wake up at 5:30 every morning if he could and most mornings he is up promptly at 6. I'm currently reforming my sleep patterns to get up at 5:45 am (so as to be into work at 7 am) but I still like to sleep in as much as I can, you know?

    So, one of Dalynn's friends told us about using an alarm clock to teach Cole when it's OK for him to ask to get out of bed. They recommended using a clock with hands, but we opted to try it with a digital alarm clock.

    Much to our amazement, it worked the first night we put Cole down with it. We covered up the minute digits so as not to confuse him. I showed him that night what a 6 was on the clock (I was pretty certain he already knew that, but I wanted to make sure) and reiterated several times that he couldn't get out of bed until he saw a 6.

    The next morning Cole started crying at 5:30 but rather quickly stopped. Then, promptly at 6 am, he started crying again (that's how he asks to get out of bed). When we went to get him he was bright-eyed and bushy-tailed and ready to get out of bed. I asked him later on that day if he woke up before 6, and he said that yes, he had. I asked him if he waited until it read 6, and he said he had.

    After a couple of days of this, he started saying that he went back to sleep if it didn't read 6. So, this gave me an idea. After all, it could have been coincidence as he generally wakes up right at 6 most mornings anyway, so what if the clock said, oh, 5:30 when it was actually 6? Would he wake up and ask to get out of bed, or would he wait until it read 6?

    Lo and behold, when I set his clock back a half hour, he waited until his clock read 6 before he asked to get out of bed. So, Dalynn is now able to sleep til after 6:30 most mornings before Cole is wanting to get out of bed, which is a nice state of affairs. That 30 minutes may not sound like a lot, but it is when you're pregnant (just so you know, I'm normally gone by then. Up til I got this new job we would each take two nights/mornings with the boys so the other could sleep in til 7:30. Now, with me out of the house by 6:30 am, I can't help out like I used to).

    The real test will come next week, however. He's going back on steroids, which normally brings with it a bad bout of insomnia. I'm interested to see if he'll be able to go back to sleep when he sees that it's not 6. I don't have my hopes too high, honestly, as he's not very interested in abiding by rules when he's on steroids, but one can always dream right?

    I'll let you know how it goes.

    Thursday, October 16, 2008

    The JIT Life

    Just wanted to make a note here that I've started a developer's blog. To most of you, this won't mean much, hehe. It's a blog that I'm going to use to discuss the issues I come across with my job.

    The address is: http://jitlife.blogspot.com

    Feel free to peruse it at your leisure!

    The Purpose

    So, this is my developer's blog. It's the "in vogue" thing for developers to do. I see them all over the place, so why shouldn't I have one, too?

    I've recently changed jobs and am working on a project now that is starting from the ground. I'm also the lone developer on the project. That kind of makes it my show, to a certain degree. I'm responsible to the Customer (who shall remain nameless) and to the Company (who shall also remain nameless) I work for.

    Being in on a project from the ground up is a pretty cool thing. You get to make a lot of decisions that will have a huge impact on the project months, if not years, down the line. Some of the decisions I've already made have been which language I will use: Java; what type of application it will be: a web app.

    A few decisions were made for me, including which database I'll be using, which is Microsoft SQL Server. That suits me fine, as I'm going to try to take a database agnostic approach by using Hibernate. We'll see how true to that desire I can stay later on down the road.

    It does have the up-side, or so I've heard, in that SQL Server is supposedly easy to administer. It certainly seems easier to administer than Oracle, the only other database I've worked with. The tools seem to be a lot more developed and "user-friendly". That's good in my book, as I don't want to spend all my time adminstering the database.

    The big decision I'm working on right now is what application server I'm going to be using. I've basically narrowed it down to three choices. The first is to use Tomcat augmented with the Metro web stack that is available from the GlassFish project. The second is to use the actual GlassFish server itself (or whatever lame name Sun gives it once it's released officially). The third is to use JBoss.

    I'm researching all three right now and I plan on posting here what I find and my ultimate decision.

    So, back to the purpose of this blog. I'd like to document the steps that I take as I build this application. I'd like to make note of the pitfalls I fall into and how I got out of them. I'd like for this to be part history, part road-map to how to do it better in the future.

    We'll see how it goes from here.

    Official News About Our New Addition

    Well, we had our ultra-sound yesterday and we now know what we're going to have. My Mom is so thrilled she's called me 3 times in the last 24 hours and emailed me at least twice. She's already started smocking, I do believe, and is preparing to bring out the Princess clothes on demand.

    In case you need more insight, we're having a girl. As Dalynn put it "... there was no hot dog but we saw a hamburger bun..."

    Now, before you ask, we haven't officially chosen a name, yet. There is a strong front-runner, though, and that will probably be the name we go with. Once we finalize it, I'll post it here for you.

    Having a girl is a bit frightening to me, I have to be honest. I pretty much have the boy thing wrapped up, at least up to this point. I know how to change a boy diaper, I know how to play with boys. I have no idea how to fix hair (God knows, I don't fix mine, that's for sure, and never have) or put a bow in. I think I can get the diaper changing thing relatively quickly, but what do I do when it comes time to show her how to potty on the potty? I can't just tell her to "stand and shoot"... What if I have to play Barbies or My Little Ponies? I'm certainly not up on that kind of thing. Being the oldest of 3 boys (initially) and not having lived at home when we adopted Katy, I'm a little bit behind the curve.

    For all of you girl parents out there (and here, I'm specifically thinking of Lori, Becca and Sara Beth) we'll be coming for your clothes!

    That's the other thing, we have boy clothes coming out of our yin-yang. Oh, and we have boy toys, too. But, nary a girl clothing is to be found in our home (and only a few girl toys...). Somehow, though, I doubt that us finding suitable hand-me-downs will deter Dalynn from stopping and shopping at every little girls department she can find! She told me one day when we were looking for some clothes for Cole before he was born, "If we ever have a girl, we're in trouble. I'll buy everything I see."

    Also, I hear all the time about how daddies are crazy about their little girls. Now, I'm crazy about my boys, so to imply that there is a level of craziness yet to be attained is a little bit... overwhelming.

    So, a girl seems to me to indicate Barbie-styled Pink Insanity... Yeah, that can be a little frightening!

    All in all, though, I'm thrilled. I've been thinking for a while now that I'd be disappointed if we never had a little girl, simply because I'd like to see what the experience on the other side of the coin is like. I have a feeling that I'll be even happier once I get to really experience it.

    Tuesday, October 7, 2008

    Mysterious Ways

    I mentioned in a previous post that things were not going well with my job. In fact, I would have been laid off October 1, 2008. The beautiful part is that I started my new job October 2, 2008!

    The way that things collapsed at my old job was frightening. It was through no fault of our team that we were basically fired from the contract. A lot of political wrangling went on, and we all got caught in the middle.

    Because Bridgeborn is such a small company, they couldn't carry us across contracts, especially since they didn't really have anywhere to carry us too. Of our 7 person team, 2 resigned (me and another developer) and 4 were laid off.

    The job that I have now, though, is nothing short of a blessing from the Lord. I'm working as a contractor to ODU in support of 2 research scientists research for a 5 year contract with DHS. I'm contracted through a company based out of northern Virginia. I'm going to keep their name confidential for now.

    What I can tell you is that I got a much needed pay raise and much better benefits upon switching jobs. I also learned a lot in the negotiation process when I was negotiating for my salary.

    Better yet, this new job is a fresh project and I'm free to construct the software I'll be developing as I see fit. I'm still learning about the theory that I'll be working with, so once I have some more concrete understanding of it, I'll post a brief synopsis here.

    Being in on a project from the ground up is an awesome resume builder. Being involved in (or, in my case, actually making) the architecture decisions gives you such an awesome overview of what it will take to build a project. I'm researching application servers right now, and I get to choose what other software we're going to be using. It's all very cool from a very geeky perspective.

    All in all, I just wanted to let all of you know that the Lord has been providing for our family in a powerful way here recently. Being without a job for 1 day would have been disastrous for us, considering Cole's cancer. We have not been without insurance at all and knowing that we'll be able to afford the mini-van we're going to have to buy is really all that we could have asked for (and is in fact what we were asking for). The reality, though, is that the Lord has provided beyond what we were asking.

    I'd like to take this opportunity to publicly thank Bridgeborn.

    They supported us through a very difficult time and they supported us with class. One of the things we kept hearing while we were in the hospital is that a lot of companies will initially support a family for a few months, then quietly let the person go.

    Not so with Bridgeborn. We were in the hospital for no less than 7 weeks, and they allowed me to be with my son the entire time. They provided a laptop for us so that we could communicate with the outside world and so that I could work from the hospital (which I did). They also made it known to me that I would have unlimited personal/sick leave so that I could see to Cole's treatment.

    All of that combined meant that we could focus on Cole's treatment and not have to worry about whether or not I was going to lose my job at the same time. That kind of assurance is so invaluable in times of trouble.

    I'm going to miss our team, and I'm going to miss the other folks at Bridgeborn, but I'm happy that the Lord provided in such an amazing way.