More from the web

Tuesday 13 October 2015

Increasing memory utilization in Windows Server 2003

 Using more of that memory installed in your server.

The following are the memory limits for the various versions of Windows Server 2003 R2

Version                                                                         Limit X86                                  Limit X64
Windows Server 2003 R2 Datacenter Edition             64 GB (16 GB with 4GT)          1 TB
Windows Server 2003 R2 Enterprise Edition              64 GB (16 GB with 4GT)          1 TB   
Windows Server 2003 R2 Standard Edition                4 GB                                          32 GB

But these limit which are over 4GB for the 32-bit versions assume the use of Physical Address Extension (PAE)

To enable PAE, use the /PAE switch in the Boot.ini file.

The following is an example of a Boot.ini file where the PAE switch has been added:

[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE

Edit the Boot.ini file
To view and edit the Boot.ini file, follow these steps:

1) Click Start, point to Settings, and then click Control Panel.
2) In Control Panel, double-click System.
3) Click the Advanced tab, and then click Settings under Startup and Recovery.
4) Under System startup, click Edit.

Details in links below:

Wednesday 7 October 2015

Join Linux to active directory domain and setup a samba share

1 ) As root install the following prerequisites
yum –y install nscd.x86_64 pam_krb5.x86_64 samba-winbind.x86_64

2) Run the authconfig-tui util  command
Configure Winbind as follows

Restart Services

/etc/init.d/winbind restart
/etc/init.d/nmbd restart
/etc/init.d/smbd restart

Now see if you can list the domain users and groups:
wbinfo -u # lists all the users in the domain
wbinfo -g # lists all the groups in the domain

And also check if winbind and nsswitch are correctly working:

getent passwd # should return a list with all users on the local system and from the active directory

getent group # should return a list with all groups and their members, both from the local system and the active directory.

Some names or groups are resolved with getent, but others are not

The range of your idmap parameter is not wide enough to encompass all the users or groups

idmap uid = 16777216-33554431

idmap gid = 16777216-33554431

Create Windows share using Samba On Linux
1) Create directory to be shared

 2) Edit the samba configuration file  (keep a backup)
     vi /etc/samba/smb.conf

3) Create share

4) Save and restart the smb service
#service smb restart

You should now see the share appear while browsing the network

Entering line "chcon -t samba_share_t /path" can help with permission errors on the shared folder


Wednesday 2 September 2015

Copying entire folder using Smbclient

1. connect using smbclient smbclient //computername/sharename -U username -W domainname
2. The windows box will ask the password.
3. After you connected do this step by step
4. type tarmode
5. type recurse
6. type prompt
7. mget foldertocopy\
8. the whole folder will be copied to your directory.

Thursday 30 July 2015

Creating a Local Certificate Authority, Signing and Requesting Certificates

In this tutorial i will be using CentOS to demonstrate the configuration of OpenSSL as a local certificate authority. Once this is setup you can use this server to sign certificates for other servers on your network. In this example i will also generate a request for signing from the server but in production instances you can/will do this from the requesting server.

1) Find out where the openssl.cnf file is located

which openssl

locate openssl.cnf

2)  Change to the folder containing the openssl.cnf file, make a backup of the file

cd /etc/pki/tls

Use root user for the following

cp openssl.cnf openssl_bkup.cnf

3) Configure cnf file as needed

vi openssl.cnf


dir = ./local-ca or /etc/pki/local-ca

Under the [change req_distinguished_name] heading you can  modify the defaults
as needed (helps in faster option selection but not required)

Modify the opensssl configuration to enable revocation list  

comment out "crlnumber"
should be #crlnumber after change

4) After the configuration edits

mkdir local-ca
cd local-ca
mkdir newcerts
mkdir certs
mkdir req
mkdir private
mkdir crl

echo "01" > serial

touch index.txt

5) Create the CA
cd /etc/pki/local-ca

openssl req -new -x509 -newkey rsa:2048 -keyout private/cakey.pem -out cacert.pem -days 3650

6) Create request for certificate from the Certificate Authority above (different server)

openssl req -new -nodes -newkey rsa:1024 -keyout private/newsecuredserver.key -out req/newsecuredserver.req -days 1095

7) Create the signed Certificate from the request above
openssl ca -policy policy_anything -out certs/newsercuredserver.pem -in req/newsecuredserver.req

ssl certificate is .pem
key files are .key

Backup entire OpenSSL directory

Remember to keep the directory permissions
ls -Fla pki

Create the certificate revocation list

openssl ca -config openssl.cnf -gencrl -out /crl/pem

Revoking Certificates
openssl ca -revoke /System/Library/OpenSSL/groundsweel/certs/mainfinsrvprod/pem

Create new request after revoking the certificate
openssl req -new -nodes -out /System/Library/OpenSSL/mainfinsrvprod/req/mainfinsrvprodnew.req

Create new signed certificate

openssl ca -config /System/Library/OpenSSL/openssl.cnf -policy poilicy_anything -out /System/Library/OpenSSL/main0ca/certs/mainfinsrvprodnew.pem -infiles /System/Library/OpenSSL/main-ca/req/mainfinsrvprodnew.req

Tuesday 14 July 2015

Adding Code Syntax Highlighting To Blogger

In this tutorial we are going to use the SyntaxHighlighter scripts provided by Alex Gorbatchev from

It can be downloaded here or click  here

After downloading you need to host the files on the web. Blogger doesn't let you upload files, but
there are many options GitHub, Drop Box or from the site itself here

I am using the author's website to host the files.

Each of the lines containing the "BrushPhp" file correspondes to a particular type of highlighting,
the following for example is for php

<script src="https://host/syntaxhighlighter/scripts/shBrushPhp.js" type="text/javascript">

If you want to be able to format a particular language, then you need to provide a script for that language. A list of all the brushes can be found here

Add links to styles/shCore.css, styles/shThemeDefault.css, /scripts/shCore.js and whatever brushes you require ex  /scripts/shBrushBash.js
Modify the following to add your own share or use the author's hosting, as i am doing here.

<!-- Syntax Highlighter Additions START -->

<link href='' rel='stylesheet' type='text/css'/>
<link href='' rel='stylesheet' type='text/css'/>
<script src='' type='text/javascript'/> <script src='' type='text/javascript'/> <script src='' type='text/javascript'/> <script src='' type='text/javascript'/> <script src='' type='text/javascript'/> <script src='' type='text/javascript'/> <script src='' type='text/javascript'/> <script src='' type='text/javascript'/>
<script language='javascript' type='text/javascript'>  SyntaxHighlighter.config.bloggerMode = true;  SyntaxHighlighter.all(); </script>
<!-- Syntax Highlighter Additions END -->

Go to your Blogger admin screen, and click on Template.

Then click Edit HTML. If you get a warning screen, click proceed.

Next find the <head> tag. This can be done by hitting Ctrl+F and using the find function.

Now copy and paste the code and Save Changes and close.

To add code in a post, Go to HTML mode. You need to wrap your code with <pre> tags and
include the type of programming language, eg for php

<pre class="brush:css">

your code


Note: any less than or greater than signs must be replaced with &lt or &gt respectively

you can also add the first-line element to start the numbering
from a different location

<pre class="brush:php;first-line:10">

Wednesday 8 July 2015

Large WER folder using most disk space on Windows Server 2008

The WER folder becomes large when there are a large number of problem reports.

WER stands for Windows Error Reporting (WER). Windows Error Reporting collects and offers to send post-error debug information (a memory dump), using the Internet, to the developer of an application that crashes or stops responding on a user's desktop. No data is sent without the user's consent.

You can delete the files from “C:\Users\username\AppData\Local\Microsoft\Windows\WER”.

To clear reports go to the "Control Panel" and select "System and Maintenance"
and under "Problem Reports and Solutions" select "View problem history"

The following should pop up

Right Click and select all the reports

Delete the reports

Hope this helps !!!

Saturday 4 July 2015

Recommended Software For Burning Linux ISO Images

Pendrive Linux
 The one that normally works for me is Universal USB Installer from
according to their site:
"Universal USB Installer aka UUI is a Live Linux USB Creator that allows you to choose from a selection of Linux Distributions to put on your USB Flash Drive. The Universal USB Installer is easy to use. Simply choose a Live Linux Distribution, the ISO file, your Flash Drive and, Click Install."

They also supply YUMI which is a  Multiboot USB Creator
"YUMI (Your Universal Multiboot Integrator), is the successor to our MultibootISOs. It can be used to create a Multiboot USB Flash Drive containing multiple operating systems, antivirus utilities, disc cloning, diagnostic tools, and more."

Give them a look and tell me your thoughts/experiences

Friday 3 July 2015

How to Add a Google XML Sitemap to your Blogger Blog

The XML Sitemap file is like a directory of all web pages that exist on your website or blog. Search engines like Google and Bing can use these sitemap files to discover pages on your site that the search bots may have otherwise missed during regular crawling.

The Problem with Blogger Sitemap Files

An complete sitemap file should mention all pages of a site but that’s not the case if your blog is hosted on Blogger.

The default XML sitemap file of any Blogger blog will have only the 26 most recent blog posts – see example. That’s a limitation because some of your older blog pages, that are missing in the default XML sitemap file, may never get indexed in search engines. There’s however a simple solution to fix this problem.
Generate a Complete Sitemap for your Blogger Blog

This section is valid for both regular Blogger blogs (that use a address) and also the self-hosted Blogger blogs that use a custom domain (like

Here’s what you need to do to expose your blog’s complete site structure to search engines with the help of an XML sitemap.

    Open the Sitemap Generator and type the full address of your blogspot blog (or your self-hosted Blogger blog).
    Click the Create Sitemap button and this tool will instantly generate the necessary text for your sitemap. Copy the entire generated text to your clipboard (see screenshot below).

  Next go to your Blogger dashboard and under Settings – > Search Preferences, the enable Custom robots.txt option (available in the Crawling and Indexing section). Paste the clipboard text here and save your changes.

And we are done. Search engines will automatically discover your XML sitemap files via the robots.txt file and you don’t have to ping them manually.

Blogger XML SitemapBlogger XML Sitemap

PS: If you have

switched from Blogger to WordPress, it still makes sense to submit XML sitemaps of your old Blogspot blog as that will aid search engines discover your new WordPress blog posts and pages.

Normally the  blog’s sitemap is located at


If you take a look at this URL, you can see that it lists out the URLs of all posts on BP along with their last modified timestamp. This information will help the crawlers in easily identifying any new entries on your blog.

Managing Sitemaps on Google WebMaster Tools

Google can easily find out your sitemap URL by reading your robots.txt file, but in case you want to explicitly specify the Sitemap URL and see the crawl/indexing statistics, you can update the new Sitemap URL in Webmaster tools. To add the new Blogger Sitemap, login at the below URL using your Google account.

If your blog was already added to webmaster tools, then it will be listed on Webmaster tools, if not add it using the “ADD A SITE” button. Once your blog is listed on WebMaster tools, click on the site name so that it takes you to the Site Dashboard.
Now navigate to Crawl > Sitemaps on the left side menu. Now click on the “ADD/TEST SITEMAP” button,give sitemap.xml in the text box and click “Submit Sitemap


Once it’s submitted, you can see the results on the same page. If you had previously added blogger’s RSS/ATOM feed as the sitemap using old methods, you can delete them(or you can keep them, it doesn’t make a difference).

Blogger Sitemap – FAQ

Question #1 – Is this feature available for custom domain blogs or blogspot blogs or both?

The Blogger XML sitemap is available on all blogger blogs including custom domain blogs or normal blogspot blogs. you just need to append /sitemap.xml to your blog’s home page URL to see the sitemap.

Question #2 – Can I add this blogger XML sitemap to Google Webmaster tools?

Yes you can add it to webmaster tools as described in the tutorial

Question #3 – Should I add blogger’s ATOM/RSS feed as blogger sitemap?

No you no longer need to do that. Blogger RSS/ATOM feeds will have a maximum of 500 posts. If you use the ATOM/RSS feed method, you will have to add new feeds everytime you make another 500 posts on your blog. Instead you can just add sitemap.xml as the only sitemap for your blog. Blogger will automatically add new posts to this sitemap and convert itself into a sitemap map in case there are more posts. So you can just add sitemap.xml and let Google/Blogger do the rest.

Question #4  - Should I then remove the old RSS/ATOM sitemaps from Webmaster tools?

Yes you can remove the old feed based sitemaps, but it’s not mandatory.

Taken  from

Wednesday 1 July 2015

Creating an HTML Sitemap Page in Blogger

Creating Sitemap Page for All Labels

If you want to show all of your blog posts at same page then follow below steps one by one.
  1. Go to your blogger blog.
  2. Now Navigate to Pages > New Page > Blank Page.
  3. Switch it to HTML mode.
  4. Paste below code in the post body.

<script type=”text/javascript”>
var numposts = 100;
var standardstyling = true;
function showrecentposts(json) {
  for (var i = 0; i < numposts; i++) {
    var entry = json.feed.entry[i];
    var posttitle = entry.title.$t;
    var posturl;
    if (i == json.feed.entry.length) break;
    for (var k = 0; k <; k++) {
      if ([k].rel == ‘alternate’) {
        posturl =[k].href;
    posttitle =;
    if (standardstyling) document.write(‘<li>’);
    if (standardstyling) document.write(‘</li>’);
<script src=”;alt=json-in-script&amp;callback=showrecentposts&amp;max-results=999″></script>
  1. Replace with your own blog URL.
  2. Click Publish button.
  3. That’s it.

Creating Sitemap Page for Particular Label

If you want to show posts from specific labels, then instead of the above code, use below code.

<script type=”text/javascript”>
var numposts = 100;
var standardstyling = true;
function showrecentposts(json) {
  for (var i = 0; i < numposts; i++) {
    var entry = json.feed.entry[i];
    var posttitle = entry.title.$t;
    var posturl;
    if (i == json.feed.entry.length) break;
    for (var k = 0; k <; k++) {
      if ([k].rel == ‘alternate’) {
        posturl =[k].href;
    posttitle =;
    if (standardstyling) document.write(‘<li>’);
    if (standardstyling) document.write(‘</li>’);
<script src=”http://www.blognamecom/feeds/posts/default/-/Label%20Name?orderby=published&amp;alt=json-in-script&amp;callback=showrecentposts&amp;max-results=999″></script>
Replace with your blog URL and Label%20Name with your label name.

Remember: If you are using single word as your label name like “SEO” then put SEO there but if you are using more than one word, then put %20 between each word.
For example: if the label name is Blogger Tricks, then put Blogger%20Tricks.
The label name is case sensitive, so take care of it. Means don’t put seo in the place of SEO. The code will not work in that case.

Final Words!

This was the little trick about how to make HTML sitemap page in Blogger for particular label or for all labels. I hope you guys like this tutorial. Feel free to leave comment below this post to share your views and feedback. Thanks and Happy Blogging!

Monday 29 June 2015

How to Position a Blogger Site Header

You’ve uploaded your Blogger header on the Layout page but it’s aligned to the left. You want it centered horizontally over the content section of your blog instead.
Here is how to easily do that!

1. In Blogger, go to Template > Customize

2. Click on the Advanced tab then scroll to the bottom of the second menu and choose Add CSS.

3. Copy and paste this code into the text box (click then press CTRL + C to copy, then CTRL + V to paste):

#header-inner {text-align:center !important;} #header-inner img {margin: 0 auto !important;}

But of course there are other options you can select for the header in blogger, namely:


Option A:  If you used “INSTEAD OF TITLE AND DESCRIPTION“ option:

With this option the image was added as a <img> HTML element. Use these code snippets to align the element.

To Center:
#header-inner img {margin: 0 auto !important;} #header-inner {text-align:center !important;}

To Align Right:
#header-inner img {margin: 0 auto 0 300px;}
The ‘300’ number can be adjusted higher or lower to move your image left or right.

To Align Vertically:

#header-inner img {padding-top: 50px ;}
The ’50’ number can be adjusted higher or lower to move your image up or down. This code snippet can be used in conjunction with the 2 above.

Option B:   If you used “BEHIND TITLE AND DESCRIPTION“ option:

When you choose this option, Blogger added your header image as a background to the header.  To align it you need to add one of the follow snippets of code:

To Center:
#header-inner {background-position: center !important; width: 100% !important;}

To Align Right:
#header-inner {background-position: right !important; width: 100% !important;}

If you would like to Line Up your Header Text (Title & Description) then use of one these snippet codes: These codes will work with text-only header and the text in “Behind Title & Description” image placement option.

To Center:
#header-inner {text-align: center ;}

To Align Right:
#header-inner {text-align: right ;}

To Align Vertically:(apply top padding)
.titlewrapper {padding-top: 50px  !important;}
The ’50’ number can be adjusted higher or lower to move your image up or down. This code snippet can be used in conjunction with the 2 above.  Also, to adjust the Description use .descriptionwrapper
Line Up Image & Text Side by Side

Use one of these snippets if you want to split up your header into 2 parts positioned side by side, an image and text: These codes will work with the “Behind Title & Description” image placement option.

To Place Image on Left & Text on Right:
#header-inner {background-position: left !important; width: 100% !important;} .titlewrapper, .descriptionwrapper {padding-left: 100px !important;}
Increase left padding to push away texts to the right of the image header

To Place Text on Left & Image on Right:
#header-inner {background-position: right !important; width: 100% !important;} .titlewrapper, .descriptionwrapper {padding-right: 100px !important;}
Increase right padding to push away texts to the left of the image header.

Saturday 27 June 2015

Raspberry Pi Torrent Downloader

we’re going to install Transmission, which is lightweight and has a nice web GUI.

First install the transmission daemon
sudo apt-get install transmission-daemon

After it's finished installing we are going to stop the daemon so that we can do some configurations
sudo /etc/init.d/transmission-daemon stop

Edit the following settings file
sudo nano /etc/transmission-daemon/settings.json

Change “rpc-authentication-required” to false; change “rpc-whitelist” to include your local subnet – for example:
"rpc-whitelist": ",10.0.1.*",

Add or adjust the following if already present:
"download-dir": "/mnt/torrents",
"watch-dir": "\/mnt\/torrents\/",
"watch-dir-enabled": true,
"umask": 2,

Next, edit the daemon startup file itself to deal with some permission problems.
sudo nano /etc/init.d/transmission-daemon
Change the USER=transmission-daemon to USER=root.

Reload the daemon.
sudo service transmission-daemon reload

You should be able to access the web interface from
http://raspberrypi.address:9091/transmission/web/ or http://raspberrypi.address:9091

Just in case it prompts you for a user name / password try the following:
transmission for both username and password

A nice addition to store your torrents or just for better performance of the Pi is to use a class 10
memory card such as this  click on image to view

Thursday 25 June 2015

Creating a contact page in Blogger

This is a nice addition to have your 
blog look more like a standard web site.

Having the contact page separated helps
to keep the information nicely compartmentalized.

Firstly create a "Page"

Then insert the following code into your Page while viewing in HTML view

var blogId = '=6299745683323777241';
//this number should be edited.
//The below message 5 Strings can also be edited
var contactFormMessageSendingMsg ='Sending...';
var contactFormMessageSentMsg = 'Your message has been sent.';
var contactFormMessageNotSentMsg = 'Message could not be sent. Please try again later.';
var contactFormEmptyMessageMsg ='Message field cannot be empty.';
var contactFormInvalidEmailMsg = 'A valid email is required.'

var widgetLoaded=false;
function sendEmailMsg() {
if(widgetLoaded== false) {
new _WidgetInfo('ContactForm1', 'sidebar', null, 
{'contactFormMessageSendingMsg': contactFormMessageSendingMsg , 
'contactFormMessageSentMsg': contactFormMessageSentMsg , 
'contactFormMessageNotSentMsg': contactFormMessageNotSentMsg ,
'contactFormInvalidEmailMsg': contactFormInvalidEmailMsg , 
'contactFormEmptyMessageMsg': contactFormEmptyMessageMsg , 
'title': 'Contact Form', 'blogId': blogId, 'contactFormNameMsg': 'Name', 
'contactFormEmailMsg': 'Email', 'contactFormMessageMsg': 'Message', 
'contactFormSendMsg': 'Send', 'submitUrl': ''}, 
return true;
<form name='contact-form'>
<div>Your Name : </div>
<input class='contact-form-name' id='ContactForm1_contact-form-name' name='name' size='30'
 type='text' value=''/>
<div>Your Email: <em>(required)</em></div>
<input class='contact-form-email' id='ContactForm1_contact-form-email' name='email' size='30' 
type='text' value=''/>
<div>Your Message: <em>(required)</em></div>
<textarea class='contact-form-email-message' id='ContactForm1_contact-form-email-message' 
name='email-message' rows='5'></textarea>
<input class='contact-form-button contact-form-button-submit' id='ContactForm1_contact-form-submit' 
type='button' value='Send' onclick="sendEmailMsg()"/>
<div style='text-align: center; max-width: 450px; width: 100%'>
<p class='contact-form-error-message' id='ContactForm1_contact-form-error-message'></p>
<p class='contact-form-success-message' id='ContactForm1_contact-form-success-message'></p>

Change the number highlighted in red to the id of your blog.
This id can be found in the url of your blog when viewing 

Webmin Setup On Raspberry Pi

Webmin essentially gives you a web interface of most of the functions you would normally need to carry out using SSH on your server.

First download the setup file

pi@raspberrypi/$ wget

The file is a gzipped file so we can use the gunzip command to get to the tar.

pi@raspberrypi/$ gunzip webmin-1.580.tar.gz

Now we have our tar we need to extract the contents

pi@raspberrypi/$ tar xf webmin-1.580.tar

Create a folder in my /var/www to hold webmin.

pi@raspberrypi/$ sudo mkdir /var/www/webmin

Now we can run the setup script.

pi@raspberrypi/$ cd webmin-1.580

pi@raspberrypi/webmin-1.580$ sudo ./ /var/www/webmin

You will have a number of options as the setup script runs but the defaults are okay,

the following you will have to enter a password

Web server port (default 10000):
Login name (default admin):
Login password:
Password again:
Use SSL (y/n): y
Start Webmin at boot time (y/n): y

You can access the webmin page using:


Replacing locahost with either your domain or ip address.

Once logged into the web interface you can update the version if required.