Musical Floppy Drive Build Log

Tue Mar 13 2018

It is fun to find an interesting use for old technology. Being someone who has tons of old floppy drives and loves music, I decided to turn my old floppy drives into an orchestra. I’m not sure where I first learned about musical floppy drives, however, there are thousands of videos on YouTube.

This project first started over a year ago when I connected two floppy drives to a Raspberry Pi to play the Star Wars theme.

Read More »



Deepfakes

Fri Feb 23 2018

1 What are Deepfakes

We all know that you can do silly face swaps with snap chat and other apps. Previously face swapping faces on videos was terrible because you simply sequentially swapped all the faces frame by frame. As a result, the quality was very poor and did not handle head movements well. A Reddit user by the name of Deepfake created a recurrent neural net which accurately face swaps videos. Deepfake(the user) initially gathered a following by swapping celebrity faces onto porn videos.

Reddit has banned Deepfake and Pornhub has banned deepfakes from their platforms. Despite the attempts to remove fake deepfake videos, they are currently all over the internet.

2 How Can You Make Deepfakes

Read More »



University vs Teaching Yourself Programming

Tue Feb 13 2018

Many people on the internet furiously debate whether it is better to learn how to program in college vs teaching yourself. This is not necessarily a one-sided debate, there are merits of both teaching yourself how to program and taking computer science in college.

1 University

The main advantage of taking Computer Science in college is that you are also taking a lot of math and science courses. When talking to a professor from Clarkson University he said that they were not teaching students simply how to get jobs, but how to pioneer and shape the field. It is possible to buy a book and teach yourself how to program Python or attend a coding boot camp. However, the tech field is changing at a rapid pace, and what you learn now may be irrelevant in five years. The combination of programming courses and other math and science related courses allows students to create the tech of the future. Think about all the advancements in artificial intelligence we have made in the past year, all that requires higher level statistics and calculus.

Read More »



Using English Conventions To Write Clean Code

Thu Feb 08 2018

Is that English?

private boolean canCompressBlock(Coordinate start, int size){
   return size == (int)Arrays.stream(this.rawImage, start.getRow(), start.getRow() + size)
           .filter(r-> size == (int)Arrays.stream(r, start.getCol(), start.getCol() + size)
                   .filter(c-> c == this.rawImage[start.getRow()][start.getCol()])
                   .count()).count();
}                   

After 30 minutes of brain boiling work, I finally finished crafting the most beautiful lambda statement in Java. What could have simply been done in two nested for loops, I decided to tackle the problem with the infamous lambda statement– feared by most programmers. Lambda statements by no stretch makes code any easier to read since the same tasks can be accomplished through using simpler and more recognizable syntax. Yet I decided to utilize this excessive lambda statement. After much contemplation, I realized that I was only using lambda statements due to the fact that people inside of a field typically try to write to impress their peers. This code chunk is clearly a sophisticated use of functional programming and will likely impress people inside the computer science community; however, 95% of my computer science class would not understand a single word of this statement. This poses a dilemma to newer programmers which may have difficulty reading this “sophisticated code”. After years of helping students learn to program in my high school, I know that students struggle with making their own code legible. Their code often lacks sophistication and clarity. However, at the same time many of my college professors which are embedded in the field of computer science often write code that is too sophisticated and obscure for anybody to easily understand. This got me thinking, how can we teach students to programming in a way that yields legible code for everybody in the computer science field? I turned towards English. It turns out that programming can take a few pointers from English to improve its clarity. The same skills used to teach writing can be applied when teaching students to program because excellent code and writing contains thought through structure, clear phrasing and readability.

Read More »



Node vs PHP

Wed Feb 07 2018

PHP vs Node meme
PHP vs Node meme

It used to be the case that you wrote PHP for the backend and JavaScript on the front end. However, that has all changed with the invention of Node.js. Some kid invented a clever way to run JavaScript on the server. Now we can develop a website that runs JavaScript on both the front and back end. This is good right? We should all learn JavaScript. The one language to rule them all. Although Node.js has taken the web by storm, I would argue that there are cases where PHP is still relevant and even preferable.

0.1 Where PHP Wins

The major benefit with PHP is the low development time. You can write a website in PHP much faster than you could with Node.js. PHP is simply easier to work with than Node.js. Things like GET, POST, and SESSION information is simply a variable that you reference. Doing the same things in node.js is trickier because they require node dependencies – which vary in quality. Next, PHP was built to work nicely with databases like Mongo, and MySQL. In PHP you can make database query without falling into the callback hell that you experience in Node.js. It is not impossible or impractical to work with databases in node.js, I have done it plenty of times. However, synchronization of the database calls can be tricky and requires more code than it does in PHP.

Read More »