Sunday, February 26, 2017

Prompt 1: Asking Questions and Breaking Assumptions

by Steven Wang

Cover Page of Textbook
When high schoolers begin the transition to college and decide their major, the first step is
usually thinking about preconceptions about the field. What do people do? What do they say? What do people like and don't like? With the advancement of technology, Computer Science and Engineering is quickly becoming a more popular major choice. The textbook "The Practice of Computing Python" by William Punch and Richard Enbody will be use to test if certain preconceptions in the computer science field are true or not.

Preconception #1 - Computer Science is All About Programming
Surprisingly, this is not completely true. Although the major is revolved around learning and executing code, I believe the main skill that is taught is simply how to approach and solve a problem. This idea can be backed up in the textbook, where the preface states that "Our goal is that after the course, students when presented with a problem will think, 'Hey, I can write a program to do that!" (Punch, Enbody XXIII). This is also the reason why in many colleges a intro computer science course is required for all engineers, as knowing how to problem solve is an essential skill. 

Preconception #2 - Computer Science is Slow and Difficult For Beginners
Yes, at least from my perspective. I say this as you would be surprised how easy and natural computer science is for some people, being able to just code without even hesitating. For many students, their first experience in the field is often a mixture of frustration and confusion. The textbook wastes no time diving right into creating a program that calculates the area of a circle. Its a simple task on paper, but coding it is different.
Area of a Circle, Written in Python
Immediately, you see statements such as "import" and "print" that haven't been taught before and sometimes are you told "Worry about those later, just memorize it now". Although it does go into detail, the explanation of just eleven lines of code is two pages long, which can easily be off putting to someone who wants to learn quickly.

Preconception #3 - Computer Science is a Part of Every Day Life
This preconception can be tied with #1. We all know that computers are everywhere, millions of them. "What were once rare, expensive items are as commonplace as... any commodity you can imagine" (Punch, Enbody 3). Computer science surrounds us and there are a multitude of examples but to name a few are social media, smartphones, cars, and the internet. Many computer science textbooks have a preface explaining its importance because many students never consider anything outside of what they code.

Overall as a resource, this textbook is highly recommend for students are you starting from the bottom. It teaches the importance of computer science, its uses, and how to code with arguably the most basic language. Even if you think its dense and slow, this is as easy as its gonna get and the learning process will definitely speed up as you go on. 

Oh The Places You'll Go

By Xavier Reinders

So you are looking into pursuing a Computer Science or Engineering degree as a part of your research into this you might wonder what you can do with such a degree.  While I can't give you every possibility I can give you a few big ones and what they might entail.

Software Developer
Software development is a wide and diverse profession and possibly the biggest residence of CSE degree holders. These developers make everything computer related that does any actual computing. This means they make the video games, phone apps, work programs (Microsoft Office), vehicle systems and web applications we see every day.  Due to this variance in work developer pay spans a wide range from $50,000 up to $200,000 and beyond depending on importance.

Computer Systems
Computer systems engineering deals with the interaction between machines, each other and their users. These professionals design, analyze and improve this communication as well as helping non-engineers interact with them. These engineers spend a lot of time interacting not only with these systems but also with the software developers mentioned above helping their programs smoothly move across your systems. Median pay for this kind of work falls around the $82,000 mark.

Database Handlers
Database engineers and analysts work in information; understanding, manipulating and distributing massive amounts of information. Engineers design and build the data storage connecting it to a system where it needs to be in order to allow access to the information. Analysts criticize everything the engineers do, they work to improve system efficiency and the overall quality of the system. These professionals rake in an average pay of $80,000.

Analysts 
Do you hate people and think you can do everything better than anyone else, welcome to the position for you. Not really though analysts preform an incredibly important job that helps to serve the rest of the professions on this list. Essentially their business is problems, finding them and reporting them to however can fix them, however a problem could be as simple as 'this doesn't work as well as it could'. Analysts tend to have a a very wide base of knowledge able to at least partially understand every part of a computer system from software to system to database so as to diagnose issues in each and between all parts. Expected pay falls at $83,000 for these professional criticizers.

Testers
Is your favorite tool a wrecking ball, do you often find yourself destroying "indestructible" items or accomplishing "impossible" feats, boy do I have an opportunity for you. As a tester your job is to find problems, use the computer system in every way possible and find out where it doesn't do what it's supposed to. You act as a digital "breaker" helping others achieve their goal of "idiot proofing" their product by using your to become the smartest idiot ever. These hero's can expect a wide range of pay centered around $83,000.

Network Administrators
You survey your kingdom in search of flaw and those in need of your all powerful influence. In actuality network admin's act as the gate keepers of a system allowing access where it should be allowed and denying it where it shouldn't.  This goes for those inside the system as well as those attempting to access it from the outside. You do however land a little lower on the pay spectrum than others at $77,000 despite your divinely mandated rule.

Project Manager
Congratulations you've successfully done your job long enough and well enough that you get to do that and tell other people how to do their jobs. Project managers set deadlines, outline plans and assign responsibilities for a team of other computer scientists and engineers. Since you're so good at your job you can expect a pay around the upper middle of your team whatever that may be. What? Why aren't you making the most if you're the manager? Because someone on your team is the best at their job, a very specific one that few understand, and they are harder to come by then a project manager. Anyone can be a project manager not everyone has what it takes to write an AI on their own.

Well now that you know all of that I hope your time in CSE leads you to the career you're hoping for whatever it may be.

All pay information pulled from here.

Character Introduction - Alan Turing

By Qingyang Li

Alan Mathison Turing(23 June 1912-7 June 1954) was an English computer scientist,mathematician,logician,cryptanalyst and theoretical biologist.He was highly influential in the development of theoretical computer science,providing a formalisation of the concept of algorithm and computation with Turing machine, which can be considered a model of a general purpose computer.And he is widely considered to be the father of theoretical computer science and artificial intelligence.

The most famous story about Turing is during the World War Two, German scientist developed a machine called Enigma and Nazis force used it to communicate with each troops, this machine and code was unbreakable at that time which caused Allied many losses. Turing worked for the Government Code and Cypher School,Britain's codebreaking centre. For a time he led Hut 8,the section responsible for German naval cryptanalysis. He devised a number of techniques for speeding the breaking of German ciphers, including improvements to the pre-war Polish bombe method, an electromechanical machine that could find settings for the Enigma machine.Turing played a pibotal role in cracking intercepted coded messages that enabled the Allies to defeat the Nazis in many crucial engagements, including the Battle of the Atlantic; It has been estimated that this work shortened the war in Europe by more than two years and saved over fourteen million lives.

After the war, he worked at the National Physical Laboratory,and he designed the ACE here, and it was the first designs for a stored program computer. He helped develop the Manchester computers in 1948.
But unfortunately ,Turing was prosecuted in 1952 for homosexual acts, when " gross indecency" was still criminal in the UK. He accepted chemical castration treatment, with DES(a synthetic,non-steroidal estrogen of the stilbestrol group,from about 1940 to 1971 ,DES was given to pregnant women in the mistaken belief it would reduce the risk of pregenancy complications and losses). Turing died in 1954, Police determined his death as suicide,because they found a bit apple which was covered by cyanide poisoning, but it has been noted that the known evidence is also consistent with accidental poisoning.

In 2009,following an Internet campaign,British Prime Minister Gorden Brown made an official public apology on behalf of the British government for "the appalling way he was treated." Queen Elizabeth granted him a posthumous pardon in 2013.The Alan Turing law is now an informal term for a 2017 law in the United Kingdom that retroactively pardons men cautioned or convicted under historical legislation that outlawed homosexual acts.

If you want to know more about Turing's story of Enigma, recommend to watch the movie "The imitation Game"

Nintendo Switch And Its Early Release Flaws

The Nintendo Switch is the most anticipated game release console in 2017 and is the sequel console to the Wii U. It is the newest advancement in console technology as it allows the gamer to not only use the console as a stationary console, but it also allows the gamer to take the controller from its portable station and use it as a handheld device. It is making many great advances in the gaming community and will definitely impact future gaming consoles to come. But just like all things, it has its flaws, and some of them are pretty major.

The first issue with the console is that, right out of the box, the console is very boring. The game console comes with no games included, so the only thing to do is scroll through the menus and create your mii, unless you decided to buy a game with the console. In addition to that, there is no backwards compatibility offered with the system, so gamers cannot play any of their old Wii or Wii U games. The Switch will be the very first Nintendo console since the GameCube to not offer backwards compatibility. In addition to all of this, virtually downloading games will not be available at release date. What that means is gamers cannot buy games digitally from the Nintendo eShop at the release of the console and would cause gamers to buy their games on cartridges. Another problem adding to the game problem is that the internal storage of the console is only 32GB, which is extremely small for gaming consoles.

These game issues as well as issues with the controllers and battery issues add to the many continuing problems resulting for the Nintendo Switch. For more information about the Nintendo Switch click here.

Sunday, February 19, 2017

Intro to Programming: C++

By Xavier Reinders

Contrary to the title C++ is not the language you should be learning if you are looking for an introduction into the world of programing. While it was the first full programming language I learned it is more often used by schools in an upper level course after students have already learned some introductory programing. The language was created in 1983 by Bjarne Stroustrup with an emphasis on efficiency and performance.

C++'s creator on the 'advantages' of his language
The efficiency part of C++ does not come on the coding end of things but rather on the computing end, so while there is often more work for the programmer, there is much less for the computer or system, ideal for large systems or programs. C++ is often referred to as a mid to low level programming language, these levels denote closeness to machine language, the stuff computers use to communicate and operate.  Since it is a mid to low level language it is closer to the ones and zeros used by the machines which means it is sometimes a bit tricky and difficult for humans to understand. However this human inconvenience allows for a much faster and efficient system using only a few more ones and zeros than are necessarily needed to tell a machine something.

C++'s biggest advantage is rooted in its memory manipulation abilities and its use of pointers and references. One of the biggest memory pit falls of other languages is their use of copies, when passing around information between places they make a copy of that data each time it goes somewhere new. As you might imagine this can quickly take up a lot of space, so C++ approaches this problem differently using pointers and references. Although they are often very complex to implement the concepts behind these two things is pretty simples. Pointers are like a trail sign or a highway sign, they tell you where and what something is in a place totally separate from the original thing. References are like nicknames for a person,  like 'Bill' and 'William', they both mean the same thing and refer to the same person its just 2 different ways of saying it.

I hope this has introduced you to some of the differences between C++ and other languages. If you are interested in programming I would recommend a higher level language like python first, which can be found here. However if C++ is really what you want this site can help you get started into the language.

HTML: Developing Your Own Website

by Steven Wang

My introduction into web development was seeing an ad on YouTube about Squarespace: an all in one solution to create a your own website. Recently, I had the idea to create an "about me" website where companies can access my resume, contact info, and any other important information when networking. As a computer science major, however, I realized it would be ill suited for me to have a website that I didn't code myself so I decided to tackle HyperText Markup Language (HTML), the standard language for creating web pages and applications.

The beauty of creating your own website is having the advantage of deciding how complex or simplistic you want it to be. A website can range from single page plain text to having graphic images or animations. An easy visualization is comparing a website such as Wikipedia to Facebook: Wikipedia is mainly composed of text while Facebook requires video input, large scale images, and chat animations. Although my website will be a one man operation, many websites that represent larger companies may require hundreds of developers that work for hours on a single page.

As mentioned earlier, HTML is the main language in web development. Unlike any other programming language, HTML uses elements in order to create headings, paragraphs, links and other items. Elements are represented as tags, written using angle brackets. Any website generally starts with a heading. HTML has six levels of headings which use the elements <h1>, <h2>, <h3>... <h6>.

Example code

 <!DOCTYPE html>
<html>
<head>
<title> Heading Example </title>
</head>
<body>
<h1>This is heading 1 </h1>
<h2>This is heading 2 </h2>
<h3>This is heading 3 </h3>
<h4>This is heading 4 </h4>
<h5>This is heading 5 </h5>
</body>
</html>

Result

This is heading 1
This is heading 2
This is heading 3
This is heading 4
This is heading 5

Note that as you have more headings, the font becomes smaller. Elements that contain a '/' in them indicate the ending of the heading or body. Text is just the beginning of what you can do with HTML and I plan on learning more as I believe web development is an essential skill for a computer science student like myself.



How Gaming and Desgin Can Effect Peoples Lives

By Tanner Fred

Most people use gaming as something fun to just pass the time, something they enjoy doing when there is nothing else to do and want to kill some time. Then there are some people who take it a bit more seriously and care about the games they play, try to best their very best at every game that they play. There's a level above that of people who adopt gaming as their livelihood and put nothing else above it. There are two different categories when it comes to these types of people, professional gamers and game designers.

Professional gamers are those who play esports, most popularly, Smite, Call of Duty, League of Legends and CS:GO. These people are mostly in their mid to late 20s and have been play competitively and when you get to watch them play it almost seems unreal about a person could be that good at a video game. The way they are able to maneuver characters in ways that don't even seem possible to the common player. But a lot of these players devote their young adult lives to playing these games and even go as far as to move from their own homes and live with the rest of their team. Most of these people walk away from professional gaming and move onto normal jobs or continue their gaming careers on youtube or twitch.

I personally think that game designers are much more devoted and invest a bigger part of their lives to gaming. There is a game that one of my friends encouraged me to play and I have recently played it with him. It was unlike any game I had ever played because in itself, it really wasn't a game, it was a story. The narrator tells about his friend Coda who was a game designer and used to deign very obscure games where the motivation and objective of the game was often unclear or nonexistent. This lead the narrator to believe that Coda was becoming deeply depressed and his work indicated that he may have been correct. To avoid spoiling the ending of the game, this caused a split between Davey, the narrator, and Coda to the point where they no longer speak. When being a game designer it takes a lot of time and effort to go through and make sure that every detail of your game is exactly how you want it and the frustrations of that can sometimes appear as depression. Designing something that intricate can take a lot out of somebody and can cause those around them to appear as if they are depressed or losing motivation, but rather that is all just part of the process.

Prompt 9: Recognizing Significance - AlphaGo Beats One of the World's Best Go Players

By Qingyang Li


In March,2016 , Google and deep mind company set up a Go match that let AlphaGo-the  Artificial Intelligence developed by two companies against the Korean Go player Lee sedol which is No.3 at Go ranks.The game lasted for 7 days and result is 1:4,Lee sedol lost this match,and it was the first time a computer program beat a 9-dan professional without handicaps. AlphaGo was awarded an honorary 9-dan by the Korea Baduk Association.

And then, during December 2016 from January 2017, a player name "Master" suddenly appeared online and have beat several best Go player in human history, including three victories over Go's top ranked player ,Ke jie, and during this time ,"Master's" record was 60 wins and 0 losses. Before it played against Ke jie, Google company finally announced to public that "Master" is AlphaGo. Which indicated that Artificial Intelligence beat Human-race in the most complex game humans play.

According to Deep mind company and Google, AlphaGo's algorithm uses a combination of machine learning and tree search techniques, combined with extensive training, both from human and computer play.It uses Monte Carlo tree search, guided by a "value network" and a "policy network", both implemented using deep neural network technology. A limited amount of game specific feature detection pre-processing is applied to the input before it is sent to neural networks. 

The system's neural networks were initially bootstrapped from human gameplay expertise. AlphaGo was initially trained to mimic human play by attempting to match the moves of expert players from recorded historical games, using a database of around 30 million moves.Once it had reached a certain degree of proficiency, it was trained further by being set to play large numbers of games against other instances of itself, using reinforcement learning to improve its play. TO avoid "disrespectfully" wasting its opponent's time, the program is specifically programmed to resign if its assessment of win probability falls beneath a certain threshold: for the March 2016 match against Lee, the resignation threshold was set to 20%.

Although the theory of AI have already posted for almost 60 years, for 60 years there is not a achievement like AlphaGo can shock us. A wise man once said that human's history is the history of learning, and AlphaGo is also grow up during learning.If the technology of AI can develop at a mature level, It will be a great advantage for entire man-kind, what if AI against us like"The Matrix"? Scientists already argue about this topic for many years, but who knows, maybe hundreds years later we will see.

Sunday, February 12, 2017

Microsoft's HoloLens

In one of my recent blog posts I talked about Sony's Project Morpheus and about how it was the leading edge of virtual reality for console based devices. I have recently learned about another virtual reality device that may be further behind in the marketing sense but is much further ahead when it comes to technologically. It is called the Microsoft HoloLens and is in an early beta phase and is used like glasses for everyday life. They resemble laboratory googles and you wear them around in everyday life and can play games and do other things using the environment around you. If you've ever seen the movie Ironman, the best way I can describe it is how the screen is like floating in front of you in mid air and you can just tap it with your finger rather than on an actual screen.

It is used now as a developers item, and can be purchased for upwards of $2000. It can be purchased as a test item and many people have created their own programs for it in which you can interact with the world around you. One creator that I saw took the game "Portal" and made it so that you could essentially play the game in your very own environment. The game would obey the law of physics and if it were to hit a wall in real life, it would stop against that wall. This would also allow people to work on things in their environment to create new concepts using the template of things that already exist and interacting with them in real life.

For more information about the HoloLens click here. To watch the Portal video on HoloLens click here.

Prompt 7: Contemplating Controversy Apple Fights the FBI

By Xavier Reinders

Tech Today's characterization of the Apple vs FBI fight
Around February of last year a case developed in a federal court in California that took the shape of Federal Bureau of Investigation vs. Apple. The case was centered around an IPhone belonging to one of the San Bernardino shooters who killed 14 people in December of the previous year. The FBI had demanded that Apple unlock the phone so that it could be searched and its data used to possibly prevent future attacks or take down other suspects. Apple stated they could not do that as the device was encrypted even to them and they refused to develop a program for decryption. On one side of the FBI argues they need access to these phones through the encryption to protect the United States and its citizens. Apple on the other hand states that it is imperative to the security of their phones that not even they can crack the encryption. This case represents more than just the one phone, it is setting a precedent for data privacy and is an important marker in the balancing act between freedom and security.

To the credit of the FBI their job is to protect the people of the United States from domestic threats and like all other national security agencies around the world information is their greatest resource and weapon. The agency stated that encryption used by companies like Apple make it “harder for them to solve cases and stop terrorist attacks,” according to this CNBC article. The agency insisted the unlock would be a one time thing stressing the importance of time so that the information on the phone can be used while it is still relevant. The FBI argue that unlocked phone is a small price to pay for prevention of future loss of life. It is the belief of the agency that were a backdoor created it would be far more beneficial than it would be destructive.

Cartoon depicting the concerns of Apple and the Tech industry
If broken down into the typical security vs freedom debate Apple fights for the side of freedom on this one. Tim Cook, Apple CEO, said that the FBI’s request to unlock the encrypted device was “chilling[…]if the government can use the All Writs Act to make it easier to unlock your IPhone, it would have the power to reach into anyone’s device.” This is discussed more in this CNBC article. Apple’s, along with most of the rest of the tech industry’s, concern is that once anyone gets their foot in the privacy door, there is no telling what could get inside or be pulled out. Most companies, Apple included, protect against this by not even placing their own foot in their own door, meaning that their encryption software makes it so that even they cannot decrypt it. The industry's concern is that if anyone can get in then everyone can and privacy becomes non-existent within the digital realm.

The case was dropped by the FBI when a third party, suspected to be an Israeli company, helped them to unlock the device. Although this outcome settles the case with an acceptable outcome for both sides; FBI get their phone, Apple keeps their encryption back door free, it does not settle what will surely be a lengthy debate of privacy and freedom versus security and protection. And it leaves new problems for both sides, the FBI still has no consistent way to unlock encrypted devices and Apple has a hole in their security exposed by the unnamed third party.

How to Select Parts For a Computer

By Qingyang Li

Nowadays, everyone can afford to buy a PC from Dell, MSI, HP, or any other manufacturers. But mostly, those computers are original, if you want something special on your PC, you need to make it by yourself. It is very good to say:” I made this computer.” Although sometimes you need to take much time to build it. Here are some steps I want to introduce about how to choose hardware and build it.
Choose your CPU. Normally, AMD and Intel are the only two choice. If you don’t have enough budget and want a cheap CPU, AMD is your best choice. They have higher clock speeds and minimal effect on frame rates as long as a decent GPU is equipped. And if money isn’t your problem and you want use it to play games (most common), Intel is your best friend, they are offering a i3, i5 (most common in gaming uses), or a i7. An i3 processor is a solid, efficient chip that does not generate a lot of heat and takes little power. An i5 is offered in dual-core with Intel Hyper-Threading or quad-core with no Hyper Threading. Some models are over lockable and are popular for gaming. And finally, the i7 is the weapon of choice for enthusiasts, but this luxury comes at a steep price. An i7 in most sub $1000 machines is not suitable to work with and will not help with frames on a mid to low range graphics card, but if you have money to burn make sure you are equipped with a monster graphics card to take advantage of this chip's power.
Cooler your CPU. If you don’t plan to use much your CPU, and keep it in a good condition, you can skip this step. But if you are going to “torture” your CPU, like overclocking. You probably want to look into water cooling for overclocking, but air cooling should be fine otherwise. (some water cooling parts can leak water easily, make sure you find official manufactures)
Need a base to put everything on. Starting with a Motherboard. Your motherboard should be specifically designed to match your CPU, not just socket, but by wattage, and maybe even suggested for that particular line. If you look at Newegg.com (and some other sites), you will find combination suggestions, which can help you decide what parts to put together. High rated motherboard manufacturers include ASUS, Gigabyte, MSI, or Foxconn, your research should give you a good idea.
Time for a good graphics card. If you are a game lover. This is very important. You have a couple of options, based on your motherboard choice, the first of which is - single configuration graphics or multi-configuration graphics (Nvidia SLI, Radeon Crossfire, etc.). Make sure your motherboard (and other hardware) can handle it. Most of the time, just one more powerful one will suffice, but if you're looking into very intense games like Crysis, spending the extra $100 or $150 will help you increase your FPS (Frames Per Second) a reasonable amount. However, if you look around enough, you should be able to find what you are looking for based on what types of games you plan to play, and price. Also, chipset limitations can determine your graphics configuration; AMD chipsets support Nvidia SLI and Radeon CrossfireX, while Nvidia chipsets (nForce) support SLI fully and limited Crossfire. Well, if you are rich, very very rich, just buy a GTX Titan X.
RAM. Lager GBs doesn’t mean anything. It’s sometimes relate to your system. For 32bit Windows OS, the maximum of your RAM is 3GB, which means whatever how large your RAM is, you PC will only use 3GB, unless you upgrade your PC to 64bit. Besides, your motherboard will be able to provide this compatibility information, then you can base on it to choose your RAM.
 Storage. In hard drive, there's a number of options here, the first of which is a big one. 15000RPM, 10000RPM, or 7200RPM? Most people go with 7200RPM and more storage, but if you are looking for optimal performance regardless of other setbacks, you can buy an SSD (Solid State Drive), but they are expensive. Next, how much storage? This is mostly a 'how much do I need, how much am I willing to pay?' issue. Some people find that 500GB is enough, 1TB is ideal, however if you are installing many games, 2TB hard drive might be better for you; enthusiasts and extreme gamers use a 10000 RPM as the boot drive and a couple 7200 RPM 1TBs for games and media. For the most part, Cache and Interface speed are negligible, but higher cache could provide higher speed, and higher interface speed could do the same.
 Need a case to put everything in. Case size is the most relevant aspect, as getting a case that's too small will be problematic. After you determine what you need, it's mostly aesthetic. Don't expect to use the power supply the case comes with, they're generally not great quality, and usually will not have enough power for higher end computers.
  Power supply. Based on the choices above, your power usage will vary, but expect at least 500W for a lower-end gaming computer, and 750W+ for a top computer or overclocked computer. Doubling up on PSU's is not usually a good idea unless you have two separate systems running inside your computer. If you have a -sometimes- overclocked computer, and have a higher end cooling system (for liquid only, really) that you want to turn on or off, you could have 2 PSUs. Not recommended.
  CD Drive. Consider what you will use it for, based on those choices you will want to make a choice. A standard DVD Burner should fit most people's needs, but Blu-ray may be worth the extra money. However, they cost a lot!
  Sound system. For most computers, the sound system (speakers/headphones) determine quality, but if you want to step up your system, look into an internal sound card. Digital audio (optical/coaxial) or analog (3.5mm standard for most PCs), 24 bit (HD) or 16 bit (SD)? "AC97" audio is usually what you will find in many PCs, but some motherboards have started to include HD Audio, therefore eliminating the need for an external sound card. You can find a good Creative X-fi or something for a reasonable amount. You may want to look into this as an upgrade you do later, after testing your onboard sound card. Also, don't expect free/cheap headphones to be a good judge of whether your sound card made any difference on your sound output.
  Cooler your PC. Based on those components, you will need to decide on a cooling system. For most (even customized) computers, air cooling will be sufficient, even if it means having 3 or 4 case fans. Most computers will not require liquid cooling unless there is high overclocking or a system costing over $1200. Liquid cooling is fairly expensive ($200 for a basic system), but if your computer runs too hot, it may be necessary.

  And this is all the steps you might use for selecting parts for your personal computer. Hope it will be useful. If you need to know how to build them up, there are more tips on Google.

Jailbreaking: What Is All the Fuss About?

by Steven Wang

Jay Freeman. The creator of Cydia, an application
that is the main distributor of jailbroken software
Ever since Steve Jobs announced the very first iPhone back in January of 2007, Apple's flagship
device is amongst the most popular pieces of technology the world has ever seen. That statement isn't hard to prove either. Just look around you. What phones are your peers using? Chances are that it is an iPhone. The phone is so advanced with many features already built in that the average user never considers the possibility of customizing Apple's heavily restricted software. That is where jailbreaking comes in, but what is jailbreaking exactly?

What is Jailbreaking?
All of Apple's mobile devices, iPhone, iPad, and iPod touch, are run by their own operating system called iOS. Their operating system includes a layer of Digital Rights Management, limiting what you can and cannot run, mainly for protecting the consumer for obvious security reasons. Without getting too technical, jailbreaking is essentially the process of bypassing those restrictions in order to run "unauthorized" software and tweaks.

Why do it?
The main reason is customization. iOS is considered a closed environment due to its App Store application processing. All applications submitted by developers must be checked by Apple in order to ensure it isn't malicious and isn't affecting or accessing any other data besides what is inside the app. An analogy that can be made is this; consider an application as a sandbox. You can do whatever you want inside the sandbox, but if you want to explore what is outside, jailbreaking is your only option. Here is a basic list of what you can do with a jailbroken iPhone:

  • Change the look of your iPhone such as the icons, status bar, and user interface. A example of an iPhone can be found here.
  • Adding features that aren't supported by Apple. 
    • Flipping my iPhone face down with turn it off. 
    • Double tapping the screen on the camera app will change the orientation from front to back or vise versa. 
    • Touching the home button will trigger a press, no need to actually press the button. 
  • Modifying applications. Most popular is Snapchat
    • Disable certain features such as Discovery
    • Screenshot without other person knowing
    • View and open snaps for an unlimited amount of time 
Why not do it?
Jailbreaking requires root access to your device, opening many pathways that malicious software can easily pass through. Although there haven't been many cases of harmful attacks, it is possible and something to consider. Additionally, jailbroken applications may or may not follow Apple's stability guidelines which can lead to frequent crashes, increase usage in data, or lower battery life. There is also the possibility of bricking your device, which means its either stuck in a boot loop or unable to turn on no matter what you do, rendering it useless. The general rule in the jailbreaking community is that this is something recommended to people that know what they are doing and don't be careless.

Additional Info
Jailbreaking is 100% legal as far as the U.S Government is concerned, however you can do illegal activities such as piracy.  I do not condone nor encourage this behavior. 

Interested in learning more or even jailbreaking your own device? The subreddit r/jailbreak is the best place to look! Already jailbroken but have no idea what to do next? Check out the subreddit r/iOSThemes!


Sunday, February 5, 2017

Intro to Programming: PHP


By Xavier Reinders


The most widely interacted with programing languages are not those that run massive servers or perform complex calculations for NASA but those that run the World Wide Web. These languages can be divided up into different categories; interface, background, subprograms and database. Interfaces format what users see, background programs handle movement between interfaces and information flow, subprograms are little games or apps built into a website, and databases are where all the information is stored. PHP, the language I will discuss today, is a background program.


Example of PHP code for a site structure
As a background language PHP as multiple functions and responsibilities within a website. Programming is a fickle thing where even the smallest mistake, a missed letter, could potentially bring down even large sites or programs, as such no one responsibility is the most important. The first responsibility that PHP has is interacting with the interface and database languages. PHP, like most languages, is an open library platform meaning anyone who uses the language can create and share their own functions or function libraries. There is a group of these libraries developed by the creators of PHP and other programmers that allow it to interact with a number of interfaces and databases. PHP does not directly interact with any sub programs that are in a different language instead this job is given to the interface language.
PHP’s second responsibility is structuring the website or web app. While the interface language may make the site presentable and pretty, PHP provides the structure and framework for all functionality in the site. If a website were an office building PHP would make up most of the building, from stairs and elevators to rooms and doors to mail chutes and mail carriers. It creates the entire layout for the site like pages, the means to traverse it like links, the security like password displays, and information transport through input-output boxes.
The final responsibility of this language is temporary information storage and thinking, understanding what to do with input. I put these together because they work off each other within the actual program. PHP receives information puts it somewhere and then starts working with it, doing math or sending user information, like name, birthday, password, to a database somewhere. It can then use that to pull information related to that specific user like account information or whatever else the programmer wants it to do.


While it satisfies each of these responsibilities as a background program it also has some advantages over other background programs. One of the biggest reasons for its widespread use among web developers is because it's relatively simple as far as programming languages go. Ease as far as programming languages go comes from how abstracted from binary it is, meaning how close is it to how humans speak, tell it to do something, it does something. Another of its large advantages is that it is widely recognized by other languages  and systems so it poses few problems when it is used on a wide variety of platforms. On top of that it includes simple libraries to either integrate it into other languages, interface, or integrate other languages into it, interface and database.

Intro to Programming: Python

by Steven Wang
Guido at the Google I/O Developers
Conference in 2008

Python is said to be the most basic programming language and is often recommended to beginners
who are interested in learning how to program. In my high school and at Michigan State, Python is the main language used in the first or introductory course to computer science. The language was created by Guido van Rossum and first released in 1991. Its original design was intended to emphasize code readability, with space indentation rather than the use of brackets {} like C++ or Java and to minimize the amount of lines required to code, therefore decreasing data size. Many jobs in the real world require Python due to its simplicity. If you need to code a small program that require limited space, Python would be the most logically language to use.

To demonstrate Python's objectives, lets try and print the words "Computer Science." In python the code would look like this:

print("Computer Science");

However in a more advanced level language such as Java, the code would look like this:

public static void main (String [] args)
{
     System.out.println("Computer Science");
}

Although they both do the exact same thing, it is clear Python requires less lines of code, plus it is much easier to read and understand to the less experienced programmer.

The way Python creates its methods are also much easier compared to other languages. Methods in programming are nothing more than a form of procedure or step by step instructions called by its name. In Python methods are simply created by typing:

def method_name (parameters)

Again, notice how the code is only one line long. In Java for example, you are often required to create a new file, class, and objects to create certain methods. I know, sounds complicated right?

Although there are many differences, functionality between all languages are still relatively the same. They all contain the same expressions such as <=, =>, == and types such as int, float, list, dictionary and so on.

Interested in learning Python? Click here to get access to all things related such as documentation, downloads, software, and a great community to get involved in! For students at Michigan State University, CSE 231 is a class that is solely based on Python. Would definitely recommend checking it out!


What Are the Differences Among Virtual, Augmented and Mixed Reality?

   By Qingyang Li


     
     Have you guys ever seen this photo? Actually, it is still from a Magic leap demo video, and Magic leap is the company who is received $ 500 million in financing from Google, most of people call them MR company. And you probably heard the name of VR, AR and MR, do you know what their differences?
     For VR,I am not going to mainly talked about it, most people have already known what is it.It's common in Video game field now. The equipment of  VR which are Oculus and HTV Vive, this technology has been used by Play station and some of the game company to create games that can be shown by VR, mostly are horror games like Biohazard to make people feel the certain circumstance.

     For AR, which is augmented reality is similar to VR in that it is often delivered through a sensor-packed wearable device, such as Google Glass, the Daqri Smart Helmet or Epson’s Moverio brand of smart glasses.The whole point of that word, augmented, is that AR takes your view of the real world and adds digital information and/or data on top of it. This might be as simple as numbers or text notifications, or as complex as a simulated screen, something ODG is experimenting with on its forthcoming consumer smart glasses. But in general, AR lets you see both synthetic light as well as natural light bouncing off objects in the real world. AR makes it possible to get that sort of digital information without checking another device, leaving both of the user’s hands free for other tasks. That makes the current technology a natural fit for the enterprise, where a corporation in the energy field, for example, might want to give field workers who are inspecting equipment glasses that can take pictures of and deliver information about what they’re seeing from atop a wind turbine.


                               Pokémon Go is an AR game !

     For MR, it is the least-well-known right now, because this technology is not mature so far but it ironically might have the easiest road to mainstream consumer adoption — if the tech works as advertised. The key term for mixed reality, or MR, is flexibility. It tries to combine the best aspects of both VR and AR, In theory, mixed reality lets the user see the real world (like AR) while also seeing believable, virtual objects (like VR). And then it anchors those virtual objects to a point in real space, making it possible to treat them as "real," at least from the perspective of the person who can see the MR experience. With mixed reality, the illusion is harder to break. To borrow an example from Microsoft’s presentation at the gaming trade show E3, you might be looking at an ordinary table, but see an interactive virtual world from the video game Minecraft sitting on top of it. As you walk around, the virtual landscape holds its position, and when you lean in close, it gets closer in the way a real object would. Unfortunately, Magic leap is a high-secrecy but high-profile company and has yet to publicly reveal a portable, consumer-ready version of its MR technology. Looks like we still need to take a while to see its true colors.

Click here to see the E3 Minecraft video

Prompt 2: Defining Ethics - Programming Code of Ethics

By Tanner Fred

The code of ethics as defined by the National Association of Programmers is something that is used as a guideline  for those interested in being programmers, as well as those who are already programmers, to use as a way to conduct themselves professionally. These rules are an example of how the people in the field of computer science and engineering are known to conduct themselves. I believe that engineers do have a good reputation of being quite professional and following this code to the best they can. I believe that most people do know the code of ethics for this field because they are very similar to that of others fields, where professionals should conduct themselves very mannered and respectable. The code is very generic and is not that specific about many things in the computer science field.

I think that most people in the field follow this code to the best of their abilities and attempt to conduct themselves in the very best way that they can. Engineers are typically known to conduct themselves in a very respectable and professional manner and this follow this code extremely well. The code of ethics is very well known in this field because with engineering and creative fields there can be a big issue with copyright and the stealing of ideas, so the professionals in the field follow the code closely to make sure they do not get into trouble.

As far as this code being in relation with my own ethical standards, I agree with all of the articles in this code as they outline the proper way to handle yourself in business situations. It also outlines ways to use your peers as your own resources rather than going to other places to get your information and to share your information with the others in your field.

To see the code of ethics as defined by the National Association of Programmers click here.