Friday, April 29, 2016

Microsoft Flow - True Cross Cloud App Integration + Scheduled Workflows = Amazing Productivity

Microsoft Flow just released, is designed to do workflow across competitive services like Twitter, Slack, Google Drive, Dropbox, and Office 365.

Microsoft Flow allows you to create a workflows across these competitive services running at scheduled time. Samples including the ability;
  1. create emails alerts to generate SMS or send another email, forward emails based on sender email 
  2. pull tweets into Excel 
  3. get Slack notifications when a file is uploaded to a Dropbox folder 
  4. You can even create flows to copy files from OneDrive for Business to SharePoint 
  5. When an object is created in Salesforce, create a row in SQL

So far here are cloud APIs that are supported;

Office 365, OneDrive, Twitter, Google Drive, Slack, Mailchimp, GitHub, Dynamics CRM, Sharepoint, Salesforce, SQL, GitHub, Yammer

and growing. Sky is the limit here. This very cool.

For technical people, you could consider Microsoft's Flow as cloud app version of Sharepoint Workflow.

Monday, April 25, 2016

Running Bash on Ubuntu on Windows!

Running Bash on Ubuntu on Windows! original at and presented at recent Build 2016 March 30 - April 1.
In this video we’ll outline why and how we’re enabling Windows 10 to run native Linux apps and tools directly on Windows! This is not a virtual machine with it own virtual ip address, this is running natively. 

To accomplish this, Microsoft built new infrastructure within Windows – the Windows Subsystem for Linux (WSL) – upon which we run a genuine Ubuntu user-mode image. 

The result is that you can now run native Bash on Ubuntu on Windows!

You can now run Bash scripts, Linux command-line tools like;  

git, sed, awk, grep, etc...

and you can even try Linux-first tools like  

Ruby, Git, Python
, etc....

etc. directly on Windows.

You can also access your Windows filesystem from within Bash allowing you to work on the same set of files using your preferred Windows tools or Linux command-line tools.

Warning: Beta so far

While you’ll be able to run native Bash and many Linux command-line tools on Windows, it’s important to note that this is a developer toolset to help you write and build all your code for all your scenarios and platforms. This is not a server platform upon which you will host websites, run server infrastructure, etc. For running production workloads on Ubuntu, we have some great solutions using Azure, Hyper-V, and Docker, and we have great tooling for developing containerized apps within Windows using Docker Tools for Visual Studio, Visual Studio Code and yo docker.

Installation Guide for Ubuntu on Windows

Bash User Voice Blog

Saturday, April 23, 2016

.Net Salary Survey 2016 Kinda

from VS Magazine - Job Opportunities for Developers 2016

" Software-Related Jobs from Lowest- to Highest-Paid
At No. 23, the lowest-ranked job that software developers would be candidates for was the standard developer position: software engineer. The pay is good, though (average base salary: $97,000), and the number of job openings is extraordinary: 99,000. No other job came close when in terms of demand. That probably explains why you're reading this column.
Next up, at No. 21 and No. 20, are UX designer and database administrator. Both have an average base salary of $96,000 but there are only 2,000 job openings for UX designers while there are 9,000 job openings for database administrators. Furthermore, that database administrator job is related to other jobs, higher in the list. The major issue is that most developers will regard you as a pain.
Moving up five points to No. 17 and No. 16 brings you to quality assurance manager and security engineer. The salary for both is about $5,000 more than the previous two positions ($102,000). It may say something about quality assurance in software development that QA manager has the fewest job openings of any of the software-related jobs on the list (1,700). Plus, of course, everyone hates you, not just the developers. Security engineer has only slightly more openings (2,100) but you have to consider the certainty of being fired the first time your company gets hacked."

Tuesday, April 19, 2016

Visual Studio Code Editor now free open source, amazing

Get Visual Studio Code Editor free 

Get it here

Features Editing Evolved

Visual Studio Code features a battle-tested code editor that has most of the industry standard features, but also has some delights. We've been using it to build VS Code and we hope you'll love it too. This topic will walk you through some of the notable features of the code editor.

Bracket matching

Matching brackets will be highlighted as soon as the cursor is near one of them. The right bracket will always be found, regardless of embedded languages.
Bracket Matching
Tip: You can jump to the matching bracket with kb(editor.action.jumpToBracket)

Selection & Multi-cursor

VS Code has support for multiple cursors. You can add secondary cursors (rendered thinner) with kbstyle(Alt+Click). Each cursor operates independently based on the context it sits in. The most common way to add more cursors is withkb(editor.action.insertCursorBelow) or kb(editor.action.insertCursorAbove) that insert cursors below or above.
Note: Your graphics card provider might overwrite these default shortcuts.
kb(editor.action.addSelectionToNextFindMatch) selects the word at the cursor, or the next occurrence of the current selection. kb(editor.action.moveSelectionToNextFindMatch) moves the last added cursor to next occurrence of the current selection.
Tip: You can add more cursors also with kb(editor.action.selectHighlights), which will add a selection at each occurrence of the current selected text or with kb(editor.action.changeAll), which will add a selection at each occurrence of the current word.

Column text selection

Hold kbstyle(Shift) and kbstyle(Alt) while dragging to do column text selection:
Column text selection
There are also default key bindings for column selection on OS X and Windows, but not on Linux. You can edit yourkeybindings.json to bind them to something more familiar if you wish.
For example:
{ "key": "shift+alt+down",     "command": "cursorColumnSelectDown",
                                  "when": "editorTextFocus" },
{ "key": "shift+alt+left",     "command": "cursorColumnSelectLeft",
                                  "when": "editorTextFocus" },
{ "key": "shift+alt+pagedown", "command": "cursorColumnSelectPageDown",
                                  "when": "editorTextFocus" },
{ "key": "shift+alt+pageup",   "command": "cursorColumnSelectPageUp",
                                  "when": "editorTextFocus" },
{ "key": "shift+alt+right",    "command": "cursorColumnSelectRight",
                                  "when": "editorTextFocus" },
{ "key": "shift+alt+up",       "command": "cursorColumnSelectUp",
                                  "when": "editorTextFocus" }

Shrink/expand selection

Quickly shrink or expand the current selection (applies to all languages). Trigger it withkb(editor.action.smartSelect.shrink) and kb(editor.action.smartSelect.grow)
Here's an example of expanding the selection with kb(editor.action.smartSelect.grow):
Expand selection


We'll always offer word completion, but for the rich languages, such as JavaScript, JSON, HTML, CSS, Less, Sass, C# and TypeScript, we offer a true IntelliSense experience. If a language service knows possible completions, the IntelliSense suggestions will pop up as you type (we call it affectionately 24x7 IntelliSense). You can always manually trigger it withkb(editor.action.triggerSuggest). Out of the box, kbstyle(.)kbstyle(Tab) or kbstyle(Enter) are accept triggers but you can also customize these key bindings.
Tip: The suggestions filtering supports CamelCase so you can type the upper case letters of a method name to limit the suggestions. For example, "wl" will quickly bring up WriteLine.
Tip: The 24x7 IntelliSense can be configured via the editor.quickSuggestions and editor.suggestOnTriggerCharacterssettings.

Parameter Hints

In JavaScript, TypeScript or C#, parameter hints will pop up as you're typing a method invocation. You can navigate between different overloads with kbstyle(Up) and kbstyle(Down) and the best overload will be presented based on the arguments you pass in.
Parameter Hints

Snippets and Emmet Abbreviations

We offer built-in snippets across languages as well as support for Emmet abbreviations. You can expand Emmet abbreviations in HTML, Razor, CSS, Less, Sass, XML or Jade with kbstyle(Tab).
Emmet snippets
(See the Emmet cheat sheet for syntax examples.)
You can also define your own snippets: Open User Snippets under File > Preferences and select the language for which the snippets should appear. Find out more about this in the customization section of our docs.

Go to Definition

If a language supports it, you can go to the definition of a symbol by pressing kb(editor.action.goToDeclaration).
If you press kbstyle(Ctrl) and hover over a symbol, a preview of the declaration will appear:
Ctrl Hover
Tip: You can jump to the definition with kbstyle(Ctrl+Click) or open the definition to the side withkbstyle(Ctrl+Alt+Click). If you opened a new editor window, you can go back to the previous editor withkb(workbench.action.focusLeftEditor).

Goto Symbol

You can navigate symbols inside a file with kb(workbench.action.gotoSymbol). By typing kbstyle(:) the symbols will be grouped by category. Just press kbstyle(Up) or kbstyle(Down) and navigate to the place you want.
Go to Symbol

Open symbol by name

In C# and in TypeScript, you can jump to a symbol across files with kb(workbench.action.showAllSymbols). Just type the first letter of a type you want to navigate to, regardless of which file contains it, and press kbstyle(Enter).
Open symbol by name


You can fold regions of source code using the folding icons on the gutter between line numbers and line start. Move the mouse over the gutter to fold and unfold regions. The folding regions are evaluated based on the indentation of lines. A folding region starts when a line has a smaller indent than one or more following lines, and ends when there is a line with the same or smaller indent.
You can also use the following actions:
  • Fold (kb(editor.fold)) folds the innermost uncollapsed region at the cursor
  • Unfold (kb(editor.unfold)) unfolds the collapsed region at the cursor
  • Fold All (kb(editor.foldAll)) folds all region in the editor
  • Unfold All (kb(editor.unfoldAll)) unfolds all regions in the editor
  • Fold Level X (kb(editor.foldLevel2) for level 2) folds all regions of level X, except the region at the current cursor position

Gutter indicators

If you open a folder that is a Git repository and begin making changes, VS Code will add useful annotations to the gutter and to the overview ruler.
  • A red triangle indicates where lines have been deleted
  • A green bar indicates new added lines
  • A blue bar indicates modified lines
Gutter indicators


We think there's nothing worse than a big context switch when all you want is to quickly check something. That's why we support peeked editors. When you execute a Reference Search (via kb(editor.action.referenceSearch.trigger)), or a Peek Definition (via kb(editor.action.previewDeclaration)), we embed the result inline:
Find References
Tip: You can navigate between different references in the peeked editor and, if you need to, you can even make quick edits right there!
Tip: Clicking on the peeked editor filename or double-clicking in the result list will open the reference in the outer editor.


For languages that support it, the hover will show useful information, such as types of symbols, or, in the case of CSS below, the shape of the HTML that would match a certain CSS rule:

Reference information

C# supports inline reference information, that is live updated. This allows you to quickly analyze the impact of your edit or the popularity of your specific method or property throughout your project:
Reference information
Tip: Directly invoke the Find References action by clicking on these annotations.
Tip: Reference information can be turned on or off through the editor.referenceInfos setting.

Rename symbol

TypeScript and C# support rename symbol across files. Simply press kb(editor.action.rename) and then type the new desired name and press kbstyle(Enter). All usages of the symbol will be renamed, across files.

Errors & Warnings

Warnings or Errors can be generated either via configured tasks or by the rich language services, that constantly analyze your code in the background. Since we love bug-free code, warnings and errors show up in multiple places:
  • In the status line there is a summary of all errors and warnings counts.
  • You can click on the summary or press kb(workbench.action.showErrorsWarnings) to see a list of all current errors.
  • If you open a file that has errors or warnings, they will be rendered inline with the text and in the overview ruler.
Show Errors and Warnings
Tip: To loop through errors or warnings in the current file, you can press kb( orkb(editor.action.marker.prev) which will show an inline zone detailing the problem and possible code actions (if available):
Errors and Warnings Inline

Monday, April 11, 2016

Kapersky main.js page injection network flood solution

If you a developer and use IE/Firefox/Chrome and a version of Kapersky Anti-Virus and you see under the the network tab you see a flood and repeated calls GETS to main.js there a way to turn it off.

Diagnose the problem:

If you look at page source of any website and see a similar line in the source,  then you have the Kapersky injection issue.

<script type="text/javascript" src="" charset="UTF-8"></script>

To fix this, is simple, Kapersky has release a new version where you can turn this off in the setting.


Kapersky has a new upgrade release that if you current registered owner you can get.

Log into Kapersky support portal and make sure you see the following upgrade for your version

You need the following version;

Kaspersky Internet Security

Latest Versions

Version 2016 (  new update  & not Version 2016 (
In the new version

Finally you have an ability to unckech and STOP the main.js inject script.

Wednesday, April 6, 2016

jQuery Microsoft CDN trusted stable source for Migrate, Modernizr and many more

Microsoft Ajax Content Delivery Network

Having trouble finding a credible jQuery Migrate CDN?
Having trouble finding a credible jQuery Modernizr CDN?  

Look no further Microsoft Ajax Content Delivery Network (MACDN) is always on and trustworthy. MACDN has an extensive jQuery library and really is your one stop shop for jQuery CDN.  When you need to maximize you website speed and offload your requests every byte counts. Using a single domain for all your jQuery request does reduce DNS look-ups. 

Note: Those looking for cross-origin tamper proof javascript CDNs, it's coming, until then go with a trusted source.

Javascript tag attribute integrity constraint is still in Working Draft  and will be available upon release to living standard see status here.

<script src="" integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6 + R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"        crossorigin="anonymous" ></script>

MACDN  deliveries the following libraries & is your one stop shop for Javascript libraries.

    jQuery Releases on the CDN 
    jQuery Migrate Releases on the CDN 
    jQuery UI Releases on the CDN 
    jQuery Validation Releases on the CDN 
    jQuery Mobile Releases on the CDN 
    jQuery Templates Releases on the CDN 
    jQuery Cycle Releases on the CDN 
    jQuery DataTables Releases on the CDN 
    Modernizr Releases on the CDN 
    Ajax Control Toolkit Releases on the CDN 
    JSHint Releases on the CDN 
    Knockout Releases on the CDN 
    Globalize Releases on the CDN 
    Respond Releases on the CDN 
    Bootstrap Releases on the CDN 
    Bootstrap TouchCarousel Releases on the CDN 
    Hammer.js Releases on the CDN 
    ASP.NET Web Forms and Ajax Releases on the CDN 
    ASP.NET MVC Releases on the CDN 
    ASP.NET SignalR Releases on the CDN

The CDN supports SSL (HTTPS) in case you need to serve a web page using the Secure Sockets Layer.

Recent Changes to 
MACDN URLs renamed to

The CDN used to use the domain name and has been changed to use the domain name. This change was made to increase performance because when a browser referenced the domain it would send any cookies from that domain across the wire with each request. By renaming to a domain name other than performance can be increased by as much to 25%. Note will continue to function but is recommended.
  • Old Format:
  • New Format: