Hello again to all of my few viewers that read my blog. I am back, but this time it is for a brand new class. CS-443 (400 Level, getting to the good stuff now.) Once again, I will be summarizing, reviewing, and commenting on articles, podcasts, and other things that relate to what I am studying in this course. Looking forward to getting my reviews back out there after a nice 6 month hiatus.
At last, we are finally here, it is the last blog of the semester. It really is bittersweet because what I thought would be a pain ended up being fun in the end because I discovered that I have fun when I write these. For the last article, I had to go to my favorite website, which as mentioned, I will post at the end of this post. This article is about an app that extends battery life, and I am just as skeptical as you probably are because battery life extenders are usually never legit. However, this article says that scientists have found a “novel” way of extending battery life by an hour everyday.
Okay so after reading this article, I’ve discovered that this app is for android only, and I have an IPhone so this is absolutely useless to me, but for my android peasa…. I mean friends out there, this is the app for you apparently.
So android has this neat little feature in which a user can have multiple windows or apps open on the screen at the same time. (Which i guess is cool, but like why do you need that many things on a tiny android screen.) This feature apparently kills battery though, but after this app is installed, that energy drain will be a thing of the past. The app created by Kshirasagar Naik, co-author of the study and a professor in Waterloo’s faculty of Electrical and Computer Engineering, reduces the brightness of non-critical applications. In other words, it will dim the other windows that you aren’t using at at that moment.
As much as I don’t like android, this app showed results. The study was done on 200 smartphone users, and it showed that users with the app downloaded extended their battery life by 10-25%. Numbers do not lie my friends.
This was a pretty straightforward article so it isn’t my favorite article ever obviously, but I did really enjoy it for the same reason. It was straight and to the point, thus making it very short. Although, what I don’t understand is if a window is “non-critical” why is it even open in the first place? I’m convinced it is so Android users can flex on IPhone users more without their battery dying from having that many windows open. In all seriousness though, some people probably actually use multiple windows, but may just not need one at the time so the app is a really good idea. Overall, this was a good read, and if you have an Android, download MultiDroid to start saving your battery.
And that’ll do it. It has truly been a pleasure to review articles for you guys, I don’t believe I will be continuing to write these articles, but who knows, maybe I will come back. But here is the link to my source for my readers out there.
In our last week of blogging, (I know it’s sad) I decided that I will be continuing on a topic that was previously discussed a while back. (Two weeks because I procrastinated, but it’s okay we won’t talk about that). Today, or tonight rather, we will be discussing cyber security. I did my normal routine, and went back to my favorite website which I will post at the end of my last blog post for those who are interested. Anyways, the article is titled Proactive Approach to Defending Computer Systems. I saw the word proactive, and I jumped right into the article.
The article is about how three different research teams (U.S. Army Research Laboratory, the University of Canterbury in New Zealand and the Gwangju Institute of Science and Technology in the Republic of Korea) came together to take a step in the right direction in the field of cyber security. According to scientists, which who are not mentioned for some odd reason, this is a demanding research topic.
The article then talks about the threat of cyber attacks like most articles that talk about cyber security do. In fact, the beginning of this article is more or less just an introduction on cyber attacks and how they work, but we won’t discuss this because we all know what cyber attacks involve, or at least I think we do, and this is my blog so I’m moving on.
The real information comes in about halfway through the article. A new method was found, and it is known as Moving Target Defense, or MTD.
“The concept of MTD has been introduced with the aim of increasing the adversary’s confusion or uncertainty by dynamically changing the attack surface, which consists of the reachable and exploitable vulnerabilities,” Cho said. “MTD can lead to making the adversary’s intelligence gained from previous monitoring no longer useful and accordingly results in poor attack decisions.” (Disclaimer: this quote was in the article, and I didn’t want to take credit for a direct quote). This explains the concept of MTD and the rest of the article talks about how it is used to prevent information from being taken by attackers. To summarize, use a bunch of fake changing IP addresses to prevent the attack.
I didn’t enjoy this article as much as I thought I was going to, but I do like the concept of it is hard to hit a moving target, so lets keep changing the fake IP address so hackers can’t do anything. I think that this is definitely a huge advancement in terms of cyber security, and hopefully it can prevent a lot of attacks. If i had to change one thing about the article, it would be the half page introduction on cyber security, but I don’t write articles so they can do whatever they want.
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.
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.
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.
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.
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.
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.
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.