Sunday 30 March 2014

Post WDI - Node.js, Mocha, REPL, Dev Tools, Jade

Challenges
  • Node.js App 
  • Unable to view sub-directories after deploy to Heroku app:
    •  Tested - Procfile, Script Start (in Package.json), Foreman
  • Unable to remove error message that echos when running local Node.js server (tried creating a favicon.ico image and placing in main project directory, public folder, and the module folder indicated with no win)
    • Error: ENOENT, open '/Users/ ... / ... / <project_name> /portfolio/node_modules/express/node_modules/connect/node_modules/static-favicon/../public/favicon.ico'
  • Unable to overcome errors that appear when Testing in later Git Branch called 'Streams' (which includes pushes containing Express Module Sessions). Previous Branch without these Testing errors is 'Mongo', now cloned and progressing with 'Mocha2'. 
    • ~/Documents/ <project_directory>/ ✗ streams 
    • Error: Error setting TTL index on collection : sessions
    • TypeError: Object Error: Cannot determine state of server has no method 'isCompatible'
  • RIP Rohan Ramsay

  • Unit 5 - Phase 2 - Setting Priorities for Development - DONE
  • Unit 6 - Phase 3 - Concept Definition - DONE 
  • Unit 7 - Phase 4 - Product Dev & Feasibility Assessment - DONE 
  • Assignment 1 - DONE


Activities @ Lynda - 

Up and Running with Evernote for Mac - DONE

Node.js Essential Training with Joseph LeBlanc - DONE
  • Node.js(Modules, Require, Exports, Event Loops and Callbacks, Blocking vs Non-Blocking Environment, HTTP Module, RESTful, NPM Commands, Express Module and Framework,  Dependencies, Jade Templating Engine, Module Getters and Setters, Module Caching and Function Scopes, Reusable Modules with Module.Exports, Handling and Modifying Large Datasets with GET and PUT Requests Returning JSON, Creating Middleware to Modify HTTP Response Headers, Configuration for Unit Testing with Mocha, Should, and Supertest by Decoupling Seed Data and Server from App)
  • Node Package Manager (NPM)
  • Jade Templating Engine
  • Bootstrap 
  • Chrome Postman Plugin (HTTP Requests)
  • Unit Testing (Mocha, Should, Supertest)
  • Istanbul Code Coverage
  • Foreman (Heroku Deployment)
  • REPL (Read Eval Print Loop for interactive Node.js code debugging)
    • Created Custom REPL Gaining Control of App (Command-Line Interface interacting with Node.js App and Inspecting Data in Real-Time, Built Custom Prompt, GET and PUT Actions without HTTP Interface with Equiv. Results)
  • Optimise Module Cool!!
    • Handed Command-Line Arguments passed to Node.js App (Code Written to Accept Command-Line Args, Used Optimist to Return Data as an Object  with Properties and Values at the Cmd-Line instead of as an Array for easier Look-up)
  • Building Command-Line Tools 
    • Package.JSON Bin Scripts, Hashbangs in Server.js so Shell feeds whole Server.js with Node, NPM Link for symbolic link to path of project
  • Links

MongoDB via Mongoose Connection -  DONE
  • Node.js, MongoDB, npm install (save dependencies), Mongo Lab, Mongoose to create schema data for chainable queries, Postman (Chrome Extension), Querying collections in MongoDB database and handling responses, route handling, Jade framework to render template Views, Connect-Mongo middleware to tie Express sessions with MongoDB by parsing cookies 


Activities @ Book Reading

Javascript The Good Parts - DONE


Activities @ Code School

Discover DevTools - DONE


Activities - General
  • TeamTreehouse - Using (Use my basic account) MUST USE PERKS!!!
  • Amazon Web Services - Pending (Use Voucher by June 2014!)
  • General Assembly Courses - Pending (Use Vouchers)
  • Web Host - Pending (continue with Uber or change to Anchor?)

Events Upcoming
  • ATTENDed - ROROSyd Dev Hub - 6:30pm Tues 1 Apr 2014 (2 Market St Syd) 
  • ATTENDed - Codium - State Library of New South Wales, Macquarie Street
  • ATTENDed - M&G Prep Workshop with Tarun - 10am-1pm 12 Apr 2014 (Fishburners)
  • ATTENDed - M&G Graduates - 6:30-9pm 14 Apr 2014 (Mezzanine Level, 56-58 York St)
    • Business Card
Curiosity

    Sunday 23 March 2014

    WDI Progress Update - Final Project (Littlehumans), Brainstorming, Mock Interviews, Codium

    Challenges
    • Littlehumans (Medical App for Midwives and Parents of New Born Children)
      • Problems faced
        • Combined OAuth Login (Facebook, Twitter, Google) with Devise spend all day Saturday trying to get it to work in Production environment (managed to get Google, Facebook, and Twitter to work)
        • See 'About Us' page at the Littlehumans website for other challenges
    • Dancing at Karaoke!
    Progress @ General Assembly (GA)
    • Littlehumans Final Project
      • Heroku Link: Littlehumans App    
      • Tech Stack: View the 'About Us' page at the link above
      • Purpose: Midwife app for Midwives and Parents to track and share New Born Baby information and key Moments (input from my partner who is a professional midwife)
    • Sunday Javascript - with Daniel Tsui
      • Challenging Tests
      • Immediately Invoked Function (IIFE)
      • .Then
      • Hoisting
      • First Class Citizen
    • Javascript Ecosystem - Presentation by Je Turnbull
      • Multi-paradigm (MPM) and styles 
      • Automation and Task Runners
      • Package Management
      • JS Essential Knowledge and Tools
      • Front-end Job Questions
      • JS Testing
      • Scope and Closures
      • Recommended Books
    • Codium Group Project
      • Twitter Gem - Solved ability to scrape blog posts
    Curiosity

    Friday 21 March 2014

    WDI Progress Update - Data Structures, Recursion (Towers of Hanoi), Codium Group Project, RSpec, Twitter Gems, Secret Keys, Amazon Web Services

    Challenges
    • Problems fixed (lesson learnt: >4 hrs sleep required to RSpec effectively) 
      • RSpec refactoring (special attention!)- Thanks Taryn East
      • Activity Monitor & Which- Thanks Pranava Swaroop for tip on how to kill Mac tasks, and how to find which directory my Git was installed in 'which git'
      • Text navigation - Thanks Daniel Tsui for tip on how to navigate text quickly with ALT+Arrow

    Progress @ General Assembly (GA)
    • Computer Science (Data Structures {Queues, Stacks, Linked Lists {Nodes, Values, Pointers} }, LILO, FIFO, Random Access VS Binary Search) 
    • Codium Group Project
      • Gems Tested (Twitter Feed Scraper): 
        • Twitter Gem
        • Anemone Gem (Crawl, parse DOM, and harvest, but JS security issue without innerText)
      • Secret Keys Setup: Heroku, Devise, Twitter
      • Pry Debugging

    • Unit 3 - Organisational Strategy & NPD DONE
    • Unit 4 - Idea Generation IN PROGRESS - must finish on w/e before Final Project week

    Curiosity
    • Amazon Web Services - Thanks GA for Voucher! (must remember to use it by June 2014!)
    • SQL & Data Structures - Revise Engineering Notes! (eww..)
    • Anchor - may be the solution to my Rails and broader web hosting problems

    Tuesday 18 March 2014

    WDI Progress Update - Computer Science (Algorithms, Big O Notation), Codium

    Challenges
    • Problems fixed 
      • Merge Array Sort made most intriguing - Thanks Taryn East
      • Git refactoring of RSpec using Bash Terminal and Regular Expressions - Thanks Taryn East 
    • Final Project Brainstorming
      • Feature Implementation Wants (Pivotal Tracker Link):
        • Wireframe 
        • Sass
        • Web Sockets Server Live Broadcast
        • Stripe Payment System 
        • Google OAuth
        • Eventmachine
        • Carrierwave for File Attachments
        • SSL in Rails
        • W3C Accessibility Standards Features
        • Temporary Communications (not Permanency)
        • Visibility and Editability of Cookies, Privacy, and Security
        • Visible Live Annotations
      • Umby Racks Crowdsourcing App encouragement - Thanks Daniel Tsui

    Progress @ General Assembly (GA)
    • Computer Science (Algorithms Types & Choices {Search, Sort}, Big O Notation {Logarithms}, Benchmarking Tools {Binary VS Big O}, Rails Quick Sort, Factorials, Language Paradigms, Recursion, Fibonacci) 
    • Codium Group Project (Git refactoring of RSpec using Bash)
    • Gems (Ruby Prof, Simplecov)

    Friday 14 March 2014

    WDI Progress Update - Advanced Rails Caching, SASS, Websockets, Javascript Evolution & Frameworks, Group Project Implementation

    Challenges
    • Backbone.js and Burning Airlines - 6 hrs preparing Burning Airlines MVC for Flights on 13th Mar:
      • Problems fixed thanks to help from team in the morning:
        • Missing from app.js
          • Async call to fetch flight collection model and Router
        • Correction in FlightsController
          • 'respond_with @flights' instead of 'respond_with :json => @flights' to prevent embedded JSON
        • Removing JBuilder.json file that was merged after git pull from master, and caused only id and url to appear at URL /flights/flights.json (code previously pushed compiled successfully and listed flights)
        • Binding(this) to enable Search button functionality for on-click 
        • Debugging in Chrome Inspect Element using CMD+' to skip to next line of code for testing, and hovering over variables to show current value 
    • Pomodoro Time Management

    Progress @ General Assembly (GA)
    • Group Airline Project (Implementation)
      • Team: Marcus Hoile, Sam Peters, Alberto Forni, Luke Schoen
    • Javascript Evolution
      • JS Framework Types: 
        • Full-stack - Derby (real-time apps), Sails (like Rails), Meteor (new with potential security issues)
        • Front-end - Backbone.js, Marionette, Knockout, React, CanJS
        • Front-end + Datamining - Angular, Ember
        • Back-end frameworks, Websockets, 
        • Templating - Handlebars
        • Other: Batman, Express Polymer, Socketstream, Clojure
      • Websockets (Socket.io to manage HTML5 websockets, real-time control to sync broadcast changes without overhead HTTP)
      • Proxy Servers - NGrok
      • Separate Loading Templates - .jst.ejs and Global Namespaces
    • Caching in Rails
      • Client-side & Server-side (Page, Action, Fragment)
      • ActionPageCaching GEM
      • ActionPackCaching GEM
      • Rake Task Sweepers
      • SQL Query Caching
      • Memcache, Nullcache
    • SASS (Nested, Interpolating Content, Variables, Mixins, Cross-File Mixins, Inheritance, Pseudo Selectors, Asset Pipeline, Image-Path and Asset-Path for Production)
    • Presentation TankStream Labs
      • Key Takeaways:
        • Lifestyle & Work
          • Startup Org Fit Evaluation Essentials
          • Recording Skills
          • Cocurricular and Coding
        • Language Agility
          • Erlang, Haskell
        • Terminology & Tools
          • Strong Parameters
          • Async Processing and Delays (SidekiQ + Reddis)
          • Scheduling Processes (Cron + Whenever)
          • XML Parsing (Nokogiri)
          • PDF (Prawn, PDFQueue)
          • Debugging (Pry)
          • Uploading Files (Paperclip, Carrierwave)
          • Sublime GEMS (GEM Browser, Git Extensions)
          • JSON (JBuilder, JSON Serializers, Draper)
          • Image Resizing (LibXML image munging, Image Magic)
          • Communicate Validation in Natural Language (Chronic, Chronorails GEM)
    Purchases
    Events
    • Fisburners - Chat with Mark (Movie guru), met David (recommended Founders Institute), Dimitri, Jenny, and Matthews B'day

    Wednesday 12 March 2014

    WDI Progress Update - Group Project (Burning Airlines), Backbone.js, TDD, BDD, Node.js

    Progress @ General Assembly (GA)
    • Group Airline Project (Planning)
    • Backbone.js (JSON, Namespacing, View Event Management, Dynamic Underscore Templates, Prototypal Inheritance, View Extensions, MVC, InspectElement Testing, Memory Leaks, Zombie Events, Seperation of Concerns, Object Properties, Backbone View Element (EL) Property, Customising Backbone Element, Models (Getters, Setter Methods), Collections, Routers, Slugs, Rails and Node.js, jBuilder)
    • Test Driven Development (TDD) (Test Unit, RSpec, Mocha, Mini Test, Meta Programming, Unit Tests, Functional Tests, Integration Tests, TestHelper, params.to_yaml, Fake Devise Login)
    • Behaviour Driven Development (BDD)
    • Gems (Shoulda, Mocha, Turn, Simplecov)
    • Mailers
    • Polymorphic Joins/Associations (___ABLE, using Rails Console Testing)
    • Self Joins 
    • Security 
    • Presentation - Interview Process, Mock Interview, Elevator Pitches - Tarun Mookley, Tiffany McHugh
    • Presentation - Node.js - Vlad Filippov
      • Single Page Apps
      • JSON API's
      • Modules
      • Grunt, JSHint (Code Quality)
      • PhantomJS (Screenshots Progress)
      • CSS Preprocessors (Stylus)
    Events
    • Sydinmotion.com (Garrett IOS next Tuesday)
    • ROROSyd 11 Mar - Met Mark from Coogee, Mick (SysAdmin recommended SLUG Meetup, tail -f flow)
    • Sydney Linux Meetup Group (SLUG) SLUG Meetup - 6pm 28th Mar
    Purchases
    • TeamTreeHouse.com (Basic account)
    Curiosity
    • Sphero3D (toy)
    • Fitnesse (create rake feature in Gem)
    • Snapsearch.io
    • Dash Docsets, Dash Cheatsheets
    • Kitchen.ci for Chef
    • Vagrantup.com
    • Bash Books
    • NIEM
    • Startups
      • Fishburners
      • PushStart
      • StartMate
      • ATP
      • Muru D
      • River City Labs
      • Resource 88
      • Tank Stream Labs
      • TheHub
      • WeCo
      • York Butter Factory
    • Training: TeamTreeHouse, PluralSite

    Sunday 9 March 2014

    Intro to Startups - Umby Racks (YouTube Video and Landing Page) Launched!





    Community:
    Curiosity:

    Monday 3 March 2014

    WDI Progress Update - Can't be Weak this Week, Year Book Group Project

    Challenges:
    1. Deadlines!!
    2. Has_many :through (instead of HATBM) caused grief all day. Saved by Daniel Tsui

    Progress @ General Assembly (GA)
    • WDI Year Book (RSpec, OAuth, Has_many :through)
    • Meet and Greet - 6:30pm, 9th Apr 2014 

    • Business Bootcamp Entry Form and Pitch - Due 4pm Sun 9th Mar Sydney Time (i.e. Sun 9th Mar midnight EDST) - DONE
    Community:

    Saturday 1 March 2014

    WDI Progress Update - Presentations (Group Project)

    Challenges:
    1. Reading "Agile Development with Rails 4" this weekend
      • Core:
        • Unless, Until, If, While 
        • Pass Block as Named Parameter
        • Exceptions, Rescue
        • Instance Variables, Convenience Methods,
        • Public, Private, Protected Methods
        • Modules and Helper Methods
        • YAML, Marshalling Objects, Sessions
        • Ruby Idioms
        • File Relative Expand Path Method
        • Aliasing
      • Shopping Cart App
        • Preliminary Analysis
          • Incremental Development
          • Use Cases, Different Actors
          • Iteration Feedback
          • Page Flow for each Actor
          • Data Diagrams for App
        • Create App
          • Create Database for App Product Maintenance
          • Nested CSS matching each Controller
          • Git Ignore
        • Validation and Unit Testing
          • Validation before write to DB
          • Unit Test Models Test Infrastructure
          • MiniTest Unit Framework subclass TestCase
          • Rake Test Models
          • Test Fixtures and YAML Format
          • Associate based Stories for Fixture Names
          • Using Test DB vs Development DB
          • Up to Page 105 / 439
      • Ruby Quick Ref (Range, RegEx, FileIO, Var, Cmd Line, IRB, Operator uses, Control method uses, Invoking Methods, Defining Class/Methods/Modules, Access Restrictions, Accessors, Aliasing, Procs, Closures, Exception Catch/Throw/Raise/Rescue, MiniTest)
    Progress @ General Assembly (GA)
    • Group Project Presentations
      • Team #1 - Autism Connect Autismconnect.herokuapp.com (Sam Peters, Emily McCartney, Lauren Krueger, Luke Mesiti) - Key Takeaways
        • Gems: Geocoder, Googlemaps, Strap (payments similar to PayPal), 4em??, Pundit and Cancan (forums)
        • Authentication: OmniAuth (Google), Devise
        • Search: Polymorphic (finds anything with tags many to many)
        • Effects: Paralax (slide toggle left right)
        • Method: Staged implementation with Gems
      • Team #2 - Shared Expense Tracker Wdiexpense.herokuapp.com (Pranava Swaroop, Federico Tagliabue, Marcus Hoile) - Key Takeaways
        • Gems: AASM Management (management of workflow change status of groups/resources), Bootstrap Gem Fonts?
        • Future: Integrate with Whatsapp.com, share on Facebook timeline, Available offline (caching on mobile), Monetise with buying patterns, white label lnegotations, sell to property management firms
        • Method: Daily standups and end of day checkins, Git branching, dealing with Git conflicts merging, teamwork

    • Presentation - Gregory McIntyre, Yourtutor.com.au (Life as a Developer) - Key takeaways:
      • Agile Development - Pair Programming, Productivity and Independence, Conversations and Minutes, Values Visibility, Iron Triangle {Scope, Schedule, and Resources + Quality Centre} > No compromise for Quality, Risk Matrix mitigates to ALARP with Strategies, Burn Down Chart (Jellybean measurement), Kanban (pool model visualisation to minimise waste), Lumpy graph (steady flow rate to customers, resource match issues if lumpy progress), Feedback iterative loop (Assess, Agree, Execute) impacted by Scope changes, Poker Estimation (fold over cards and argue to check assumptions and avoid diminishing returns), Card Walls (Agile workspaces, Post-its easy to track, hard avoid responsibility, issue in distributed teams)
      • Agile Ideals - Deliver something of value everyday
      • TDD - Refactor, Fail, Pass, Repeat
      • BDD - Cust. Feedback Driven, TDD is embedded circles within BDD
      • Continuous Integration and Deployment
      • Latest News: Ruby Weekly, Javascript Daily, Postgres Weekly (signed-up)
    Curiosity: