Wednesday, June 14, 2017

CST 499 Week 8

Week 8

I have finally made it to the end! It's been a journey but I'm so glad I've done it. The last week of this course is really only three days so there's not much of an update on our project. I made some final changes to the readme with setup details and that was about it.

There were some small assignments for the week to take a survey about the program, upload our project files, and finish adding files to our ILP website (you can see mine at ladymozzarella.weebly.com). We also had to finish our video for our online presentation. My team's video is below.

The very last step of the course that we have is to present our project at our online Capstone Festival this weekend. I expect that it will go well and I'm looking forward to having a relaxing Sunday with my family.


Monday, June 12, 2017

CST 499 Week 7

Week 7

This past week has been so incredibly busy. My team has put in an insane amount of work on our project, with each member working every single night to get our project up to speed. In the end, I think we did very well. I focused a lot on getting our task kanban board working with drag and drop functionality to change task statuses and cleaning up the visual appearance of the application. Because we are presenting our applications this week, we all wanted to have something ready to present for this week.

In addition to getting our project ready for presentation, we have been working very hard to complete the final pages (~10 pages worth) of our final paper and clean up the formatting as well. A draft presentation was also due this week, making our week super duper busy.

I believe everyone is looking forward to next week and getting this final course wrapped up, like me. I have really enjoyed working with my team and getting to learn a new technology stack (Angular2 and Firebase) but can't wait to relax a bit after work and maybe even make dinner!

CST 499 ETS Major Field Test Reflection

ETS Major Field Test: Computer Science Reflection

The following prompts were provided by CSUMB to guide me in my reflection on the ETS Major Field Test.

1. What have you learned from your ETS test results?

There is a lot of me to review. Many of the topics were familiar but I couldn't exactly answer them based on my memory of how to solve them. I probably need to focus on computer memory and computer architecture topics in the future.

2. What are your strengths and your weak spots shown from the test results?

As stated in the previous response, I struggled with the questions related to computer memory and computer architecture. They were familiar but I couldn't remember exactly how to solve them. There were also a few questions that I didn't recognize from any of my previous courses. My strengths were in the software design and algorithm questions. However, it's difficult to say because I didn't get a detailed breakdown of where I did or didn't do well.

3. What is your plan to leverage your strength in your career?  What is your plan to remedy your weak spots?

I will pay careful attention when solving problems related to computer memory addressing. I know that these issues will come up in my line of work and it would be beneficial to understand it to the best of my ability. I can use my strengths when problems arise with something I'm working on or my coworkers are working that are related to what I do already know.

4. Do you think the test is valuable? How should the CS Online program be revised so the test results of our graduates will continue to rise?

I believe that this test is more valuable for the institutions that use the data than for myself. Without a detailed breakdown of areas for improvement, it's difficult to know where to focus my future studies in particular. However, the administering institution can use to gauge what they should focus on, assuming they get more information.
Many of the questions were focused on topics that I learned in courses taken outside of this particular program. It's difficult to place any responsibility on CSUMB for those topics since I didn't complete those courses through this program. However, providing pre-tests and required study materials for the exam may be helpful prior to students taking the exam itself. Personally, I struggled with the limited amount of time to answer the questions and found that I frequently ran out of time, which required me to simply guess on the remaining questions. I believe that preparing students for this aspect of the exam may be helpful.

Tuesday, June 6, 2017

CST 499 Week 6

Week 6

My team has been working extremely hard this week to get our project back on track. I'm very happy with the progress we have made and believe that we can get something presentable this week. We're still behind but I think we've really picked up the pace. After spending so much time working with forms in Angular2, the Firebase database, and Firebase authentication, I'm confident that I can get much further on the project this week.

We also took the Major Field Test exam for computer science this week. It was proctored online and very challenging. It was very surprising how difficult it was but I think I could have done decently with preparation. The online proctoring was pretty strict and very interesting to participate in. I found that I ran out of time and had to guess at the end. It was pretty overwhelming. With more time, I could have done much better.

My score was very average. Based on the questions I struggled with, I think my memory management skills could be improved and some topics (like computer architecture) reviewed. However, I think I did well with the software design questions, database management, and data structures questions. After graduation, I may take a break from actively learning outside of work but will definitely continue to at least teach myself new topics in the computer science field later on.

We're in the homestretch! Just a few more major assignments to take care of and we're good. I'll be back next week with an update on how that is going.

Monday, May 29, 2017

CST 499 Week 5

Week 5

I spent every night this week wrapping my head around navigation with Angular 2 and storing data with Firebase. My team is very behind in our work and I wanted to ensure that I helped create as many initial pages as possible so that we can all contribute in parallel in different areas to help us get further along. It is still taking a long time for us to get up and running but I think this week we can get a lot done now that we have the foundation set.
The additional assignments have made it very difficult to solely focus on the capstone and get our essential features done. I know that 8 weeks is a short time and I thought I was prepared for it but I really was not. I plan on working on our project every night this week to get us into a position where we would have something presentable, especially since we're already gearing up for our final video presentation and beginning our last section of the final paper. On to the next week!

Tuesday, May 23, 2017

CST 499 Week 4

Week 4

This week ended up being a lot more tough on me than I thought it would be. I had taken some days off for commencement and expected to get more work done on our capstone project than I did. The commencement ceremony and events surrounding it were great, but definitely took up all of my time this week. We additionally decided to put our family pet dog, Benson, to sleep and it was a rollercoaster of emotions for me in a short period of time. However, the support of my family has really helped.

I'm going to spend every night possible catching my team up on this capstone project and get us in tip top shape in the upcoming weeks. My recent contributions have been lacking in substance, which is disappointing. My team, however, has been doing a fabulous job keeping up. Next week I hope to have a more exciting update.

Sunday, May 14, 2017

CST 499 Week 3

Week 3

The assignments this week were time-consuming. If the workload progresses this way, I am worried about not being able to spend enough time on my team project. I am relieved, however, that I have two great team members that have put a ton of work into the project on their own. We all have very busy lives and are squeezing in school as at is. All of the additional moments spent on things that aren't our project feel like precious moments that slip away. In addition to working on the project, this week we reviewed resumes and LinkedIn profiles for our classmates, finished the first third of our final capstone paper (~10 pages worth), and created a silly little commercial for our capstone project. Here is the commercial for our capstone project:



The project itself is coming along but I'm feeling pretty behind. I've taken some days off this upcoming week for the commencement ceremony (woo hoo!) and I hope to squeeze in as much dev time as possible. I'm also hoping that this upcoming week is a bit lighter in the regular coursework department, especially since I have 12 hours of drive time coming up to get to Monterey. I'm certain we can get caught up if I can find the time to work on it. I'm considering taking a vacation day from work near the end to purely focus on it if I feel I need to.

I find myself getting caught up focusing on the little details, like linters, testing frameworks, and setup and not getting actual pieces implemented. I may implement some features and then return to unit tests once we have some more of our project working.

Tuesday, May 9, 2017

CST 499 Week 2

Week 2

This week was busy. I focused on creating the backend project for my team's task tracker application, InScope. Setting up the routes in addition to the "Hello World" route took a while because we wanted text and json responses to come from the endpoints. The initial database schema was setup using the Sequelize ORM, which was lacking in documentation and support, and created the appropriate database for it, locally. In addition to that, I added some developer friendliness to the application by updating the javascript to ES6, adding a javascript linter, and git commit hooks to enforce the linter.

We had a lot of plans for this week and weren't able to complete them. I'm hoping that this week and over the weekend I'll get more features added and we can start chugging away at the code base. My team members have been great with setting up the front end and login system using Google, along with the mockups for the application. I think we're going to do well and will get further in the coming weeks when we're all familiar with the technology stack.

Filling in my "ILP" website took a long time because I couldn't remember how to run many of the final projects for the past courses or what the final projects even were. After an entire day devoted to it, I finally got it. You can check it out at ladymozzarella.weebly.com!

The team meetings are going well. We meet briefly on Sunday nights. I think the largest takeaway that I gained from the reading last week on effective meetings is to come to the meeting prepared and with a plan. Each of us had goals and questions we wanted to be answered and were able to get what we needed from these meetings.

This class has been really flexible so far and I look forward to seeing what we produce in the next week!

Tuesday, May 2, 2017

CST 499 Week 1

Week 1

This week we read an article about how to hold effective meetings. There was some useful material in it that I will definitely consider as my team begins holding our regular check-in meetings for this course (we've decided to meet every Sunday). Of the recommendations provided by the article, the most important thing for us to do is set goals for the meetings and know what we want to accomplish when we get together. There were several suggestions that were more applicable to meetings in larger workplaces, but many of them were applicable to our smaller meetings. In addition to setting goals for the meeting, I believe it will be useful to follow the suggestions to postpone a meeting if the crucial members are unable to participate, define a meeting follow-up plan, which could include setting deadlines and assigning someone to each follow-up task and follow up with participants before the next meeting.

We decided on a technology stack for our project, which was the primary focus for us. We're going to be writing everything in Typescript/Javascript, using Express for our backend framework (running on Node.js) and Angular for our frontend framework. Our database will be created using PostgreSQL and we're going to use Bootstrap as our CSS framework, at least initially. Ken has created our initial database schema and set up accounts for hosting, I've begun work setting up our backend framework and Chris is working on our initial frontend code. This upcoming week we will begin working on the project itself and some of its features. Everything appears on track at the moment and I'm looking forward to getting up and running with it.

Working with these JavaScript frameworks is completely new to me and I look forward to being able to apply what I learn in this project to my career.

Saturday, April 15, 2017

CST 373 Week 8

Scrapbook 8 - Commercials Triggering In-Home Voice-Activated Software Devices

Burger King’s new ad forces Google Home to advertise the Whopper by Jacob Kastrenakes of The Verge (PDF archive)

Summary

This week there was a lot of controversy concerning the following Burger King commercial, which triggers Google's "personal assistant" to retrieve information about a Burger King burger.



The advertisement uses the voice command "Ok Google, what is a Whopper burger?" to have a Google Home device or Android phone read the first line of the Wikipedia page for a whopper burger. Prior to the release of the ad campaign, the Wikipedia article's first line was changed to read "The Whopper is a burger, consisting of a flame-grilled patty made with 100 percent beef with no preservatives or fillers, topped with sliced tomatoes, onions, lettuce, pickles, ketchup, and mayonnaise, served on a sesame-seed bun." It appeared to be edited by Burger King's Marketing Chief. This commercial is the first to intentionally trigger one of these voice command devices.

Reason Chosen

We've seen a lot of reports concerning accidental triggers of these kinds of voice-activated devices. Most have been unintentional up until this point. I find this relevant because I own two Amazon Echo devices that work the same way. My boyfriend had a friend over and noticed the device on our side table. He triggered it by saying "Alexa, order me 100 units of toilet paper." I have purchased toilet paper through Amazon in the past and when I did so, I ordered a box of 48 rolls. Alexa quickly responded saying she was ordering 100 boxes and it was going to total at somewhere around $2,000. It's concerning that it can be that easy to order something so large from a device like this. The easy ordering feature has now been disabled on my devices.

Ethical Implications and Personal and Social Values at Stake

This advertisement initially seems innocent but can quickly spiral out of control. First, as mentioned in the article, Wikipedia pages can be edited by everyone and Google will blindly read out the first sentence, under the assumption that it is okay to read (based on Wikipedia community guidelines). However, the articles could be edited after the release of these products to say horrible things that may not be appropriate for the listeners. It could place a lot of people in various ethical issue territories.

Similar advertisements will likely arise in the future. My family tends to leave the television on for our pets when we leave. I can easily imagine a case where an advertisement causes one of these devices to order something unapproved by the owner. I feel as if the companies producing the commercials are actually hacking their viewers and not just the device. It places their audience in a vulnerable state.

Source Credibility

Founded in 2011 under the Vox Media umbrella, The Verge was formed as a multimedia company to focus on technology and how it is becoming more relevant and prominent in our everyday lives.

Jacob Kastrenakes has been working as a News Editor for The Verge since 2012.

CST 373 Week 7

Scrapbook 7 - Cleverly Hidden Hacks

Booby-trapped Word documents in the wild exploit critical Microsoft 0-day by Dan Goodin of Ars Technica (PDF archive)

Summary

Initially reported by the McAfee security firm, a new 0-day attack was found that targeted Microsoft Word users. The attack was executed by the attacker emailing a malicious Word document to the targeted party, or parties. When the Word document was opened, it would connect to another server and download an HTML file (that appears to be of Microsoft's Rich Text Format type), which is then executed, as .hta is executable. This is what gave the attackers complete access to the victim's machine. Their trackers were covered to the victims by opening another regular appearing document of Word format once the code had completed executing. The execution downloaded code from various "well-known malware families." Reportedly, the first known attack was in January of this year (~4 months ago).

Reason Chosen

I find the idea of these commands, or similar, being run on my own computer based on my own actions unnerving and horrifying. It's also really interesting how clever the people that set up these attacks are. It's additionally notable, and a good reminder, that no matter the size and reputation of a company, they are not immune to these kinds of vulnerabilities.

Ethical Implications and Personal and Social Values at Stake

This attack worked on Windows 10, which is supposed to be the most secure Microsoft operating system known to date. Using this operating system may make users more comfortable with downloading unknown attachments from those on the internet. However, it is the now recipient's job to stay alert, not trusting anything sent by email. This can be a lot of pressure for those that use a computer and email with the assumption that nothing is going to target them directly. It may additionally be a burden for those that aren't familiar or are unaware of these kinds of attacks.

According to this article, Microsoft Word has a protected view option that will not allow the initial connection to be run and would prevent this attack from happening. It sounds like the best option, even after the patch has been applied to one's computer, to always default to opening new documents using this feature.

Source Credibility

Ars Technica is a publication geared toward those interested in technology. It was started in the late 1990s and has become a trusted source for technology and related policy news. Ars Technica was acquired by Advance, the parent company of Conde Nast, in 2008 and has since expanded to the UK.

Dan Goodin works as a Security Editor for Ars Technica. He holds a masters degree in journalism from UC Berkley and has been working in journalism for the last 15 years.

Sunday, April 9, 2017

CST 373 Week 6

Scrapbook 6 - Forgotten Digital Accounts and Their Impact

"#91 The Russian Passenger" and "#93 Beware All" from, the podcast, Reply All of Gimlet Media (PDF archive of Episode #91 and Episode #93)

Summary

This story spans two episodes of Reply All. Alex Blumberg, the founder of Gimlet Media, had his Uber account hacked into, where rides were taken at his expense. When he tries to log into the Uber account, it acted as though his account never existed. They contact Uber and find that his credit card number also does not exist in their system. Over the course of two episodes, they follow through different theories on how the Uber account could have been hacked and when.

Spoilers ahead! They follow through theories of key loggers, malware, and hackers. Their search leads them through the dark web for data being sold from hacked accounts to see if there are traces of Alex's information. In the end, the Uber account was linked to an old, forgotten email (from a previous employer) and he had used the same password for all of his accounts. This old email and its password were sold on the dark web and those were the same credentials for his Uber account. The ultimate moral of the story was to have unique passwords for all accounts and it's helpful to keep them in a password manager, like KeePass or LastPass. (However, LastPass may not be great because your passwords are stored on their servers and vulnerable, like the information for the websites it stores on your behalf.)

Reason Chosen

I've been using a password manager for a while, but really haven't converted all of my accounts to the complicated and unique passwords that are recommended. I don't think I'm the worst with my passwords, but think there's room for improvement. It is a good reminder that we all have to take responsibility when it comes to the websites we're working with.

They mention the website haveibeenpwned.com in the podcast and explain how it uses the data leaked from data breaches to see if your email/username (and associated data) was compromised. Upon searching for my email on the website, I found that I had four cases of my information being distributed.


Ethical Implications and Personal and Social Values at Stake

Using the internet and creating accounts for oneself on the internet requires a certain level of responsibility, not only for ourselves but for our loved ones. It's important that we educate each other on the best practices when working in this space. The internet is no longer a place where we go to just converse with people from a distance. It's a place where we store medical and financial records, our memories, and random personal information. Knowing the best practices is important here. Because we're so connected, we make everyone else vulnerable too.

I know that I still have family members that use simple passwords for every website they use and they're the kind my co-workers would joke about (password is "password" kinds). I understand where they're coming from since creating, setting up, and logging into a password manager is a hassle. But as we store so much more information on the internet, we, as tech-savvy friends, are responsible for helping them understand the risks.

Source Credibility

Reply All is a podcast created by Gimlet Media, which was founded in 2015. Gimlet Media is focused on high-quality, well-researched podcasts. It was founded by Alex Blumberg and Matthew Lieber, who both have experience producing public radio shows.

Reply All is produced by Phia Bennin and hosted by PJ Vogt and Alex Goldman who all have backgrounds in public radio. For more information, see their team member page. The hosts also did an "Ask Me Anything" (AMA) on Reddit two years ago.

Monday, April 3, 2017

CST 373 Week 5

Scrapbook 5 - Banks, ATMs, and Their Users

Hackers Are Emptying ATMs With a Single Drilled Hole and $15 Worth of Gear by Andy Greenberg of Wired (PDF archive)

Summary

Kaspersky, a Russian research company, found and reproduced a set of ATM robberies that had presented vulnerabilities in a widely used set of ATMs. ATM hackers drill a hole about the size of a golf ball near the pin pad and connect to the ATMs' hardware with their small computer using a wire. There isn't any authentication between the modules within the ATM, so the attacker can directly access the module that dispenses the cash and then tell it how much to dispense. The only limit is that the ATM will sense that something has gone wrong and reboot. Unfortunately, the ATM could have already dispensed $1,000 and can simply be told to dispense more after it has rebooted.

Reason Chosen

Hacking ATM is a new form of bank robbery and it's particularly interesting because of the accessibility. Regular bank hours are pretty limited and there's usually security but ATMs are often left without protection, outdated and vulnerable. Banks and users alike are more vulnerable to losing money and data through these seemingly secure machines.

Ethical Implications and Personal and Social Values at Stake

It's pretty obvious that it is not ethical to rob a bank and stealing from ATMs is not different. ATMs are still a fairly new component to our banking system and it can be very difficult to manage new technologies like these. The banks managing these machines have a responsibility to keep them secure and regularly test them for vulnerabilities.

As clients to large banks with ATM machines, we're expecting them to protect our data and our money. Everyone should be concerned about hackers accessing these machines because of the very important information (and money!) that they contain. Keeping our banks accountable for protecting our information and upgrading these machines is important.

There have been videos and articles released that help teach the average bank user how to look out for red flags that indicate an ATM has been tampered with but there aren't systems in place (at least that are known to me) for reporting suspected problems. Is this because the banks don't want the users to feel that their software isn't secure? Should we expect more from them or do the users have some responsibility to notify their bank when they notice a potential vulnerability?

Source Credibility

Wired is a well-known, technology-focused magazine based in San Francisco, California that has been active since 1993. They provide detailed articles surrounding relevant issues in technology.

Andy Greenberg is a Senior Staff Writer for Wired and previously worked at Forbes.

Sunday, March 26, 2017

CST 373 Week 4

Scrapbook 4 - Ethical Dilemmas Surrounding Self-Driving Car Development

Uber suspends self-driving car program after Arizona crash by Gina Cherelus of Reuters (PDF archive)

Summary

Uber has been testing self-driving cars in Arizona through a pilot program they launched February 21st, 2017. This program allowed users to hail autonomous cars through the Uber ride-sharing platform, with two operators in the front seats that will step in when the car is unable to handle the situation. The autonomous ride-sharing vehicle saw its first accident March 24th, 2017 when a human-operated vehicle failed to yield to the Uber self-driving car while making a turn. The situation and investigation into the accident caused Uber to suspend the pilot program until further notice.

Reason Chosen

As interest in self-driving cars has become more prevalent and companies are racing to produce their own autonomous cars, real-world tests have become concerning and, at times, fatal. This is an interesting subject since we are observing how technical innovations may impact our regular routine of driving our own cars. These developments are also going to have a large impact on our workforce. If/when self-driving cars begin to populate the roads, there will be fewer employees necessary for delivery trucks and more needed in technology.

There are arguments in favor of self-driving car development that are the same as those against this. Both positions share the concern of safety on the road. Those in favor believe that there will be fewer accidents on the road and those that oppose believe there will be an increase in accidents. Because of these reasons, watching the development of these cars and their ethical battles is particularly interesting and sometimes concerning.

Ethical Implications and Personal and Social Values at Stake

The ethical implications with Uber running this pilot program primarily hinge on if they're doing it in the most responsible way possible, ensuring the safety of their customers. In late 2016, Uber had decided to not obtain permits in California that designated their cars as test cars, which ultimately lead to their car's California registrations being revoked. Following this, they began their pilot program in Arizona. Many stories have been released recently regarding ethical issues within the company. They've developed a reputation for not asking for permission to implement a service or intentionally deceiving officials and the public in an effort to expand their business.

By forcing themselves into certain businesses and practices, with what appears to be little concern for ethical responsibility and safety of others, the Uber brand is suffering. Halting their service in Arizona is a wise decision for now, but when will they resume it? Will Uber make improvements and add additional precautions to ensure this doesn't happen in the future? There were additional employees in the car that were supposed to take control when the car was presented with a difficult situation. Is it difficult to switch to human-operated and if it is, are those employees prepared to take over at any given moment?

Even if improvements are made, it's unlikely Uber can guarantee something similar won't happen again. More problems tend to arise as development and innovation progress. When there are two obstacles for a car, the software has to make a decision that decides on the best option. What if there are many factors? If the cars aren't ready for real-world situations and need more development time, would Uber admit that? It all raises the question if money or safety is more important to large companies, like Uber.

Source Credibility

Reuters is a well-known news source that was first established in 1851 and is headquartered in London, England. Their publication is global with 12 supported languages. They additionally have their own handbook that is designed to help them produce fair and reliable content.

Gina Cherelus is a reporter based in New York that has worked for Reuters for the past year as a U.S. General News Reporter. She obtained a degree in Journalism and Graphic Communication from Florida A&M University.

Sunday, March 19, 2017

CST 373 Week 3

Scrapbook 3 - Should Google Be Held Responsible for Protecting User Privacy?

Judge OKs warrant to reveal who searched a crime victim’s name on Google by David Kravets of Ars Technica (PDF archive)

Summary

A victim of identity theft in Edina, Minnesota had nearly $30,000 stolen from his bank account by someone using his identity. They forged the victim's passport using a photo that appeared from the Google search engine when the victim's name was searched. The Edina Police Department initially sent Google a subpoena to gain user information details from the searches performed with the victim's name. Google rejected the subpoena and the Edina Police Department requested a warrant from the courts to access user information from Google. The courts granted the warrant. Google has indicated that they are fighting it.

Reason Chosen

This topic is particularly relevant to the discussions we're having in class. The warrant approved by the courts would provide the government with proprietary user data and the information requested by Google's users. This week in class we're discussing anonymity online and if governments should respect that privacy or require users to be tied to their government identities.

Ethical Implications and Personal and Social Values at Stake

The ethical implication that this case has is one where the government (or Edina Police) could breach the privacy of those utilizing the Google search engine. Additionally, it asks us to consider whether Google, a large U.S. company, should be responsible for protecting the privacy of its users. To protect themselves against any harm like this, a user could access a public unprotected computer, such as one at a library, but should that be necessary? If this were to become normal, would we see a trend to require users to input their government credentials to access search engines and other websites like this?

Many people utilize these search engines with the expectation that their search information will not be released to outside parties, like a government. If this were the expectation, we would expect any search performed to be held against us. Doing research for a paper may cause a student to search something completely morbid but with innocent intentions. This could result in unthinkable consequences. Incriminating cases, where completely innocent people become murder suspects due to their search queries, or similar (maybe not so extreme cases) could become more frequent.

Source Credibility

Ars Technica is a publication geared toward those interested in technology. It was started in the late 1990s and has become a trusted source for technology and related policy news. Ars Technica was acquired by Advance, the parent company of Conde Nast, in 2008 and has since expanded to the UK.

David Kravets is a Senior Editor at Ars Technica with previous experience as a Senior Staff Writer for Wired magazine, a Press Secretary for the California Department of Justice and Legal Affairs Writer for the Associated Press.

Tuesday, March 14, 2017

CST 373 Week 2

Scrapbook 2 - Cloudflare Bug Exposes Unintended Information

Summary

Many large name websites, like Fitbit, Uber, and OkCupid, were utilizing Cloudflare's SSL certificates for their website security. Cloudflare had a major vulnerability exploited that caused requested endpoints to return additional data in the response from other websites. Cloudflare acts as a middleman when performing requests. So, when a request is made to a website behind Cloudflare, it passes through Cloudflare at the time of the request and at the response. The bug exploited from requests that returned HTML and the issue was in their parser. If a website response was HTML and there were mismatched HTML tags, Cloudflare would incorrectly parse the HTML and return additional information from its cache. This cache could contain any set of data from any other request. While the results could vary, they were cached in search engines like Google and Bing. Cloudflare worked quickly to resolve the bug, but the data was still cached for some period of time in these websites (or search engines) that scrape website information. This was a very serious issue that may have impacted a large number of users.

Reason Chosen

The Cloudflare "Cloudbleed" vulnerability was very big news recently and really highlighted the issue of using a third-party service to take care of a website's security. The impact was also large and they were unsure of who all would be impacted by this.

At my work, particularly, we had clients that were utilizing this service and it sent some of my coworkers into a bit of a frenzy. Not all of our clients use this service so it didn't impact many of us but it was extremely relevant and discussed a lot. It was also a good reminder to really take into consideration what third-party services are being used for and if using them is really in the best interest of the website users.

Ethical Implications and Personal and Social Values at Stake

This situation highlights the kinds of problems that can occur outside of the scope of a single code base when relying on third-party providers to handle security for your website. As a company needing to handle SSL certificates, passing this responsibility off to another is an ethical issue when one needs to be concerned about protecting their user data. Users are trusting the websites they utilize to do this and do it well. It's troubling to know that so many websites were utilizing this feature and that such a small issue can cause such a large problem for individual people.

This GitHub Gist has a list of websites that were using Cloudflare and it was recommended that users change their passwords for all of them.

Source Credibility

Wired is a well-known, technology-focused magazine based in San Francisco, California that has been active since 1993. They provide detailed articles surrounding relevant issues in technology.

Lily Hay Newman is a Security Staff Writer for Wired and has previously worked at other notable magazines and news organizations.

Tuesday, March 7, 2017

CST 373 Week 1

Scrapbook 1 - Are They Listening?

Summary

A suspected homicide took place in a home equipped with smart devices. Among these devices was an Amazon Echo device. Authorities seized the device from the home and served Amazon with a warrant to obtain any recordings from the device, citing that they expect Amazon to host recording from the device that may provide assistance in the case. Amazon claims that they only keep recordings that consist of the command that the device hears. These recordings begin with the specified trigger word, "Alexa". They also claim that the user can delete the recordings through their smartphone application and while they're always listening, they don't record any additional information.

Reason Chosen

This situation highlights something close to me, as I have Amazon Echo products in my home. I keep one in my living room and another in the bedroom. They're used adjust the lights (on/off/dim) in each of the rooms. This article came out shortly after I had purchased the first product and it was a little worrisome. I was not worried because I was going to plan a murder but because of the other implications that it could have. Some of us don't see our daily activities as something to guard as private and other do. However, I live with my boyfriend and owning one wasn't just a decision to make for myself, but for him too. It's worth spending an additional moment to consider who else could be impacted by these purchases and if they would be okay with it.

Ethical Implications and Personal and Social Values at Stake

While this article was primarily focused on the police attempting to use a warrant to gain recordings from the Amazon Echo device, I'd like to place more attention on Amazon themselves and if what they claim is true regarding how they store the recordings.

Amazon claims that they only store the commands that are initiated with the trigger word, "Alexa" and that the owner of the product can delete recordings from their Amazon Echo application. There are a few moving pieces in this claim. First, the software for the product is closed-source and we don't know how Amazon is actually handling the data (sound processed in the cloud). We are completely relying on their claims. Because we can't verify how our data is being handled, we can't guarantee that the recordings are actually deleted when the user requests that they are not actually storing additional information.

Many people purchasing these products are unfamiliar with how "the cloud" works and that it is used at all with these products. They may feel differently about them if they knew that everything they said was being transmitted to a server outside of their home for processing, or understanding what you said and saying something in response. Once their data leaves their network, they no longer have control over it and can't guarantee the safety of it. They're trusting Amazon to handle their data respectfully and do anything malicious with it.

What's interesting to consider is if and how this should be handled. Is it okay to have so many products, in our own homes, listening? Could or should this be regulated? How do we know who we can trust? Perhaps there could be some sort of required warning about it? We don't have the answers but this is definitely pushing us into a new direction.

Source Credibility

The Washington Post is a well-known news source and is primarily circulated in Washington, DC. The author is a legitimate full-time journalist with The Washington Post. It is notable, and noted within the article itself, that the owner of The Washington Post is the chief executive of Amazon. However, this point does not diminish the value of my analysis.

Tuesday, February 21, 2017

CST 370 Week 8

Week 8

Phew! What a course! As we wrap up the final week, I'm very glad we've completed the course and are on to the next one (CST 373 Ethics in Communication and Technology). I've been looking forward to our next course for a while now because I really enjoyed the quick look into ethics in our first Proseminar course. I hope it lives up to my expectations.

As for this current course, we covered graphs this week. I'm sure we just covered the tip of the iceberg since we have a shorter week with only one homework assignment. The content covered in-order, pre-order, and post-order tree traversals, edge lists, adjacency matrices, and Dijkstra's algorithm. Throughout the course we've been watching videos from My Code School and they've been very helpful. I liked the emphasis this week regarding the trade offs between using an edge list and a adjacency matrix for storing a graphs. It's good to consider that an adjacency matrix will take up a lot more space and an edge list has a large lookup time. Those are very valid things to consider when working on larger systems.

The final has not yet been released as of writing this. I wanted to get all of my course work done before the final release so I don't miss anything. I expect to do well, especially since it's a programming assignment but you never really know...

Overall, I've really enjoyed this course and have loved how organized it is. There were no surprises and the course maintained consistency. The modules seemed pretty evenly weighted but I think stacks and queues could be combined. I was already familiar with the topics so I didn't not end up seeking out much help, but the professor and TA both seemed very available and encouraged us to contact them when we needed help.

Monday, February 20, 2017

CST 370 Week 7

Week 7

This week we covered binary search trees. There was a lot of emphasis on recursion (Google it... it's fun!) in the programming assignment. A good portion of the assignments for the week covered in-order, pre-order, and post-order tree traversals. It appeared in both the homework and programming assignments.

The concepts for these are pretty straight forward. They all traverse the tree in a similar way and vary based on when the contents of the node are displayed. The images here show the same path and the point in the path when each value is printed for in-order and pre-order traversals. All of these algorithms use recursive functions, treating each node as the root of a tree, for their implementation.

Binary search trees are very neat and efficient for finding values (assuming it's properly balanced). Instead of looking through an entire list, you can just go through the depth of the tree.

As I'm writing this, our final module for the course has been released and, based on a quick look, we're on to graphs! I'm very excited to close out another course in this program and get one step closer to graduation. It's become much more difficult to maintain focus but I'm pulling through!

Here is my programming assignment for the week:

Sunday, February 12, 2017

CST 370 Week 6

Week 6

I kept thinking that I'd get ahead this week in this course and place more focus on my discrete math class, but that hasn't happened so far. I think I need to just sit down and focus a little more. I am finding myself frequently distracted.... but we're in the last stretch and I need to keep my eyes on the goal (that's what I tell myself, at least)!

We continued with sorting algorithms this week and added binary searches to our little collection of tools. The assignments were straightforward and really not too bad, once you got going. We implemented a binary search, both iteratively and recursively, in our lab and a non-standard sorting algorithm in our program, which I walk through in the video below.

Overall, I'm happy with the way this course is going. I really appreciate the general structure and predictability. If this were the beginning of the program, I'd be a lot more into it but I'm feeling very run down this week and at this point in the program. The repercussions of doing an additional course each semester while working full time for this entire program are surfacing.

Here is my video of the programming assignment this week:

Monday, February 6, 2017

CST 370 Week 5

Week 5

We're on to sorting algorithms! This week we covered selection sort, bubble sort, insertion sort, and merge sort. I definitely feel like I have an advantage in this aspect because I've covered it so many times and I believe that I have a good handle on it. The homework was pretty straight forward and didn't feel like it came from left field, or another class, this time. I appreciated that. The programming assignment also remained on topic, since we implemented sorting algorithms ourselves.

We also had our midterm this past weekend. I wasn't very excited about it because of my big flop last week and my lack of discrete mathematics knowledge (which I am just barely enrolled in!). I was glad to see that the midterm wasn't so heavy on the discrete math bit and was much more focused on the data structures and other material we covered. I was also surprised that there weren't problems covering converting infix notation to polish or reverse polish.

As far as the grading has gone, I feel like there has been a surprising amount of focus on C++ language specifics. I really feel like the grading on our assignments (homework and labs) should be more focused on us understanding the material and concepts of what we're learning and not so much on the language itself, especially because this is not a class on C++ itself. Personally, I haven't used C++ since ~2009 (8 years!) and am rusty on a lot of the language-specific aspects of it. Our lectures and reading assignments aren't focused on these things and I don't believe the grading should be either.

Here is my video of the programming assignment this week:

Wednesday, February 1, 2017

CST 370 Week 4

Week 4

There was a fair amount of new material this week that was very unlike the previous few weeks. We covered a fair amount under the algorithm complexity umbrella, like big O notation, recurrence relations, and time complexity.

I didn't start the homework early enough this week and it really hurt me. The structure was a bit different so I slowly (for this program!) worked through videos and skimmed the readings. I didn't begin the assignment until Sunday, leaving me only Monday and Tuesday (after work) to complete the assignment. For 5 questions, I didn't think it would be too bad... but I was so wrong. There are problem that I worked out but left completely blank because I don't even know how I got to where I was (the step problem).

Discrete mathematics is the last course I need outside of this program. I have paid for it and am in the process of enrolling through the University of North Dakota Online. However, I have not even started it yet. The homework had discrete math topics that I was unfamiliar with. I used my sister's old discrete mathematics textbook to complete what I could of the assignment.

I'm just considering this week a loss and will press on with the upcoming material. I do have some extra credit to fall back on, thanks to the videos. I believe it's best to stay current with the course than dwell on getting caught up. I will spend an additional day trying to complete the unanswered question on assignment. If I don't get it, I will move on. I have at least turned in something. Not all "F"s are the same, after all!

Tuesday, January 24, 2017

CST 370 Week 3

Week 3

This week we covered converting infix expressions to prefix (or polish notation) and postfix (reverse polish notation) using stacks. The video tutorials we are following also explained how to evaluate the expressions using stacks but we didn't practice that ourselves. We also covered queues. The basic ideas of queues are very simple and I have been impressed with the challenges provided in the assignments.

I'm excited to learn about complexity next week and really deepen my knowledge on algorithm efficiency. This is a topic that you can never have enough review of and is extremely helpful for job interviews and real-world practice.

Here is my video on the programming assignment this week:

Monday, January 16, 2017

CST 370 Week 2

Week 2

We're on to stacks this week! I'm familiar with stacks from previous experience and courses, so this week wasn't very challenging for me and that is a-okay by me. I've enjoyed the review and not feeling completely swamped in assignments. The assignments were fun to think through and get working.

I got marked off on a piece of my lab for something that I misunderstood from the assignment and did intentionally, which drives me crazy. I really try to make sure I get all of the details down and didn't even think that I would need to clarify this bit. However, I think the extra credit from my video from last week cancels out the missed points. I'm hopeful that there weren't any misunderstandings this week!

Here is my video on the programming assignment for this week:

Tuesday, January 10, 2017

CST 370 Week 1

Week 1

It begins! A new year and a new set of courses. I'm very rusty with C++, since it's been nearly 10 years since I last worked with it, but am hoping to get back into the swing of things soon. The topic this week, linked lists, is familiar to me. I've implemented them in both Ruby and Java previously. In both cases, I wasn't working with pointers and references! I will understand when to use which one and what (heh) by the end of this course, dang it.

We had a couple of assignments that all basically had us iterating through some nodes to accomplish things, like insertion or just printing the data that the node contains. All of the reading and videos were also related to linked lists and doubly linked lists. The primary programming assignment was to find all of the possible substrings in a string beginning with 'A' and ending with 'B' and print them to the console.

Here is my video covering how I implemented the programming assignment this week: