Here is a quick video showing how high he can jump. I do fear that he will hurt himself if he keeps this up though.
Software Development, family, religious, hobby, fun and humorous items.
Friday, February 6, 2015
Thumper - The jumping gerbil
Ok, we are still working out how to keep the gerbils in a safe contained area while letting them roam a bit. One of our gerbils, Thumper, just has the need to roam outside of any "contained area". He is pretty smart to start with and is getting better at escaping contained areas and now has found that he can jump pretty high. I think we will have to work on a way to contain him in our hallway by blocking off a few doors and such with towels - that will give some room to roam but prevent the need to empty out the "treasure" that my daughter tends to collect under her bed while trying to convince Thumper to come out. Actually Thumper does tend to come out and I think he may actually like being chased a little - it is quite funny to see how easily he evades us.
Here is a quick video showing how high he can jump. I do fear that he will hurt himself if he keeps this up though.
Here is a quick video showing how high he can jump. I do fear that he will hurt himself if he keeps this up though.
Thursday, February 5, 2015
The family addition - pets
So our kids have been wanting a pet for some time. Our son would like a cat and our daughter wants a horse but would "make do" with a dog. yeah, right..
I'm not a cat person. My wife has never really had indoor pets. I had dogs as a kid and really enjoy them but for a couple of reasons they just are not a good fit for our family (right now). Part of me would really like a dog but I just can't justify it. I even researched them and picked out around 4 breeds which I really like that would make nice pets for us.
Eventually, I came back to reality and started looking into other possible pets. No cats. Can't be big. No fish or birds. No lizards, snakes or similar. Kids don't want a goat (ok, too big too for indoors). Finally looked at rodents of various sorts. I didn't want something that was mainly up during the night. Prefer something that is pretty easy to care for. Something that doesn't tend to smell too bad. Something that can be held/handled/played with to a decent extent.
After some research and a good number of youtube videos it was pretty clear that gerbils would fit the requirements pretty well. They do chew *a lot* and it sounded like it would be best to get a pair of them (same sex though). I didn't really want multiple critters but because they otherwise sounded like a good idea I decided to pursue this further.
I decided to test the waters with the kids though but in a non-obvious fashion to gauge whether they would be interested. Ok, more like whether my daughter was interested - I know my son would enjoy watching them but would never want to take care of them. Anyway, one Saturday morning I took us all over to a nearby pet store to just "look around". I don't think I thought this through well enough first. Anyways, we get there and they have a number of dogs there needing adoption. My daughter makes a bee line for them and decides that "cupcake" is what we need. I very briefly got the kids down the rodent section but they had no interest. I thought the whole pet idea was done at that point.
A week or 2 later, we were having dinner and pets came up again and I told them I had considered letting them have gerbils. At that point my daughter finally expressed some excitement and interest.
So the pet idea was back on track now. Previous stops at the pet store didn't leave me very optimistic because they only ever had one lonely gerbil. I made another quick stop one night to the pet store and they had 3 young male gerbils that had just come in. They were still in their quarantine waiting period but they were there! A couple more trips to the pet store and the kids in tow - they still seemed interested so we loaded our arms up with all the necessities and head home with 2 new family members.
As an aside, my wonderful wife that is pet tolerant but not excited about pets generally looked at me at one point as we were heading to get the little guys and says "they have 3 of them. hm.". Anyways, we started laughing and commenting on feeling bad about leaving one behind. In the end, we had to get only 2 of the 3 but it was close.
We didn't initially have the full size tank/setup we were working on so it would have been really cramped. I have a larger tank on order but it has yet to be delivered after 2 weeks - supposed to be here tomorrow but we'll see. The 2 story tank topper arrived pretty quick and even though it wasn't optimum, we are able to put it on top of the smaller tank we have. The little guys do seem much happier with the extra space of the topper.
It took us a day or so to commit to names for the gerbils. One is a honey/white mix (Thumper) and the other is black with white around the front ankles (Shadow). We did have to laugh at a few earlier name ideas which were girl names. I know the gerbils don't care but hey, it just seemed too wrong :)
It has been a couple weeks now and the little guys have grown a lot. We have learned a lot as well. They are now pretty tame; they are ok being held but are so active that it doesn't last too long. They both have very distinct personalities. Thumper is a full throttle adventurer/explorer and a bit of an escape artist. He now scales the outside of the topper and has learned that he can jump pretty high which he uses to get loose for quick explorations of his surroundings while we try to "convince" him to go back to the "safe area". He is a bit larger than Shadow and that may be because he really likes to eat and seems to try and steal his brothers food at times. Thumper isn't really scared most of the time. Shadow on the other hand is smaller and a little shy and skittish. He is not quite as wild overall but is an impressive sprinter if startled. Shadow is much easier to just let wander on our folded arms and chest.
We are still sorting out their environment. I need a nice bowl for their dust bath instead of a plastic ice cream bucket. They are supervised with it but they still try to give it a quick nibble here and there which I know isn't good. We are still working out food/treats a bit. We are using plain dry gerbil food as the primary food but am trying to use a seed/nut food as the source for "treats". I have some hay which they seem to both nibble and use in the normal bedding. For bedding, I am using aspen shavings and white Carefresh which they seem to like. It does support some tunneling. For the aspen shavings, it can be somewhat expensive at the pet store but I did get our next batch from Tractor Supply - much larger quantity and very good price. Not ready to use it yet but am prepared. Only downside seems to be the larger storage requirement. They really enjoy chewing up toilet paper rolls, paper towel rolls, toilet paper and store-bought willow sticks.
Here are a couple quick videos of our furry friends.
Our entire family is enjoying the gerbils. My daughter is learning how to be responsible and take care of them. Her and I really enjoy playing with them. My wife and son enjoy watching them and watching me and the daughter play with them. I think we get laughed at quite a bit but we love every minute of it.
I'm not a cat person. My wife has never really had indoor pets. I had dogs as a kid and really enjoy them but for a couple of reasons they just are not a good fit for our family (right now). Part of me would really like a dog but I just can't justify it. I even researched them and picked out around 4 breeds which I really like that would make nice pets for us.
Eventually, I came back to reality and started looking into other possible pets. No cats. Can't be big. No fish or birds. No lizards, snakes or similar. Kids don't want a goat (ok, too big too for indoors). Finally looked at rodents of various sorts. I didn't want something that was mainly up during the night. Prefer something that is pretty easy to care for. Something that doesn't tend to smell too bad. Something that can be held/handled/played with to a decent extent.
After some research and a good number of youtube videos it was pretty clear that gerbils would fit the requirements pretty well. They do chew *a lot* and it sounded like it would be best to get a pair of them (same sex though). I didn't really want multiple critters but because they otherwise sounded like a good idea I decided to pursue this further.
I decided to test the waters with the kids though but in a non-obvious fashion to gauge whether they would be interested. Ok, more like whether my daughter was interested - I know my son would enjoy watching them but would never want to take care of them. Anyway, one Saturday morning I took us all over to a nearby pet store to just "look around". I don't think I thought this through well enough first. Anyways, we get there and they have a number of dogs there needing adoption. My daughter makes a bee line for them and decides that "cupcake" is what we need. I very briefly got the kids down the rodent section but they had no interest. I thought the whole pet idea was done at that point.
A week or 2 later, we were having dinner and pets came up again and I told them I had considered letting them have gerbils. At that point my daughter finally expressed some excitement and interest.
So the pet idea was back on track now. Previous stops at the pet store didn't leave me very optimistic because they only ever had one lonely gerbil. I made another quick stop one night to the pet store and they had 3 young male gerbils that had just come in. They were still in their quarantine waiting period but they were there! A couple more trips to the pet store and the kids in tow - they still seemed interested so we loaded our arms up with all the necessities and head home with 2 new family members.
As an aside, my wonderful wife that is pet tolerant but not excited about pets generally looked at me at one point as we were heading to get the little guys and says "they have 3 of them. hm.". Anyways, we started laughing and commenting on feeling bad about leaving one behind. In the end, we had to get only 2 of the 3 but it was close.
We didn't initially have the full size tank/setup we were working on so it would have been really cramped. I have a larger tank on order but it has yet to be delivered after 2 weeks - supposed to be here tomorrow but we'll see. The 2 story tank topper arrived pretty quick and even though it wasn't optimum, we are able to put it on top of the smaller tank we have. The little guys do seem much happier with the extra space of the topper.
It took us a day or so to commit to names for the gerbils. One is a honey/white mix (Thumper) and the other is black with white around the front ankles (Shadow). We did have to laugh at a few earlier name ideas which were girl names. I know the gerbils don't care but hey, it just seemed too wrong :)
It has been a couple weeks now and the little guys have grown a lot. We have learned a lot as well. They are now pretty tame; they are ok being held but are so active that it doesn't last too long. They both have very distinct personalities. Thumper is a full throttle adventurer/explorer and a bit of an escape artist. He now scales the outside of the topper and has learned that he can jump pretty high which he uses to get loose for quick explorations of his surroundings while we try to "convince" him to go back to the "safe area". He is a bit larger than Shadow and that may be because he really likes to eat and seems to try and steal his brothers food at times. Thumper isn't really scared most of the time. Shadow on the other hand is smaller and a little shy and skittish. He is not quite as wild overall but is an impressive sprinter if startled. Shadow is much easier to just let wander on our folded arms and chest.
We are still sorting out their environment. I need a nice bowl for their dust bath instead of a plastic ice cream bucket. They are supervised with it but they still try to give it a quick nibble here and there which I know isn't good. We are still working out food/treats a bit. We are using plain dry gerbil food as the primary food but am trying to use a seed/nut food as the source for "treats". I have some hay which they seem to both nibble and use in the normal bedding. For bedding, I am using aspen shavings and white Carefresh which they seem to like. It does support some tunneling. For the aspen shavings, it can be somewhat expensive at the pet store but I did get our next batch from Tractor Supply - much larger quantity and very good price. Not ready to use it yet but am prepared. Only downside seems to be the larger storage requirement. They really enjoy chewing up toilet paper rolls, paper towel rolls, toilet paper and store-bought willow sticks.
Here are a couple quick videos of our furry friends.
Our entire family is enjoying the gerbils. My daughter is learning how to be responsible and take care of them. Her and I really enjoy playing with them. My wife and son enjoy watching them and watching me and the daughter play with them. I think we get laughed at quite a bit but we love every minute of it.
Wednesday, January 7, 2015
Java web app integration with PeopleSoft - modularity evolution
A good chunk of my work over the last few years has involved producing Java web applications which work with PeopleSoft. This post documents the basic module/jar breakdown that I tend to start with and some indication of changes to support future needs.
The basic war/jars with sample descriptions breakdown like this:
The above works ok in general and has facilitated code sharing between multiple applications. Some changes have occurred over time resulting in some benefits. Originally, there were a few API's based on static methods - the most prominent being SQL utilities. After getting the basic idea working, I converted it to interfaces and implementations. The resulting benefits included an improvement in testability and multiple concurrent database type support [Oracle and HSQL mainly]. This should have been done using non-static methods initially but at least it was a straight forward conversion in the end.
There are still a few small static API's which make sense with the existing application designs and implementations. These cover some string and date handling and such which work fine with static method implementations. There are larger problems to solve instead of worrying about small static utilities.
The above describes a pretty good and time tested design. There are drivers of change now though that are pushing me to newer and more flexible designs. The drivers include:
Now that I am working with OSGi, I am considering it for more general usage at the application level. My initial plans involved evolutionary changes to existing systems but early prototyping found some issues with that. I am finding that a number of previous decisions would need to be revisited for existing code bases. That isn't necessarily bad - some types of changes are likely more inline with current general best practices. In any case where a major impedance mismatch occurs with OSGi; it may be time to reevaluate the implementation or feature.
The issue with the largest scope so far seems to be due to bundling API interfaces with API implementation in the same jar file. The OSGi way seems counter to this. This does affect static API's but it also affects other non-static API's if you didn't plan ahead. The "best" packaging appears to be separate jar files for API interface and implementations.
Currently, the most annoying issue tied to OSGi is related to the way I handled caching. I wanted to use a "standard" caching API but JSR 107 was not released as final when I started my cache support. I ended up using a snapshot of JSR 107 which worked wonderful in several non-OSGi applications.
The use of the snapshot along with some OSGi issues related to Infinispan dependencies resulted in some "irreconcilable differences". I have yet to find a way to get it working without repackaging something with dummy version info and/or reworking some code. For now I am putting this support on hold until I have time "to do it right". There is a newer Infinispan out now which may help (or not) - will figure it out later. This could be a good time to reevaluate the caching support; most of the caching support was done to handle the fact that in the past the ERP system could barely function normally and external apps/integrations had it near collapse at high utilization times. Hardware has significantly improved and this hasn't been the case for some time with the ERP.
Anyways, the expected plan is to start splitting out most existing functionality in OSGi compatible ways. Interfaces and implementations in separate jars and at a more fine grained functionality level. This should be pretty straight forward for large portions of existing code bases; I suspect the 80/20 rule will apply in this. I think the initial priority will be some of the utility code which will be useful with some new web services and other integrations.
God bless and Happy coding!
Scott
The basic war/jars with sample descriptions breakdown like this:
The above works ok in general and has facilitated code sharing between multiple applications. Some changes have occurred over time resulting in some benefits. Originally, there were a few API's based on static methods - the most prominent being SQL utilities. After getting the basic idea working, I converted it to interfaces and implementations. The resulting benefits included an improvement in testability and multiple concurrent database type support [Oracle and HSQL mainly]. This should have been done using non-static methods initially but at least it was a straight forward conversion in the end.
There are still a few small static API's which make sense with the existing application designs and implementations. These cover some string and date handling and such which work fine with static method implementations. There are larger problems to solve instead of worrying about small static utilities.
The above describes a pretty good and time tested design. There are drivers of change now though that are pushing me to newer and more flexible designs. The drivers include:
- budget reductions
- lack of adequate staff
- excessively short development time frames
- integrations increasing in quantity and complexity
- increasingly higher application/feature availability
Now that I am working with OSGi, I am considering it for more general usage at the application level. My initial plans involved evolutionary changes to existing systems but early prototyping found some issues with that. I am finding that a number of previous decisions would need to be revisited for existing code bases. That isn't necessarily bad - some types of changes are likely more inline with current general best practices. In any case where a major impedance mismatch occurs with OSGi; it may be time to reevaluate the implementation or feature.
The issue with the largest scope so far seems to be due to bundling API interfaces with API implementation in the same jar file. The OSGi way seems counter to this. This does affect static API's but it also affects other non-static API's if you didn't plan ahead. The "best" packaging appears to be separate jar files for API interface and implementations.
Currently, the most annoying issue tied to OSGi is related to the way I handled caching. I wanted to use a "standard" caching API but JSR 107 was not released as final when I started my cache support. I ended up using a snapshot of JSR 107 which worked wonderful in several non-OSGi applications.
The use of the snapshot along with some OSGi issues related to Infinispan dependencies resulted in some "irreconcilable differences". I have yet to find a way to get it working without repackaging something with dummy version info and/or reworking some code. For now I am putting this support on hold until I have time "to do it right". There is a newer Infinispan out now which may help (or not) - will figure it out later. This could be a good time to reevaluate the caching support; most of the caching support was done to handle the fact that in the past the ERP system could barely function normally and external apps/integrations had it near collapse at high utilization times. Hardware has significantly improved and this hasn't been the case for some time with the ERP.
Anyways, the expected plan is to start splitting out most existing functionality in OSGi compatible ways. Interfaces and implementations in separate jars and at a more fine grained functionality level. This should be pretty straight forward for large portions of existing code bases; I suspect the 80/20 rule will apply in this. I think the initial priority will be some of the utility code which will be useful with some new web services and other integrations.
God bless and Happy coding!
Scott
Subscribe to:
Posts (Atom)
