Tuesday, October 29, 2013

Cloud Stuff



Free hosting
http://www.windowsazure.com/en-us/develop/net/aspnet/?WT.mc_id=A5A71FF5F

AWS Services

EC2
S3
RDS
SNS
SQS


Monday, October 28, 2013

ASP.NET MVC



Best Practice

  • Put validation logic to "view model" instead of your business model - Link
  • Automapper improve productivity but slow, use with care
  • Entity Framework Patterns - Link1 Link2

Security tips for security (ref link )
  1. Anti-Forgery-Token (attribute) on the login page
  2. Slow all authentication attempts down by at least a second (makes brute force impractical)
  3. Implement an account lock out procedure on n amounts of invalid logons
  4. Always use a generic error message on your failed logins to prevent hackers knowing which part of a login is wrong
  5. Always encrypt your passwords in the db with a salt, the salt should be per user to prevent a rainbow attack on a stolen database
  6. Always make sure that any data displayed or retrieved is valid for that user
  7. Always use parameterised sql
  8. Try and obfuscate the ids passed around in your urls and views to prevent modification or an attempt at a direct reference attack
Components
  • Elmah
  • Glimpse
  • Ninject (https://github.com/ninject/ninject/wiki/_pages)
  • WebMatrix - SimpleMembershipProvider
  • WebActivator
  • OAuth
  • EntityFramework
  • Javascript Libs
    • JQuery UI
    • Kendo UI
    • http://www.nuget.org/packages/Google.DiffMatchPatch.Js/
    • Knockout
    • Backbone 
  • Bundle
Concepts
  • Routing
  • ViewModel
  • Validation
  • Model Binder
  • Bundle
  • Partial View
  • Child Action
  • Filter
  • View Engine
  • Controller Factory
  •  

Questions and Answers













Thursday, October 24, 2013

Some guys


Great developers
http://www.andyhawthorne.co.uk/about/


6 Steps

To learn a programming language or a technology, I can follow the 6 steps:

  1. Architecture
  2. Dev Environment Setup and Sample Projects
  3. Basic Features
  4. Advance Features
  5. Tools, Books, Videos
  6. Real world Projects (Learning by doing)
The 6 things or steps to become an effective developer.

Saturday, October 19, 2013

Job Interviews


Questions

All Technical Interviews
http://www.indiabix.com/technical/interview-questions-and-answers/
http://www.pcds.co.in/

Generic Programming Skills
  • Client side performance improvement
  • OOP and OOAD
  • CSS inline width and hight
  • ER diagram
  • UML diagram
  • Design API
  • Patterns

Project Related
  • Git - difference between pull and rebase




Generic Front-end
  • Mobile 300ms delay - Solution
  • HTTP Status Code
  • HTTP Methods

ASP.NET MVC
  1. MVC globalization, and differences with traditional ASP.NET
*JavaScript

Javascript OO Features
  • Backbone.js
  • Angular.js
  • Knockout.js

Database

Non-Technical Questions:
  • Talk about yourself.
  • What are things you don't like to be a front-end developer.
  • What's your weakness?
  • Why do you leave your company?

Job Sites and Resources
  • SEEK
  • CareerOne
 

DBA - MS SQL Server


Become The DBA
http://www.johnsansom.com/how-to-become-a-sql-server-dba/
http://www.idevelopment.info/

Database Documents
MySQL - http://dev.mysql.com/doc/index-topic.html
SQL Server - http://www.microsoft.com/en-us/sqlserver/default.aspx
Oracle Database - http://www.oracle.com/us/products/database/overview/index.html

DBA
http://www.mssqltips.com/sql-server-tip-category/53/dba-best-practices/
[SQL Job] http://www.mssqltips.com/sqlservertip/2561/querying-sql-server-agent-job-information/

Tutorials
http://www.studytonight.com/dbms/er-diagram.php
Locking -  Pessimistic and Optimistic locking in .NET
http://www.codeproject.com/Articles/114262/ways-of-doing-locking-in-NET-Pessimistic-and-opt

Sites
http://sqlfool.com
e.g. http://sqlfool.com/2011/06/index-defrag-script-v4-1/


All samples (sample database, project, etc..)
http://sqlserversamples.codeplex.com/

CLR and Aggregate function






Syntax
Union and Union All - Union All allows duplicates, but Union will remove duplicated rows.

Cluster and Non-Cluster Index

http://stackoverflow.com/questions/91688/what-are-the-differences-between-a-clustered-and-a-non-clustered-index
Clustered indexes are stored physically on the table. This means they are the fastest and you can only have one clustered index per table.
Non-clustered indexes are stored separately, and you can have as many as you want.
The best option is to set your clustered index on the most used unique column, usually the PK.

A clustered index is a special type of index that reorders the way records in the table are physically stored. Therefore, the table can have only one clustered index. The leaf nodes of a clustered index contain the data pages.
A non-clustered index is a special type of index in which the logical order of the index does not match the physical stored order of the rows on disk. The leaf node of a non-clustered index does not consist of the data pages. Instead, the leaf nodes contain index rows. (Read more here)

SQL Server Optimization
http://technet.microsoft.com/en-us/library/aa964133%28v=sql.90%29.aspx









Thursday, October 17, 2013

Asynchronous Functions c#


Asynchronous Functions

await Task.Delay (5000);

Site Performance and Scalability



REDIS
http://highscalability.com/blog/2014/9/8/how-twitter-uses-redis-to-scale-105tb-ram-39mm-qps-10000-ins.html

Still good to read:

Scale up and Scale out
http://www.codinghorror.com/blog/2009/06/scaling-up-vs-scaling-out-hidden-costs.html

Performance - Good Start:
http://stackoverflow.com/questions/2246251/how-to-improve-asp-net-mvc-application-performance

Integration Test
For web applications, the most common approach to integration testing is UI automation. This term
refers to simulating or automating a web browser to exercise the application’s entire technology stack by
reproducing the actions that a user would perform, such as clicking buttons, following links, and
submitting forms.
The following are the two best-known open source browser automation options for .NET
developers:
Selenium RC (http://seleniumhq.org/), which consists of a Java “server”
application that can send automation commands to Internet Explorer, Firefox,
Safari, or Opera, plus clients for .NET, Python, Ruby, and multiple others so that
you can write test scripts in the language of your choice. Selenium is powerful and
mature; its only drawback is that you have to run its Java server.
WatiN (http://watin.sourceforge.net/), a .NET library that can send automation
commands to Internet Explorer or Firefox. Its API isn’t as powerful as Selenium,
but it comfortably handles most common scenarios and is easy to set up (you
need to reference only a single dynamic-link library).

View
In the view, you can access WebPageRenderingBase directly, e.g. get user name - @User.Identity.Name

Server Debugging Tools
  • Dumpchk - check dump
  • winDbg - hang or crash
  • vmMap - memory leaking
  • Fuslogvm - assembly binding (Link)
















Wednesday, October 16, 2013

Visual Studio - The Best IDE for .NET



Plugin
  • Resharper
Extension

Analyze
  • Profiling
  • Load Testing 
NuGet
Template
Team Foundation
MSBuild


Increase VS Memory:
http://old.stevenharman.net/blog/archive/2008/04/29/hacking-visual-studio-to-use-more-than-2gigabytes-of-memory.aspx
 

Tuesday, October 15, 2013

Learn Javascript


Resources
https://developer.mozilla.org/en-US/docs/Web/JavaScript

JQuery
http://jqfundamentals.com/

OOP
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

AngularJS Tutorial
Documentation http://docs.angularjs.org/guide/concepts
http://www.thinkster.io/pick/eHPCs7s87O/angularjs-tutorial-learn-to-rapidly-build-real-time-web-apps-with-firebase


Breeze
http://www.breezejs.com/samples/todo

Javascript Libraries

Nice ideas and sites




Mail Chimp - http://mailchimp.com/about/
Campaign Monitor - http://www.campaignmonitor.com/
10 Web Sites http://www.sitepoint.com/10-websites-creative-moving-elements/

Great Web Designer Works
http://www.denisechandler.com/portfolio.html
http://www.designcrowd.com.au/


Kids
http://www.sillypoems.info/

Business
http://www.rbc.com.au/
http://www.imobileaccessories.com.au/index.php [looks comfortable]
http://www.snorgtees.com/t-shirts [T-Shirts]


Stores
http://www.luhsetea.com/
http://www.49thparallelroasters.com/
http://cupcakesandcola.com.au/

中国长城汽车 Sydney Great Wall Car SUV
http://www.greatwallmotors.com.au

中国奇瑞瑞虎汽车 Sydney Chery J11 SUV
http://www.cherymotors.com.au

Just Architecture




Soft skills
  • Communication
  • Presentation 
  • Leadership 
  • PM - Agile, Scrum 
Reading and Listening


Tech skills




Tools

UltraEdit 


Server Debugging
  • Dumpchk - check dump
  • winDbg - hang or crash
  • vmMap - memory leaking
  • Fuslogvm - assembly binding (Link)


CSS



LESS
http://www.lesscss.org/

Bootstrap
http://getbootstrap.com/getting-started/

Foundation
http://foundation.zurb.com/

Design a system


You need a plan.
You need some patterns.

Patterns

Web Hooks
http://apidocs.mailchimp.com/webhooks/
http://code.msdn.microsoft.com/site/search?f[0].Type=User&f[0].Value=Srigopal%20Chitrapu


CQRS - Command and Query Responsibility Segregation
http://msdn.microsoft.com/en-us/library/jj591573.aspx

Design Patterns in .NET Framework
http://msdn.microsoft.com/en-us/magazine/cc188707.aspx

Javascript Libs


Here are the things you need to know and learn.
Also have a look - http://en.wikipedia.org/wiki/List_of_JavaScript_libraries

Framework
  • JQuery
  • JQuery Mobile
  • Node.js
  • Ember.js

Pattern
  • Knockout.js
  • Backbone.js
  • Underscore.js
  • Angular.js
  • Socket.IO

Unit Test
  • QUnit.js
  • Jasmine.js and Jasmin-jquery.js

Debug
  • JHint.js

Function


Sunday, October 13, 2013

Dev Links and Tools


Dump stuff here and edit them later.

Network
IoMeter

Shortcut 
http://www.shortcutworld.com/en/win/Eclipse.html

Storage
Baidu Cloud (2T free) - pan.baidu.com

Editor
Note++
UltraEdit
Vi and Vim

IDE
Visual Studio
RubyMine
PHPStorm
InteliJ - For JAVA and Android
Eclipse - For JAVA and Android

Quick Dev Tools:
LINQPad

Windows Tools:
WireShark
LockHunter
Slickrun

Presentation
Prezi - http://prezi.com/

Books
Free ebooks (>1000 books) https://github.com/vhf/free-programming-books

Tutorials
W3School - http://www.w3schools.com/

Windows Tools

Create PDF for free - Bullzip (do not check "Print to file")