Sprint Review Blog #1

Hello and welcome back to benderson’s blog! This week I will discuss all the events that occurred through my teams first sprint in our Software Capstone. Our sprint started on February 7th and ends today February 19th. Since it is our first sprint, we were just working out the kinks and getting the basic things done for our food pantry project that we are working on for our school. This week we tried setting up basic slack channels, a trello board and a github group so our group could work together and get tasks done fast and efficiently. There are five members in my group all together and we all are going to give our best to this project. Besides the basics we weren’t able to really do anything this sprint since it is very early on and we don’t really have much to work off of. Actually today we got some specifications from the client that they want in the API of the software we are making so we will be able to proceed next sprint on those tasks. Something that we were asked to do that we weren’t able to finish was creating a REST API. We didn’t really know how to approach this, especially since we were notified that the REST API may become obsolete since the client may have something for us to use in the end.

A couple of sources that we used for the first sprint were: https://catalog.data.gov/dataset/fsis-foodkeeper-data      https://github.com/google/gson

The first link is a link to a food pantry type program that helps their users understand how to maximize the freshness and quality of the food items in their pantries. The reason we looked at this particular application was to get some ideas for our own food pantry software that we are going to have to make for the project and figure out what are the bear minimums we would need to have a successful application for the food pantry at school. Later on, after we have all the bear minimums for our food pantry application, we would add more features that are required by the client that we are working with. The second link is to a github project that will lead us to be able to parse a JSON file that we got from the food pantry client, this will allow us to separate the items and make the JSON file more readable and usable for our application.

This sprint provided both some easy tasks and some tasks that required some research and team communication and even though they weren’t all completed, I’m still happy with the progress that my group is making on our project. Getting the REST API and parsing the JSON file is next on the backlog to complete hopefully by the end of next sprint. Next sprint, my team and I will come out like the bulls in the bull run in Spain and try our best to get the next tasks on the next sprint done as fast and with the most quality as possible. Something I think we could approve on for the next sprint is to maybe stay on task a little more when working in class but other than that I think we did the best we could for this sprint. Something I found cool about this sprint and this project as a whole was the stand-ups that we have to do for our groups in slack which is a very interesting way to tell the members of our group how we are doing on the project and what could be impeding our progress. Thank you for joining me this week on benderson’s blog, I’ll see you next time.

From the blog CS@Worcester – Benderson's Blog by Benderson's Blog and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

This past week has been about trying to get the ng2-amrs environment working, and trying to get through the errors that show up when running the npm start command. I have learned a lot of the steps to take in order to approach this problem, although I am still not finished with it. I am not sure that I would proceed differently, I just think it would have been better if these problems were already known, since everyone is having them, and it would have been better if there were more instructions to deal with these expected problems. Most of the approach involves googling error messages, which can definitely be applied in other situations.

Most of the week was spent looking up different npm, ng and node commands, googling error messages, and trying different combinations of the commands and re-installing things after nothing worked. The reason that I took these steps is because I really do not know what I am doing and running through permutations of commands seems to be the only way to move forward to get the program to run without errors. A lot of the process involved referring to the slack channels, where teammates and other teams have run into the same problems and found solutions.

The ng2-amrs readme on the github page says to run the ng serve command for a dev server. What it does not say is what to do when this does not work. A guess at the problem involves version issues with angular, npm and node. Different versions were attempted to try to solve errors. Most of the steps involve googling the error message, which leads to a stackoverflow post that says to install a certain thing that solves the problem. When it does not solve the problem, it becomes very unclear what to do next. Changing versions and re-installing things has not seemed to work.

I have deleted and re-cloned the ng2-amrs folder from github. When I run the ng serve command, I currently see an error Could not find module “@angular-devkit/build-angular”. I google this and stackoverflow tells me to run npm install –save-dev @angular-devkit/build-angular. After I do this and re-try ng serve, a few more errors show up that do not seem to be as easy to deal with. One teammate found npm-check that will list missing things and things that are out of date, so I installed and ran that and had it automatically install everything it found using npm-check -y. After that finished, I re-tried ng serve, and it came back with a new error about styles.scss. I searched the error and found a command npm rebuild node-sass to deal with it. Running ng serve again, now I get some typescript errors. I check the group slack channel and see the command npm start, so I try that, and the next error I see is Error: Can’t resolve ‘pouchdb/dist/pouchdb’. I try running npm install and that brings back the scss error, but this time the same command that fixed it before does not fix it anymore, and it complains that I use a 64-bit operating system. I downgraded to node 8.12.0 and re-tried fixing styles.scss and running npm start. It actually seems to be working now. It says compiled with warnings, I open localhost:3000 in my browser and the ampath page comes up.

From the blog cs-wsu – klapointe blog by klapointe2 and used with permission of the author. All other rights reserved by the author.

Use Your Title

While you work in the software industry, you can be promoted, formally or informally, to some high position that sometimes do not fit to your knowledge. You can be promoted to senior or lead positions, but on the other hand you have to explain away tue difference between your skill level and your job description. … Continue reading Use Your Title →

From the blog cs-wsu – Kristi Pina's Blog by kpina23 and used with permission of the author. All other rights reserved by the author.

Sprint-1

There has been a lot that has been done throughout this sprint with my group which consists of Ryan D’Entremont, Sam Bryan and Daniel Ryder. Since this is the first sprint, there was a lot of just setting up and preparing for future sprints. One of the tasks that we did beforehand was to make a trello (https://trello.com/b/J2PqK9Tq/team-rocket) account and invite everyone that was in the group. There we had it set up like a sprint with the product backlog, sprint backlog doing and done. The group was first given a set of tasks to do that were put in the product backlog. These jobs consisted of setting up a github repository where we could fork and clone the clode and try to get the code running. A big chunk of our time was made up of us getting our code to run within the local host server. The first time I had cloned the project I had a lot of issues. This was when everyone was first figuring out how to run the code with no way of knowing what direction to turn to.
My issues consisted of not having the right packages and missing some installations. It seemed to have a lot to do with not finding the right resolver type and errors in the node modules folder. I had done some research on my own and updated as much as possible to the latest versions. It also seemed that James Blash was having the same errors as me. After playing around with it a little more, James had helped me with installing a npm check which checked which packages I was missing, the types I had and the version of them. He had noticed that after running that, he was missing a package that had been mentioned in the error. I then decided to re-clone the project and start clean. From there I followed the instructions James had given, the first link is how to install the npm check application, and the second had to do with what I needed to have installed. (https://www.npmjs.com/package/npm-check,https://www.npmjs.com/package/ng2-ion-range-slider). After I had messed around with installing that and a few more packages I thought I needed, I had done a build and I was still running into errors, which seemed to be very similar to what Harry and the rest of the class was having. He seemed to resolve that issue by looking here(https://stackoverflow.com/questions/50621043/fatal-error-call-and-retry-last-allocation-failed-javascript-heap-out-of-memo

). This problem seemed to be related to the memory and the problems it faced when doing an ng build. This was fixed by doing a ‘ng build –prod’ instead. After doing that command I was then faced with errors that it seemed everyone else was having. This was thankfully a lot easier to work with since everyone in my group seemed to have the same problem. From there I followed Ryans instructions and did a ‘npm rebuild node-sass’ and came up with even more errors that no one in my class knew what to do with. At this point I thought it may be a good idea to delete the code and start a fresh again. From there I cloned the code again and did these commands which Ryan had done to get it to work. I did a ‘ng build –prod’ and when that was finished I did a ‘npm start’. After that finished and was running I typed in ‘

http://localhost:3000/#/login’ . Finally it had worked.

Some side projects that the team and I worked on was re-equip ourselves with angular and typescript. Ryan also thankfully on the side set up a document with some very important information that will be needed in the future. The document talked about how to install karma and protractor which we will need when we are actually using the code. I felt like I had learned a lot throughout this sprint and really helped me be prepared for future projects I will be working on. This was the first time I had such a huge file to work with and how to get it to run. Working with others and helping each other out and testing different things to see what worked. I also was able to interact with my team easily through different platforms and help each other stay up to date on what needs to be done. Everyone in my group except Daniel has gotten their code to run and we hope that we can get his to run by the end of this sprint.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

WSU x AMPATH || Sprint 1 Retrospective

Sams Ships (5).pngFor my first sprint retrospective, I wanted to start off by introducing what kind of project my team is working on and what we are hoping to do with it before I move onto the description of what is happening.

The project I will be working on for the rest of the semester has to do with AMPATH (Academic Model Providing Access to Healthcare); if you have not yet heard of it, it is a healthcare partnership based in Kenya made up of different organizations. Part of my sprint was getting more familiar with who they are and what we could potentially do to help them. It looks like they are mostly trying to ease or log more operations technology-wise to help people.

Our main tasks for this sprint were of course getting to know my team (classroom-wise) and getting our set-up tasks sorted. It is my first time using Trello for something and as a visual learner or visual person in general, I found it very convenient being able to see our “Product Backlog | Sprint Backlog | In Progress | Done” lined up. We decided to start by organizing because of course that is usually how projects are best done and kept on track. Along with setup tasks, we began by cloning the project and then installed Karma and Protractor.

So far, I cannot say anything failed (and hope I will not have to report that anytime this semester for the sake of us progressing) but I hope we will have more concrete plans for what is coming up next for Sprint 2. I think it also has to do with me as a person being so used to always working moving forward or on with the “next thing” and it’s just different not having that yet. That way there will be things to continuously progress on and track more efficiently.

However, if I were to proceed any differently; I would have gone back and gotten a little more background knowledge because I feel like we tend to tell ourselves “I’ll just go back later and review” but of course that doesn’t always happen. It’s just a fact when you’re a highly involved student who works on the side; but when you plan or set some time for yourself you will be able to do what you need to.

A majority of what was done during this current sprint consisted of trying to understand and introduce ourselves to Karma; which is a test runner for JavaScript.

If someone else were to follow these steps; I would recommend going in this order: Getting to know your teammates, making sure the team has a solid enough understanding of what project we will be contributing to this semester, beginning setup tasks, and then setting goals for when you should check certain things out.

Overall, I enjoyed this first Sprint as I did not feel too much pressure in terms of what needs to happen yet so we can ease into producing software that will help benefit AMPATH.

 

From the blog CS@Worcester by samanthatran and used with permission of the author. All other rights reserved by the author.

Sharing is Caring

This week I read about the Share What You Learn pattern. The pattern is all about sharing the knowledge you gain with your peers. After all, what good is all that knowledge if you don’t share it with the rest of the world? Making good use of the pattern ensures that you and everyone around you will be up to date with all need-to-know information, and gives you a good opportunity to both brush up on your teaching and communication skills and also discover what your peers know that you don’t. Everybody benefits when you share your knowledge, as it allows your peers to focus their efforts on other endeavors that haven’t been solved yet.

It is not always easy to share what you learn. Sometimes you are engrossed in your own work and don’t want to take the time away to help someone else. Maybe you think what you know is obvious and not worth explaining. Either way, it is always worth the time to help out your coworkers or fellow students. First of all, when you need help, it will be good to be able to rely on others. Second, everyone being at the same level opens up more opportunities for learning and growth.

My biggest obstacle with sharing what I know is how to communicate effectively. I am a poor communicator, and often lose myself over which words to say. It can be hard for me to effectively teach something to someone, especially with no time for preparation, as my train of thought tends to go all over the place. Knowing this, I need to work on methods of communicating information and think more carefully about how I am saying something and how it is being understood.

In conclusion, Share What You Know is a useful pattern, and one I aim to improve at. Sharing knowledge across a team is better for all the individuals involved. The more you know, the more time you can dedicate to your work and the more diverse kinds of problems you can solve.

From the blog CS@Worcester – Let's Get TechNICKal by technickal4 and used with permission of the author. All other rights reserved by the author.

Sprint Reflection 1

Our first sprint was rather difficult and unproductive. We did not start off with many clear goals, so we weren’t able to move forward much and had no clear direction. This is definitely a huge hurdle and one I hope we can get over soon. Our group would definitely benefit from clear, tangible goals and perhaps a little more structure. Other than that, we had many productive and insightful conversations about the needs and features necessary to the application we are trying to develop for the food pantry.

One of the things I worked on a little bit was trying to find a way to interpret the a data set so that we can further search and manipulate it. The data source was provided from our professor and our goal was to find a way to display that information in a way that could interact with a REST API interface. A great help to this end was an article found by group member Andy Pham. Using the exact code by the provided article works to some degree, although the field headers need to be changed to appropriately handle the data set for the food pantry project. This doesn’t seem like it will be too difficult moving forwards, although there is still a little work to be done in this department to finish it up. Overall, in this task I think we are headed in the right direction and nearly complete. However, I question how useful this work will be, as we may find out that a lot of this beginning work is already complete by another group or another university.

Another big goal of ours is to set up a server that can run this REST API so we can use it across the network. My team members have been doing research into what resources we can use and what would be best, however it is a choice that is hard to make when we cant consider any of the other needs of the project (yet). This server doesn’t need to be big or complicated, as with what we have we would only need to host a small data set as well as a pretty simple REST API interface to interpret said data set. However, we are unsure where this server will be hosted or who will front any potential costs.

It is challenging having no practical or finished work to show, as it highlights a lack of progress and means we have no reference for how we are performing. However, I think as the ball gets rolling and our project goals become clear we can build up momentum and reach our goals as they come to us. In the meantime, Team FIG has been using our time to discuss what we could potentially need to work on and other elements of the project. We have looked up different universities and food banks solutions and what programs they used to maintain their databases, and are considering what might work for our University.

From the blog CS@Worcester – Let's Get TechNICKal by technickal4 and used with permission of the author. All other rights reserved by the author.

The Long Road

For this week’s blogpost I will be expressing my thoughts on an Apprenticeship Pattern in Chapter three. This one was titled ‘The Long Road’ and the problem that they give is when you are deciding to further your knowledge in programming and enhancing your skills, or to get further in the workforce and get a high paying salary. As someone who is in the field such as Computer Science, a lot of our work encircles around learning new languages and ways of programming everyday. Technology is something that was created that long ago, it has and will keep reinventing itself. I think that another important note to get from this reading is that I will have long journey ahead of me and If all I am thinking about is money, then I will not be happy. I will be waiting for when my retirement ends when I could be figuring out new ways to improve myself and my skills. Personally I have a hard time believing in my own abilities and where I fall in this spectrum of knowledge. I always want to try to improve myself but feel as though I am much farther away from everyone else. Reading this article help me know that if I keep putting in the work and trying to better myself, then I could catch up to those who are now world famous for their skills. Although I really appreciate this outlook and know that there are many who say that money does not matter when you are unhappy, but I do also need to think about the bills I will have to pay when I am older and out of college. I am in a lot of student depth and while I always want build up my skill, it is hard not to think about the money and what will help me out the most financially. I think like some of the past patterns I have read about, it is all about finding that balance. I shouldn’t always think about what conventional wisdom tells me, but I also don’t want to be neck deep in debt.

From the blog mrogers4836 by mrogers4836 and used with permission of the author. All other rights reserved by the author.

Sprint 1

This week was sprint 1. Sprint 1 was a rather simple and basic sprint that started with getting into teams and diving into the workload. The most work that was done for sprint 1 was done before getting into teams. Getting setup for the sprint required a lot of work, like filling out the CATME survey and getting your availability schedule together. Once we finished our prep work for the team formation, we got into our groups. Once we got our assigned groups we began sprint 1. Our first assignment was given to us by Professor Wurst. We had two tasks, one being to prepare a REST API for the food pantry and the other being finding a way to host a json file from a government organization. I took the lead on finding out how to host a server for our json file while other members of the group worked on researching REST APIs and figuring out more information on our project. Professor Wurst suggested a few options for hosting our server for free, digital ocean and heroku. I looked at digital ocean first but quickly found out that it actually costs money (a per month subscription) for us to host a server to store our json file on. After finding this out I looked into heroku. Heroku is a free service that lets you host a server for free (albeit they do limit you to a certain amount of server size/space as to avoid people from abusing the system by hosting large applications for no cost). I took on the task of doing a tutorial on heroku, which was rather simple. I went through the windows powershell to follow along with the survey. I learned a few of the heroku Java application specific commands, such as preparing the app (this was a simple process that uses the git commands to clone/pull/fork projects from github/gitlab), launching the app (heroku create), viewing heroku build logs, and scaling dynos. Dynos are specific to heroku, and are basically small containers that live within the heroku server that run your applicaiton. You can scale the amount of dynos per application to affect its performance (however you are limited to a certain number of dynos per application), and I learned that scaling down to 0 dynos does not allow it to launch the application. I feel like heroku is very similar to angular in the sense that there are commands to build/launch/diagnose applications, however angular is more of a “coding” application because you can edit code and run it all within the angular platform. Another large difference between angular and heroku is the language used to host the servers. We as a group settled on heroku for Java because we are all most comfortable using Java as it is our primary programming language. After completing the heroku tutorial I looked at the git repository that was shared with our group by Professor Wurst. I think that as a group we are unsure where to go from this point, as we have not been assigned any solid tasks yet. My hope is that for sprint 2 we can dive into the project more and will be assigned tangible tasks that we can complete for our end users.

From the blog CS@Worcester – The Average CS Student by Nathan Posterro and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective #1

I learned a lot from this first sprint. A lot of issues were being run into and as a team we were able to overcome these obstacles to all continue. Something that I learned that collaboration can often lead to success because you may learn something about a topic that you may not know. Next I will explain some of the tasks our group has completed. First, we had to make sure all of us had a sprint backlog. These included tasks for our sprint timeframe that we should be able to complete. We setup a group environment on GitHub to clone our ng2-amrs repositories so we could get oiur AMPATH portal up and running. This is where we, and many others, ran into most of our problems. A lot of us had many different errors so it was very confusing trying to find fixes for all of us at first. We coordinated with other groups via slack channels in order to first find out who was having what errors. After posting about the errors and discussing them in the slack channels and amongst each other at our meetings, we started to research for solutions.

For example, one of my teammates was getting an error upon trying to run the “ng serve” command in order to get the virtual server running to launch the AMPATH login portal. This error was stating that there was an incompatibility with Windows 64 bit operating systems and would keep failing at compilation. In order to solve this, we needed to research the issue and eventually found a fix online that worked for the majority of people having issues with this. One specific issue that also seemed to affect people trying to run the “ng serve” or “ng build” commands was that it was throwing that certain dependencies were missing. After trying multiple things, we eventually found out ourselves that this was indeed and issue with the installation of node.js. In one of our previous software developement classes, we had already installed node.js. However, there was one major issue that kept us from compiling the project succesfully. This issue was that the first time we had installed node.js, we did not specify it to install all of the dependencies, therefore “ng serve” was not able to run because it would fail at compilation due to these missing dependencies. The fix we found for this was to completely uninstall node.js and reinstall it, but this time also installing all the dependencies (python, net framework, etc.) This fix corrected the issues for us and we were finally able to run the command and go to the local host AMPATH portal. Next there seemed to be an issue where compilation would hang at around 92% and fail. The fix for this was to run two different commands that we had found on stackoverflow for someone who was having this same issue: https://stackoverflow.com/questions/50621043/fatal-error-call-and-retry-last-allocation-failed-javascript-heap-out-of-memo

The fix fix for this was to run two commands in the node modules folder that fixed the package.json file. After this, we ran “npm run build-prod” and then this fixed the issue.

From the blog CS@Worcester – Amir Adelinia's Computer Science Blog by aadelinia1 and used with permission of the author. All other rights reserved by the author.