Don't wanna be here? Send us removal request.
Text
Values from the unexpected
As mentioned in the mission “to prepare young people, by means of a useful education in the liberal arts and sciences, for engaged lives of citizenship and leadership in the service of society.”, Dickinson College did well in preparing me for my career path. I came to Dickinson College in my junior year. I only knew that I liked computer science because of the interesting challenges in working with computer software and the logical ways that computers were implemented. I was confused about what specific field I should follow after I graduated. Two years were not enough for me to cover all the fields. Courses offered at Dickinson College proved the opposite. I explored different core concepts in computer science through the courses such as Computer Abstractions, Analysis of Algorithms, Computer Network, and Operating System. Emerging topics such as AI, and Cyber Security were also a part of the curriculum. Then, the Senior Seminar was the most helpful since it allowed me to explore the recent most concerning topics in the field. Besides the discussions, I with other students worked together on the Open-source project, in which we communicated with developers around the world and contributed to the community. Thanks to the education at Dickinson, I could explore many interesting fields. I then knew what I wanted and what I did can create a huge impact on society. What I learned from the previous college were Java, C++, and some basic concepts in computer science. At that time, what I thought about the next level would be some advanced tools to implement large-scale projects. However, what I learned at Dickinson College was different from my imagination. We focused on core concepts and basic tools. We learned deeply about algorithms, data structures, operating systems, and computer networks. I always wondered with this basic knowledge, how I could compete with candidates in the job market. An interview with a senior developer at Oracle gave me the answer. The interviewer had worked at Oracle for more than twenty years. He worked mainly on building drivers so that new systems can work with the database. The questions in that interview session were only about core concepts I learned at the college such as OOP from COMP132, multi-threading in COMP354, and database system in COMP378. I asked him why the session was so different from others, where people asked me about what technologies I used to build projects. He explained that engineers and scientists kept coming up with new technologies, but all those technologies always had the core concepts as a foundation. I finally understood that, by sticking with the core knowledge, students could have a consolidated foundation, that they can work with any new technologies in the field. At the same time, by limiting teaching the soon-to-be outdated technologies, professors at Dickinson College could have more time to guide students on the social aspects of technology, which were usually ignored by the students and engineers. The open-source projects in the Senior Seminar let me know that I could do more for society. Living in a developing country encouraged me to find a way to make software, especially educational software, more accessible. Then, contributing to OSS was the answer. This was such an insight that I might have ignored it, too, if without the guidance of the liberal arts education.
0 notes
Text
Piracy and The Need of Open-source Software in Developing Countries
1. The situation in developing countries
I grew up in Vietnam, a developing country. Ten years ago, my parents bought me a computer with Windows XP and Microsoft Office 2003 installed. I am pretty sure those applications were not bought from Microsoft but pirated by the seller since it kept asking me for activation. Because of pirated software, my computer kept breaking down and my cousin gave me a CD. This CD cost about $1 but it solved a lot of problems I had.
After taking courses and having a discussion about the piracy problems, I now know that the action was illegal. Of course, if I used the official version from Microsoft, I could not have gotten any of the problems. But why did people choose to buy a $1 disk instead of buying an official software? Let's use Microsoft Office as an example. I just checked for the price of Office 365 Personal, it was $70 (here). I also checked for Vietnam’s GDP per capita, which was around $2800 (here). This means the software costs about one-third of the monthly income of an average person. With this ratio, if I work in the United State with a minimum wage of $7.00, the software will cost nearly $400. Then, the software is as expensive as a computer. I do not think the price of Microsoft Office increased that much after 10 years, but the GDP per capita of Vietnam must be increased significantly. This will give you a general view of how much software costs compared to the income of people in a developing country.
2. Piracy for educational purposes
Even though there were programs that supported educational institutes in developing countries, schools in rural areas or secondary schools still needed software to teach students. Assuming that the OS was there already, students still needed Word or Excel to work on their homework. Institutions still needed to teach students without increasing the tuition due to the cost of the software. Then, piracy was a solution since the chance to get sued or taking legal action was still low. The living standard in those countries has increased recently, but there are still institutions and students who need to use software out there. There should be a better solution for this.
3. A solution: Free Open-source software
Nowadays, there are many open-source applications that people can use as an alternative to popular private counterparts. This list is an example: list. These open-source applications are created and maintained by a community. They share the same cause which is to make the software becomes more accessible. Students and institutions can benefit from this software. I remember the last time when I wanted to learn some photo editing skills, but I cannot use the school computer from home in my free time. Since I knew that pirating was not an option, I looked for free software for editing. GIMP was suggested. I just recently knew that GIMP was also an open-source application. The communities and their open-source projects bring knowledge to the world.
4. Spreading the community
Even though H/FOSS becomes more popular in the technology fields, developing countries still have limited access to it. The culture of using pirated software has been there for a while. I believe they still need some time to adopt a new behavior. The H/FOSS communities have done a good job. However, they still need some more help. They need people who are willing to deliver their work to developing countries. It may sound odd because why do people need to be persuaded to use free software? From my own experience, I can tell that even though there is free software, people can have problems using them as the difference in languages. I recently found this website https://www.myphysicslab.com/. It is an open-source simulator for Physics, which was my favorite subject back in high school. Due to the lack of equipment, I cannot see how things work in different setups and just solved the problems theoretically. Even if I knew this website then, my language skills were not enough. Therefore, the helpful software still needs more help from people. Besides the technical contributions, there is always a need for other kinds of contributions such as language translating, delivering, marketing, etc.
0 notes
Text
Liberal Arts and Tech Ideas
After reading about the PageRank algorithm created by Google, I immediately remembered the last visit of Luis Van Ahn to our college. He was the creator of Captcha/ReCaptcha. The main mechanism behind this idea was that by taking about 10 seconds from each user, we can validate the users and gather a lot of data to digitalize books. The basic idea of the PageRank algorithm is that we rank the page’s relevance by counting how many times it is visited by users. The human users who have abilities to read and analyze the information contribute a lot to this algorithm. Both ideas were so successful and impactful on the internet because they smartly utilized the users’ behaviors. Looking at those successes, one may ask (one of my classmates did ask), how are they so smart that they can even think about this? It took me some time to generate some possible answers.
Indeed, I had the same question, but mine was more detailed. My question is, how an engineer, whom I assume to know a lot of technical knowledge and how to get things done, can deeply understand human behaviors and utilize them to make their technical ideas successful?
One of my possible answers to this question is liberal arts education. At Dickinson College, a liberal arts college, I had opportunities to learn from a variety of academic fields such as social sciences besides my computer science major. Instead of just focusing on technical knowledge on how to build a project, or how to use a tool to implement an idea, we learned different aspects that can affect and contribute to the technical projects.
A clear example is that even though this account is used for posting blogs that are related to my senior seminar at Dickinson College, this post as a part of my Database course’s assignments is super related to the contents of the senior seminar course. One of my classmates raised the question “Does Google excludes certain sites from displaying on the search engine as some sites may contain information dangerous for users?”. In my senior seminar class, we had a chance to discuss how social media platforms protect their users from viewing false or harmful information. The solutions can be utilizing AI to identify false information or using the report systems, which utilize the contribution of the crowd. The same approach to social media sites problem can be applied. Google processed many sites so that they can easily be correctly served to the users. They can utilize AI to identify harmful information, and at the same time, have a reporting system to quickly narrow down the harmful sites. Being able to have discussions with classmates about current issues can broaden our knowledge and combine different sources of information to come up with a solution for a technical issue. Besides, with liberal arts education, we have a chance to work on Open-Source projects and have a habit of contributing to society. This may sound irrelevant but the more people have this habit, the safer the internet will be since dangerous sites can be quickly reported.
This liberal arts education also gives me a need to be concerned about other aspects of a product instead of only its functionality. By observing a question raised by my classmate and how another answered that question, I had a little concern about the search engine hosted by Google. The question raised was “Google finds new sites from existing sites, so how is it possible for Google to find brand new sites that have just been published? Is there any way we can submit our websites to Google or ensure that our website can be crawled and indexed so that it appears when the search engine is used?”. The solution was mentioned in one of my classmate’s answers “According to the paper, new web pages must be indexed by Google to be searched and visited by users from anywhere on the web. However, modern web builders not only need to create their webpages but also manually register them with the Google SEO (Search Engine Optimizer) to inform web engine crawlers of their presence and become searchable.”. Any newly published site cares about how to get people's attention. The best way is to let Google knows. It gives me a feeling that Google is the only player in the search engine game. No one else can compete with Google in this field. The more people use the search engine, the more useful Google’s search engine becomes. This leads to the fact that everyone only uses Google to find things they want. Other search engines will slowly be wiped out of the internet due to the lack of users. With the power of the only one who gives people information, will someday Google manipulate people’s consciousness of finding information? This question seems unrealistic but worth considering.
0 notes
Text
Deal With False Information On Social Media
Nowadays, almost all people who have access to the Internet engage in at least one social media network. Social media networks used to be for young people who are technology experts. However, people from different age ranges and social backgrounds can easily participate in those networks recently. Also, people can post anything they want on the sites with just a few restrictions. The combination of the two facts leads to the possibility that people read a piece of false information on social media. As the result, that false information can potentially harm the readers. Especially, with the recent pandemic, false information about COVID-19 can severely impact society. For example, a group of geographers found that the location where the tweets with false information originated correlated with the increase in COVID-19 cases in that area (link). We cannot deny that people or organizations who spread false information are responsible. However, with the larger number of posts a day, it is very hard to track down the authors. It is also hard to investigate the loss caused by the posted false information. Then, what can we do? As a user of social media sites, we need to know how to protect ourselves from false information. As a provider of a platform that can potentially have users post false news, the company should exercise measures to minimize the false information, but at the same time avoid violating the right of freedom of speech.
What users can do?
As a user, we should be careful of what we read every day. We need to know that not all information on social media is correct. A habit of double-checking the information is necessary for this era. Every time we read a piece of news on social media, there is a possibility that that news is incorrect. However, we can try to look for the information in other places and see what other sites say about that information. Sites that are hosted by governments, medical research institutes, educational institutes are usually reliable.
Here are some tips to check for credible sources:
https://www.scribbr.com/citing-sources/credible-sources/
https://www.forbes.com/sites/averyblank/2021/01/19/5-ways-to-identify-reliable-sources-and-maintain-your-credibility/
On the other hand, users also are responsible for what they share on social media. Sharing information with our family members, friends is good. However, as responsible users, we should verify the information before re-posting to stop spreading false news. It is not required, but users are encouraged to utilize the report function on social media to stop the spreading of false information.
What companies can do?
Companies already have the rules for content posted on their sites. However, it is hard for them to cover millions of posts a day. With the growth of AI, companies can utilize the new technology to automatically track down false information on users’ posts. Also, with the report function implemented for a long time, companies should increase the capacity of teams that resolve those reports. With the rules, companies should also ban accounts that violate their rules on sharing information. From what I observe recently, social media sites usually include a link to CDC under every post that is detected as information about COVID-19. Fact-checkers should also be implemented and improved to better recognize information on social media.

This is a post on Instagram I saw the other day. Instagram was able to detect this piece of information and included a link for users to read more about this.
0 notes
Text
Types of FOSS Licenses
Introduction
With Free Open-source Software, people are less likely to put their attention to the licenses since they assume them to be free. However, freedom in this scenario usually comes with conditions. Therefore, users and developers should pay more attention to the projects they are working on to make sure they comply with all terms. This blog will introduce you to some popular types of licenses, so the next time when you work on an open-source project or even start a new project, you can incorporate well with them.
Popular types of licenses
There are two main types of open-source licenses, which are permissive and copyleft. We can categorize copyleft as strong and weak copyleft.
Permissive
Permissive (non-copyleft) free licenses will allow you to work with the code with just a few conditions. This type of license gives you all the freedom to use the code as long as you follow those given conditions. For example, you can take the code, change it, and distribute your new private version at a price. As I mentioned in my previous blog, Stallman had an idea that licenses forced derived software to have the same licenses. Here, you do not need to care about that. With these terms, the permissive licenses are the most compatible with other software that uses proprietary licenses. The conditions are different with different licenses. They can ask you to put the author’s name in the code, avoiding replicating the names of the original projects, or including a notice in the changed code. Therefore, you should know the exact licenses you are working with so that you can comply with them correctly. Some popular permissive licenses are:
• the MIT License
• BSD 3-clause License
• Apache License 2.0
You can read more about the three licenses in the links.
Copyleft
Copyleft will allow you to work with the code, but it enforces you to establish the modifications or derivative works with the same licenses as the original works. The conditions seem to be stricter than those of permissive free licenses; however, they are there for good causes. For example, if we put a project under a copyleft license, you may not turn the changed version into your private one. This will make the copyleft licenses not compatible with many other licenses. However, there may be some differences between strong and weak copyleft licenses that will make it possible to put copylefted projects under other licensed projects.
Strong copyleft: the strong copyleft enforces that if your program uses any copylefted code, you must release the entire program under the same licenses. The entire program also includes any libraries or components. This makes sure any derivatives of the original work are also free and open.
Weak copyleft: the weak copyleft has the same terms as other copyleft, but the terms just apply to a set of codes. If you modify the copylefted set of code, you will need to release it with the same licenses. However, if you just simply use the code as a library, or put them in separated files, we can still release other work under other licenses.
You can also read more about copyleft at this link: https://fossa.com/blog/all-about-copyleft-licenses/
Which one should I choose?
The rule of thumb: you will need to read the detailed version of the licenses because each of them will have a set of specific requirements.
Permissive licenses let users work on their code freely and even turn them into private projects. Therefore, they can attract a wide range of developers for many purposes. However, establishing a project under these types of licenses means you accept users will leverage the code for their attention. Also, users, when working with these projects, should make sure they comply with the terms of the licenses, such as including the copyright notice.
Copyleft licenses make sure that the derivatives of the original work will remain open to everyone. This is usually for good causes. However, many developers will not feel these projects attractive because they will have to release their code under the same licenses.
2 notes
·
View notes
Text
FOSS History and Philosophy
History
Before exploring the free and open-source software topic, we will need to review the origin of this kind of software. A long time ago, manufacturers tended to focus on the power of the hardware instead of the software. Therefore, the users, primarily scientists, and technicians could freely work on the software to a certain extent. During this period, programmers who had experience with the software could share their programs using local networks or physical storage with their colleagues or other concerned people. However, when the world moved to the point that hardware was not a concern anymore, companies changed their focus on the software. Holding their software, such as operating systems running on specific hardware, privately gave them an advantage in the market. The act of sharing code freely between users became less possible compared to the previous period. However, some programmers supported this idea and wanted it to continue. Richard Stallman, who worked in the AI Lab at MIT in the 1970s, was one of the pioneers. After resigning from the lab, he started the GNU project and established the Free Software Foundation (FSF). He also created GNU General Public License (GPL). The license was innovative in that it said the source code could be copied and modified without restriction. Its modified version must be established under the same license, without any additional restriction. The license would ensure that the sharing culture would spread out from the origin, and the act going against this culture would be prevented. After this, other supporting movements led to nowadays free and open-source software.
Free software and open-source software – Are they the same?
When we see free software, it is expected that we consider it as free-of-cost software. However, the “free” term here should be understood as liberty. To overcome the ambiguity of the word “free”, people usually use “It is free as in freedom – think of free speech, not free beer” to clarify it. GNU philosophy page (https://www.gnu.org/philosophy/free-sw.html) clearly defined the free software and a list of essential freedoms that free software must-have. Here is the list of four essential freedoms:
Freedom 0: The freedom to run the program as you wish, for any purpose.
Freedom 1: The freedom to study how the program works and change it to do your computing as you wish.
Freedom 2: The freedom to redistribute copies so you can help others.
Freedom 3: The freedom to distribute copies of your modified versions to others.
By using this list, we can classify whether the software is free software or not. On the other hand, open-source software should be similar on the surface. We can read the definition of open source from this site: https://opensource.org/osd. However, when we dive deeper, they can be different. Richard Stallman also wrote about the difference between the two in this article: https://www.gnu.org/philosophy/open-source-misses-the-point.html. Even though Stallman did not consider open-source as an enemy, he clarified that not all open-source software was free software, and they were not the same. Free software resulted from a fight for freedom, while open-source just focused on the practical advantages.
Why should a comp science student join?
Free and open-source software gives a bunch of benefits to many developers and their users and provides college students with many learning opportunities. Three big points can be observed.
First, students can have more resources to learn from, especially the mentorship from many experienced developers from the communities. Learning at school is essential; however, learning from different people will give you a wide range of knowledge.
Second, students can have a sense of big projects, what they will most likely work on when they graduate. One advantage of open source is that student can create their personalized learning journey with the project instead of a pre-defined path.
Third, it simulates the experience at a professional work such as students must adopt the technology quickly to resolve the problems. Also, many up-to-date technologies that companies are using and supporting are open-source, such as Django, React.
References
https://producingoss.com/en/introduction.html
https://www.gnu.org/philosophy/free-sw.html
https://opensource.org/osd
https://www.gnu.org/philosophy/open-source-misses-the-point.html
0 notes
Text
Hello-World Post
This blog is being created for CMP491-Senior Seminar and will be used to post reflective writing on reading and discussion topics related to social, ethical and legal issues in technology.
My plans after college are to:
- Explore more fields in computer science
- Pursue a higher degree in the interested fields
1 note
·
View note