Modern development tools

Deciding a which tool you ll be using on your next project can be quite cumbersome. Neeed to read all those build tools like the old gulp, grunt or new technologies like vite, browserify, parcel, rollup, webpack.


There is a nifty web page that will help you make this research much easier. It covers the build strengths and weaknesses with a straight forward table comparison for things like code splitting, hashing assets, importing capabilities, non js resources, output formats and all-kind of pre-deployment build transformations for a production ready application.


Check out this link https://bundlers.tooling.report/

Windows 1809 – CHROME SLOW PAGE RESOLVING

After installing 1809 Update on Windows 10 I experienced a luginess in all Chrome and Chronium alternative products.
(Canary, Brave)
Tried to use firefox instead with no issues. As mentioned in article here the only solution I found to fix this behavior was to change Permissions in the Windows Service “Cryptographic Services”

https://answers.microsoft.com/en-us/windows/forum/windows_10-networking/april-2018-update-broke-chrome-browser/f0204aa2-4c93-42b7-a6dc-c9ee6b42da0c

Services -> Cryptographic Services -> Properties -> 2nd Tab (Log On)
Change to Local System Account
Restart Service


the code execution cannot proceed because mfreadwrite.dll was not found

Actually this a problem on Windows N version missing the Media Feature Pack.
Proceed with installation of the missing windows pack following the official microsoft download center
Link bellow

https://www.microsoft.com/en-us/download/details.aspx?id=53356&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1

if above link is not supported on your windows version Check also this link.

https://support.microsoft.com/en-us/help/4134255/media-feature-pack-for-windows-10-n-october-2018

Powershell IIS Application pools list

Save the below script in a .ps1 file (powershell script file).

Import-Module WebAdministration
dir IIS:\Sites # Lists all sites
dir IIS:\AppPools # Lists all app pools and applications

# List all sites, applications and appPools
dir IIS:\Sites | ForEach-Object {
  # Web site name
  $_.Name
  # Site's app pool
  $_.applicationPool
  # Any web applications on the site + their app pools
  Get-WebApplication -Site $_.Name
}

Create Mac OS X bootable USB disk

Open Command Prompt (Start CMD)

diskpart
list disk
select disk X (where X is the number of your USB flash drive)
clean
convert GPT
create partition primary

Now you can download a program to transfer dmg image to USB.
Transmac can be downloaded from AcuteSystems.com at http://www.acutesystems.com/scrtm.htm

Use any method you like to download MacOS X Version you want. Torrents seem to be faster though.

Find text in files using Powershell


Move to the root of the desired directory and
run the command below

Get-ChildItem .\* -include ('*.config') -recurse | Select-String -pattern "find_for_this_string"

Searching for find_for_this_string
Include files of this type *.config  (ex. web.config files)

How to remove extra Keyboard from Windows 10 – Language list

To fix this issue, delete the Preload registry folder and restart (or sign out) the computer:

<code>HKEY_USERS.DEFAULT\Keyboard Layout\Preload</code>

This folder seems to be some legacy remnant that contains non-user-specified keyboard layouts to be added to the list of languages when the user signs in. While the fix itself works through restarts, there’s a few things that seem to bring back this folder

To automate the procedure create a txt file and paste the contents below.

[code]
Windows Registry Editor Version 5.00

[-HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]
[/code]

You can then save the file with .reg extension and run it if registry folder comes back.  You need to logout or restart for changes to take effect.

Tip: From notepad use quotes like to “RemoveLang.reg” to save with new file extension.

Single page application SEO Optimizations

Client side rendered sites as is are not fully compatible with SEO standards before JS framework burst of technologies came out.  In 2009 there was a AJAX crawling scheme that google provided to developers. As cited here there no support and is currently deprecated.

Here is the deal. Modern JS Frameworks such as React, Angular, Ember, Vue, Aurelia have mixed support on crawling techniques. Some very promising frameworks are losing ground in popularity caused on lack of support on all aspects of web content delivery. Promising web developing heaven is not as easy as it looks in single hello world demonstration. Markets depended in web marketing are bound to server side scripting languages.

There are some solutions for web crawlers to be able to render and get information from you single applications but most of them require extra work.

A valuable  link on crawling settings “Robots meta tag and X-Robots-Tag HTTP header specifications

1 solution

Use a pre-render and serve html content of your pages with your own service. Note that not all js frameworks provide this functionality. Angular and Angular2 are the only fully supported pre-rendering engines.
You could actually use a robust caching service by rendering all your pages with a server-side js framework like PhantomJS and storing the html output to serve when requested to bots. The actual caveats here are that the output is not guaranteed to be same as the browser results. Also you add an overhead of refreshing the static content to the deployment procedure.

2nd Solution

Use Prerender.io, BromBone, Snapsearch hosted services and then you can easily redirect your pages accordingly to the service url when spotting that there is a crawler that is indexing your page.

3rd solution

Do nothing. It’s kinda vague to say that google now crawls SPA websites.  There was a special tag providing the context that this page uses # url redirection.

Previously adding
<meta name=”fragment” content=”!”/>
This meta tag actually transformed your url as follows
https://yoursite.com/#/contact to
https://yoursite.com/?_escaped_fragment_/contact.html

Assuming that google crawls content after # now you can cross your fingers that crawlers (not just google) will get more mature in the future. Try explaining that to marketing department.

4th solution

Use the href attribute value to go to the static page (or pre-rendering service) and use the onclick for actual users. Quickly provided as bellow
<a href=”/contact.html” onclick=”window.location=/#/contact; return false;” />
Provided that you have a prerenderer or a prerender service setup.

SEO and Javascript: New Challenges
SEO for AngularJS and other Javascript Frameworks

C# configuration architecture

Small snippet to return configuration architecture. (x86 or x64)

private static bool is64BitConfiguration() {
	return System.IntPtr.Size == 8;
}

Cocoapods after El Capitan installation

After updating to El Capitan I stumbled upon an serious issue. I couldn’t update pods on my projects. Pod command could not be found. I had find a way to re-install cocoapods.

Simple solution. Go to terminal and run the following command

sudo gem install -n /usr/local/bin cocoapods

Original command gem install
sudo gem install cocoapods was not working cause of writing permissions.