Tuesday, June 23, 2015

Manning Book Reviewers

Recently I have been very active reviewing new books for Manning:

http://www.manning.com/about/reviewer.html

Currently I'm reviewing a couple of books for them. One on Probabilistic Programming, and then another on salesjs.org

Both are very interesting subjects that I'm really excited about how these two technologies can be used.

http://hapijs.com/

Also reviewed a book on sails dot js, nice javascript framework to build sites.

Git and Linus Torvalds

I've seen articles regarding how Linus Torvalds made git in just 2 weeks. It is amazing how in 2007 no one was using Git, and now in 2015 everyone is using it (MicroSoft, Apple, Google, etc.)

What I thought was really interesting was the Google Talk Linus gave in 2007 to Google Engineers:

https://www.youtube.com/watch?v=4XpnKHJAok8

Here he states anyone who likes any other revision control system is stupid and ugly. Which at first I thought was very condescending. But as he goes into the reason why, I felt that level of confidence is amazing. It is amazing how one person can completely focus on one thing, and then do it really well. 

Here are the main salient points he gives in his presentation that are crucial to how Git has changed how work is done:

1. Performance - Branching, merging, updating is done in milliseconds, rather than minutes/hours with any other revision control system. That is a game changer in regard to productivity and how we do work.

2. Distributed - Network of Trust - Two terms used in his presentation that are fundamental to Linus philosophy on life, and being able to create unique value to something we all care about and inherently do naturally in our day to day lives.

3. Sha1 Hash Function - I've used this encryption often, but hearing him discuss it really makes the information hit home.

---

Recently I've become a big fan of git. Specifically for showing minor differences between the code I've been working on. This is because I'm working on multiple projects with the same code base. And I have to test and simulate different environments and different versions quickly. To download git:

https://git-scm.com/downloads

I download a lot of software all the time, so if you plan to run git on windows. I recommend also downloading cygwin and winmerge. And then learn how to manage your command line environment variables. Specifically your PATH environment variable. I'm continuously changing it all the time for different software I'm running.

git init

Initialize a git repository of the current directory and sub-directory files

git status


Display the current modified files and new files that haven't been added to the git repository.