Draw Your Own Map

This weeks blog post will be on “Draw Your Own Map” chapter of Apprenticeship Patterns. This chapter of the Apprenticeship Patterns involves understanding that your idea of a career path does not match that of your current employer’s and how to move forward in what you want as a career. The first thing that the author points out is that is no one’s responsibility but your own to realize what you want to accomplish in your career and then to realize what small steps you have to take to start working towards that goal. This doesn’t mean though, that there still can’t be people that help guide you toward your goals. A point that I like that the author points out further on is that successful apprentices tend to go to companies that “share a certain family resemblance”. This is because apprentices tend to make choices on their career based on the values that they live by. I feel this is the author’s way of saying that as a programmer to not go to a company that you do not share a passion with or there will be no reward in working for that company. A point that I personally appreciate that the author brings up is the ability for an apprentice to make these decisions to move on from companies while still maintaining a healthy relationship with past employers. I feel that this is so important in an industry to be able to grow because having a bad “reputation” with past employers can possibly block you from more opportunities later in your life. Overall, I feel this chapter was mainly getting the point across for people is that change is good. Change can be hard, but if you want to continue to become the person you envision, change is necessary. One way the author pointed out of putting this change to reality is the exercise to write down jobs that your current one can lead to, and think “is this what I see myself doing?”.  This chapter has helped to enforce the idea that I’ve had to experience myself, that sometimes to grow as a person you need to move on from your current employer, even if that means taking a pay cut because the experience you gain in your new path far outweighs the money.

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

Sustainable Motivations

For this week’s blogpost I will be doing another Apprenticeship Pattern from Chapter 3 titled ‘Sustainable Motivations’. Like many of the previous patterns I have read about, this one will also help me when I am faced with the many difficulties of work and their ever changing environments. As I have begun to understand what exactly it is that my parents do, and view them more as just mere adults, I start to question more and more on how they deal with all of the troubles that go along with it. Especially my father who works for the government, always working on new projects with new people. He will come home many a times exhausted and unable to make a breakthrough on a specific project they are working on. I have realized through my dad, friends and this book that the programming that is usually fun you do not get paid for and the programming that is not fun are the ones that you do get paid for. What I feel is one of the main goals of this reading is to find the balance of doing what you love while also making sure that it does pay well enough for financial stability. One of the most important aspects though is doing what you love. I personally feel though, that can be easier said than done. Everyone has their ideal job in their concentration and I believe anyone is capable of getting that but it can take some time to get there. While I do agree that this can be really good advice, I also think that it is always hard for people to say “Do what you love and then rest will come after”. Especially for those who are are not in a stable financial situation, it is not always available for them to want to do what they love right away. As for someone like me who also has her own set of loans to pay off when she graduates, I would love to find what I love but I would also like to pay off my debt. I feel as though this is a common theme I seem to have with a lot of these patterns. I love them and I think they have a lot of good to say in them. They are extremely helpful in a number of ways, but I feel like sometimes they forget the reality of them and the wide range of people there are that exist.

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

Sprint Retrospective #2

During our second sprint we were still focused on learning about the tools we will be using as we have not yet received actual work to do for AMPATH. There were two things that I focused on: testing with Karma and Protractor and the Angular Tour of Heroes tutorial.

Karma and Protractor are the two testing tools that we will be using for this project. Karma is used to write unit tests while Protractor is used for end-to-end testing. My teammate Ryan put together a very useful Google Doc that includes all of the basic information about these two tools including how they work, how to use them, and helpful links to learn more. This is the main resource I used because it includes pretty much everything I wanted to know about Karma and Protractor.

The following link provides a good overview of what Karma is and how it works: http://karma-runner.github.io/3.0/intro/how-it-works.html

Karma works by creating a web server that executes source code against test code. The test results are examined and displayed through the command line so the developer can see which tests and browsers passed or failed. Karma looks like it will be an incredibly useful tool for unit testing our code.

Protractor also uses a web server to run browsers that will test the code. It simulates user interaction with Angular applications in order to test system dependencies. The following link is a good tutorial that helped me get familiarized with Protractor and learn the basics of how it works:

http://www.protractortest.org/#/tutorial

Other than learning about these two testing tools, I also started doing the Angular Tour of Heroes tutorial in order to re-familiarize myself with Angular. I have previously done this tutorial in Software Construction, Design, and Architecture. However, I wanted to go through it again to make sure that I remembered the specifics of Angular and Typescript. Even though I haven’t gotten incredibly far in the tutorial, much of the information is coming back to me. I think the Tour of Heroes is one of the best coding tutorials I’ve ever used. Everything is explained clearly, there are links for more complex topics that come up, and all of the code you should have is displayed at the end. There are also summaries at the end of each section that review everything that was learned. I’m glad that I started doing this tutorial because I now feel more prepared and also eager to start actually coding.

Overall our second sprint was still all about preparation. While I do wish we could have started working on something during this sprint, it’s good that we have had plenty of time to learn about the tools we will be using so we aren’t caught off guard when we have to actually produce code. During this sprint I learned a lot about testing with Karma and Protractor and relearned information about Angular. I’m excited for the next sprint as it looks like AMPATH has finally sent us information on the work that we will be doing.

From the blog CS@Worcester – Computer Science Blog by rydercsblog and used with permission of the author. All other rights reserved by the author.

Sprint Reflection 2

On our second sprint, Team FIG definitely got more of the ball rolling with our progress on the project. Following a meeting with a representative from the food pantry, we were able to discuss some of our stories and tasks and what each member was going to work on, and were able to begin in earnest. I felt a lot better going into this sprint as it seems our goals were becoming more clear and it felt like I knew what I could do to make progress.

My tasks was to begin work on a front-end system that the food pantry could use to keep track of the weight they are giving out and automate some of the process of filling out an intake form and determining the proper amount of food in weight. I referred a lot to my final project from CS-443 last semester, developing a sort of “back-end” that enabled me to test the functionality of my front-end. After that was squared away, I began developing the front end. Since exactly what the customer wants still doesn’t seem crystal clear to me, I thought it would make the most sense to take the provided intake form and try to implement it in an online application.

After I wrote all the functions to allow adding/changing of data in the back end, I developed the HTML part of the front-end, adding the input boxes and buttons for submission and making sure they used the right commands. Things I still need to add to the front-end are error messages for incorrect submissions (missing data, wrong input type, etc). It might also be prudent to add some way for authorized users to change customer information that has already been entered, in case of a mistake or changing information. I have also not began working with the CSS, as it has been low priority for me, and I have questions to ask about what sort of style we should be going for. I also have not done anything with keeping a running weight total or adding/removing from that total.

The current issue I am dealing with is a ‘fatal’ error preventing me from committing to GitHub that says the line endings need to be replaced with LF from CRLF, which seems to be an issue with the way Windows handles line endings. I decided this was a good place to stop anyways, as I was having trouble fixing the issue and had done a lot of work without being able to review it with my group. It is unfortunate that we have had three classes cancelled, as it definitely hurt my groups ability to meet up and their motivation to do so.

The biggest task our group has to work on now is creating a functional back-end that will be able to store the information. We have not determined exactly how this will be done yet, but it is something we will definitely discuss so we can begin work on it in Sprint 3.

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.

“Expand Your Bandwidth”

This is blog post on chapter five “Perpetual Learning”, the book build on software development is composed of two primary activities: learning and communication. “The Perpetual Learning patterns are applicable for your entire career, but with the apprentice’s emphasis on learning”. For new developer, learning is the most important part. In this “Expand Your Bandwidth” pattern, they are talking the most important process for most of developer. Expand your learning, in this continuous new information business. We will never stop learning, so learn how to learn without being so overwhelmed is extremely important. I think this is important skill to have, although everyone learns differently.

In software developer, there is no “know all” skill. We are learning as we go, we learned the basic skill at school and more specific as doing project/job. So how to learn while working. The book suggest that we develop expanding our ability to take in new information. “The discipline and techniques necessary to efficiently absorb new information, as well as to understand it, retain it, and apply it” and this is what really think is the CSS learning model. We must be active learner; we use the tools we must keep up with news/ learn new skills/ communicate with others. They also suggest that we understand when to Expand You Bandwidth. This is different to everyone, but if you test out your methods and see which work best for you.

I am agreed with most of the points of this pattern. Computer science is active learning, there are million thing we could learn. We need to know to pick and learn what we interesting and benefit to our career. I heard on a tech podcast, one way to learn is to try use technology for a week. After that move to different tech and see which one is for you.

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

Sprint Retrospective 2

For sprint two our group was in waiting state. We didn’t quite have any tasks to work on at the moment and we were conflicted on where to focus our future workloads. We know we want to work on the server but also are coming up with a backup plan in case that does not work out. Our group worked  a lot towards researching certain aspects about how servers work and talked about what incorporation we might need from other groups.

During our research, we found two tools that we plan to use for testing. These tools are useful in that Karma is more of a simple junit tester while protractor is end to end testing. As we continue to research more tools, we also want to familiarize ourselves more with the angular material. Angular is more familiar to us which is why it would be  a good idea to work on the bottom navigation bar, however some of us enjoy a nice challenge too, which is why we would want to work on the server.

Hopefully by our next sprint we should have more solid understanding of what we want to do. We are most likely going to be working on the server but no one in our group has worked on one before.

 

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-2 Retrospective Blog Post

This semester for my Software Development Capstone course we are working on a AMPATH project working on a point of system by Ampaths Clinic. For this semester I will be working on this with a team. This blog is actually Sprint-2 Retrospective blog post. As part of our assignment we are assigned to complete a Sprint Retrospective blog post at the end of each sprint. As of Today, March 7th, 2019, we have completed Sprint-2. During this second sprint we were able to get everything we intended to get done during this second sprint cycle.  For sprint-2 everyone in the team had the same task except they where more individual kind of task. These task were:

  1. As a developer working with ng2-arms I need to set up my development environment so I can build/run ng2-amrs.
  2. As a developer working on ng2-amrs I need to learn about testing in angular. In order to be able to write test for our new code.

From the list of task above I was able to complete both task listed. Although, there is more to learn about testing in angular I was able to at least learn the basic of it. I learned about testing in angular by following the karma and protractor tutorial. These tutorial were very informative and straight forward. In my opinion, from the task of this week… learning about karma and protractor was not as complicated as trying to build/run ng2-amrs. Trying to build/run ng2-arms on my PC took a lot of researching and configuring in order to be able to successfully build/run ng2-arms. During this sprint I had better luck… where I was able to get the ng2-arms project to successfully build/run on my PC.

During sprint-2 I learned about testing in angular using karma and protractor. Karma taught me how to unit test on angular, and protractor taught me about end-to-end testing and its basics. These are testing tools that are going to help me test the code develop by my team and I. During this sprint I also, learnt a lot of different ways to handle problems when trying to build the ng2-amrs and the different ways to fix a problem when trying to build/run ng2-arms. I also realized that not everyone might run into the same problem when trying to build/run ng2-arms. What worked for me was opening Git bash in the ng2-amrs file typing “npm install”, I then “ng build”. When I did that came across a problem that stated I did not have “@angular-devkit/build-angular” so, I had to type “npm i @angular-devkit/build-angular” on the git bash command prompt. I then was able to “ng build” and “ng serve” successfully. I had a few error I did had to fix and things I needed to install. However, I don’t remember all the error and problems I came across. For this sprint I found a lot of useful information and help on the ampath slack channel, and on stackOverflow with the help of Google.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

From the blog cs@Worcester – YessyMer In the world of Computer Science by yesmercedes and used with permission of the author. All other rights reserved by the author.

Sprint Review Blog #2

Hello and welcome back to Benderson’s blog, this week I am going to talk about the conclusion of my second sprint with my team in my Computer Science class at Worcester State. My team and I are working on creating an application for the food pantry that just opened on campus that will help them have a fluent and easily done job without having to do things manually like keeping track of inventory and who is coming and going at the food pantry. During the recent sprint we just had we were doing more and more research on food pantries and exactly what they need to succeed in this environment. We had a couple members try to figure out how to make the back end API for the food pantry where we can read the information they gave us in a JSON file. We are all working hard on getting this project rolling on a constant steady pace so we can provide the food pantry workers with what they want.

About two weeks ago from this post, a worker from the food pantry came to our classroom and explained what is going on at the food pantry and what they will need to succeed. She brought in a sheet that explained what people need to provide so they can have a membership at the food pantry and that they can take out food. Some of the rules of the food pantry is that you can only come once a week and only take a certain amount of food out at a time. Some of the information you have to fill out before you can take the food are: Your student ID number from Worcester State, check if you have any of the following supplemental services, assistance in applying for SNAP, current housing situation and income/number of household members. Our group is confident in our ability of taking all these variable and putting them into an application for the food pantry to use. Also another thing they said they do is they don’t keep track of inventory by item but they keep track of inventory by the weight of everything in there, they gave us their current weight that they have and told us if people take out stuff they weigh it and subtract it from the current total and that is how they have been keeping track of the inventory.

The meeting with the food pantry worker was very informative and was able to propel our productivity by a lot because before then we were just working on basic set up stuff but now we have actual tasks to do for this project. One of my fellow teammates is working on the design of the interface they would use for the food pantry which will be good to have for a basis. Once we have a base product working, we will reach out to the food pantry workers and see if this would be something they would like and if not, we will go back to the drawing board and keep working on it. Another thing my group and I want to do is actually go to the food pantry and see what it looks like, maybe get some more ideas and ask them if certain things would be easier if we did things in a different way. Just some small things to consider for when we do the final product and show it to them and their needs. Well that concludes this week of Benderson’s blog, join back next week for some more information about sprints.

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.

WSU x AMPATH || Sprint 2 Retrospective

Sams Ships (8).pngFor my second sprint retrospective, there is something I would like to reflect on in terms of a change to my first sprint conclusion. It turns out my build environment was not completely set up properly so I had spent some time with assistance from my teammates on configuring that. I would like to note that I have a MacBook so that made things a little different to work our way around figuring out what to change or test out. A very helpful link was from a question someone asked on Stack Overflow. Through the process of not being able to install angular-cli on my mac, it led me to installing nvm, where there was another series of instructions to follow through Github.

It is very relieving whenever we get stuck on something and are able to find similar scenarios from people around the world who have run into the same roadblock and they share advice on how to work around it. Thanks to their input, I was able to resolve my terminal errors and/or warnings that resulted from trying to build something. It also helped me try and see if I could assist any of my other teammates who were running into errors as well even on Windows. I would definitely continue using the internet as a resource when I get stuck on mac-specific issues. The same thing happens when an installation that is only available in .exe files is required, I must find a mac-appropriate version.

However, if I were to proceed any differently; I would have double-or-triple-checked what is necessary to move forward. If someone else were to follow these steps; I would highly recommend checking out the links I provided above when I was unable to install angular-cli on my mac.

So far, we have been hit with some New England weather™ which shows how we were able to keep moving and working despite a roadblock that we could not control. It is very relieving to know we are now all on the same page and are working on moving forward together to contribute to the AMPATH system from now until the end of the semester. Who knew something could be more relieving than finally seeing the login screen after the ng command and going to the localhost url.

A big update is we got some more information on the AMPATH x WSU collab right around the end of this sprint so I am looking forward to exploring that with my team. It will allow us to analyze what has been given to us and decide where to move forward with the project.

Overall this past sprint included a lot more learning and collaborating with my team. I’m excited to begin watching the walk-through videos that Greg uploaded of the wire-frames. They look like they are broken down well and all of them are combined into a playlist so I would say we are going to be learning a lot more. Stay tuned for the Sprint 3 retrospective!

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

Sprint Retrospective 2

During this sprint there was not much for me and my team to get done other then getting the program to be able to work on all of our computers. I feel as part of this sprint was also combined with the first sprint, hence why we still trying to get the program to still work. At first there were several issues for all of us, with all of us getting a massive amount of errors when we first tried to “build” the program. It was during this sprint though that I was able to educate myself further on things that I had started to learn last semester with Angular design and testing of code. One of these errors that this program presented when we were first trying to get it to start was a problem of “circular dependency” which was one problem my program was having building. After looking for sources on this and learning about it I found it was essentially because in the files of the program, multiple files are depending on each other but had not been imported/exported properly(source). Another problem that my team and I had thought could be the problem for some people’s program not building was their version of NPM, or rather the dependencies they had installed with their current version. While everyone else in my group was on nearly the most recent version of NPM, I was still running on version 6.4.1. Yet I did not have issues with NPM because I believe I had installed the correct one with correct dependencies in the previous semester for CS-343. I had issues that my team couldnt help with because we were not experiencing any of those issues from a mac. I feel that this being the first time I had worked in a “scrum” type environment was interesting, having only just learned it in CS-348. Despite all being individually working on getting the program working, as a class we all worked together to try and solve each others problems. When one person would find a possible fix to an issue they would share it, and then through the collective effort someone would find a fix. Going into the next sprint though, something I will be looking for more is a better understanding of the goal of the sprint. This past sprint felt very scattered still with some people not being able to get their program working still at the end of the sprint.

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