Monthly Archives: February 2017

Reflections on Learning and Work Products, Sprint 2

For our second Sprint in my Software Development Capstone we continued to set up our local computers so that we could work on OpenMRS and the AMPATH software. To do this, we first went to the OpenMRS Download Page and downloaded the OpenMRS Standalone version. Once that was downloaded onto my computer, I simply extracted the zip file and then ran the .jar file that was in the there to start the OpenMRS software (for this I also picked the demo data version that comes with 5,000 sample patients). Some people had issues that this point, but I was lucky that this worked right from the start for me so I didn’t have any modifications to make.

Once I had OpenMRS running, I then cloned the repository containing the Ampath Point of Care System Version 2 that one of my team members forked from AMPATH. To get this up and running I first had to download all the dependencies that they required. I first went and downloaded the newest version of Node.js from their website (for me that was the Windows 64-bit of LTS). Once that was working, I then downloaded the list of gloabals with npm install –global:

  • webpack (npm install –global webpack)
  • webpack-dev-server (npm install –global webpack-dev-server)
  • karma (npm install –global karma-cli)
  • protractor (npm install –global protractor)
  • typescript (npm install –global typescript)

Once all of that was installed, I finished up the rest of the installation by doing these last three steps:

  • npm install webpack-dev-server rimraf webpack -g to install required global dependencies
  • npm install to install all dependencies
  • npm run server to start the dev server in another tab

At first when I ran “npm install” it seemed to give me a list of issues, but when I ran the server everything seemed to work fine and I was able to get to the login screen.

With that completed, our team then set off to work on re-writing the Authentication Module in the AMPATH software and see if we could get it to work (basically just familiarizing ourselves with the software and Angular 2). Our team first put this up as one whole task that need to be completed, but after going through it, we decided to have a story time to break down this task into smaller ones. At this meeting we also decided on what our meaning of “Done” was. Since this was all done closer to the end of our Sprint (due to an excessive amount of snowstorms), our team was only able to do the very beginning of this project. We all start first on going over the login HTML and CSS. Since it’s been at least 4 years since the last time I wrote anything for HTML or CSS (not including what I did for the tour of heroes tutorial), I just put their code next to mine and copied it so I got a feel and could see what they were doing to create the login screen. The last thing that we got to do before the end of our Sprint this time was look over the authentication.module.ts and its dependencies to get a feel for how it works.

During our Sprint review/retrospective we decided to put the rest of the re-writing of the Authentication Module on our backlog and get to it next Sprint. Overall I think that this Sprint went really well, with the exception of how late we got to our story time, but that was all because of storms cancelling our time together and messing up our schedule. Another thing that I found really useful was one of my teammates saw that Scotch.io had a good chuck of their Routing Angular 2 Apps class free to watch. I ended up watching the first couple of videos and found it very helpful, and I will probably finish watching the rest of them over the weekend.

From the blog CS WSU – Techni-Cat by clamberthutchinson and used with permission of the author. All other rights reserved by the author.

Reflection: Sprint 2

This sprint first thing we did is basically created our team organization called “Teamloading” on Github and then cloned the copy of ng2-amrs project from our organization. This way we all team members have own copy to work on, and any changes we did we be handled and review by our organization as a whole before pushing the changes to the actual AMPATH project. The same Github workflow designed by our Prof. Wurst is given below:

p_20170216_103350

Next thing we did is build and run the ng2-amrs. While running the project we also needed the openMRS platform which is basically  a back-end system, with a database and APIs. But I was Unable to start OpenMRS , so I posted the issue on the openMRS talk forum. The screenshot of the issue is given below:

capture

As of now I am still getting the error.Error thrown was: org.openmrs.api.APIException: Service not found: interface org.openmrs.scheduler.SchedulerService. The link to the page is listed below:

Issue: Unable to start OpenMRS

Hopefully experts over there will be able to troubleshoot soon.

This sprint I also looked over the code in the authentication module of the login page. Furthermore, I also looked over Angular 2 tutorials online.

From the blog CS@Worcester – Software Dev Capstone by osworup007 and used with permission of the author. All other rights reserved by the author.

Week 4 Reflections

Ok so I think that I have learned a bit this sprint as a lot
of things were new to me. I think the first thing is it feels like the Scrum
side of things is finally rolling to where it actually makes sense to me and I
can see the benefits of it now that I am putting it to use. I like how it all
works and it helps to keep me organized and on track. It feels good to be
putting the tools of the trade to use. Aside from the Scrum side of things I
have learned a lot about Angular and the project we will be working on. I am
still finding it challenging as I have never used Angular before and am really
not familiar with Javascript aside from the basics and I feel like that it is
making it harder for me to grasp not knowing it ahead of time. I am having to
not only look up Angular stuff, but also referring to J.S. docs as well. It isn’t
hindering me that much just a bit more work than I had originally thought.
I was excited to get the OpenMRS standalone running, thanks
to some of the other classmates help with code that needed changing, but it was
definitely a great feeling. I didn’t have much of an issue getting it up and
running. The NG2-amrs build was a little more frustrating to get up and
running. I spent a good deal getting help from classmates as well as the README
(who would of thought that would be helpful right?) but I did get it going and
did cartwheels. A bit was stupid mistakes and not taking a break when I should
have, but that is part of the learning process. Come to find out, that was the
easy part so far.
I am now actually into the code, well the login/auth code
side of things and digging into the meat and potatoes of what we will be
working on. The goal up until now was to re-write the auth/login module to get
a better understanding of how Angular works and how Ng2-amrs login is working.
We as a team ended up breaking the story down into smaller more manageable
tasks so it wasn’t so overwhelming. Initially we had committed to re-writing
the whole module on one card, but split into re-writing the HTML/CSS component
first then digging into the actual auth/routing side of things. That made life
a bit smoother for me. I basically copied the HTML/CSS taking note of things
that I didn’t grasp, such as the Angular additions (I have a good understanding
of HTML/CSS). The challenge is in the writing of the actual Angular. I had to
do a lot of peaking at the original code as well bouncing back to
DOCS/README/Tutorials and other help sites, but got it done. I am still far
from fluent and need a lot of help I think to further my understanding, but I
am persistent and have more help than I could ask for and am not afraid to ask.
That is why we are here in the first place. I am still not 100% up to par on
the RESTful architecture and routing but I am getting there. The more I am
exposed and the more I write and do the more comfortable I am.

I guess to wrap it up for this Sprint, I have to say I am
pleasantly pleased so far and look forward to what is to come and to see how my
blog grows and I grow in the process. I am looking forward to learning more
about the Ng2-Amrs project and collaborating with other developers via the MRS
wiki and forums and digging into the issue tracker on the JIRA server (another
thing I know zero about and am looking forward to learning) and just how
everything fits together. It is great actually seeing the process unfold and learning
new things. Until the next learning reflection blog…..

From the blog format c: /s by c-braley and used with permission of the author. All other rights reserved by the author.

Week 4 Reflections

Ok so I think that I have learned a bit this sprint as a lot
of things were new to me. I think the first thing is it feels like the Scrum
side of things is finally rolling to where it actually makes sense to me and I
can see the benefits of it now that I am putting it to use. I like how it all
works and it helps to keep me organized and on track. It feels good to be
putting the tools of the trade to use. Aside from the Scrum side of things I
have learned a lot about Angular and the project we will be working on. I am
still finding it challenging as I have never used Angular before and am really
not familiar with Javascript aside from the basics and I feel like that it is
making it harder for me to grasp not knowing it ahead of time. I am having to
not only look up Angular stuff, but also referring to J.S. docs as well. It isn’t
hindering me that much just a bit more work than I had originally thought.
I was excited to get the OpenMRS standalone running, thanks
to some of the other classmates help with code that needed changing, but it was
definitely a great feeling. I didn’t have much of an issue getting it up and
running. The NG2-amrs build was a little more frustrating to get up and
running. I spent a good deal getting help from classmates as well as the README
(who would of thought that would be helpful right?) but I did get it going and
did cartwheels. A bit was stupid mistakes and not taking a break when I should
have, but that is part of the learning process. Come to find out, that was the
easy part so far.
I am now actually into the code, well the login/auth code
side of things and digging into the meat and potatoes of what we will be
working on. The goal up until now was to re-write the auth/login module to get
a better understanding of how Angular works and how Ng2-amrs login is working.
We as a team ended up breaking the story down into smaller more manageable
tasks so it wasn’t so overwhelming. Initially we had committed to re-writing
the whole module on one card, but split into re-writing the HTML/CSS component
first then digging into the actual auth/routing side of things. That made life
a bit smoother for me. I basically copied the HTML/CSS taking note of things
that I didn’t grasp, such as the Angular additions (I have a good understanding
of HTML/CSS). The challenge is in the writing of the actual Angular. I had to
do a lot of peaking at the original code as well bouncing back to
DOCS/README/Tutorials and other help sites, but got it done. I am still far
from fluent and need a lot of help I think to further my understanding, but I
am persistent and have more help than I could ask for and am not afraid to ask.
That is why we are here in the first place. I am still not 100% up to par on
the RESTful architecture and routing but I am getting there. The more I am
exposed and the more I write and do the more comfortable I am.

I guess to wrap it up for this Sprint, I have to say I am
pleasantly pleased so far and look forward to what is to come and to see how my
blog grows and I grow in the process. I am looking forward to learning more
about the Ng2-Amrs project and collaborating with other developers via the MRS
wiki and forums and digging into the issue tracker on the JIRA server (another
thing I know zero about and am looking forward to learning) and just how
everything fits together. It is great actually seeing the process unfold and learning
new things. Until the next learning reflection blog…..

From the blog format c: /s by c-braley and used with permission of the author. All other rights reserved by the author.

Week 4 Reflections

Ok so I think that I have learned a bit this sprint as a lot
of things were new to me. I think the first thing is it feels like the Scrum
side of things is finally rolling to where it actually makes sense to me and I
can see the benefits of it now that I am putting it to use. I like how it all
works and it helps to keep me organized and on track. It feels good to be
putting the tools of the trade to use. Aside from the Scrum side of things I
have learned a lot about Angular and the project we will be working on. I am
still finding it challenging as I have never used Angular before and am really
not familiar with Javascript aside from the basics and I feel like that it is
making it harder for me to grasp not knowing it ahead of time. I am having to
not only look up Angular stuff, but also referring to J.S. docs as well. It isn’t
hindering me that much just a bit more work than I had originally thought.
I was excited to get the OpenMRS standalone running, thanks
to some of the other classmates help with code that needed changing, but it was
definitely a great feeling. I didn’t have much of an issue getting it up and
running. The NG2-amrs build was a little more frustrating to get up and
running. I spent a good deal getting help from classmates as well as the README
(who would of thought that would be helpful right?) but I did get it going and
did cartwheels. A bit was stupid mistakes and not taking a break when I should
have, but that is part of the learning process. Come to find out, that was the
easy part so far.
I am now actually into the code, well the login/auth code
side of things and digging into the meat and potatoes of what we will be
working on. The goal up until now was to re-write the auth/login module to get
a better understanding of how Angular works and how Ng2-amrs login is working.
We as a team ended up breaking the story down into smaller more manageable
tasks so it wasn’t so overwhelming. Initially we had committed to re-writing
the whole module on one card, but split into re-writing the HTML/CSS component
first then digging into the actual auth/routing side of things. That made life
a bit smoother for me. I basically copied the HTML/CSS taking note of things
that I didn’t grasp, such as the Angular additions (I have a good understanding
of HTML/CSS). The challenge is in the writing of the actual Angular. I had to
do a lot of peaking at the original code as well bouncing back to
DOCS/README/Tutorials and other help sites, but got it done. I am still far
from fluent and need a lot of help I think to further my understanding, but I
am persistent and have more help than I could ask for and am not afraid to ask.
That is why we are here in the first place. I am still not 100% up to par on
the RESTful architecture and routing but I am getting there. The more I am
exposed and the more I write and do the more comfortable I am.

I guess to wrap it up for this Sprint, I have to say I am
pleasantly pleased so far and look forward to what is to come and to see how my
blog grows and I grow in the process. I am looking forward to learning more
about the Ng2-Amrs project and collaborating with other developers via the MRS
wiki and forums and digging into the issue tracker on the JIRA server (another
thing I know zero about and am looking forward to learning) and just how
everything fits together. It is great actually seeing the process unfold and learning
new things. Until the next learning reflection blog…..

From the blog format c: /s by c-braley and used with permission of the author. All other rights reserved by the author.

Week 4 Reflections

Ok so I think that I have learned a bit this sprint as a lot
of things were new to me. I think the first thing is it feels like the Scrum
side of things is finally rolling to where it actually makes sense to me and I
can see the benefits of it now that I am putting it to use. I like how it all
works and it helps to keep me organized and on track. It feels good to be
putting the tools of the trade to use. Aside from the Scrum side of things I
have learned a lot about Angular and the project we will be working on. I am
still finding it challenging as I have never used Angular before and am really
not familiar with Javascript aside from the basics and I feel like that it is
making it harder for me to grasp not knowing it ahead of time. I am having to
not only look up Angular stuff, but also referring to J.S. docs as well. It isn’t
hindering me that much just a bit more work than I had originally thought.
I was excited to get the OpenMRS standalone running, thanks
to some of the other classmates help with code that needed changing, but it was
definitely a great feeling. I didn’t have much of an issue getting it up and
running. The NG2-amrs build was a little more frustrating to get up and
running. I spent a good deal getting help from classmates as well as the README
(who would of thought that would be helpful right?) but I did get it going and
did cartwheels. A bit was stupid mistakes and not taking a break when I should
have, but that is part of the learning process. Come to find out, that was the
easy part so far.
I am now actually into the code, well the login/auth code
side of things and digging into the meat and potatoes of what we will be
working on. The goal up until now was to re-write the auth/login module to get
a better understanding of how Angular works and how Ng2-amrs login is working.
We as a team ended up breaking the story down into smaller more manageable
tasks so it wasn’t so overwhelming. Initially we had committed to re-writing
the whole module on one card, but split into re-writing the HTML/CSS component
first then digging into the actual auth/routing side of things. That made life
a bit smoother for me. I basically copied the HTML/CSS taking note of things
that I didn’t grasp, such as the Angular additions (I have a good understanding
of HTML/CSS). The challenge is in the writing of the actual Angular. I had to
do a lot of peaking at the original code as well bouncing back to
DOCS/README/Tutorials and other help sites, but got it done. I am still far
from fluent and need a lot of help I think to further my understanding, but I
am persistent and have more help than I could ask for and am not afraid to ask.
That is why we are here in the first place. I am still not 100% up to par on
the RESTful architecture and routing but I am getting there. The more I am
exposed and the more I write and do the more comfortable I am.

I guess to wrap it up for this Sprint, I have to say I am
pleasantly pleased so far and look forward to what is to come and to see how my
blog grows and I grow in the process. I am looking forward to learning more
about the Ng2-Amrs project and collaborating with other developers via the MRS
wiki and forums and digging into the issue tracker on the JIRA server (another
thing I know zero about and am looking forward to learning) and just how
everything fits together. It is great actually seeing the process unfold and learning
new things. Until the next learning reflection blog…..

From the blog format c: /s by c-braley and used with permission of the author. All other rights reserved by the author.

Week 4 Reflections

Ok so I think that I have learned a bit this sprint as a lot
of things were new to me. I think the first thing is it feels like the Scrum
side of things is finally rolling to where it actually makes sense to me and I
can see the benefits of it now that I am putting it to use. I like how it all
works and it helps to keep me organized and on track. It feels good to be
putting the tools of the trade to use. Aside from the Scrum side of things I
have learned a lot about Angular and the project we will be working on. I am
still finding it challenging as I have never used Angular before and am really
not familiar with Javascript aside from the basics and I feel like that it is
making it harder for me to grasp not knowing it ahead of time. I am having to
not only look up Angular stuff, but also referring to J.S. docs as well. It isn’t
hindering me that much just a bit more work than I had originally thought.
I was excited to get the OpenMRS standalone running, thanks
to some of the other classmates help with code that needed changing, but it was
definitely a great feeling. I didn’t have much of an issue getting it up and
running. The NG2-amrs build was a little more frustrating to get up and
running. I spent a good deal getting help from classmates as well as the README
(who would of thought that would be helpful right?) but I did get it going and
did cartwheels. A bit was stupid mistakes and not taking a break when I should
have, but that is part of the learning process. Come to find out, that was the
easy part so far.
I am now actually into the code, well the login/auth code
side of things and digging into the meat and potatoes of what we will be
working on. The goal up until now was to re-write the auth/login module to get
a better understanding of how Angular works and how Ng2-amrs login is working.
We as a team ended up breaking the story down into smaller more manageable
tasks so it wasn’t so overwhelming. Initially we had committed to re-writing
the whole module on one card, but split into re-writing the HTML/CSS component
first then digging into the actual auth/routing side of things. That made life
a bit smoother for me. I basically copied the HTML/CSS taking note of things
that I didn’t grasp, such as the Angular additions (I have a good understanding
of HTML/CSS). The challenge is in the writing of the actual Angular. I had to
do a lot of peaking at the original code as well bouncing back to
DOCS/README/Tutorials and other help sites, but got it done. I am still far
from fluent and need a lot of help I think to further my understanding, but I
am persistent and have more help than I could ask for and am not afraid to ask.
That is why we are here in the first place. I am still not 100% up to par on
the RESTful architecture and routing but I am getting there. The more I am
exposed and the more I write and do the more comfortable I am.

I guess to wrap it up for this Sprint, I have to say I am
pleasantly pleased so far and look forward to what is to come and to see how my
blog grows and I grow in the process. I am looking forward to learning more
about the Ng2-Amrs project and collaborating with other developers via the MRS
wiki and forums and digging into the issue tracker on the JIRA server (another
thing I know zero about and am looking forward to learning) and just how
everything fits together. It is great actually seeing the process unfold and learning
new things. Until the next learning reflection blog…..

From the blog format c: /s by c-braley and used with permission of the author. All other rights reserved by the author.

Week 4 Reflections

Ok so I think that I have learned a bit this sprint as a lot of things were new to me. I think the first thing is it feels like the Scrum side of things is finally rolling to where it actually makes sense to me and I can see the benefits of it now that I am putting it to use. I like how it all works and it helps to keep me organized and on track. It feels good to be putting the tools of the trade to use. Aside from the Scrum side of things I have learned a lot about Angular and the project we will be working on. I am still finding it challenging as I have never used Angular before and am really not familiar with Javascript aside from the basics and I feel like that it is making it harder for me to grasp not knowing it ahead of time. I am having to not only look up Angular stuff, but also referring to J.S. docs as well. It isn’t hindering me that much just a bit more work than I had originally thought.
I was excited to get the OpenMRS standalone running, thanks to some of the other classmates help with code that needed changing, but it was definitely a great feeling. I didn’t have much of an issue getting it up and running. The NG2-amrs build was a little more frustrating to get up and running. I spent a good deal getting help from classmates as well as the README (who would of thought that would be helpful right?) but I did get it going and did cartwheels. A bit was stupid mistakes and not taking a break when I should have, but that is part of the learning process. Come to find out, that was the easy part so far.
I am now actually into the code, well the login/auth code side of things and digging into the meat and potatoes of what we will be working on. The goal up until now was to re-write the auth/login module to get a better understanding of how Angular works and how Ng2-amrs login is working. We as a team ended up breaking the story down into smaller more manageable tasks so it wasn’t so overwhelming. Initially we had committed to re-writing the whole module on one card, but split into re-writing the HTML/CSS component first then digging into the actual auth/routing side of things. That made life a bit smoother for me. I basically copied the HTML/CSS taking note of things that I didn’t grasp, such as the Angular additions (I have a good understanding of HTML/CSS). The challenge is in the writing of the actual Angular. I had to do a lot of peaking at the original code as well bouncing back to DOCS/README/Tutorials and other help sites, but got it done. I am still far from fluent and need a lot of help I think to further my understanding, but I am persistent and have more help than I could ask for and am not afraid to ask. That is why we are here in the first place. I am still not 100% up to par on the RESTful architecture and routing but I am getting there. The more I am exposed and the more I write and do the more comfortable I am.

I guess to wrap it up for this Sprint, I have to say I am pleasantly pleased so far and look forward to what is to come and to see how my blog grows and I grow in the process. I am looking forward to learning more about the Ng2-Amrs project and collaborating with other developers via the MRS wiki and forums and digging into the issue tracker on the JIRA server (another thing I know zero about and am looking forward to learning) and just how everything fits together. It is great actually seeing the process unfold and learning new things. Until the next learning reflection blog…..

From the blog format c: /s by c-braley and used with permission of the author. All other rights reserved by the author.

Week 4 Reflections

Ok so I think that I have learned a bit this sprint as a lot of things were new to me. I think the first thing is it feels like the Scrum side of things is finally rolling to where it actually makes sense to me and I can see the benefits of it now that I am putting it to use. I like how it all works and it helps to keep me organized and on track. It feels good to be putting the tools of the trade to use. Aside from the Scrum side of things I have learned a lot about Angular and the project we will be working on. I am still finding it challenging as I have never used Angular before and am really not familiar with Javascript aside from the basics and I feel like that it is making it harder for me to grasp not knowing it ahead of time. I am having to not only look up Angular stuff, but also referring to J.S. docs as well. It isn’t hindering me that much just a bit more work than I had originally thought.
I was excited to get the OpenMRS standalone running, thanks to some of the other classmates help with code that needed changing, but it was definitely a great feeling. I didn’t have much of an issue getting it up and running. The NG2-amrs build was a little more frustrating to get up and running. I spent a good deal getting help from classmates as well as the README (who would of thought that would be helpful right?) but I did get it going and did cartwheels. A bit was stupid mistakes and not taking a break when I should have, but that is part of the learning process. Come to find out, that was the easy part so far.
I am now actually into the code, well the login/auth code side of things and digging into the meat and potatoes of what we will be working on. The goal up until now was to re-write the auth/login module to get a better understanding of how Angular works and how Ng2-amrs login is working. We as a team ended up breaking the story down into smaller more manageable tasks so it wasn’t so overwhelming. Initially we had committed to re-writing the whole module on one card, but split into re-writing the HTML/CSS component first then digging into the actual auth/routing side of things. That made life a bit smoother for me. I basically copied the HTML/CSS taking note of things that I didn’t grasp, such as the Angular additions (I have a good understanding of HTML/CSS). The challenge is in the writing of the actual Angular. I had to do a lot of peaking at the original code as well bouncing back to DOCS/README/Tutorials and other help sites, but got it done. I am still far from fluent and need a lot of help I think to further my understanding, but I am persistent and have more help than I could ask for and am not afraid to ask. That is why we are here in the first place. I am still not 100% up to par on the RESTful architecture and routing but I am getting there. The more I am exposed and the more I write and do the more comfortable I am.

I guess to wrap it up for this Sprint, I have to say I am pleasantly pleased so far and look forward to what is to come and to see how my blog grows and I grow in the process. I am looking forward to learning more about the Ng2-Amrs project and collaborating with other developers via the MRS wiki and forums and digging into the issue tracker on the JIRA server (another thing I know zero about and am looking forward to learning) and just how everything fits together. It is great actually seeing the process unfold and learning new things. Until the next learning reflection blog…..

From the blog format c: /s by c-braley and used with permission of the author. All other rights reserved by the author.

Sprint 2 Reflection

For Sprint 2 we started to actually get involved with the AMPATH project. The first main task was to actually get the project running. First we forked the project to our GitHub accounts, then we cloned the remote repository to our local repository. If we didn’t already have Node JS installed we needed to download that and install any required packages into the ng2-amrs folder. After that we could run the server with the npm command and have a live AMPATH site running in our browser. Once we had AMPATH running we then needed to download the openMRS standalone and connect AMPATH to it. In order to connect them we needed to update the server settings on AMPATH to the standalone server and add some code to a web XML file. Connecting AMPATH to the standalone allowed us to successfully login to AMPATH with access to a mock database. As simple as these tasks sound it was far from an easy setup. At least in our group it took us all several attempts and some troubleshooting to successfully get AMPATH online. We had server errors, issues getting the standalone to run, and version compatibility problems. Each team member basically had to work through their own list of issues to get connected. Aside from the effort of getting the project up and running I completed a good Angular 2 beginner’s tutorial on thinkster.io. I thought it was a better introduction to Angular 2 and I definitely feel more confident with the framework’s fundamentals. To finish off the sprint I started browsing the AMPATH source code. It is a bit overwhelming but I think the more I review the better I will understand. The biggest learning curve is learning the complexities of Angular 2 syntax and the module style development. At the end of the sprint I thought our team retrospective went pretty well. This was another sprint where all the tasks had to completed by each individual so it’s hard to really judge the team’s effectiveness. Overall we are all completing our individual tasks and helping each other as we move through the sprints. Looking into the next sprint it looks like we will be re-writing a module and working on some known AMPATH issues. This should allow us to make our first true contributions to the project and tracking issues will improve our knowledge of the code base.

From the blog CS@Worcester – Software Development Blog by dcafferky and used with permission of the author. All other rights reserved by the author.