heldw-blog
heldw-blog
Untitled
23 posts
Don't wanna be here? Send us removal request.
heldw-blog · 6 years ago
Text
Reflective Blog Post 2: The Value of Working on a HFOSS Project
Now that it is already May, my two-semester senior seminar class is coming to a conclusion. It has been quite an incredible learning experience in many ways. Through the high-level technical readings/discussions, hands on technical exercises, and being part of a H/FOSS community, I have acquired many valuable skills.
Let's start with the readings and discussions. This year I have learned more about technology than I have learned in my entire life. It wasn’t just about reading, it was about analyzing scholarly articles and being able to look at things in from many different angles. Through this I learned how to listen effectively in the classroom, as sometimes people would have thoughts that I initially wouldn’t agree on. But being able to look at ethical situations in many different lights allowed me to really be able to value other opinions on the subject matter. One subject that stick out to me the most is the “Deep Fakes” topic. Through learning about this subject matter, it has effectively made me more aware than ever when I read articles or watch any videos on the internet. I now make sure that the websites I require information from are credible and reliable as I am aware of how easy it is for malicious creators to create fake websites and release fake news.
Even though this semester we did not have many hands-on exercises to work on, since we focused primarily on class discussions and working on our H/FOSS projects, the technical work of the hands-on exercises from the first semester proved to be very valuable to me.  Through these exercises, I was able to work side by side with some of my classmates that I did not know at all prior to this semester. This has taught me how to manage time with other people which has greatly improved my ability to work in small groups. Another valuable skill gained from the technical work is that I hands on learned how to distinguish credible sources of information from unreliable sources. A lot of the time my partner and I would get stumped with some kind of error produced in terminal on Ubuntu. This would cause us to google the error and click on the first result and try whatever it said. After making this mistake a few times, we realized that a lot of the times we were clicking on sources that were outdated and therefore unreliable. We learned that in order to find a reliable source we need to read through a few different sources, and then pick the one that has the most logical solution to our problem.
I said it at the end of last semester and I will say it again now, having the opportunity to work on a H/FOSS project has been by far my most valuable experience at Dickinson. I believe that my personal responsibility skills have greatly improved throughout the semester, as I had to take initiative to work on the project outside of class. It was unquestionably a huge adjustment at first, but throughout the semester, I learned how to take initiative in a group environment in order to get work done on the project. I did this by being the first person to reach out to the other members to schedule time to meet, or to check in on their weekly progress so that we could make sure that we were all on the same page. Through this, my ability to work in small groups has greatly improved. I also learned how to apply democratic principles within a small group setting from day one when we all collaborated to select our project. Throughout the year I have become more comfortable working with others. I am no longer afraid to seek help from my peers, as well as express my thoughts to my teammates about my concerns. My overall desire to contribute to the community has also significantly increased as I was able to make some small contributions to Audacity. It was definitely a very satisfying feeling even just making a contribution as small as closing out on old bug ticket, but the appreciation the other developers gave me was priceless and it made me even more eager to contribute.  
I know that the skills that I have acquired this year are skills that I will take with me to my future careers as well as future life experiences in general. I also hope to continue to contribute to HFOSS projects at some point in my future.
0 notes
heldw-blog · 6 years ago
Text
Does Everyone have a Facebook Account?
It has recently come to my attention that data is extremely valuable, especially your data. No matter who you are, companies such as Facebook make tons of money by selling our data to advertising companies. They collect our data to advertise products that people “similar” to us purchase or browse at. Similar as in similar based off of the data that has been collected about you online. When we sign up for a Facebook account, we agree that they can do whatever they want with our data. 
This becomes a bigger issue when Facebook creates Shadow Profiles. A shadow profile is basically Facebook collecting data about you even if you have never signed up for a Facebook account before. As CNN mentions in this article, data about you (as someone not on Facebook) is obtained from your friends and contacts who are on Facebook. Data is also collected from other web browsing activity or online purchases. This is a big problem as these people have could have never even touched social media before but it is inevitable that there is enough information about them online that Facebook can create a Shadow profile for them, and they can also use and sell the information obtained for advertising purposes. So the bottom line is that data will be collected regardless of what social media services you choose to use. If you really are against your data being collected, then a solution would be to isolate yourself from all electronic devices that have a connection, so basically don’t use devices like computers or cell phones. 
0 notes
heldw-blog · 6 years ago
Text
Why A.I Should not be used to Judge Beauty.
When I first heard that Artificial Intelligence has been tested to judge beauty contests, my initial thought was, “how is this possible?” Beauty defined by Merriam Webster is: “The quality or aggregate of qualities in a person or thing that gives pleasure to the senses or pleasurably exalts the mind or spirit”. The definition of beauty in itself differs per person as everyone has a different version of qualities that define beauty. That being said, in order for A.I to determine beauty, the programmers behind the AI can program the machines to define beauty based on what they define beauty as. So the machines themselves inherit the programmers bias on what beauty really is. Not only that, but according to The Guardian,  the data that these machines are learning from is not diverse, which makes them believe that beauty is defined by the majority of the photos that it receives. This is not accurate because the machines do not have enough information to determine “beauty” among all races and types of humans. Although there could be an argument made that human judges can also be bias when judging beauty, it is definitely far more accurate to have humans determine beauty over machines because not only do judges have the ability to take into account beauty of different races, but also the fact that they are not programmed to follow an algorithm to determine what is beauty. I would also like to point out that there are also many problems with human judges as they also can be bias towards how they define beauty themselves. So the bottom line is that there will never be a perfect system that everyone agrees with because everyone has different opinions on what beauty really is, but having machines judge beauty is definitely not an accurate representation of what society would agree with.
0 notes
heldw-blog · 6 years ago
Text
Why Everyone Cares about Privacy.
The saying that “if you have nothing to hide then you shouldn’t worry about government surveillance and privacy” is absolutely false. Everyone I know has a password on their phone, and this does not necessarily mean that they are hiding bad things, it just means that they do not want other people to be sniffing around their property. Everyone locks their doors at night, this does not necessarily mean that people have illegal matters inside of their homes, it just means that they do not want other people coming inside of their house. This same logic applies to government surveillance, many of us might not be doing anything wrong, but this does not mean that we want the government or anyone watching us through our computer cameras at all times. We all have a right to our own privacy and it seems like many of us are truly paranoid that this right could be taken away from us without us even knowing as we could be watched or observed at any given time. For example, many people actually cover up their computer webcams when they are not being used. Is this government watching them? Probably not. Could their webcam be hacked into? It is very possible, and this fear and insecurity in technology is what causes people to be paranoid.
The bottom line is that we all care about privacy and like to have a sense of security when we are in our own homes. That fact that we don’t want people to be watching us does not mean that we are doing something wrong and have illegal things to hide, it just means that we care about our privacy.
0 notes
heldw-blog · 6 years ago
Text
Blockchain Technology Impact on the Environment
When you hear of blockchain the first thing that comes to mind is probably bitcoin since it successfully uses blockchain technology. Blockchain technologies offer many great advantages however, one big issue with blockchain is its impact on the environment. According to Morgan Stanley , bitcoin mining has the potential to consume more electricity than the entire country of Argentina does in one year. Also according to Mr. Price, Bitcoins estimated annual electricity consumption is 1.5 percent of the United States total consumption. It is also responsible for 0.6 percent of the WORLDS entire electricity consumption. This is all due to the fact that blockchain technology requires extreme computing power to solve mathematical puzzles.
Blockchain technology relies on miners to solve these problems which according to the statistics above, clearly are requiring too much energy. Blockchain technologies are primarily used for cryptocurrencies, and alone are consuming that much energy. This is going to become a serious issue in the future when other industries start to implement blockchain technologies. That being said, in order for blockchain technology to be environmentally friendly, there needs to be a more efficient way to verify transactions in the blockchain. However, part of what makes the technology work is the verification process of solving complex mathematical puzzles and blockchain would have to go under some serious changes to adjust the verification process and its decentralization. Blockchain cannot choose and limit the amount of miners out there because it would no longer be decentralized and at that point is it truly blockchain or will it be an entirely different technology the incorporates blockchain ideologies?
0 notes
heldw-blog · 6 years ago
Text
Is it a Problem that IoT Devices are Stalking us?
Is it a Problem that IoT Devices are Stalking us?
Have you ever wondered why you see ads for products that you talked about with your friends in person? I know the first time this happened to me I for sure did not believe that this was a coincidence. The average consumer of an IoT device might not know that their brand new IoT device is constantly listening and collecting data from them to help the companies improve their product. At first glance this just seems weird and creepy but we have to acknowledge that by using their products, they have the right to be collecting data from us. It is not necessarily a problem that the companies of IoT devices are collecting user’s data for their own analysis of product improvement. This becomes a bigger problem when hackers obtain access to this data as well.
According to https://www.csoonline.com/article/3258748/the-mirai-botnet-explained-how-teen-scammers-and-cctv-cameras-almost-brought-down-the-internet.html , IoT devices are extremely easy to hack into as they commonly use default passwords. So now imagine instead of the company collecting your data, you now have a harmful hacker that has access to your current location via your car’s GPS or even your five year old kids toy smart watch and can even listen into your conversations. This is a huge danger to society as the world of technology is everywhere these days and so many people of all ages are connected via the Internet of Things. Actions need to be taken by the producers of IoT devices to ensure the safety of its users, or else more and more people will start to realize that their data is being accessed by people other than the ones mentioned in the “Terms and Agreement” and will in turn not trust the product nor the company anymore.
0 notes
heldw-blog · 6 years ago
Text
How can we Prevent Deep Fakes from Ruining the Internet?
With a rapid increase in technology advancement, not only are deep fakes becoming easier to create, but they are also becoming more legitimate. That being said, there needs to be something done in order to prevent deep fakes from spreading fake news.
Since according to Schwartz’s article, deep fake detection methods are pretty much out of the question. Deep fakes are becoming more legitimate at a rate faster than we can figure out how to create AI to detect them. Since deep fakes most likely will be spreading around social media, it seems best to try to integrate something into these platforms that allows the community to be able to detect deep fakes for themselves. This is difficult because obviously we do not want to make people paranoid and not believe everything that they see thinking that it could be a deep fake, but just to let the public know that these things do exist and to be careful when obtaining news from social media sources that are not trusted. Fact checking by cross referencing sources is an option but it is again unrealistic for everyone to fact check everything that they read. Another possibility would be to create laws against creating deep fakes. There should not be a stop in the progression of technology, but if people decide to use deep fakes in fraudulent ways, then there should definitely be an extreme punishment so maybe it will not be worth the risk for some people to release a harmful deep fake. There definitely needs to be some set of laws regarding deep fakes as they are becoming so much easier to create and if everyone decides to leak deep fakes then the internet will be in a very vulnerable place as no one will know what to believe.  According to https://mcmillan.ca/What-Can-The-Law-Do-About-Deepfake technology evolves at a faster rate than the law does so it’s definitely difficult to keep up with technology. However, the author mentioned an interesting point in that even if we do have laws against deep fakes, it will not be easy to find the people who created it. Instead it should be up to the social media platforms as well as news platforms to integrate better screening methods for publishing videos. If social media companies developed a new section in their organizations to have real humans monitoring every video that is trying to get uploaded, then this could be a temporary solution, instead of just letting anyone upload videos instantly. In the meantime we just need to hope that AI deep fakes detection methods will develop at a faster rate than deep fakes are.
0 notes
heldw-blog · 6 years ago
Text
Will You Trust an Autonomous Vehicle?
Would you do something every day if there was a very slim chance that it could kill you? When this question is asked in terms of Autonomous Vehicles (AVs) most people would probably argue against getting into an AV Uber that has “1 and a billion” chance of sacrificing its passengers. For example under Utilitarianism ethics, if 10 people jumped in front of the AV, the AV would do anything, even sacrifice its passengers in order to save the 10 pedestrians. When I first read about this, my initial thoughts were that this would be a terrible idea and no one would want to own or be in a AV that would sacrifice its passengers for strangers. After putting more thought into this I came to realize that the idea is not as crazy as it sounds.
Every day when we get into a car, we put our lives at risk, which answers my initial question that yes, we do something every day that can kill us. But we do it because we are confident in our driving abilities. According to https://crashstats.nhtsa.dot.gov/Api/Public/ViewPublication/812115 , more than 90% of car accidents a year are caused by drivers at fault. Relying an AVs could potentially save millions of people lives a year, but at the very slim risk that our lives could be put in danger. However, as mentioned above our lives are already put into danger every day when we get into a car.
I think a big issue that a lot of us have is that we can not and do not want to trust a machine to make decisions for us. How can I trust an AV going 80 MPH on a highway when there are problems with computers and security every day? As mentioned in Mr Garfinkel’s article, having AVs means that many people will lose their jobs, which will make a lot of people very angry. This could give people a motive to attack AVs. It is not fair to assume that people will be able to hack into AVs that could potentially harm the passengers. In a perfect world AVs would be made so that they are impossible to hack and security in this sense will not be an issue. But new technologies usually experience many issues and we just have to hope that the developers behind AVs have put enough thought into them before everyone will start to trust AVs with their lives.
0 notes
heldw-blog · 6 years ago
Text
An Offensive Algorithm
It has come to my attention recently that Google’s algorithm for images sometimes produces results that are racist and offensive. 
After reading through this article it seems as if Google’s algorithm heavily relies on its users. Since basically everyone uses Google, it is clear that the results obtained by searching on Google images are generated partially by the users of Google. This just goes to show that it might not be Google that is offending people, but it is the users of Google offending each other. Ethics is a very difficult topic in computing in that Google had no intention of its algorithm producing offensive results. It simply just fed off of its community to do work for it and to pick popular results, and as a result produced offensive images. In my opinion, the ethical thing to do in this case would be for Google to redesign its algorithms, so that they do not rely on random people from society to pick out the popular images for certain searches because obviously there are tons of problems in society and a lot of people are set in their own ways with their certain beliefs, and in reality those beliefs could be very offensive to other people. When you have such a large organization like Google indirectly backing and supporting offensive behavior and racism, it really makes me wonder whether or not society is progressing or regressing. Google is such a large company with so many intelligent people working at it that I’m sure it wouldn’t be too difficult for them to create a better algorithm that does not rely on society for image results. But I guess the real question is, What’s in it for Google? Although they might not get any financial gains for this, it would surely make their user community respect them a lot more.
0 notes
heldw-blog · 7 years ago
Text
Reflective Blog Post: The Value of Working on a HFOSS Project
This course has proved to be very valuable to me in many ways. The skills that I have gained in this semester are lifelong skills that will carry on to my future career.
Through the readings and discussions I have learned a lot about technology in the real world and how what we have learned in the past 3 years applies to the real world, beyond just programming. This has also taught me how to listen effectively to other thoughts and opinions through the class discussions. Reading and learning about HFOSS and all of the advantages it has to me as a young developer as well as the impact that it can have an other people (for a greater cause) has also inspired me to actually want to contribute to a community, and not just because we have to for this class.  
The technical work of the hands on exercises have proved to be very beneficial to me since day one. These exercises have allowed me to work side by side with some of my classmates that I did not know too well prior to this semester. This has taught me how to manage time with other people which has greatly improved my ability to work in small groups. Another valuable skill gained from the technical work is that I learned how to distinguish credible sources of information from unreliable sources. A lot of the time my partner and I would get stumped with some kind of error produced in terminal on Ubuntu. This would cause us to google the error and click on the first result and try whatever they said. After making this mistake a few times, we realized that a lot of the times we were clicking on sources that were outdated and therefore unreliable. We learned that in order to find a reliable source we need to read through a few different sources, and then pick the one that has the most logical solution to our problem.
Even though we have not started making contributions yet, having the ability to work on a FOSS project has been by far the most valuable experience at Dickinson. I believe that my personal responsibility skills have greatly improved throughout the semester, as I had to take initiative to work on the project outside of class. It was definitely a huge adjustment at first, but throughout the semester, I learned how to take initiative in a group environment in order to get work done on the project. I did this by being the first person to reach out to the other members to schedule time to meet, or to check in on their weekly progress so that we could make sure that we were all on the same page.
0 notes
heldw-blog · 7 years ago
Text
Who Is Contributing to OSS Projects?
Have you ever wondered who contributed to the OSS you are using right now? According to https://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-community roughly 1.5% of FOSS contributors are female. This leaves 98.5% of the contributors being males. 
Why is there such a gender imbalance in the OSS world? According to this article,  many women do not contribute to OSS because they are treated differently for being women. More specifically, they are judge immediately by their appearance and are forced to prove their competence more than males just because of their gender.
Not only is this not fair but any OSS project whose community is sexist is losing out on many great female contributors. If OSS projects were more accepting towards women, this would lead to greater diversity within the community. Having a diverse community would lead to more diverse minds contributing to the project, which could be very beneficial. 
The author also mentions that a lot of the times females try to cover their gender identity by using neutral usernames as well as not posting a picture of themselves as their avatar. This just shows how unfair OSS communities can be. They have strong female programmers that want to dedicate their time to contributing to the project but they have to hide their identities to be taken seriously. This is a serious problem and it should not be this way. It would be nice if OSS projects were similar to companies that do not allow discrimination in the workplace. A possible solution to this could be to enforce stricter rules in OSS communities, and ban developers who discriminate others.
0 notes
heldw-blog · 7 years ago
Text
Why Students should get Involved in HFOSS Projects
Every college student is busy, and barely has enough time breathe in a school week. It might sound ridiculous to add more work to your already chaotic schedule, but if there is one thing that you should do in your spare time it would be to contribute to Humanitarian Free Open Source Projects.
Humanitarian Free Open source projects serve many great benefits for the world as well as for those contributing to them. As a student, using the knowledge you have gained throughout your life to contribute to a project can be a very valuable. It will allow you to gain a deeper understanding of the way technology is used in the real world, it will allow you to be exposed to the way in which businesses function, all while making you feel involved in a community. All of the above will in return make you more marketable when searching for a job. Sounds pretty great right?
Contributing to HFOSS projects, are not only beneficial to us as students and our professional careers, it is also beneficial to people around the world. HFOSS projects serve to help other people and societies. By using the knowledge we have gained we can help give back to the world by contributing to these projects. Check out a list of some great HFOSS project here. Knowing that we are using our knowledge to help better the lives of other people is very valuable. After college it might be hard to find time on top of working for our own case of survival to give back to communities in need. This is why college is the perfect time to start using our knowledge for good, and to contribute to HFOSS projects.
0 notes
heldw-blog · 7 years ago
Text
Is Test Driven Development Beneficial?
If you’re like me, then the first time you heard of test driven development, you probably thought it was the most ridiculous thing in the world. Why would you want to waste your time and write a test case the fails before starting to code? 
After initially having these thoughts I decided to experiment a little and try it out for myself. I simply wrote a test case for my code, which obviously failed since I did not have any code yet. I then started to write code for that test case specifically, which really was surprisingly easy since I only had to write code to pass one test case. I then created a new test case that would fail the code that I previously wrote, and then altered my code so that it would pass both test cases, I repeated this process until I could not think of any more test cases. 
I was very surprised by the outcome of this. Not only did it save me a lot of time, but my code ended up being a lot cleaner than normal.  Test driven development allowed my thoughts to be very organized as I could just focus on passing one test at a time, rather than writing my code with tons of test cases in mind. As a final result, I actually understood the problem a lot better by writing my test cases before actually jumping into coding.
0 notes
heldw-blog · 7 years ago
Text
Software Bugs Kill.
Although software is never 100% bug free, it is still released to the public anyway.  There have many instances where software bugs have led to huge tragedies. For example on April 26, 1994, a Chinese airplane crashed and killed  264 people. This actually happened because the pilot of the plane accidently pressed the takeoff/go around setting. This activated the autopilot to raise the throttle to the same as it is at takeoff. The way that the software was created, was even when the pilot manually executed controls to correct this, the autopilot would not be disabled, which was a huge bug. It is clear that a situation like this had not been tested before the software was released, causing deaths. This leads to the popular discussion on the risk analysis of software bugs. How do you know if your software is safe to be released? For starters, you can check out the 7 software Testing Principles here.
Obviously there are many factors that go into deciding when software has been tested enough that it is safe, and it is different for every piece of software. But in this situation, it seems that this should have been something that was tested before the release of the aircraft. In fact, before the incident there was a software update available for the aircraft what would have disabled the autopilot controls when the pilot executed certain manual controls, which in this case would have disabled the autopilot and could’ve saved 264 lives. However the Airline company refused to apply because they did not think that it was urgent. Lesson learned, always update your software.
0 notes
heldw-blog · 7 years ago
Text
How to Choose the “Perfect” Design Pattern?
Choosing a design pattern in software development can be a very difficult and frustrating task. Is there every a perfect design pattern? Well the answer is that you can pick the perfect design pattern but there could be some tradeoffs to consider.
The most important factor in selecting the perfect design pattern is to fully understand your problem, and what you want your software to accomplish. If you know your problem, then you will be able to narrow down your choices. You can read about some different design patterns here. Do not pick the first design pattern that can solve your problem because there could be many different design patterns that would work to solve your problem, and some may be better than others. Which leads to the next step, the next step is to figure out what the consequences of using the design patterns are. Once you can figure out the consequences of using the narrowed down list of design that can solve your problem, compare and contrast the consequences of using each of the design patterns. The goal here is to use the design pattern that will lead your software to be the most flexible, as well as being easily maintained now, and in the future. After listing out the tradeoffs, it should be clear to which design pattern would be most effective for your software.
0 notes
heldw-blog · 7 years ago
Text
When to Use Comments in Software Development?
When creating software, an interesting question arises, When to use comments, and when to not use comments? This sounds like a very simple question, but based off of the “Three Flaws in Software Design”, it is said that it is very common for developers to be misusing comments.
A lot of the time, as developers we are taught to add a lot of comments to our code to explain every part of code in detail. Although this is a very good practice, it turns into a bad habit. According to “Three Flaws in Software Design” many developers use comments in places that are not necessary. The video also showed a sample code review, and illustrates how adding comments in places where the code is clearly legible is a bad idea and actually makes the code a lot more cluttered and harder to read. For example, it is safe to say that any developer reading your code review knows what a basic for loop or if statement does. In the code review, the code being reviewed also had a comment on every line when the majority of the code was legible without the comments. The code went from 77 lines to 41 lines, just by removing unnecessary comments! From my point of view, the code was so much more legible without all of the unnecessary comments!
It’s not that we should get rid of commenting our code completely, but the point is that we need to be more careful when commenting because having clean code is a very important part of software development. It is definitely safe to say that trivial code does not need comments, and code will very rarely, if ever require line by line comments. If your code is difficult to understand, then try to write it in a clearer way. If that is absolutely not possible, then use comments only to help make the code legible for someone else.
0 notes
heldw-blog · 7 years ago
Text
Why it is Important to License your OSS Project?
When I first heard of licensing, I was really confused and did not understand the significance of having a license on a project that everybody can already access because it is open source. I was also a bit intimidated by all of the legal work behind them. After reading though this article,  software licensing makes a lot more sense and I now understand the importance of having a license on a project as well as selecting the right one.
So why have a license? Although it is true that anyone can access your project if it is open source, the significance of having a license is that it allows you to control what you want other people to do with your project. Licenses also give your project a specific set of permissions which state what other people are allowed to do with your project.  For example, if we have an MIT style license, this basically allows anyone to do anything with your project, and even allows it to be use proprietary programs. It might seem pointless to have a license on a project that anyone can do anything with, however, the point of the license is to protect the project, so that nobody else can claim that it is their own. Without this license, it would be very easy for someone to steal your code, put a license on it, and then claim that you are stealing their code.  So, in my opinion, the biggest advantage of having a license is that it allows you to claim your project as you own and helps protect you from other people trying to claim your work as theirs.  
0 notes