QGIS Lab03 Fall14: QGIS Openlayer Plugin, Geocoding, Bulk Geocoding, and Raster Analysis


This is third video tutorial in urdu language for QGIS. It is overview lecture on basic tasks such as openlayer, geocoding and raster analysis.


  1. Openlayer (google map and open street maps)
  2. Geocoding and reverse geocoding, bulk geocoding using MMQGIS (block/bulk of addresses at same time)
  3. Raster Analysis
    1. Interpolation
    2. Heat Map
    3. Terrain Analysis
    4. Slope
    5. Hill Shade
    6. Projection Wrap Projection
    7. Extraction:
      1. Contour
    8. Clipper/subsetting (corp)
    9. Miscellaneous
      1. Merge/mosaic (combine)

Below is the full video lecture. Use full screen for clear content of video. The download link of below video is ogg video or mp4 video. You can play it in vlc player or open it in web browser.

The example files that are used in video can be downloaded from here .


  1. Openlayer
  2. Geocoding
  3. Raster Based Terrain Analysis Techniques
  4. Clipper and Contour
  5. Mosaicing and Clipping

QGIS Lab02 Fall14: New Vector Layer, Georeferencing, Digitization, Geocoding


This is second video tutorial in urdu language for QGIS. It is overview lecture on basic tasks such as creating a shape file (point, line and polygon), georeferencing, digitization, and geocoding.


  1. Creating Point, Line and Polygon (creating shape files), adding attribute data.
  2. Georeferencing (Georerefercing satellite image from google earth in QGIS)
  3.  Digitization/Vectorization (Digitizing satellite image in QGIS by creating vector overlay)
  4. Geocoding

Below is the full video lecture. Use full screen for clear content of video. You can watch directly on tune.pk from this link: http://tune.pk/video/4523903/lab02-qgis-new-vector-layer-georeferencing-digitization-geocoding

Or you can play HTML5 video below or download it which is playable in VLC player. Use full screen for clear view. The download link of below video is ogg video or mp4 video.

The example files that are used in video can be downloaded from here .


  1. Georeferencing
  2. Geocoding

QGIS Lab01 Fall14: Intro to QGIS


This is first video tutorial in urdu language for QGIS. It is introductory lecture. The purpose of this series is to get started with using QGIS. QGIS is a free software package for Geographic Information System (GIS). You can download qgis for free from qgis.org.


  1. Adding existing vector layer
  2. Adding existing raster layer
  3. Zoom layer, working with layers, adding new layer, show hide layer, Table of content/ Manage layer pan
  4. Saving vector and raster layer
  5. Working with attribute/properties
  6. Identify feature
  7. Search/Query vector layer
  8. Working with style/color
  9. Symbols
  10. Label

Below is the full video lecture. Use full screen for clear content of video. You can watch directly on tune.pk from this link: http://tune.pk/video/4517058/lab01-intro-to-qgis

Or you can play HTML5 video below or download it which is playable in VLC player. Use full screen for clear view. The download link of below video is ogg video or mp4 video.

The example files that are used in video can be downloaded from here .


  1. QGIS tutorials and tips
  2. Free and opensource GIS ramblings
  3. QGIS official website

Updating your WEBAPP using PHP Functions – uploadapp program


This app download, extract the gunzip, backup the given config folder (single folder only) and replace the existing app file with updated files.

The app is tested on updating wordpress files. You can use if for update of owncloud, piwik, or modify it to upload files to your host server from your client computer. It make use of cURL and phar class of PHP. It works for gunzip update files only. For zip files, you would need to modify code of extr.php.

Main Code:

Important code for this app is:

  1. downloading file to host server
  2. extracting the gunzip
  3. and moving the backup and update files

PHP code for uploading a gunzip file to your host server with progress bar javascript:

PHP code for extracting gunzip file:

PHP code for moving and backup of folder:



  1.  Download the app from http://enggprog.com/Download/Projects/upload/uploadapp.zip and extract on your computer.
  2.  Edit config.php and change following variables:
    • $remoteFile = url of download package.
    • $webpath = full absolute webpath of the app including the folder.
    • $dstwebpath = full absolute webpath of the owncloud/req app including the folder. Files will be extracted here.
    • $srcfoldername = extracted files will be in this folder. It shall be the name of root folder of update package.
    • $dstfoldername = extracted files will be moved to this folder. This folder must exist on your server.
    • $cfgfolder = single folder (usually config folder) that is inside $dstfoldername folder to backup during update.
    • $cfgfolderbak = name of backup folder
    • $ctimeout = timeout of download time, increase for large files.
  3. Copy the url of index.php file of this app and paste it in your browser.


Download source code of uploadapp v0.1


  1.  Incorrect folder/file name can produce error.
  2.  Backup your full app directory before first time use.


  1. stackoverflow.com
  2. php.net

Drafting in Octave/Matlab

Plotting package of octave is very powerful. It can be used to plot architectural drawings. Following steps are required:

  1. Sketching the layout on paper while noting down the points and labeling it.
  2. Afterwards, the coordinates of point is calculated.
  3. Commands of line, gtext and axis limits are used.

For demo, m-file named drawoschool.m (draw octave school) is created which can be downloaded from here

To use this m-file, type:

Architectural Drafting in GNU OCTAVE
Architectural Drafting in GNU OCTAVE

CCX on Android Devices

Today smart phones have revolutionized Engineering Computations. Computer Aided Engineering (CAE) is now more easy and accessible with help of android tablets and phones.

CalculiX CrunchiX Solver – ccx is one of the most powerful Multiphysics GNU Finite Element Solver. This post is about how to compile and run gnu ccx on android. The code tested on HTC Incredible S and Android version 2.3.3.

If you are familiar with ccx or you can execute abaqus inp files using ccx, then, this script is helpful to you. Following steps show how to compile and run ccx on android.

1. Install Prerequisite Apps in Android:

a. Required android apps:

  1. GNURoot Wheezy by Corbin Champion
  2. GNURoot by Corbin Champion
  3. Free disk space on sdcard (better to have more than 6GB) and internal memory (better to have more than 500MB).

b. Required packages on Rootfs of GNURoot (Wheezy arm os):

  1. make
  2. gfortran
  3. gcc
  4. wget
  5. sed
  6. bzip2

2. Compiling ccx:

  1. Open GNUROOT
  2. Launch rootfs as fake root
  3. Download the script by following command:

    Or you can use tar files of cxbuild4mob. Untar and use it. Do not forget to go through readme file inside tar folder. Link of tar file is:
  4. Make script executable and then run it. Estimate downloading and compilation time for ccx is about 3 hours.

3. How to use ccx on Android:

  1. Open GNURoot

    Fig. 1: GNURoot
  2. Check Launch as Fake Root option then press Launch Rootfs button.

    Fig 2: Rootfs with Fake Root option checked
  3. Change current directory to folder where inp file exists. Verify by ls command and then run it under ccx.

    inp file
    Fig 3: Verify inp file.
  4. Check for errors in ccx log.

    Output log
    Fig. 4: Output Log of ccx.
  5. Verify output files.
    Ouput files of ccx
    Fig. 5: Output files of ccx


4. References:

  1. CalculiX CrunchiX
  2. GNURoot

Highlighting Syntax in gedit for CalculiX CrunchiX inp file for Enhanced Readability

CalculiX is a free software nonlinear three-dimensional finite element program for structural applications. Following steps results in syntax highlight of inp file in gedit:

  1. Add .xml in ~/.local/share/mime/packages named ccx.xml with following content:

  2. Update mime-database as:

  3. Add ccx.lang file in /usr/share/gtksourceview-3.0/language-specs or in path resulting from following command:

    The content of ccx.lang is:

  4. Open inp file and select gedit program to open.
  5. If you dont like or face problem then revert back the inp files to plain text as:

Syntax Highlight Files can be downloaded from below link:
Download Syntax Highlight Files.

before syntax highlight
Fig.1: Before Syntax Highlight of CCX input file.
after syntax highlight
Fig.2: After Syntax Highlight of CCX input file.



  1. Gedit New Language File
  2. Language Definition v2.0 Tutorial
  3. SuperUser.com
  4. CalculiX CrunchiX

Hosting Video on Your Website and Blog

Nowadays web trend is for free decentralized web services. Instead of centralized video tubes, social network and cloud, web developers and users prefer decentralized and free(dom) web services. This post overviews free video hosting alternatives for web developers and bloggers. It is about encouragement to your own video service right on your website or blog and embedding the video links from websites other the youtube.

There are 04 solutions and you can choose the one which suits you:

  1. HTML5 video tag.
  2. VideoPress plugin for WordPress site.
  3. Mediagoblin.
  4. Embedding links from websites other than youtube.

1. HTML5 Video Tag:

If you have a little know how of how html works then you can easily tag video in following steps.

  1. Create/Select your video and convert it in ogg format from Online Video Converter website or from firefogg.org.
  2. Upload the video in .ogg extension to desired web folder of your website.
  3. Use it in video tag.

    and save your Web page.


  • For fallback mode, in case of no support for html5 in user’s browser, upload cartado applet to root folder of your website and use following applet tag with your video tag:

    Today all latest browsers support html5.

  • Detailed steps are found at FLOSS Manual. The link of their website is given below in reference.


2. VideoPress plugin for WordPress site:

If you are running wordpress site which is either hosted in premium account or hosted by yourself, you can easily manage your uploaded video using videopress plugin. You can install VideoPress Plugin just like another plugin right from your WP dashboard. VideoPress Quick Start Guide is helpful resource.

3. Mediagoblin:

mediagoblin.org is a free software media publishing platform that anyone can run. You can think of it as a decentralized alternative to Flickr, YouTube, SoundCloud, etc. It required dedicated web server.

4. Embedding links from websites other than youtube:

You can upload and embed links from websites other than youtube like: tune.pk, gobblin.se, vimeo.com, dailymotion.com, veoh.com, metacafe.com, rutube.ru, break.com, and blip.tv.


  1. FLOSS Manuals.
  2. W3School Tutorial on Video Tag..
  3. VideoPress.
  4. Mediagoblin.
  5. List of Video Hosting Services.

Location of Construction Joint

Following points are helpful to provide construction joint in RC Slab, Beam and Raft Foundation:

  1. Construction joint shall be provided preferably at a location where stress are zero.
  2. Construction joint is provided at one-third or end of support.
  3. Also provide key and rebar to transfer shear stress if shear stress is not zero at point of construction joint.
  4. Provide construction joints as minimum as possible.
  5. Construction joint shall not be left on discretion of contractor. It must be approved by designer.


Construction joints are placed at the end of a day’s work. In slabs, they may be designed to permit movement and/or to transfer load. Often in reinforced concrete a conscious effort is made to clean the joint and bond the next day’s work.[1].


The number of construction joints in concrete structures should be minimized. If construction joints are necessary to facilitate construction, it is normally aligned perpendicular to the direction of the member. For beams and slabs, construction joints are preferably located at about one-third of the span length. The choice of this location is based on the consideration of low bending moment anticipated with relatively low shear force. However, location of one-third span is not applicable to simply supported beams and slabs because this location is expected to have considerable shear forces and bending moment when subjected to design loads. Sometimes, engineers may tend to select the end supports as locations for construction joints just to simplify construction. [2].

Construction joint is not preferred at midspan. When formwork removed from construction pours (delay in next pouring) and the beam (or slab) has had to cantilever from the previous support to the new construction joint. Also, joints at midspan do not typically work for post-tensioned construction. you need to accommodate anchorages and at approx 1/3 span works best. [3].

You need to provide a joint with key and rebars crossing the joint. In raft footing, at construction joint, shear force may not be minimum/zero. Hence you will have to leave dowels from one pour to another pour to transfer shear. You may calculate area of reinforcement required based on permissible shear stress as 0.45 fy. [4].

You can have your opinion and suggestion in comment box below.


  2. A Self Learning Manual – Mastering Different Fields of Civil Engineering Works (VC-Q-A-Method) by Vincent T. H. CHU.
  3. eng-tips
  4. sefindia.org

Additional Reference:

  1. ACI 302.1, “Guide for Concrete Floor and Slab Construction,” ACI Manual of Concrete Practice.
  2. “Slabs on Grade,” ACI Concrete Craftsman Series, American Concrete Institute, Detroit, Mi.
  3. “Cracks in Concrete: Causes, Prevention, Repair,” a collection of articles from Concrete Construction Magazine, June, 1973.

Debian4Engr Series 07: Installation of Blender

Following is one step guide for Installation of Blender in GNU Debian-cut and wheezy:


In GNU Debian, write following command in terminal:

The latest version is available in testing repo and available by default in debian-cut


  1. Get Blender from Blender.org