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.

Sprint-1

Getting started with our first sprint, we were tasked with a few familiar tasks which included:

– Creating a GitHub repo for our team so that we could fork the AMPATH/ng2-amrs repositories
– Cloning the repos onto our local computers so we could edit/build the code
– And lastly set up our development environment to be ready so that when we have the back-end server up and running we could start immediately.

The first two tasks were pretty straight forward but when it came to setting up our environment we had many difficulties.
– The first of many difficulties was getting an error that stated we were missing some style.css packages. Since half of our team got this error we dedicated a large part of our time to figuring out what was wrong. James figured out that we had to install the missing packages, specifically ng2-ion-range-slider which got rid of this error. Starting npm was not an issue after this case.
– The second main issue we had to learn to work through were missing environments which I and Gulshan had. I found that since we never ran npm start, we wouldn’t have the environment. This fix took quite some time to figure out also but now most of us are on the same page; waiting for the back-end server to get set up.

There were many steps we tried that failed, some of which ate up a chunk of our time working as a team. We tried deleting and recloning the repos which did not work. We tried installing npm numerous times over and over but the result was the same. I believe most of our successes came from trial and error. We constantly tried updating all of our working environments, researched on stackoverflow, and worked collectively as a team helping one another to figure out our problems. Throughout the week whenever one of us made progress towards ridding one error we would post in our 404 slack channel for others to see; keeping constant communication.

If I were to instruct another individual who wishes to start working on this project I would be sure to have them follow a series of steps as well as solutions to errors that they might encounter. Before beginning anything I would suggest updating all versions of node and npm to the latest. From there, the first command to try and run is to be npm start in the working directory. If there are no errors then localhost:3000 should be all set, else if there are missing packages I suggest installing the ion package that was missing for most of us. We did not encounter any other sort of errors so I don’t know what else could go wrong.

Onto Sprint-2!

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Sprint Review Blog # 1

          We learned quite a bit in our first sprint for the AMPATH project which ranged from troubleshooting compiling errors to understanding team dynamics. After some reflection, I found that the mutual troubleshooting that our team did allowed us to bypass any icebreakers that were needed. We were able to professionally and respectfully look into each other’s problems while making sure that no one was left in the dark. After learning about our team dynamic, I will proceed to do more involved communication through slack rather than other private forms of communication. We had begun to use texting a form of communication but quickly changed to slack to ensure that everything was able to be pulled up easier in the future for documentation and blogs. We learned to better troubleshoot using sites such as stackoverflow and GitHub to find information on node as well as npm versions. The start of our first sprint consisted of working on the front end of the project to make sure it was able to run and look into the server side as well to gain more information on how it worked. We had many problems when trying to make the ng2-amrs repository to work when we cloned them on to our own computers. We consulted each other and the various other teams to understand the common problems everyone was having and fix them together. After cloning the proper files onto our computers, we immediate ran into problems when trying to run the project. We were met with various errors that we were able to fix by updating our versions of npm and nodeJS. The npm version was easy to update through commands in the terminal but various team members were having issues with updating node through the terminal, so a manual reinstallation was necessary. During the installation, we found that we must check a box that allowed node to install packages that may be needed as a project is built to ensure that the project could continue to compile. After this error, I happened to get a windows x64 compatibility error for certain files within the project, specifically a file named style.scss. Fortunately, our professor was able to locate a solution to the error and explained that we should type the command “npm rebuild node-sass” to rebuild that node so that it would work with our version of windows. After trying to build the project once more, we ran into another error when running the command “ng build –prod” which would have let us build the project and figure out any other errors we were having. The error said that the javascript process ran out of memory which seemed quite odd. Our teammate Harry was able to troubleshoot this error from stackoverflow using google and emailing people from AMPATH. We were able to change some of the memory restrictions on the javascript process and ran the command npm start which allowed us to fully compile the project and get an interface running. We currently are still facing issues because the project says that it was compiled with warnings which we have not delved into yet as we are awaiting more information from AMPATH. Our troubleshooting methods were mainly using our resources from the internet to find out why the project was running into issues until we were able to properly compile it into a workable interface.

 

References:

Node JS manual update

https://nodejs.org/en/

Style.scss error

https://github.com/sass/node-sass/issues/1918

JavaScript out of memory error

https://stackoverflow.com/questions/50621043/fatal-error-call-and-retry-last-allocation-failed-javascript-heap-out-of-memo

From the blog CS@Worcester – Student To Scholar by kumarcomputerscience and used with permission of the author. All other rights reserved by the author.