Monday 9 December 2013

Monday 2 December 2013

Hordes Of Novices | 8th Light

Hordes Of Novices | 8th Light:

'via Blog this'

Writing a FUSE filesystem in Python - Stavros' Stuff

Writing a FUSE filesystem in Python - Stavros' Stuff:

'via Blog this'

Build complete CMS with C# MVC Code-First Tutorials: CMS MVC part 2: Build Core.Service to work with database

Build complete CMS with C# MVC Code-First Tutorials: CMS MVC part 2: Build Core.Service to work with database:

'via Blog this'

Machine learning is way easier than it looks | Inside Intercom

Machine learning is way easier than it looks | Inside Intercom:

'via Blog this'

getify/You-Dont-Know-JS

getify/You-Dont-Know-JS:

'via Blog this'

Anneka's Cartoonz 2011 | Da vinci

Anneka's Cartoonz 2011:

'via Blog this'

Blog – UX Kits

Blog – UX Kits:

'via Blog this'

A super simple starting point for 2d javascript games

A super simple starting point for 2d javascript games:

'via Blog this'

ASP.NET MVC Virtual Path Provider » Rocket Base - Creative Design and Web Development Blog

ASP.NET MVC Virtual Path Provider » Rocket Base - Creative Design and Web Development Blog:

'via Blog this'

Data Driven Custom View Engine in ASP.NET MVC

Data Driven Custom View Engine in ASP.NET MVC:

'via Blog this'

Rails Tutorial · Learn Ruby on Rails

Rails Tutorial · Learn Ruby on Rails:

'via Blog this'

Lose Belly Fat With 6 Stand-Up Exercises | STACK Fitness | Health

Lose Belly Fat With 6 Stand-Up Exercises | STACK Fitness:

'via Blog this'

#AltDevBlog » How to become a Graphics Programmer in the games industry

#AltDevBlog » How to become a Graphics Programmer in the games industry:

'via Blog this'

Friday 15 November 2013

Combining AJAX, pushState and CSS3 transitions | Payne Digital Ltd

Combining AJAX, pushState and CSS3 transitions | Payne Digital Ltd:

'via Blog this'

Forrst | PJAX-Standalone - Some code from Bag

Forrst | PJAX-Standalone - Some code from Bag:

'via Blog this'

jQuery CollagePlus - an image gallery plugin by Ed Lea

jQuery CollagePlus - an image gallery plugin by Ed Lea:

'via Blog this'

Stuck In Customs | HDR Photography, Travel Photography and Camera Reviews

Stuck In Customs | HDR Photography, Travel Photography and Camera Reviews:

'via Blog this'

Stuck In Customs | HDR Photography, Travel Photography and Camera Reviews

Stuck In Customs | HDR Photography, Travel Photography and Camera Reviews:

'via Blog this'

John Resig - JavaScript Micro-Templating

John Resig - JavaScript Micro-Templating:

'via Blog this'

JavaScript’s Apply, Call, and Bind Methods are Essential for JavaScript Professionals | JavaScript is Sexy

JavaScript’s Apply, Call, and Bind Methods are Essential for JavaScript Professionals | JavaScript is Sexy:

'via Blog this'

peter.michaux.ca - JavaScript Namespacing

peter.michaux.ca - JavaScript Namespacing:

'via Blog this'

Friday 8 November 2013

Natural Language Processing for the Working Programmer

Natural Language Processing for the Working Programmer:

'via Blog this'

CCAN - C Archive Network

ccan:

'via Blog this'

Write Yourself a Scheme in 48 hours

Write Yourself a Scheme in 48 hours:

'via Blog this'

Integrating OpenID in an ASP.NET MVC Application using DotNetOpenAuth - Rick Strahl's Web Log

Integrating OpenID in an ASP.NET MVC Application using DotNetOpenAuth - Rick Strahl's Web Log:

'via Blog this'

FullStack education | Fullstack EDU

FullStack education | Fullstack EDU:

'via Blog this'

CameTooFar | Bulk Insert/Update/Delete in Sql Server

CameTooFar | Bulk Insert/Update/Delete in Sql Server:

'via Blog this'

A Better Way to Learn AngularJS | Thinkster

A Better Way to Learn AngularJS | Thinkster:

'via Blog this'

Calling The Exterminator - PHP

Calling The Exterminator - PHP:

'via Blog this'

Exception Handling in ASP.NET MVC

Exception Handling in ASP.NET MVC:

'via Blog this'

c# - Dynamically Produce Razor Views at Runtime? - Stack Overflow

c# - Dynamically Produce Razor Views at Runtime? - Stack Overflow:

'via Blog this'

Cross-browser jquery ajax history with window.history.pushState and fallback - Stack Overflow

Cross-browser jquery ajax history with window.history.pushState and fallback - Stack Overflow:

'via Blog this'

IfModifiedAttribute : Web Development by Antix Software Limited

IfModifiedAttribute : Web Development by Antix Software Limited:

'via Blog this'

ASP.NET MVC and virtual views

ASP.NET MVC and virtual views:

'via Blog this'

try-catch-FAIL | Data Access in Fail Tracker

try-catch-FAIL | Data Access in Fail Tracker:

'via Blog this'

Globalization, Internationalization and Localization in ASP.NET MVC 3, JavaScript and jQuery - Part 1 - Scott Hanselman

Globalization, Internationalization and Localization in ASP.NET MVC 3, JavaScript and jQuery - Part 1 - Scott Hanselman:

'via Blog this'

The Accidental DBA (Day 9 of 30): Backups: Essential BACKUP Options - Paul S. Randal

The Accidental DBA (Day 9 of 30): Backups: Essential BACKUP Options - Paul S. Randal:

'via Blog this'

Anatomy of an SQL Index: What is an SQL Index | SQL Performance Explained

Anatomy of an SQL Index: What is an SQL Index | SQL Performance Explained:

'via Blog this'

Brian Keating | March 2012

Brian Keating | March 2012:

'via Blog this'

bresleveloper: Jquery UI autocomplete with Ajax: master

bresleveloper: Jquery UI autocomplete with Ajax: master:

'via Blog this'

How to reuse jquery-ui-autocomplete cached results when appending search term? - Stack Overflow

How to reuse jquery-ui-autocomplete cached results when appending search term? - Stack Overflow:

'via Blog this'

AngularJS File Upload | Christophe Geers' Blog

AngularJS File Upload | Christophe Geers' Blog:

'via Blog this'

Code Blog Foo: dynamic-c-sharp

Code Blog Foo: dynamic-c-sharp:

'via Blog this'

jQuery UI Tabs Styling

jQuery UI Tabs Styling:

'via Blog this'

Style Your jQuery-UI Tabs - Web Development is Easy!

Style Your jQuery-UI Tabs - Web Development is Easy!:

'via Blog this'

Game Programming Patterns

Game Programming Patterns:

'via Blog this'

Make Your Own AngularJS, Part 1: Scopes And Digest

Make Your Own AngularJS, Part 1: Scopes And Digest:

'via Blog this'

Javascript: Two way binding

JavaScript: Peformance Tuning

JavascriptisSexy.com

Wednesday 26 June 2013

Friday 14 June 2013

Dig web interface

Dig web interface:

'via Blog this'

Dig web interface - Check DNS, NS

Dig web interface:

'via Blog this'

Time Tracking with Freckle: Feature Tour

Time Tracking with Freckle: Feature Tour:

'via Blog this'

The 99 Best Business Books - Recommended Reading List

The 99 Best Business Books - Recommended Reading List:

'via Blog this'

Caching with Redis

Caching with Redis:

'via Blog this'

Using Redis with ASP.NET Web API at piotrwalat.net

Using Redis with ASP.NET Web API at piotrwalat.net:

'via Blog this'

Entity Framework Fluent API - Relationships

Entity Framework Fluent API - Relationships:

'via Blog this'

Big Data Analytics, Enterprise Analytics, Data Mining Software, Statistical Analysis, Predictive Analtyics

Big Data Analytics, Enterprise Analytics, Data Mining Software, Statistical Analysis, Predictive Analtyics:

'via Blog this'

Communication with the underlying transaction manager has failed. - .Net Framework

Communication with the underlying transaction manager has failed. - .Net Framework:

'via Blog this'

Ten early new Basecamp interface sketches by Jason Fried of 37signals

Ten early new Basecamp interface sketches by Jason Fried of 37signals:

'via Blog this'

Burn Down Chart Tutorial: Simple Agile Task TrackingJoel

Burn Down Chart Tutorial: Simple Agile Task TrackingJoel:

'via Blog this'

Twitter Bootstrap Tutorials | Tutorials for Twitter Bootstrap

Twitter Bootstrap Tutorials | Tutorials for Twitter Bootstrap:

'via Blog this'

Drawspace: Now everyone can draw

Drawspace: Now everyone can draw:

'via Blog this'

CartoonSmart's Free Video Tutorials | Free Video Tutorials for Adobe, Cocos2d, iOS, HTML5 and more

CartoonSmart's Free Video Tutorials | Free Video Tutorials for Adobe, Cocos2d, iOS, HTML5 and more:

'via Blog this'

5 great places to find free design tutorials | Design | Creative Bloq

5 great places to find free design tutorials | Design | Creative Bloq:

'via Blog this'

D3.js Tips and Tricks: Adding tooltips to a d3.js graph

D3.js Tips and Tricks: Adding tooltips to a d3.js graph:

'via Blog this'

Introductory Data Visualization and D3.js Training | DashingD3js.com

Introductory Data Visualization and D3.js Training | DashingD3js.com:

'via Blog this'

Mouseover effects in SVGs | Peter's Website

Mouseover effects in SVGs | Peter's Website:

'via Blog this'

How to keep up to date on Front-End Technologies - The Recipe

How to keep up to date on Front-End Technologies - The Recipe:

'via Blog this'

The ustwo™ Pixel Perfect Precision Handbook 2 | ustwo™

The ustwo™ Pixel Perfect Precision Handbook 2 | ustwo™:

'via Blog this'

Sunday 26 May 2013

Scratching the surface of ASP.NET MVC 4 - campusMVP.Net

Scratching the surface of ASP.NET MVC 4 - campusMVP.Net:

'via Blog this'

Learn Cartooning: Draw Cartoons To Liven Up Your Website, Blog or Presentations - Psychotactics - Big and Small Business Ideas

Learn Cartooning: Draw Cartoons To Liven Up Your Website, Blog or Presentations - Psychotactics - Big and Small Business Ideas:

'via Blog this'

The Encyclopedia of Human-Computer Interaction, 2nd Ed

The Encyclopedia of Human-Computer Interaction, 2nd Ed:

'via Blog this'

Expressive Art Inspirations

Expressive Art Inspirations:

'via Blog this'

Using Mind Maps for UX Design: Part 1 – Sketch Mapping | inspireUX

Using Mind Maps for UX Design: Part 1 – Sketch Mapping | inspireUX:

'via Blog this'

Icon Search Engine | Iconfinder

Icon Search Engine | Iconfinder:

'via Blog this'

Schoolism: Caricature Class Blog

Schoolism: Caricature Class Blog:

'via Blog this'

Sithmel Blog: Objects in HTML5 canvas (part 1: drawing shapes)

Sithmel Blog: Objects in HTML5 canvas (part 1: drawing shapes):

'via Blog this'

DOYALD YOUNG — LetterCult - Typography

DOYALD YOUNG — LetterCult:

'via Blog this'

Introduction to Circos- Charting Library

Introduction to Circos, Features and Uses // CIRCOS Circular Genome Data Visualization:

'via Blog this'

Monday 8 April 2013

Eller's Algorithm

Eller's Algorithm:

'via Blog this'


Eller's Algorithm

Eller's algorithm creates 'perfect' mazes, having only a single path between any two cells, one row at a time. The algorithm itself is incredibly fast, and far more memory efficient than other popular algorithms (such as Prim's and Kruskal's) requiring storage proportional to only a single row. This makes it possible to create mazes of indefinite length on systems with limited memory.

There is very little written about Eller's Algorithm on the internet. The best source I could find (Walter Pullen's excellent Think Labyrinth website) has a single paragraph description which, while very helpful, I found inadequate to implement the algorithm. Additionally, the algorithm described in Mathematics and Physics for Programmers doesn't seem to work. Needless to say, uncovering information about this very interesting algorithm was frustrating. I was able to work out the missing details, and I'm confident that the algorithm I came up with is indeed Eller's algorithm. This page is intended to (hopefully) alleviate the suffering of future searchers interested in this facinating maze generator.
Update:At least one new useful page has appeared on the net since I first wrote this. Check out Jamis Buck'sMaze Generation: Eller's Algorithm blog post. I'll add other useful links as I find them.

The Algorithm

Note: Assume that there all left-most cells have a left-wall and all right-most cells have a right wall.
  1. Create the first row. No cells will be members of any set
  2. Join any cells not members of a set to their own unique set
  3. Create right-walls, moving from left to right:
    1. Randomly decide to add a wall or not
      • If the current cell and the cell to the right are members of the same set, always create a wall between them. (This prevents loops)
      • If you decide not to add a wall, union the sets to which the current cell and the cell to the right are members.
  4. Create bottom-walls, moving from left to right:
    1. Randomly decide to add a wall or not. Make sure that each set has at least one cell without a bottom-wall (This prevents isolations)
      • If a cell is the only member of its set, do not create a bottom-wall
      • If a cell is the only member of its set without a bottom-wall, do not create a bottom-wall
  5. Decide to keep adding rows, or stop and complete the maze
    1. If you decide to add another row:
      1. Output the current row
      2. Remove all right walls
      3. Remove cells with a bottom-wall from their set
      4. Remove all bottom walls
      5. Continue from Step 2
    2. If you decide to complete the maze
      1. Add a bottom wall to every cell
      2. Moving from left to right:
        • If the current cell and the cell to the right are members of a different set:
          1. Remove the right wall
          2. Union the sets to which the current cell and cell to the right are members.
          3. Output the final row

A Sample Run

The example here will create a rectangular maze of indefinite length. We'll create the maze one row at a time starting at the top row and moving left to right between cells. Each cell in a row will be assigned to a set. We'll represent that here by enumerating the sets and writing the number of the set that a cell belongs to inside each cell. Each cell can have a wall on the right and on the bottom. We'll assume that a wall exists to the left of the leftmost cell and the the right of the rightmost cell in each row and that a wall exists on the top of all cells in the first row.
Step 1: Create the first row
This will just be an empty row.
___ ___ ___ ___ ___ ___ ___ ___
 |                               |
 
Step 2:Join any cells not members of a set to their own unique set
___ ___ ___ ___ ___ ___ ___ ___
 | 1   2   3   4   5   6   7   8 |
 
Step 3:Create right walls
___ ___ ___ ___ ___ ___ ___ ___
 |(1   2)  3   4   5   6   7   8 |
 
If we choose not to add a wall, union the sets
___ ___ ___ ___ ___ ___ ___ ___
 | 1  (1   3)  4   5   6   7   8 |

  ___ ___ ___ ___ ___ ___ ___ ___
 | 1   1  (1 | 4)  5   6   7   8 |

 ... snip ...

  ___ ___ ___ ___ ___ ___ ___ ___
 | 1   1   1 | 4   4 | 6   6   6 |
 
Step 4:Create bottom walls.
Ensure that each set has at least one cell with a down passage (i.e. without a bottom wall). Failure to do so will create an isolation.
___ ___ ___ ___ ___ ___ ___ ___
 | 1  _1_ _1_| 4  _4_| 6   6  _6_|
 
Step 5.A: Create a new row.
For each cell with a down passage on the previous row, assign the cell below to the same set.
Output the current row:
  ___ ___ ___ ___ ___ ___ ___ ___
 | 1  _1_ _1_| 4  _4_| 6   6  _6_| <-- 1="" etc.="" line="" output="" printer="" something="" to="" u="">_1_
_1_| 4 _4_| 6 6 _6_| <-- 1="" ___="" current="" is="" old="" our="" remove="" right="" row="" u="" walls:="">_1_ _1_| 4 _4_| 6 6 _6_| | 1 _1_ _1_ 4 _4_ 6 6 _6_| If a cell has a bottom wall, remove it from its set: ___ ___ ___ ___ ___ ___ ___ ___ | 1 _1_ _1_| 4 _4_| 6 6 _6_| | 1 ___ ___ 4 ___ 6 6 ___| Remove bottom walls: ___ ___ ___ ___ ___ ___ ___ ___ | 1 _1_ _1_| 4 _4_| 6 6 _6_| | 1 4 6 6 | Continue from Step 2: Step 2: Join cells not members of a set to their own unique set ___ ___ ___ ___ ___ ___ ___ ___ | ___ ___| ___| ___| | 1 2 3 4 5 6 6 7 | Continuing to Step 3: Add Right Walls ___ ___ ___ ___ ___ ___ ___ ___ | ___ ___| ___| ___| |(1 | 2) 3 4 5 6 6 7 | <-- 1="" 2="" 3="" 4="" 5="" 6="" 7="" ___="" a="" add="" added="" and="" didn="" pre="" sets="" t="" union="" wall="">The next two cells are members of the same set, so we MUST add a wall. Failure to do so will create loops in our maze.
___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 | 1 | 2   2   2 | 5 |(6 | 6)  7 | <-- 1="" 2="" 4:="" 5="" 6="" 7="" ___="" a="" add="" and="" bottom="" continuing="" didn="" must="" pre="" sets="" step="" t="" to="" union="" wall="" walls="">Remember: at least one cell from each set must have a down-passage (i.e. must not have a bottom wall).
___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 | 1 | 2  _2_ _2_| 5 |_6_| 6  _6_|

 
You can add as many rows as you'd like this way
___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 |   |    ___ ___|   |___|    ___|
 |_1_  1 | 3   3 | 7  _7_ _7_| 8 |
 
Step 5.B: Complete the maze
The final row differs from a regular row in just two ways: 1) every cell has a bottom wall and 2) every cell must be a member of the same set.
Making each cell part of the same set is simple. Just remove walls between cells that are members of different sets until all the cells are part of the same set. Do not remove a wall if it separates two cells which are members of the same set.
Start by creating a normal row and add a bottom wall to each cell
___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 |   |    ___ ___|   |___|    ___|
 |___    |       |    ___ ___|   |
 |_1_ _1_|_3_|_3_|_7_ _7_|_8_ _8_|
 
Complete the maze by knocking down walls between cells that are members of different sets and unioning them until all cells are part of the same set.
___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 |   |    ___ ___|   |___|    ___|
 |___    |       |    ___ ___|   |
 |_1_ (1_|_3)|_3_|_7_ _7_|_8_ _8_|
  
  ___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 |   |    ___ ___|   |___|    ___|
 |_ _    |       |    ___ ___|   |
 |_1_ _1_ _1_|(1_|_7) _7_|_8_ _8_|

  ___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 |   |    ___ ___|   |___|    ___|
 |___    |       |    ___ ___|   |
 |_1_ _1_ _1_|_1_ _1_ (1_|_8) _8_|

  ___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 |   |    ___ ___|   |___|    ___|
 |___    |       |    ___ ___|   |
 |_1_ _1_ _1_|_1_ _1_ _1_ _1_ _1_|
 
You should now have a "perfect maze". There are no loops (ensuring only a single path exists between any two cells) and no isolations (no cell or group of cells are "blocked off" from the rest of the maze). You can assign any two cells to be the entrance and exit.
___ ___ ___ ___ ___ ___ ___ ___
 |    ___ ___|    ___|        ___|
 |   |    ___ ___|   |___|    ___|
 |___    |       |    ___ ___|   |
 |___ ___ ___|___ ___ ___ ___ ___|
 

Example mazes

The following 15 x 15 maze was generated using this algorithm:
__ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|
You can change the "texture" of your mazes by adding bias to your random number generator so that it becomes more or less likely that you create a right wall than a bottom wall. For example, you can make a maze with more long horizontal passages by creating right-walls less frequently and bottom-walls more frequently.
This is really easy to do. When deciding to add a wall, do something like the following: 1) generate a random number between 1 and 100. 2) if creating a right-wall, check that the resulting number is less than our bias value, if creating a bottom-wall, check than the number is greater than our bias value. In this case, a bias of 50 will create an even texture, like the sample maze above.
The following two sample mazes show how adding bias affects the resulting texture of a maze.
A very vertical maze:
__ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|  |  |     |  |   __|  |__   |  |  |  |  |  |
|  |  |__|  |   __|__   |  |  |__   |  |     |
|  |  |     |  |  |  |  |  |  |   __|__   |  |
|  |  |  |  |  |  |  |  |     |  |  |  |  |__|
|  |  |  |  |  |      __|  |  |  |  |     |  |
|  |  |  |__|__   |  |  |  |     |  |  |__   |
|  |  |  |  |  |  |  |     |  |  |     |     |
|  |  |     |     |  |  |  |__|__|  |  |  |__|
|  |  |  |     |  |  |__|  |  |  |__|  |     |
|__   |__|__|  |__|__|  |  |     |  |  |__|  |
|   __   |  |  |  |__      |  |  |  |   __|__|
|__|  |  |  |  |  |  |  |__ __|  |  |  |__   |
|  |  |  |  |  |  |  |        |  |  |  |  |  |
|  |  |  |   __|  |  |__|  |  |  |  |  |     |
|  |  |     |  |  |  |  |__|  |__   |  |  |  |
|__ __ __|__ __ __ __ __ __ __|__ __ __ __|__|
A more horizontal maze:
__ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|  |   __ __ __ __|   __ __ __ __ __ __ __ __|
|  |   __ __    __ __|   __ __ __ __|   __   |
|  |   __ __|__    __    __ __ __       __|  |
|__ __ __ __ __|__ __|__    __   |__|__   |__|
|   __ __ __|  |  |  |__ __   |__|__ __    __|
|__ __ __ __ __ __       __ __|__ __ __   |  |
|__ __ __ __ __ __   |__|__ __ __ __ __ __ __|
|__ __       __ __ __ __ __    __ __|      __|
|__   |  |__ __ __|__ __ __ __|__ __   |__ __|
|  |  |   __ __ __|  |__ __    __|   __|__   |
|   __ __|__ __ __    __ __ __ __ __   |   __|
|__ __   |__ __ __ __ __   |   __ __ __|   __|
|__    __ __ __    __|   __|__ __ __|__ __   |
|  |__    __ __|__|   __ __ __ __|   __ __ __|
|__ __ __       __ __|   __|   __ __|   __ __|
|__ __ __ __|__ __ __ __ __ __ __ __ __ __ __|



Home - Last modified: June 2012

Wednesday 20 February 2013

A simple example of SQL server admin tools. - CodeProject

A simple example of SQL server admin tools. - CodeProject:

'via Blog this'

Everyday GIT With 20 Commands Or So

Everyday GIT With 20 Commands Or So:

'via Blog this'

Egghead IO - AngularJS

AngularJS Videos
Egghead IO:

'via Blog this'

XULRunner | MDN

XULRunner | MDN:

'via Blog this'

Ruby-Rails-Tutorials - Jumpstart Lab Curriculum

Tutorials - Jumpstart Lab Curriculum:

'via Blog this'

jQuery: jsPlumb 1.3.16 - Hierarchy Demonstration - jQuery

jsPlumb 1.3.16 - Hierarchy Demonstration - jQuery:

'via Blog this'

Linux Kernel Documentation

Linux Kernel Documentation:

'via Blog this'

C++ Grandmaster Certification [CPPGM]

C++ Grandmaster Certification [CPPGM]:

'via Blog this'

Haskell School

Log in to School of Haskell:

'via Blog this'

Math for Game Developers - YouTube

Math for Game Developers - YouTube:

'via Blog this'

Hacking and Cracking

World of Hacker Forum - Underground Hacking - Underground Hackers Hacks - Hackers Community:

'via Blog this'

EDU - YouTube


Algorithms and DS:

'via Blog this'

SPA Ninja

Building Single Page Applications With jQuery’s Best Friends:

'via Blog this'

Web Application Ninja

How to create Pinterest-like script – step 1 | HTML5 and CSS3 Tutorials at Script Tutorials:

'via Blog this'

Network Ninja

Packets of Death
Not Just AstLinux Stuff: Packets of Death:

'via Blog this'

Training Videos


Web Development
The Edge 2013 videos are online:

'via Blog this'

Web Ninja

Good blog on web
Making an accessible dialog box | NCZOnline:

'via Blog this'