A Closer Look at Fitbit Data

Sat May 04 2019

Health trackers are the current craze. After I bought a Fitbit, I wanted to determine what exactly could I do with my Fitbit data. Can we learn something from this data that we did not know before? Most people don’t need a watch to tell them that they walked a lot today or that they got a ton of sleep. We typically have a pretty good gauge of our basic physical health. I am interested in figuring out how we can use data science to look at our health over a longer period of time and learn something.

Lets first look at a few things that people typically use Fitbit data for before we jump into the weeds.

  • Setting Goals
  • Motivation
  • Tracking Progress



The Essential Vim Configuration

Sat Apr 20 2019

Vim Configuration

Stock Vim is pretty boring. The good news is that Vim has a very comprehensive configuration file which allows you to tweak it to your heart’s content. To make changes to Vim you simply modify the ~/.vimrc file in your home directory. By adding simple commands this file you can easily change the way your text editor looks. Neat.

I attempted to create the smallest Vim configuration file which makes Vim usable enough for me to use as my daily text editor. I believe that it is important for everyone to know what their Vim configuration does. This knowledge will help ensure that you are only adding the things you want and that you can later customize it for your workflow. Although it may be tempting to download somebody else’s massive Vim configuration, I argue that this can lead to problems down the road.



R Programming Language

Wed Mar 27 2019

R is a programming language designed for statistical analysis and graphics. Since R has been around since 1992, it has developed a large community and has over 13 thousand packages publicly available. What is really cool about R is that it is an open source GNU project.

R Syntax and Paradigms

The syntax of R is C esk with its use of curly braces. The type system of R is similar to Python where it can infer what type you are using. This “lazy” type system allows for “faster” development since you don’t have to worry about declaring types – this laziness makes it harder to debug and read your code. The type system of R is rather strange and distinctly different from most other languages. For starters, integers are represented as vectors of length 1. These things may feel weird at first, but, R’s type system is one of the things that make it a great tool for manipulating data.

R Arrays Start at 1
R Arrays Start at 1



Is Using ML for Antivirus Safe

Sat Mar 23 2019

In this blog post I examine the ways in which antivirus programs currently employ machine learning and then go into the security vulnerabilities that it brings.

ML in the Antivirus Industry

Malware detection falls into two broad categories: static and dynamic analysis. Static analysis examines the program without actually running the code. Static analysis looks at things like the file fingerprints, hashes, reverse engineering, memory artifacts, packer detection, and debugging. Static analysis is largely known for looking up the hashes of the virus against a known database of viruses. It is super easy to fool signature based malware detection using simple obfuscation methods. Dynamic analysis is a technique where you run the program in a sandbox and monitor all the actions that the virus takes. If you notice that the program is acting suspicious, it is likely a virus. Suspicious behavior typically includes things like registry edits and API calls to bad host names.



Lets Build a Genetic Algorithm

Sat Feb 23 2019

Live Simulation



Population Variables


Background and Theory

Since you stumbled upon this article, you might be wondering what the heck genetic algorithms are. To put it simply: genetic algorithms employ the same tactics used in natural selection to find an optimal solution to an optimization problem. Genetic algorithms are often used in high dimensional problems where the optimal solutions are not apparent. Genetic algorithms are commonly used to tune the hyper-parameters of a program. However, this algorithm can be used in any scenario where you have a function which defines how well a solution is. Many people have used genetic algorithms in video games to auto learn the weaknesses of players.