Tuesday, February 23, 2016

Friday, February 19, 2016

What tools, frameworks, etc do you find essential for development?

Usually I choose depending on the project requirements. Here are the categories of tools/frameworks I find useful:

IDE/Editors:
  • WebStorm
  • Visual Studio
  • Visual Studio Code
  • ReSharper
  • Notepad++
  • LinqPad

Databases:
  • MSSQL
  • MongoDB
  • Entity Framework

Network:
  • Fiddler

Communication/Documentation/Sharing
  • Skype
  • Hangout
  • Slack
  • Google docs
  • Wiki
  • Dropbox

Static analysis
  • nDepend
  • FxCop

Code quality
  • ESLint
  • StyleCop

Code coverage
  • nCover

CI
  • Team City
  • Jenkins
  • Msbuild
  • gulp

QA/Testing
  • nUnit
  • moq
  • Autofac

API testing
  • Postman
  • SoapUI

Browsers:
  • Google chrome

Website performance:
  • YSlow
  • Google webmaster tools
  • JSPerf

Web prototyping
  • JSFiddle/JSBin/Plunkr

Web development:
  • WebAPI
  • ASP.NET MVC
  • Bootstrap
  • jQuery
  • AngularJS
  • Google Analytics

VCS:
  • Github
  • Svn + AnkhSVN
  • tfs

Node.js
  • Express
  • Socket.io
  • Q
  • Mocha
  • Npm
  • web-inspector

VM/Containters
  • VMWare
  • Virtual Box
  • HyperV
  • Docker

Cloud:
  • Azure
  • AWS
Password manager
  • Keepass
    • Keepass2Android



Thursday, February 18, 2016

Debugging Node.js using Node.js Tools for Visual Studio (NTVS)

Node.js Tools for Visual Studio (NTVS) include advanced debugging features for debugging Node.js applications, like advanced breakpoints, and remote debugging of Node.js processes running on any OS (Windows, Linux, MacOS), or hosted on Windows Azure.

https://github.com/Microsoft/nodejstools/wiki/Advanced-Debugging

Tuesday, February 16, 2016

Load testing web sockets with Node.js - Fine tuning TCP/IP on Windows

Load testing WebSockets with Node.js


I was doing a load testing for a socket.io server. After creating a small client in Node.js using socket.io-client I faced with a limit of about 16K connections trying to run it on Windows 7.

It turned out that by default, dynamic ports are allocated between ports 49152 and 65535 (for a total of 16384 ephemeral ports). Using netsh allows to set both the starting port and port range.


 netsh int ipv4 set dynamicportrange protocol=tcp start=1025 num=64511


After running the command I was able to run a Node.js cluster of 8 processes each establishing 5000 connections. That makes 40K connections in total.

I also found a good article about stress testing node.js application