- Code Complete (2nd edition) by Steve McConnell
- The Pragmatic Programmer
- Structure and Interpretation of Computer Programs
- The C Programming Language by Kernighan and Ritchie
- Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
- Design Patterns by the Gang of Four
- Refactoring: Improving the Design of Existing Code
- The Mythical Man Month
Brief notes on Meteor for CS 294-101. Many of the key architectural ideas in Meteor are described at https://www.meteor.com/projects.
-
BSD as example of great system design. Application primitives: processes run by a scheduler, sockets, sys calls, virtual memory, mbufs. What makes something a platform. Unix vs Multics.
-
History of application architectures. Mainframes (e.g. IBM 360 / 3270), client-server (e.g. Win32), web (e.g. LAMP), cloud-client. Oscillation of where the software runs. Thin vs thick clients, data vs presentation on the wire. Changes driven by massive forces (cheap CPUs, ubiquitous internet, mobile). New architecture for each era.
-
What it takes to make modern UI/UX. Mobile. Live updating. Collaboration. No refresh button. All drive the need for “realtime” or “reactive” system. Very different from HTTP era.
-
Four questions: 1 — how do we move data around; 2 — where does it come from; 3 — where do we put it; 4 — how do we use it?
These are the Kickstarter Engineering and Data role definitions for both teams.
# Use Python 3 for easy unicode | |
$ virtualenv -p python3 .env | |
$ source .env/bin/activate | |
$ pip install django | |
$ deactivate | |
# Start new django project and app | |
$ django-admin.py startproject mysite | |
$ ./manage.py migrate | |
$ ./manage.py createsuperuser |
// Bonfire: Factorialize a Number | |
// Author: @v3rse | |
// Challenge: http://www.freecodecamp.com/challenges/bonfire-factorialize-a-number?solution=function%20factorialize(num)%20%7B%0A%20%20if(num%20%3D%3D%3D%200)%7B%0A%20%20%20%20return%201%3B%0A%20%20%7D%0A%20%20for(var%20i%3Dnum-1%3B%20i%20%3E%200%3B%20i--)%7B%0A%20%20%20%20console.log(num%2B%22x%22%2Bi)%3B%0A%20%20%20%20num%3Dnum*i%3B%0A%20%20%7D%0A%20%20return%20num%3B%0A%7D%0A%0Afactorialize(5)%3B%0A | |
// Learn to Code at Free Code Camp (www.freecodecamp.com) | |
function factorialize(num) { | |
if(num === 0){ | |
return 1; | |
} | |
for(var i=num-1; i > 0; i--){ |
// Bonfire: Check for Palindromes | |
// Author: @v3rse | |
// Challenge: http://www.freecodecamp.com/challenges/bonfire-check-for-palindromes?solution=function%20palindrome(str)%20%7B%0A%20%20%2F%2Fto%20lowercase%0A%20%20str%20%3D%20str.toLowerCase()%3B%0A%20%20%2F%2Fremove%20punctuations%0A%20%20str%20%3D%20str.replace(%2F%5B.%3F!%2C%5Cs~%7B%7D()%3A%3B%5C-_%5C%2F%5C%5C%5D%2Fgi%2C%27%27)%3B%0A%20%20%2F%2Freverse%0A%20%20var%20reverse%20%3D%20str.split(%27%27).reverse().join(%27%27)%3B%0A%20%20%0A%20%20console.log(str%2B%22%20and%20%22%2Breverse)%3B%0A%20%20%0A%20%20%2F%2Fif%20doesn%27t%20work%20backwards%0A%20%20if(str%20!%3D%3D%20reverse)%7B%0A%20%20%20%20return%20false%3B%0A%20%20%7D%0A%20%20return%20true%3B%0A%7D%0A%0A%0A%0Apalindrome(%220_0%20(%3A%20%2F-%5C%20%3A)%200-0%22)%3B%0A | |
// Learn to Code at Free Code Camp (www.freecodecamp.com) | |
function palindrome(str) { | |
//to lowercase | |
str = str.toLowerCase(); | |
//remove punctuations | |
str = str.replace(/[.?!,\s~{}():;\-_\/\\]/gi,''); |
// Bonfire: Find the Longest Word in a String | |
// Author: @v3rse | |
// Challenge: http://www.freecodecamp.com/challenges/bonfire-find-the-longest-word-in-a-string?solution=function%20findLongestWord(str)%20%7B%0A%20%20%2F%2Fs%5Blit%20the%20string%0A%20%20var%20strArray%20%3D%20str.split(%22%20%22)%3B%0A%20%20%0A%20%20%2F%2Ffind%20the%20longest%20word%20in%20the%20array%0A%20%20strArray.sort(function%20(a%2Cb)%20%7B%0A%20%20%20%20if(a.length%20%3C%20b.length)%7B%2F%2Fif%20a%20is%20shorter%20move%20b%20down%0A%20%20%20%20%20%20return%201%3B%0A%20%20%20%20%7Delse%20if(a.length%20%3E%20b.length)%7B%2F%2Fif%20b%20shorer%20move%20a%20down%0A%20%20%20%20%20%20return%20-1%3B%0A%20%20%20%20%7Delse%7B%0A%20%20%20%20%20%20return%200%3B%0A%20%20%20%20%7D%0A%20%20%7D)%3B%0A%20%20console.log(strArray)%3B%0A%20%20return%20strArray%5B0%5D.length%3B%0A%7D%0A%0AfindLongestWord(%22The%20quick%20brown%20fox%20jumped%20over%20the%20lazy%20dog%22)%3B%0A | |
// Learn to Code at Free Code Camp (www.freecodecamp.com) | |
function findLongestWor |