LearningLite

=Author= aboutAuthor

Keyboard

 * Microsoft wired 600
 * Dell KB212


 * Scissor Switch
 * A4Tech WK-520
 * 双飞燕 KV-300 超薄剪刀脚巧克力键盘 Isolation keyboard KV-300H click
 * 双飞燕 9500F 无线键鼠套装 超薄 剪刀脚
 * HP K3500 / HP K5510
 * HP Wireless Elite RK713A
 * LXH-JME7597P / JME-7597P
 * 优派 KU856 苹果版USB 超薄 剪刀脚 巧克力键盘

Tech Reviews

 * 10 Breakthrough Technologies of 2015 click

Keyboard Types
Refer to click
 * Mechanical switch
 * Volcano ? switch
 * Scissor switch

Fonts

 * programming fonts click

=Non Technical Skills=

DevOps

 * Understanding of DevOps click part1

=Mathematics=
 * Start reading book-list
 * khan academy click
 * Math Open Reference mathopenref dot com
 * Math Teachers mathstecher dot com inspected by Australian author G S Rehill.
 * Wikihow:Geometry click

=Science=
 * General Physics click

Refreshment Reading

 * Free book list click
 * Halliday, Fundamentals of Physics, 10e
 * Fundamentals of Physics, 9e, by David Halliday, Robert Resnick and Jearl Walker

=Tech Trend=
 * 5 things Java developer should do click
 * Cloud programming which vendors

=Languages=

Java

 * Java Language Learning Notes - for novice - TBD
 * Java Development Notes - for experienced - TBD

Books

 * Learning Java 4th read online
 * Effective Java, 2nd, 2008
 * Thinking in Java 3rd Edition 4th Edition

JPA

 * JPA Lite

DAO

 * Core J2EE Patterns - Data Access Object
 * Data Access Object (DAO) versus Object Relational Mapping (ORM)
 * DAO vs ORM(hibernate) pattern
 * greenDAO
 * stormGen

ORM

 * ORM Note
 * OrmLite
 * Benefits of ORM vs DAO?

TDD

 * http://www.manning.com/koskela/

XML

 * XPath zvon
 * XPath tester extendsclass


 * xmlbean

axis2

 * wsdl2java
 * xsd2java
 * Separated files for each data type and data row;
 * Generate parse method too.

xjc

 * Entitle result are in one Java file;
 * No found parse method.

HTML

 * http://jsoup.org/apidocs/

HTTP Calls
HTTP Calls

Python

 * Python Learning Note
 * Python Regular Expression online
 * Python Template Engine
 * Mako www.makotemplates.org
 * Jinja2
 * Django


 * Books
 * http://en.wikibooks.org/wiki/Python_Programming
 * Test-Driven Development with Python read online
 * Call by Sharing http://learntofish.wordpress.com/2012/01/09/call-by-object-reference-call-by-sharing/
 * Patterns youtube
 * Unit Testing with Python https://docs.python.org/2/library/unittest.html
 * Office Automation
 * xlrd xlwt
 * openpyxl docs Xlsx Learning Note
 * python-docx
 * Check Yourself http://www.questionscompiled.com/python-interview-questions.html
 * python-all python-programming
 * handout

Swift

 * Swift Learning Note
 * learn swift tips click
 * free books learn swift
 * xcode tutorial click
 * The Swift Programming Language - Swift 2.2 click
 * Start Developing iOS Apps (Swift) click
 * UI Testing
 * XCode UI test example click
 * UI Testing in Xcode 7 click
 * UI Testing Cheat Sheet and Examples click
 * Frank has long been abandoned
 * KIF breaks with every major iOS revision
 * Subliminal can’t be run reliably from the command line
 * UIAutomation is written in JavaScript and clunky
 * WWDC2015 click

Ruby

 * source


 * ruby 1.9

Books

 * Learning Scala read online

Perl

 * LearningPerlLite

Ftp
USER liam2 ******   CD /mysupermarket PWD BIN PUT pub.tar.gz   QUIT

ftp -n -s:ftpscript.txt ftp.your-domain.com

Environment

 * http://rubyinstaller.org/downloads/

Variable Names
Local Variable: name fish_and_chips x_axis thx1138 _x _26 Instance Variable: @name @point_1 @X @_ @plan9 Class Variable: @@total @@symtab @@N @@x_pos @@SINGLE Global Variable: $debug $CUSTOMER $_ $plan9 $Global Class Name: String ActiveRecord MyClass Constant Name: FEET_PER_MILE DEBUG

Directory Structure
See the following example from http://guides.rubygems.org/what-is-a-gem/

% tree freewill freewill/ ├── bin/ │  └── freewill ├── lib/ │  └── freewill.rb    ├── test/ │  └── test_freewill.rb    ├── README ├── Rakefile └── freewill.gemspec

API

 * Open XML SDK 2.5 for Office click
 * Excel http://msdn.microsoft.com/EN-US/library/office/documentformat.openxml.packaging.workbookpart_members(v=office.15).aspx

Coding
Further learning and reading C# Learning Note
 * naming click

Mandarin

 * http://www.wikihow.com/Learn-Mandarin-Chinese
 * http://www.chinese-tools.com/learn/chinese

Phonetic/4 Tones

 * First tone, flat tone;
 * Second tone, rising tone;
 * Third tone, dipping tone;
 * Fourth tone, lowering tone.

=General Development=

Design
"Look before you leap". It is cheaper to change your mind while you are planning something than after it is half built.
 * Why Design?


 * Design Language - UML


 * UML Tools
 * Plantuml
 * yEd
 * UMLet

Principles

 * 1) Encapsulation
 * 2) Abstraction
 * 3) Inheritance
 * 4) Polymorphism

Continue reading at object oriented programming learning note; alternative reading at The End Of Object Inheritance & The Beginning Of A New Modularity, Google 2013.

Design Patterns

 * Observer Pattern
 * Factory Pattern
 * Simple Factory Pattern
 * Abstract Factory Pattern
 * Singleton Pattern
 * Command Pattern
 * Adapter Pattern


 * Design Pattern Learning Note
 * Service Oriented Service Learning Note

Data Structure

 * DataStructureNote

Complexity

 * Analysis of algorithms click
 * Logarithm click

Books

 * Introduction to Algorithms, 3rd $74

O(n^2)
Continue reading at algorithm learning note.
 * 1) Insertion Sort
 * 2) Bubble Sort
 * 3) Selection Sort
 * 4) Shell sort
 * 5) Merge sort
 * 6) Quick sort O(n^2)
 * 7) Heap sort O(n logn)
 * 8) Bin sort
 * 9) Radix sort

Web Technologies

 * Free books
 * High Performance Browser Networking click

Web UI Develop Tools

 * AppFlower wikipedia RAD wikipedia


 * Hosting
 * www.freewebsitehosting.com.au "Powered by webpedia"
 * www.freehosting.com $0
 * www.hostpapa.com.au
 * www.crazydomains.com.au
 * au.godaddy.com


 * Domainnames
 * Crazydomains


 * Template
 * TemplateMonster free template

Google
previous known as Android Cloud to Device Messaging Framework
 * Google Cloud Messaging for Android https://developer.android.com/google/gcm/index.html

CMS

 * dotCmsNote

CSS3

 * odd even row

Browser Based

 * Greasemonkey / Chrome Tampermonkey

Webservice Development

 * Webservice Note
 * REST Note

Web Base Platform Development

 * Open Government - as a Platform read online

Software Engineering

 * System Development Life Cycle Learning Note

ER

 * BCNF/3NF

SQL

 * formatter http://www.dpriver.com/pp/sqlformat.htm

MySQL

 * Startup sudo ./mysqld_safe
 * Full text search

Function

 * replace

Oracle Express Edition

 * Change SQL*Plus to English (i18n):

start sql*plus
sqlplus.exe /nolog connect system

NoSQL

 * Java and NoSQL developerworks ossdb4j

Books

 * Git Pocket Guide read online
 * or Apress - Pro Git
 * git tower - read online

Remove Committed Object

 * Remove file from git history click

Costs and benefits
Refer to wikipedia
 * Integration bugs are detected early and are easy to track down due to small change sets.
 * Avoids last-minute chaos at release dates, when everyone tries to check in their slightly incompatible versions
 * Only a small number of changes are lost when reverting the code base to a bug-free state
 * Constant availability of a "current" build for testing, demo, or release purposes
 * Frequent code check-in pushes developers to create modular, less complex code.
 * Enforces discipline of frequent automated testing
 * Immediate feedback on system-wide impact of local changes
 * Metrics generated from automated testing and CI, focus developers on developing functional, quality code

CI Tools

 * Jenkins Learning Note
 * Rally Learning Note

Maven
Maven Note

Gradle

 * Gradle user guide click

Mobile

 * React Native click

Android

 * AndroidNote
 * HTTP AndroidHttpClient DefaultHttpClient
 * sudo apt-get install ia32-libs
 * Google Service apk mirror install google service

Tools

 * adb
 * logcat
 * ANR Keeping Your App Responsive
 * Apktools click download
 * Android Deobfuscator android-cracking simplify
 * aapt
 * check apk badging 'aapt dump badging your-name.apk'

Hybrid Development

 * PhoneGapLite

UI and Layout

 * Custom and compound Views click

Bluetooth

 * 1)  Bluetooth Permissions
 * 2) Setting Up Bluetooth
 * 3) Finding Devices
 * 4) Querying paired devices
 * 5) Discovering devices
 * 6) Connecting Devices
 * 7) Connecting as a server
 * 8) Connecting as a client
 * 9) Managing a Connection
 * 10) Working with Profiles
 * 11) Vendor-specific AT commands
 * 12) Health Device Profile

Unit Testing

 * gradle cAT http://developer.android.com/training/testing/unit-testing/index.html
 * http://developer.android.com/training/testing/start/index.html#run-local-tests

Topics

 * Play an audio clip onto an ongoing call
 * Android and Gmail 2-step-verification
 * UI as service
 * XmlPullParser - xml setting programmatically click
 * json2view github
 * apktools github.io

Arduino

 * Dobot kickstarter click

Misc Tools
brew install -v --fresh automake autoconf libtool wget libimobiledevice brew install --HEAD ideviceinstaller

Compile
codebuild -scheme TattsBet clean build -configuration Debug -sdk iphoneos8.4 SYMROOT=bin OBJROOT=bin ideviceinstaller -i CompanyName.com.app

Refer to iOS build command

Folders
~/Library/Developer/Xcode/DerivedData ~/Library/Developer/Xcode/Archives ~/Library/Developer/Xcode/iOS DeviceSupport ~/Library/Developer/CoreSimulator ~/Library/Caches/com.apple.dt.Xcode ~/Library/Application Support/MobileSync/Backup

Refer to free-up mac

Agile

 * Agile vs Waterfall picture

Terms

 * Stand-up: achieved, plan and obstacle, 5~15 mins;
 * Iterative Plan Meeting / Introspective
 * Retrospective (Latin: look back);
 * Showcase
 * Backlog
 * Burndown

Principle
Deliver working software frequently. Satisfy the customer through early and continuous delivery of valuable software.

Delivery working software every week:
 * 1) Breaking big problems down into smaller ones;
 * 2) Focus on the really important stuff and forget everything else;
 * 3) Make sure that what you are delivering works;
 * 4) Looking for feedback;
 * 5) Change course when necessary;
 * 6) Become accountable.

Three Simple Truths

 * 1) It is impossible to gather all the requirements at the beginning of a project.
 * 2) Whatever requirements you do gather are guaranteed to change.
 * 3) There will always be more to do than time and money will allow.

Features

 * Task Board (to-do, in progress, (ready for test, )done);
 * CRC card (Class, Responsibilities and Collaborators);
 * on top of the card, the class name
 * on the left, the responsibilities of the class
 * on the right, the classes with which this class interacts to fulfill its responsibilities.
 * daily stand up meetings
 * Collective code ownership and freedom to change.
 * Incremental approach
 * user stories are incrementally implemented
 * Automation
 * TDD -- Test Driven Development, Continuous Integration, regular code reviews, pair programming, automated builds, continuous deployment and delivery, etc.
 * Customer focused
 * Internal and external users and business analysts are your immediate customers
 * Design must be simple. (Designing is an ongoing activity with constant re-factoring to achieve the rules of code simplicity like no duplication, verified by automated tests, separation of responsibilities, and minimum number of classes, methods, and lines.)

Tools

 * http://xmlgrid.net/xml2xsd.html

SOAP

 * wsdl2java http://cxf.apache.org/docs/wsdl-to-java.html
 * Jira soap docs
 * JAX-WS
 * soap-ui generate source code axis2
 * ATDW v8.0 June 2010
 * XML Formater http://www.freeformatter.com/xml-formatter.html

Sand Box

 * http://www.webservicex.net/country.asmx?WSDL
 * http://www.w3schools.com/webservices/tempconvert.asmx

REST

 * Roy Fielding's RESTful REST vs RPC
 * JAX-RS JaxRsNote
 * Jersey click
 * REST with Java (JAX-RS) using Jersey click
 * RESTful Web Services Developer's Guide click
 * wadl2java
 * ATDW/ATLAS
 * [pge, size, st, ...]
 * Doclet
 * SpringDoclet wsdoc
 * RESTdoclet
 * Netbeans WadlVisualDesigner

REST for Jira

 * Jira REST APIs click
 * Jira REST API Tutorials click
 * creating an issue using project ids and issue type ids click
 * Jira REST Java Client click

Web Services

 * http://www.ga.gov.au/products-services/data-applications/web-services.html

Payments

 * Westpac PayWay
 * qvalent
 * Commbank merchant-services

=IDE and Tools=

Keymap

 * File->Settings->IDE Settings->KeyMap
 * Show Intention Action alt+enter => ctrl+1
 * Reformat Code ctrl+alt+l => ctrl+shift+f

idea.properties
auto.show.quick.doc=true
 * Mouseover show javadoc

Merge Tools

 * DiffMerge - Freeware
 * Meld

=Topics=

General

 * name generation click

Security

 * Origin map click

=Fundamentals=

=Appendix=
 * Briss - Crop Pdf for e reader click
 * Best Learning Books click
 * Microsoft Press 300 free books click
 * 10 Steps to become a Senior Software Engineer click