Open source software is similar to peer-reviewed articles. Despite its ability to catch problems it can still fall victim to the frailties of men. This essay will discuss the recent eavesdropping scandal involving the open source web browser Chromium. It will do this by explaining Google's involvement with Chromium. Then, a brief discussion on open source software will be made. Finally, this essay will draw sources from many primary accounts. It will use ticket responses posted on Google's Chromium code discussion boards and a couple of related articles in order to create discussion topics. This essay poses the general question to the reader as a point of reflection: does open source software always result in excellent programs?
The eavesdropping bug recently discovered in the Chromium web browser is a concern for anyone using it. The crux of the problem is that Google released a binary blob that Chromium downloads and installs because of its default settings. A binary blob is a piece of code that is closed source; it cannot be accessed by anyone and is usually proprietary code not intended to be viewed by others outside of the sphere in which it was created. These default settings in Chromium allow the computer to listen to anyone within "earshot" of the computer microphone. "The key here is that Chromium is not a Google product (we do not directly distribute it, or make any guarantees with respect to compliance with various open source policies). Our primary focus is getting code ready for Google Chrome" . This is not inherently a Google problem but since it affects the open source community and the binary blob is a product of Google, most people became outraged.
Google was ultimately responsible for creating a bug in Chromium. The other issue is that Google Chrome automatically installs the "hotword" module. The module is essentially always listening for the hotword "OK, Google." Google says that "While we do download the hotword module on startup, we do not activate it unless you opt in to hotwording" . Google claims that this module is only intended to be used on Chrome, "We call extensions that are built into, or automatically downloaded by, Chrome "component extensions " and we do not show them in the extension list by design" . This essentially says the Google does not feel the need to tell people that this module is active on their version of Chrome. However, Google did decide to make the hotword module no longer a default piece of software in Chromium. "Note: Chromium will no longer download/install the hotword Shared Module, and will automatically remove the hotword Shared Module on startup if it was previously installed" .
The open source community is great because it allows many eyes to look over a program and find problems. "The 2004 report of the California Performance Review, a report from the state of California, urges that; the state should more extensively consider use of open source software" . Although open source programs are still susceptible to bugs and security concerns they are discovered and are remedied, usually, much faster than proprietary software.
Open source software is acclaimed by many to be the best way of testing code. Open source software often drives people to work harder than they would at a normal place of business. These volunteers are often "Motivated by the personal benefit of using an improved software product and by social values such as altruism, reputation and ideology" . The only major concern generally associated by open source software is usability. According to one study, "Most developers have a very limited understanding of usability, and there is a lack of resources and evaluation methods fitting into the OSS paradigm" . But despite these minor concerns open source projects are often of a very high caliber. In regards to this "Software developers have produced systems with a functionality that is competitive with similar proprietary software developed by commercial software organizations" . This is remarkable considering this software is done essentially free of pay or public recognition. Despite the open source movement companies are still producing great software capable of many exciting new functionalities.
Many devices are available to the public that include similar capabilities as the aforementioned Chrome hotword module. Recently, Samsung produced a smart TV capable of voice command. People were uneasy when they discovered the fine print in the user manual stating, "'Please be aware that if your spoken words include personal or other sensitive information, that information will be among the data captured and transmitted to a third party'" . Motorola's MotoX phone has the capability to actively listen for a hotword, which works very similarly to Chrome's hotword module.
Consumers today, need to be aware and beware of the functionality of their electronic devices. Increased ease of use is always a goal of technology companies such as Google. Concerns and questions arise when these companies tread on new domains. Areas of privacy and security are always tedious topics for new technology.
This ticket post talks about Googles stance on the hot-word module. Google claims that the Chrome browser is their own browser and thus it does not need any new permissions to install the hot-word module. The also claim the Debian has to take care of their own bundles of Chromium. Google reports that it is not their concern what Debian does with a Chromium bundle. Thus, Google decides to not fix the Chromium problem concerning the hot-word module. Specifically, with the concern that the hot-word module is a "binary blob" that is essentially a black box of code in and open source product. Google decided to not fix the problem and explains that it is the problem of third party developers such as Debian, concerning the bit of black box code.
This article talks about how the Google Chrome web browser does not automatically opt users in while the open source Chromium web browser does. Google claims that it is not their fault that the open source Linux distribution decided to download the plugin with the Chromium browser. Google feels like it is not their responsibility to test how their hands free search feature works with programs that are not theirs. The open source community is upset simply because this feature does not display its source code although it does get including in the Chromium browser which is open source. This article primarily discusses the debate between Google's attitudes toward the Chromium browser.
This is a a comment made by the author that changed parts of the Chromium browser. The browsers source code was changed and this required that the person or persons responsible for the change post a comment concerning what was changed. The majority of this change is a result of Chromium having a big from the eavesdropping binary blob inserted into its code.
This article talks about the use of open source software. According to this review of software most of the software that was done by volunteers was more secure and less prone to mistakes. This essay attempts to persuade the reader to consider using this type of software for more purposes. It also gives compelling evidence for state and federal run institutions to use this type of software. It is very lengthy and has many sources that are outdated. But the sources used for this essay were checked to be working links and accurate sources.
Massachusetts Institute of Technology (MIT) produced an article that tries to understand the open source programming paradigm. It is a business article that relates this paradigm to the business world. It presents ideas and research that could be useful to business owners. Businesses are still working on a 20th century platform whereas technology is evolving to a less commercial driven ideology. This essay attempts to understand why this is and how business need to adapt in order to keep hiring great employees.
This essay was written as research from Kansas University of Technology. It is essentially a survey and study of the open source paradigm. "Open Source Software (OSS) development has gained significant importance in the production of soft-ware products." As a result of this, this essay attempts to study the effectiveness of OSS. It draws the conclusion that OSS is good and less error prone that many commercial products. The main problem is that it often is not at user friendly as most commercial software.
The article discusses various concerns about the eavesdropping in general on new electronic devices. It discusses the rising popularity of cell phones and smart TVs new voice activated features. This source is not a primary source it just discusses various ideas concerning the newest eavesdropping features. It talks about Samsungs smart TVs and how they can be activated with key words. Likewise, the Samsung phones can also interact with a user through voice recognition key words.
This simple defines binary blob. It is wikipedia so it was not used as a in text citation. This was used to give the reader a general understanding of the phrase "binary blob." It discuss what one is and how it is commonly used. It also discusses what open source software is and why binary blobs are considered bad practice for use in open source software.
This is an eye witness account of a blogger that records his reactions to discovering the Chromium eavesdropping bug. He reports that the LED on his microphone for his computer kept turning on and off. He begins by checking what resources might be using it on this computer. After being a little confused about the problem he does a little online research and finds out that it’s the Chromium browser that is responsible for the microphone turning on and off. This is a reaction and an open question presented by an eye witness of the eavesdropping bug. It is cited in a post from "The Guardian" and is perhaps one of the first recorded reports of the event.
This is a ticket response to the Chromium web browser automatically downloading the hot-word module. Google reports that the newest version of Chromium does not download with the hot-word binary blob. It requires one to go to the Chrome web store and activity choose to download it. They report that they do care about the open source community and think it the hot-word module should be excluded default Chromium builds. They also report that the module runs in a sandbox. This is important because it helps to add security to the feature should one decide to use it. Google reports to have released the version of Chromium that does not have the hot-word module. They explain that even with the module installed in chrome one needs to activate the extension and then enable it. Once it is enabled it still does not process anything spoken until the key word "Ok, Google" is spoken. The processing until the key word is spoken is done on one's computer and thus no statistics are sent back to Google.
P = NP, a question that has tantalized mathematicians, complexity theorists and computer scientist for decades. If there is a problem that has a solution and that solution is easily verified by a computer, then can that same problem be solved quickly by a computer? The method of studying circuit complexity is proving to be the best ace in the hole for many computer scientists. Circuit complexity theory may become the instrument used to solve the most significant question placed by Clay Mathematics Institute, P = NP, and many other hard problems.
The purpose of this research is to explain the basics of circuit complexity so that a lay person will understand why it is used, survey a brief history of it, explain some of the more prominent uses of the theory and current standing concerning this technique with the P = NP problem. This will be accomplished by first giving a brief introduction to the methodology by identifying and explaining key terms and phrases. Then, giving a brief history of the study, how it could be used to solve P = NP and finally explaining the forays into various abstract applications. The methodology used to complete this study will be simple: peer reviewed articles will be used in explaining key terms, and textbooks on the subject will be utilized in explaining the possible P = NP proof. Multiple sources will be used to find current and future applications which will include secondary sources, e.g., related articles in the magazine Popular Mechanics.
The English mathematician George Boole may never have known the fingerprint he would leave on the future. Do we have giants in library and information science ? George Boole was a self-taught mathematician  who was indeed an intellectual giant. By the age of twenty-four he had already submitted papers to various mathematical journals . The Royal Society awarded him a metal at the age of twenty-nine in 1844. Boole was a strong supporter for unionizing the field of formula Logic and mathematics in which he wrote his paper Mathematical Analysis of Logic . He believed that the study of logic was more closely associated with mathematics rather than metaphysics and philosophy.
In 1938, Claude E. Shannon was an aspiring research assistant at MIT (Massachusetts Institute of Technology) he began studying the similarities between Boolean algebra and telephone switching circuits. Telephone switching was a process which was done manually by an operator. They would make a physical connection between two parties so that they could communicate with each other. Boolean algebra has a couple main differences compare to conventional algebra. Boolean algebra has only two symbols to represent the language: 1 and 0. The other main difference is that the + symbol is analogized with an AND and an OR. The AND is exclusive to idea that both values must be true in order to result in a true statement. The OR operator formulates the idea that only one of the values needs to be true in order to make the statement true. The final operator is formulated with a NOT symbol which is represented with a bar over the representative value indicating the opposite of the value. The principles of Boolean algebra and telephone switching became known as algebraic circuits .
Boolean circuits seemingly expand across the infinite possibilities of the reaches of mathematical models. Specifically, a Boolean circuit is an aggregation of gates, inputs and outputs. Boolean circuits have one of the unique traits of being simple yet continuously complex. An entire expanse of study as evolved around them, insomuch that circuit complexity has because a field of study. Circuit complexity has volumes of books such that an entire library section could be devoted to it. This study will remain in the breadth of this subject, and allow the reader to devote their own time to researching the
depth of its possibilities.
The genesis of circuit complexity is based on the size of a circuit, depth of a circuit and circuit families. The size of a circuit is simply the number of gates in a circuit. The depth is the longest wire from an input to the output. A family arises due to the problem of having a fixed number of inputs for a specific circuit. Therefore, any particular circuit can handle only inputs of some fixed length, whereas a language may contain strings of different lengths. So instead of using a single circuit to test language membership, we use an entire [family] of circuits, one for each input length, to perform this task . The heart of circuit complexity lies in classifying problems into complexity classes. There is a plethora of complexity classes.
The main complexity classes concerned with this study will all be time complexity classes. The primary ones discussed are polynomial time, nondeterministic polynomial time, and AC. AC is a complexity class that exists for circuit complexity and consists of all problems that are recognized by a Boolean circuit with a circuit depth of O(login). It has a polynomial number of unlimited fan-in AND, OR and NOT gates. A fan-in gate of 3 would be a gate, e.g., an AND gate that has 3 inputs. Polynomial time problems exist in everyday natural life. It essential concerns problems that take a reasonable amount of time to solve on a computer. Essentially, a non-determinist polynomial time problem is one that takes an exorbitantly long time to solve on a computer. A classic example of this is factoring a given number. This is simple at first but becomes very hard for very large numbers. It is important to classify problems into their respect categories because understanding problems’ complexity classes gives insight to the problem.
Circuit complexity acts as a tool to classify problems. There are many parts of circuit complexity that this study will not have time to discuss. It is strongly recommended that the reader take time to understand a little more about circuit complexity. Such that they can more fully comprehend the incompleteness of this brief survey.
There are various practical reasons for studying circuits. They give one the ability to talk about finite measurements of a problem. For example, Let INTEGER − FACTORING1024 be the problem of finding a prime factorization of a given 1024-bit integer n. After the encoding of numbers and factorizations have been fixed, it is sensible to ask: what is CU2(INTEGER − FACTORING1024)? Is it at most 1010 ? This gives one the ability to discuss problems with a finite input. In contrast if one were to discuss a finite problem given to a Turing machine to solve, the Turing machine could simply solve the problem in linear time. It could simply embed a huge lookup table for each instance of the problem in the transition table of the Turing machine .
Another benefit of circuit complexity is the separation of complexity classes through discovering lower bounds of circuits. Essentially, if there is a problem with easy functions that still require very large circuits we can classify the complexity of the problem. Likewise, the upper bound of a circuit can also classify a problem if the given problem has very hard functions, but the circuits are small then one can classify the problems’ complexity. There are many reasons to use circuit complexity, and likewise there are various methods to using it. The main methods used in circuit complexity are restriction methods, polynomial methods and brute force methods.
Brute force methods are the simplest in idea. To brute force something one must begin without any prior help or knowledge, and then begin trying all the permutations in hopes of finding a solution. A function or problem is made that is intended to not be computable by a circuit with the same complexity. If one can prove that a circuit with the same complexity cannot compute a problem of the same complexity, then it can be induced that the problem in not in that complexity class. This is an iterative process where a function is given to a circuit and if that circuit can compute it then a slightly harder version is given until the circuit cannot compute it, i.e., return an output of TRUE.
The polynomial method works by constructing a circuit that has polynomial complexity. Once this is done then one uses this circuit to compute polynomial problems. If the problem cannot be computed, i.e., the circuit returns a FALSE then the problem is proven to not be in the polynomial time complexity class. The restriction method works by using multiple functions on a circuit and then simplifying the circuit. The n-bit functions are selected and related to k-bits such that k ¡ n. Some of the n-bits are set to a constant value, and then the circuit is simplified through means such as gate elimination.
This is simply when a gate is eliminated from the circuit whilst causing the circuit to still yield equivalent results. Essentially, this process continues until the circuit becomes too simple to compute a function on k-bits. Hence, the circuit is restricted in what if can compute.
P v. NP
What does circuit complexity have to do with P (polynomial time) and NP (non-determinist polynomial time)? The simple answer is; it has everything to do with P vs. NP. Circuit complexity has very strong techniques that have been utilized to figuratively chip away at the P vs. NP question. In order to fully appreciate this conundrum a short discussion will give concerning it.
The biggest implications of P vs. NP are currently in the field of security. Specifically, computer security. RSA is an encryption algorithm that is in the class of NP. This means that there is currently no known solution to RSA that can be done in any reasonable amount of time on a computer. Although there is no known solution, it is not yet proven. For this reason, it remains possible that there might still be a solution to RSA. Most of the scientific community believes that P != NP as noted in the following quote by Sipser:
This is the situation with so called exhaustive search problems, including: the minimization of Boolean functions, the search for proofs of finite length, the determination of the isomorphism of graphs, etc. All of these problems are solved by trivial algorithms entailing the sequentized scanning of all possibilities. The operating time of the algorithm is, however, exponential, and mathematicians nurture the conviction that it is impossible to find simpler algorithms .
There are a variety of problems that are assumed to be in the class NP and if they were found to not be in NP then the results would be immense. G¨odel presented this same idea to von Neumann:
Since you now, as I hear, are feeling stronger, I would like to allow myself to write you about a mathematical problem, of which your opinion would very much interest me: One can obviously easily construct a Turing machine, which for every formula F in first order predicate logic and every natural number n, allows one to decide if there is a proof of F of length n (length = number of symbols). Let Ψ(F, n) be the number of steps the machine requires for this and let φ(n) = maxFΨ(F, n). The question is how fast φ(n) grows for an optimal machine. One can show that φ(n) ≥ k · n. If there really were a machine with φ(n) ∼ k · n (or even ∼ k · n2), this would have consequences of the greatest importance 
If it were possible that RSA was not in NP then encrypted bank account information could be gathered easily, confidential business acquisition could be discovered and of course classified government communication could be easily eavesdropped. Circuit Complexity was once thought of as the means to an end. Unfortunately, after much research and inadequate results most believe that circuit complexity is no longer the path to an answer. Most researches have turned to a technique called approximation methods in order to try analyze circuits and hopefully come to a conclusion regarding NP class problems.
What are the current limits on machine intelligence? This essay attempts to explain the current and past forays into strong artificial intelligence, and what modern limitations it faces. This will be accomplished by surveying a limited amount of past and present literature from scholarly peer reviewed articles, notable novelists, credible news sources, and a leading textbook. These sources will be used to draw important points and validate topics. This essay will begin by explaining strong AI according to the definitions placed on it by leading researchers, discussing problem areas, and why strong AI is important. Then a brief review of previous work will be discussed in a breadth-first manner. Then a depth-first analysis will be made on the topic of computer science’s concept of strong AI. Finally, a conclusion to the essay with the foreseeable applications of strong AI along with a statement concerning the future for strong AI.