Robots Can Finally Get Up…

Here is part two of the “I procrastinated these blogs until the last minute” Week 15 blog posts. In the last post, I talked about keeping up to date with software development trends, but if you read it, it was a waste of time, and I do humbly apologize for that. To make up for it, I’m going to give myself a redemption arc. After finding that article, I decided to go back to the website where I found the article about deceiving deceivers, which was one of my favorites in my opinion. This time, we get to talk about robots in the military, and if that doesn’t peak your interests, then I really can’t help you, and you can stop reading now.

For those of you that decided to stay however, lets get into this. Supposedly, the military was having an issue with some of their robots. This issue was that they couldn’t get up on their own when they fell. I thought this was hilarious at first, but then I realized that it makes a lot of sense that the robot couldn’t get up on its own, and I now apologize to the creator of these robots. I know it must be hard work, but anything falling is humorous to me. This was a problem until the US Army Research Laboratory and Johns Hopkins University Applied Physics Laboratory got their hands on it. It doesn’t really get much more serious than that. Once Johns Hopkins gets involved its over. On a serious note, however, these scientists started developing a program to ensure that the robot would be able to get itself up, and not have it’s soldier help it. This process is called Self-Righting, and it is crucial that the robots can do this in order to keep a soldier out of harms way. These scientists analyzed any and all predicaments that the robot could ever possibly be in, and using RAPT (software framework for testing autonomous robots) they were able to get the robot to stand back up in any situation. This is a huge breakthrough in my opinion.

This article was a very interesting read, and I highly recommend it to any one pursuing a career in the military or software development or both. I liked this article because the internship that I interviewed for actually was for a software engineering internship for a company that aids the US Military. So, this article was something that I could relate to easily. I can’t argue with the article because I lack the knowledge to do so at the moment. I hope you enjoyed this summary/reaction of the article, and I hope it makes up for the last one.


Keeping Up with the Software Developers

To kick off this week of blogging, the first article of the two I will be writing about this week is titled, “How To Keep Up To Date As A Software Developer”. Like all of the other articles that I have written about on this blog, I just happened to spot this article as I was searching for other articles to write about. Although, this one stood out to me because I recently had an interview for a software development internship near my hometown, and it got me thinking. Maybe I should actually stay up to date in the latest software development trends. Luckily, I happened to stumble upon this piece of coincidental, appropriate-to-my-situation, of writing. So without further adieu, let’s talk about the read of this week.

This article is actually written in the form of an interview. The article leads off with the question, “How do you keep up to date as a web/software developer?”. This was a question that was asked on Quora, which is kind of like Yahoo! Answers, but more credible… I think. Regardless, however, the person who answered this happened to be Mario Peshev, CEO of DevriX. DevriX, if you didn’t know, is a company that handles creating WordPress platforms for other companies. I also didn’t know that, but thankfully the internet exists. I still think the article could have explained that, but what do I know about writing articles. Anyway, Mario goes on to talk about what he does to “keep up to date”. Honestly, it was exactly what I expected it to be, which is disappointing, but I don’t know what I expected. He provides 12 ways to keep up to date, and they are exactly what’d you’d expect. (Collegues, Internet, Working, Social Media, etc.) He did mention books which is an obvious answer, but he mention the Gang of Four book, and that immediately caught my attention. It made me feel all professional because we used that book in class, so, in the end, Mario and I are basically the same, except he makes a lot more money than I do.

This article would have to rank low on the list of articles I read because it was predictable. I’m not saying that the article was bad, but obviously, books and the internet are good ways to keep up to date. Granted, I don’t know why I expected there to be some magical new way to keep up to date that only Mario knew, so I guess that is my fault. Overall, this was a good read, but you already know how to do this, so you are better off finding another article.

Deceiving a Deceiver

In my second blog post for the week (because I procrastinate any and every assignment), I am going to write about the topic of cyber-security today. I stumbled upon an article that was talking about this exact topic. The article is titled “Computer hackers could be thwarted by new ‘deception consistency method”. This title stood out to me because it may be a way to stop computer hackers almost entirely, so I decided to give it a read. The article turned out to be very short and to the point which is admirable, but it does make it a little harder to write about.

The abstract of this article leads of with “Can you deceive a deceiver?” and I absolutely love that phrase because it is like a PG-13 version of another phrase that I won’t mention here for the sake of professionalism. Anyways, the article mentions that the study by Assistant Professor of Computer Science Guanhua Yan and PhD student Zhan Shu at Birmingham University. They want to figure out a way to more effectively against malicious hackers. It was inspired by a data breach of Target in 2013, which cost them around 18.5 million dollars. They explain the concept of cyber deception is and I find it to be an interesting concept. To put it simply, it is putting the hackers in a fake environment to make them think they are in the system, but in reality, they are in some fake system. They mention that the problem with deception currently is that there are “bad lies” that make it blatantly obvious to hackers that they are in a fake environment.

The two decided to develop a deception consistency method, which they then tested on college students who recently completed a cybersecurity course, and the results were very positive. Most of the students were unable to recognize that they were in a fake environment, and that most of them just guessed. While this is a step in the right direction, the is not a “cure-all for things like what happened to Target and Equifax.”. They did say that they would continue to improve the effectiveness of the method to stop the more advanced attacks.

I thoroughly enjoyed this article because I do want to learn more about cyber security in the future. I find it interesting that hackers can be mislead like this, and still think they are in a system. I don’t really have too much prior knowledge on cyber security, but this has definitely raised my interest about the subject. I don’t disagree with any of the information. These two researchers did an excellent job on this study, and I encourage you to take a look at this article.


The Smartest Fly (A)L(I)VE

This week as I was looking for articles, there was one particular article that caught my eye almost immediately. It is called, “Artificial fly brain can tell who’s who” I knew that I had to write about this article. This article was posted in mid October (October 18th to be exact), so it is actually fairly recent.

This article talks about how researchers at the University of Guelph and the University of Toronto have built a neural network that almost perfectly matches that of a fruit fly’s visual system, and it can even tell the difference between other flies and even re-identify them. They obtained this by combining the expertise knowledge of the biology of the common fruit fly and machine learning to produce a biologically-based algorithm.

The article then talks more about the biology of the fruit fly, and talks more about the computer program in the following paragraph. The article then concludes by talking more about the future of neural networks and AI.

I throughly enjoyed this article, and I truly believe that it was well worth the read, and I encourage others to also find the time to read this article. The part that I found the most interesting was that using this neural-network-machine-learning-based program, this “artificial fly” was able to identify other flies with a score of .75 or about 75%. They tested this by recording the fly for two whole days and then testing the program on the third day to see if it was in fact able to identify it. They also tested just the algorithm without the fly biology constraints, and this scored a .85 and .83. This is only slightly better than the program which is very good results. They also went on to compare it to human fly biologists, and they only scored a .08. Lastly, on top of all of these comparisons, they included that random chance would only score a .05. This is unbelievable in my opinion. The fact that a computer program scored that much higher than a human is truly insane. I think that this research is a huge step in the right direction for AI. After reading this article, I am much more interested in AI, and plan to continue to research the topic more.

Article URL:

How to Make the Perfect Singleton

In our Software Construction class, we have been going over the design patterns used by developers everywhere. Our last test covered all of the design patterns, and after I got the test back, I decided to research more into the design patterns topic and I found the article, “How to make the perfect Singleton?” I found this article whilst browsing the internet looking for other articles, and this one jumped out at me.

The article starts off by discussing the purpose of the Singleton. I liked this section of the article because it provided some specific examples of when this pattern would and should be used. For example, it said it is “used when you have to control resources” (Patel), and it is used in database connections or sockets.

The article then goes on to show the reader how to create the perfect Singleton. It explains how to initialize it, and it explains how to make the class thread, reflection, and serialization safe. I actually didn’t know what it meant to make a class thread, reflection, and serialization safe until I read this article.

The interesting part of this article is how many new terms it introduced me to. The volatile keyword was brought up in this article, and I personally haven’t seen this keyword anywhere in my few years at Worcester State. The volatile modifier makes it so that the write of a certain variable is guaranteed to happen before the read of said variable. I also learned that making classes thread safe is essential for any “multi-threaded application environment” (Patel). They use Android applications as an example. I also learned how to make my Singleton class safe from Serialization, which is simply just preventing others from creating new instances by serializing and deserializing the singleton. I also learned how to prevent Singleton failure due to reflection. This was also very simple as you just have to throw a run-time exception in the constructor.

This article was a great read and contained a lot of useful information. I plan on using this information that I obtained in the future when I create more classes using the singleton pattern.



Software Development Trends

Today I read an article titled “Software Development Trends in 2018 That Will Dominate in 2019” This was a very interesting article that talks about the current trends involved in software development and how they will continue to be a force to be reckoned with in 2019. The article talks about 5 different trends that will be huge in 2019: Artificial Intelligence (AI), Progressive Web Apps, Blockchain Technology, Cybersecurity, and Low-code Development.

I chose to write about this article because I already knew that AI is one of the biggest current trends in software development, but I thought it would be interesting to read up on other trends in the world of software development. This article did not disappoint as I was able to learn more about Blockchain technology. I personally never heard of that before reading this article. I read that it was being used in the medical field, and it was being applied to the medical data in order to store it safely within a network. This appealed to me because my sister, and mother both work in the medical field, and I am sure that this could be useful in their line of work.

Although, I knew that AI was going to continue to be a huge trend in Software Development, I learned that AI will be used by “more than 40% of the organizations to automate their business in 2019” (Williams).

This article didn’t elaborate on low-code development too much unfortunately, but basically, it allows developers to build software without much expertise in coding. This part actually brings up an intriguing thought. While it does help people without expertise code more, could this be a bad thing for other developers? If everyone is given the opportunity to easily learn code, will that possibly take away opportunities from the extremely hard working developers? I don’t believe that will actually happen because the software development field is constantly evolving, so those with expertise in the field will continue to thrive.

Cybersecurity was the last trend that will continue into 2019, and I do feel like this is a given. The article mentions that 18% of companies did report at least one security incident in 2018. This is still an alarming number because some companies have a lot of important information that shouldn’t be leaked or taken. The trend that will continue is that these companies will look for Cybersecurity developers and thus, better programs will constantly be developed to virtually guarantee complete protection for any company’s data.



The Birth Of A New Blog

Welcome to my blog for CS 343 with Professor Wurst. In this blog, I will be summarizing, reviewing, and commenting on articles, podcasts, and other things that relate top what I am studying in this course. Most of my blog will be just about the reviews, however, I do plan on using this blog even after this class to talk about other things whether it is about my own career, or other advances in the field of computer science. This blog is a great way for me to research the field by requiring me to keep up with the constant changes happening in the world of computers.