Application Pool Identity folder permissions in Sitecore


ApplicationPoolIdentity is the best practice to use in IIS7. It is a dynamically created, unprivileged account. To add file system security for a particular application pool see’s “Application Pool Identities”.

Here is a quick guide how to add rights to correct AppPool -profile on Windows Explorer

  1. Open Windows Explorer
  2. Select Sitecore installation directory.
  3. Right click the file and select “Properties”
  4. Select the “Security” tab
  5. Click the “Edit” and then “Add” button
  6. Click the “Locations” button and make sure you select thelocal machine. (Not the Windows domain if the server belongs to one.)
  7. Enter “IIS AppPool\Sitecore” in the “Enter the object names to select:” text box. (Don’t forget to change “Sitecore” here to whatever you named your application pool.)
  8. Click the “Check Names” button and click “OK”.

Refer to Sitecore Installation and Security guide for proper settings.

Visual Studio Code extensions for Angular 2 development

Here are two extensions that I have found great for developing on Angular 2.


Automatically finds, parses and provides code actions for all available imports. Only currently works with files in your folder and TypeScript.

ext install autoimport


Angular 2 TypeScript Snippets for VS Code

This extension for Visual Studio Code adds snippets for Angular 2 for TypeScript and HTML.


Facebook at Work as Intranet

I kind of like status update boards as a concept for an Intranet much more than a “portal” or “brochure website”. For example customer I have been working recently has intranet that is default starting page on the corporate machines. On this particular “static” website by far the most popular page on that Intranet is lunch menu, then on distant followers pages like password for guest WIFI etc…
Another customer I have uses SharePoint as Intranet. This portal is maintained by corporate communication with standard marketing jargon. Neither of these Intranets gives employees any way to interact except perhaps a comment field in the news. I have never really been big fan of Intranet sites. Even though back in 2001-2003 I was building Intranet / KM product. My disbelieve for Intranets is mostly because they simply don’t seem to work as intended. I think where Intranets go wrong is when they start to listen requirements from all stakeholders. Then they end up something that is completely unusable Microsoft Sharepoint solution. Just because “Intranet of course has to have granular rights and it should be configurable in the browser”.
But I do think Intranets could work if Intranet would be thought as flat organization instead of rigid departments and groups. Don’t get me wrong, I think security should be there but why not having it like a social network. One service that I am looking forward to test it is Facebook at Work.

This “facebook wall” where people could post whatever they want it would make the site more alive and certainly more relevant. Perhaps by default employee is subscribed to all departments but on time s/he could filter her feed list with only things that she thinks is interesting to her personally and professionally.

There are few other functionalities in Intranets that are must have features like a file share and knowledge base. With knowledge base I mean what HR writes like guides etc. that is occationaly visited. Often this is regarded as wiki or simple pages. Then there is also file share that is a place to share docs. Usually, these are made way too complicated (I am thinking you Sharepoint!) because that is what is “requirement” but really it does not need to be like that?

Learning rsync

rsync_logorsync is a widely-used utility to keep copies of a file on two computer systems. It is commonly found on Unix-like systems and functions as both afile synchronization and file transfer program. The rsync algorithm, a type of delta encoding, is used to minimize network usage. Zlib may be used for additional compression, and SSH or stunnel can be used for data security.

How to use ‘cp’ command to exclude a specific directory?

I found rsync when I was trying to copy all files except “x” and “y” files and directories. You are able to do that as following:

rsync -av --progress sourcefolder /destinationfolder --exclude thefoldertoexclude

Notice that you can add many –excludes like:

rsync -av --progress sourcefolder /destinationfolder --exclude thefoldertoexclude --exclude anotherfoldertoexclude

Found some great samples by Ramesh Natarajan I have copied few below with a link to more samples.

Example 1. Synchronize Two Directories in a Local Server

To sync two directories in a local computer, use the following rsync -zvr command.

$ rsync -zvr /var/opt/installation/inventory/ /root/temp

In the above rsync example:

  • -z is to enable compression
  • -v verbose
  • -r indicates recursive

Example 2. Preserve timestamps during Sync using rsync -a


rsync option -a indicates archive mode. -a option does the following,

  • Recursive mode
  • Preserves symbolic links
  • Preserves permissions
  • Preserves timestamp
  • Preserves owner and group

Now, executing the same command provided in example 1 (But with the rsync option -a) as shown below:

$ rsync -azv /var/opt/installation/inventory/ /root/temp/

Example 3. Synchronize Only One File

To copy only one file, specify the file name to rsync command, as shown below.

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/

More samples at:


How to Backup Linux? 15 rsync Command Examples

6 rsync Examples to Exclude Multiple Files and Directories using exclude-from

Metric decimal system of measurement

In metric, one milliliter of water occupies one cubic centimeter, weighs one gram, and requires one calorie of energy to heat up by one degree centigrade—which is one percent of the difference between its freezing point and its boiling point. An amount of hydrogen weighing the same amount has exactly one mole of atoms in it.

from Wild Thing: A Novel by Josh Bazell

Explaining object-oriented programming

Here, in an excerpt from a 1994 Rolling Stone interview, Jobs explains what object-oriented programming is.

Jeff Goodell: Would you explain, in simple terms, exactly what object-oriented software is?
Steve Jobs: Objects are like people. They’re living, breathing things that have knowledge inside them about how to do things and have memory inside them so they can remember things. And rather than interacting with them at a very low level, you interact with them at a very high level of abstraction, like we’re doing right here.
Here’s an example: If I’m your laundry object, you can give me your dirty clothes and send me a message that says, “Can you get my clothes laundered, please.” I happen to know where the best laundry place in San Francisco is. And I speak English, and I have dollars in my pockets. So I go out and hail a taxicab and tell the driver to take me to this place in San Francisco. I go get your clothes laundered, I jump back in the cab, I get back here. I give you your clean clothes and say, “Here are your clean clothes.”
You have no idea how I did that. You have no knowledge of the laundry place. Maybe you speak French, and you can’t even hail a taxi. You can’t pay for one, you don’t have dollars in your pocket. Yet I knew how to do all of that. And you didn’t have to know any of it. All that complexity was hidden inside of me, and we were able to interact at a very high level of abstraction. That’s what objects are. They encapsulate complexity, and the interfaces to that complexity are high level.

The whole interview here

Object and Array literal in JavaScript

This post is mostly for my own reference as I seem to keep messing this up. :O

The basics

{} is an object literal

//this creates a new object
a = {};
//so does this
a = new Object();


[] is an array literal

//this creates a new array
a = [];
//so does this
a = new Array();


properties can be accessed via . and [] notation:

//these are the same
a.b = c;
a['b'] = c;


Object literals can be set using literal values or strings:

a = {
    //any character you can use for a variable name can be
    //used to instantiate an object without quotes
    b: c,
    //special characters need to be quoted
    "foo bar baz": "fizz buzz"