CSS and JS files not being served correctly by IIS

If you receive a warning that that CSS and/or JS files are being ignored due to incorrect mime type. It could be IIS is not serving static content. Another indication is a blank content type field for static content in the IE developer tools network tab.

To resolve the issue:

  1. Go to Control Panel > Programs and Features
  2. Click Turn Windows features on or off
  3. Expand World Wide Web Services > Common HTTP Features
  4. Tick Static Content
  5. Click OK

Another cause is CSS and JS mime types being incorrect registered on the IIS server.  To check open regedit, expand HKEY_CLASSES_ROOT, find .css and check/change the Content Type value to text/css. Repeat for .js where the Content Type value should be text/plain.

View Two Websites Side-By-Side With Safari Split View in iOS 10

First split screen only works in landscape mode, not portrait. There three ways to achieve this. 

Open a new tab is split screen

Tap and hold the the tab management icon in the upper right. You will see an option to Open Split View. Tap it to create a blank Safari window. 

Open a link in split view

Tap and hold a link on a web page and select Open in Split View

Drag a tab to open in Split View. 

Tap and hold a tab, then drag it to the side of the screen you want it to open in. 

Rename ASP.net cookie

You can adjust it in your web.config file, the default is ASPXAUTH:

<system.web>    
   <authentication mode="Forms">
      <forms name=".CRM-Cookie" loginUrl="LoginPage.aspx" />
    </authentication>
</system.web>

This is useful when running multiple applications from the same server under the same domain. 

How to access Sitecore Items in Code

To get a Sitecore Content Item, use Sitecore.Data.Database.GetItem(Path)

Sitecore Content Item Class: Sitecore.Data.Items.Item

(Get Sitecore Item from “/sitecore/content/Home/myItem”)

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase(“master”);

Sitecore.Data.Items.Item myItem = master.GetItem(“/sitecore/content/Home/myItem”);

If item does not exist or current context user doesn’t have permission to access this item, Sitecore will return null or throw exception.

Case is Insensitive while using path to get the items.

To get a Sitecore Template Item, use Sitecore.Data.Database.GetTemplate(ID)

Sitecore Template Item Class: Sitecore.Data.Items.TemplateItem

(Get Template Item: Folder Template)

Sitecore.Data.Items.TemplateItem item = master.GetTemplate(Sitecore.TemplateIDs.Folder);

To get a Sitecore Media Item, use Sitecore.Data.Database.GetItem(Path)

Sitecore Media Item Class: Sitecore.Data.Items.MediaItem

(Get Media Item from “/sitecore/content/Media Library/Images/Logo.png”)

Sitecore.Data.Items.Item myItem = master.GetItem(“/sitecore/content/Media Library/Images/Logo.png”);

To get a Sitecore System Item, use Sitecore.Data.Database.GetItem(ID)

Sitecore Item Class: Sitecore.Data.Items.Item

(Get System Item “Layouts”)

Sitecore.Data.Items.Item layoutsItem = master.GetItem(Sitecore.ItemIDs.Layouts);

To get Sitecore Context Item, use Sitecore.Context.Item

Sitecore Template Item Class: Sitecore.Data.Items.Item

Sitecore.Data.Items.Item contextItem = Sitecore.Context.Item;

Note: Add Sitecore.Kernel.dll reference to project.

Adding bold, italic and strike through text in WhatsApp

Not many people know WhatsApp now allows bold, italic and strike through text. However it’s hidden as there no button to apply the text formatting. 

To bold up, you need to but an asterisk on either side of the word, like *this*, while italics need an underscore on either side of a _word_, and strikethrough a tildes (those squiggly hyphens), just like ~this~. Feeling jazzy? You can even combine commands for *_bolditalics_* attention grabbing. 

Apache Solr – Sharing configurations sets between Cores

As of Solr 4.8, cores can use config sets to share common configurations (i.e., “solrconfig.xml”, “schema.xml”, etc.) between multiple cores.

Using the below as an example folder structure

├─ solr.xml
├─ configsets/
| └─ template/
| └─ conf/
| ├─ schema.xml
| ├─ solrconfig.xml
| └─ …
├─ core1/
| ├─ core.properties
| └─ data/
└─ core2/
├─ core.properties
└─ data/

For existing cores:

Set configSet=template in the core.properties file and remove config and scheme lines.

For new cores:

configSet cannot be set from the admin interface but cores can be created using the CoreAdmin API. The below will create two cores called core1 and core2 using the template configSet.

http://localhost:8983/solr/admin/cores?action=CREATE&name=core1&configSet=template
http://localhost:8983/solr/admin/cores?action=CREATE&name=core2&configSet=template

Excel quick cell merge

Excel doesn’t have a quick shortcut for merging cells. There are key sequences or macros which will do the trick. 

However one of the quickest solution is to merge one set of cells using the Merge cell option in the cell properties window. Then select the next set of cells to merge and hit F4, this will repeat the last action and merge the cells. 

Simple ForEach Processing on Lists

If you want to process all the items in a list, you can write a For…Each loop…or you can just call the List’s ForEach method and pass it a lambda expression containing the processing you want. This code, for example, sets the OrderStatus property on a list of StatusChange objects to Ordered:

Dim statuses As New List(Of StatusChange)
statuses.Add(New StatusChange)
statuses.Add(New StatusChange)
statuses.ForEach(Function(s) s.OrderStatus = "Ordered")