Thursday, 30 January 2014

WDI Progress Update - Rails, REST, Shallow Nesting Routes, Helpers, Route Control, reInteractive Presentation


  1. Extra credit homework to finish music website
  2. Finally worked out hurdle of shallow nesting multiple routes!
Progress @ General Assembly (GA):
  • Rails (Rendering Action/Template Alternate Layouts, Rails CRUD implementation of stateless Representational State Transfer REST for short-form Routing versus non-CRUD architecture i.e. SOAP, Rails Rake Routes Helpers, Shallow Nesting of Restful Routes, Class 'Before Actions', Private versus Public Actions, PageController Route catch-all for dynamic page errors, Static Pages, Destroy Controller, Video tags)
  • Ruby (Faker gem)
  • reInteractive Presentation on Ruby Communities by Mikel Lindsaar 
    • Key tips shown in Reading List and Community Contribution sections below

Reading List (Monthly Min. Targets):

Contributions to Developer Community (by end 2014)
 Future Contributions (beyond 2014)

Wednesday, 29 January 2014

WDI Progress Update - Scaffold Migration in Rails


  1. Homework!!! (et al)
Progress @ General Assembly (GA)
  • Rails (Data Retention of Up/Down Migration, Verbose 'Say' Benchmarking, Rake specific versions, Multiple rollbacks, Rails Environment (Dev, Test, Production), Scaffold migration generation, Convention over Configuration, Rendering (View Actions, Arbitrary Files, Layout Overrides, Authorisations, Layout Scope Control, Absolute and Relative Paths), Refactoring block manipulation with Shared Partials and Collections, Flash Alerts and Notices, Rails Tooltips


WDI Progress Update - Manual Migrations in Rails

Progress @ General Assembly (GA)
  • Rails Key Definitions (based on personally reviewing unfamiliar keywords contained in all main Rails version 4.0.2 files/folders including Gemfile, and the Initialiser and Public folders that are generated after running 'new blog_app --database=postgresql', and summarising their definitions briefly in my own words and listing them in alphabetical order after a quick Google search, for fast-track Rails learning purposes). Accuracy in the definitions is not guaranteed (feedback welcomed!)
    • ActiveRecord Database - Postgresql
    • Action Mailer - emails from app using mailer classes/views
    • Action Model - non-database (db) functionality of ActiveRecord plus validations in tableless models
    • Action Pack - handles Controller and View layers in Rails
    • Active Support - toolkit of Rails classes that are usable in Ruby environment
    • Arel - simplifies SQL queries (it is an SQL AST manager)
    • Atomic - accessor class for values and methods to control block updates (optionally with exceptions)
    • BacktraceCleaner - includes filters and silencers to remove noisy lines of code and included in Initialisers directory
    • bcrypt - password hashing algorithm
    • builder - simplifies creating structured data in XML
    • Capistrano - deploys Rails app to production server from Git 
    • CoffeeScript - JS Coffee (assets/views)
    • Deprecated - software features that should be avoided (as typically superceded) but remain for backward compatibility to allow developers to adjust to new standard
    • Error 404 / 422 / 500 - web page not exist / change rejected (validation) / internal server error, - located in the Public folder 
    • Erubis - template system of Embedded Ruby in text documents (i.e. HTML)
    • ExecJS - enables JS code from Ruby
    • hike - Ruby library for finding files in a set of paths
    • i18n - internationalisation support that collects locale data
    • Inflections - set of singularisation and pluralisation rules for Ruby/Rails apps, located in Initialisers folder
    • jBuilder template engine Domain Specific Language (DSL) for generating JSON response (API builder) 
    • jQuery - JS library
    • JSON - Javascript Object Notation (JSON) is a lightweight data interchange format 
    • MiniTest - Ruby testing framework/facilities supporting TDD, BDD, mocking, and benchmarking (compared to RSpec which is a testing DSL)
    • MultiJSON - common interface to multiple JSON libraries
    • Parameters wrapper - wraps JSON files with Action Controller, located in Initialisers folder
    • Polyglot - library that allows Ruby module to register a loader for file extension types and augments 'require' to find and load matching files
    • Rack - modular and adaptable Ruby web server interface that wraps HTTP requests/responses across middleware in a single method call 
    • Railtie - major components of Rails (i.e. Action Mailer, Action Controller, Action View, Action Record)
    • robots - web crawlers/spiders (indexers), located in the Public folder
    • Sass - Systactically Awesome Style Sheets (Sass) is a CSS3 extension (with nested rules, variables, mixins, selector inheritance, etc)
    • SCSS - Sassy CSS (SCSS) is a CSS3 extension syntax based on and implemented with JS, with dynamic behaviour (i.e. variables, mixins, operations, functions) on either server or client-side
    • SDoc - Ruby on Rails (ROR) API documentation
    • Secret Token - verifies integrity of signed cookies, located in Initialisers folder
    • sprockets - Rack-based asset packaging system that concatenates and serves JS, CoffeeScript, CSS, LESS, Sass, and SCSS languages
    • TheRubyRacer - JS (call and manipulate from Ruby)
    • Thor - scripting framework that replaces Rake, Sake, Rubigen (command line option parsing in Ruby)
    • threadSafe - Rails app development with Ruby requests (controller, SQL, render, response) and optimal Ruby environment methods allowing switching threads (i.e. CPU in use, or CPU waiting idle) with sharing of states stored and locks, using one environment hash per request 
    • tilt - generic interface to create multiple Ruby templates with file, line, and options specified
    • Treetop - Ruby parsing and interpretation DSL based on Parsing Expression Grammars (PEGs) and analysing syntax. It defines methods on trees that it constructs automatically (Syntax-Oriented Programming)
    • Turbolinks - JS & CSS (is faster, as when its compiling, it replaces only the body/head between page changes, and does not recompile JS/CSS, memory management recommended)
    • TZinfo - Ruby Timezone library (i.e. with daylight savings, etc)
    • Uglifier - Javascript (JS) asset compressor
    • Unicorn - HTTP web server for Rack apps
    • YAML - Yet Another Markup Language (YAML) format
  • Rails (CRUD app setup, Controllers, Rake Routes, Database Migrations, Partials, Semantic URLs with Nested Routes)

Sunday, 26 January 2014

WDI Progress Update - Ruby, Sinatra, ActiveRecord, Sinatra, PostGreSQL, Rails MVC


  1. Validations, SMTP
  2. Homework bugs!!! 
  3. Data Validation with ActiveRecord
Progress @ General Assembly (GA)
  • Sublime Text 2 (Shift-CMD-R align multiple text lines, CMD+? to comment multiple lines)
  • Ruby (Object Relationship Mapping ORM)
  • Rails (Model View Controller MVC architecture, Deployment to Production using Heroku with GemFile, Scaffolding with database rake migration entire CRUD apps)
  • Ruby Gems - (ActiveRecord, ActiveRecord Associations, HATM, Callbacks, PostGreSQL, Validations, Bundler for deployment)
  • SQL (PostGres app, commands, tables, joins, foreign keys, CRUD)
  • Tapestry Presentation on Front-End Development by Phil Reither
Progress @ Intro to Startup Entrepeneurship
  • Unit 1 finished on 27th Jan !! Next steps: 
    • Unit 1 - Lesson 7 Independent study activities, participate in online forum, create app based on learnings
    • Unit 2 - UX, can't wait to start!!
  • Attended meetup Startup Sydney on 23rd Jan @GA
  • Tank Stream Labs (startup community)
  • Behavioural retargeting
  • Gamification
  • RescueTime
  • StrongLoop
  • Grails
  • Universal design principles (accessibility): Haptics, Tactus, Web Content Accessibility Guidelines
  • The World is Flat, Thomas Friedman
  • Trends API
  • CSS animations
  • WebGL
  • WebM format
  • Paralax
  • (compatibility checker)
  • (IOS Prototypes, Wireframing)
  • Railcasts
Off Topic:
  • Magna Carta

Sunday, 19 January 2014

Sunday session

Progress @ Intro to Startup Entrepeneurship
  • Unit 1: Finding a Killer Startup Idea --> Completed Unit 1 Lessons 1-5 
  • Attending Sydney on Rails Sunday Coder Club today 1-5pm

Saturday, 18 January 2014

WDI Progress Update - Ruby, Sinatra, FileUtils, HTTParty, HTML5, CSS3

  1. Ruby Koans
  2. Pony gem (SMTP)
  3. Error handling
  4. GA Pre-work
  6. ice Tree
  7. Wordpress
  8. Heroku
  9. Evernote
  10. Meta programming (multmaker) 
  11. Ruby Warrior
  12. VIM commands
  13. Stackoverflow
  14. Github
  15. Google Adsense
  16. DevOps
  17. Project Euler problems
Progress @ General Assembly (GA)
  • Installfest
  • Github Homebrew Package Manager 
  • Sublime Text 2 (shortcuts, binding)
  • Ruby (embedded Ruby files, Ruby API's, data types, conditionals, loops, arrays, hashes, methods, classes, inheritance, exceptions, objects, aliasing, interactive Ruby shell, pry debugging, enumerables, blocks, procs, lambdas, server-side scripts, file and IO classes, file utilities, file pointers, closures, caching, set theory, handling CSV files, handling JSON, HTTP verbs and errors, curl, Sinatra gem and reloader, cat, stash, preferential execution with File__ == $0)
  • Ruby Gems - HTTParty, FileUtils, Sinatra app and reloader
  • Ruby Modules - YahooFinance
  • API's - OMDb
  • HTML5 (form fields, responsive)
  • CSS (stylesheet use options [import, inline, header], separation of concerns, cascading, descendants, selectors, blocks, properties, fonts, semantic classes, ID's, reset stylesheets, tags, Twitter Bootstrap, incompatibilities reset stylesheets, anchors, spans, blocks, inline, wildcards, link states, pseudo class selectors, positioning, DRY principle)
  • Apple Macbook Pro usage
  • Signed up to attend Ruby Conference Australia (Feb 2014) 
  • Attended meetup Ruby on Rails Oceana  (ROROSyd)
Future Wants:
  • UX @ GA 
  • UX tools 
  • Volunteer at GA or Fishburners 
  • Attend Sydney Business Angels, Sydney Tech meetups
  • Attend a Rails Camp @railscamp_au 
  • Continue attending Sydney Mobile Developers, and ROROSyd meetups 
  • Continue Adobe Creative Suite usage
  • Continue Lynda training
  • Installfest Ubuntu
  • Apply MBT learnings
  • Books: Agile Web Development with Rails
  • Apiary, DEP, Audited/PaperTrail, Activerecord gems - (ROROSyd)
  • Bundler, Travis CI - (ROROSyd)
  • Erlang VM, Elixir, Openresty, Heckle and RSpec
  • Concurrency and immutability in languages

Monday, 6 January 2014

WDI Commences - Team

General Assembly Web Development Immersive (WDI) Sydney team January 2014

  • Riley Batchelor
  • Jenny Jiang
  • Taryn East
  • Daniel Tsui
  • Tiffany McHugh
  • Tarun Mookhey
  • Alberto Forni
  • Eduard Fastovski
  • Emily McCartney
  • Federico Tagliabue
  • Lauren Krueger
  • Luke Mesiti
  • Luke Schoen
  • Marcus Hoile
  • Nick Morgan
  • Pranava Swaroop
  • Sam Peters
Temporary Students:
  • Adam Richards
  • Daniel Georgatos