Categories
DRUPAL HTML HTML5 JavaScript jQuery LAMP MySQL PHP

PHP ARCHITECT QUESTIONS AND ANSWERS

What’s the difference between  <SPAN> and  <div> tags?
Span is for inline elements. Div is for block elements.
<div>tags are block elements that allow you to position elements contained within block.
tags used for inline styling of text.
<div> tags create line breaks, <span> tags doesn’t.
div elements are placed in a row, in other words automatic break is inserted. Whereas in case of span elements all are coming one after the other without any breaks.
Note: Can change inline element into block level element through CSS and vise-versa.
div{display:inline}
span{display:block}
Explain Data encryption in PHP ?
The PHP crypt() function can be used to encrypt data.
MD5 is a one way HASH
base64_encode is for encoding data.
Echo, print, printf – what is the difference between these?
Print and echo both output what is passed to them. Print acts like a function, so you can use it in complex statements. Printf is used to format the output
how variables are passed to functions by reference and by value?
A variable is passed by value unless the variable is passed with an &, such as functionName(&$variableName)
How can I execute a PHP script using command line?
PHP script using command line can be executed using SAPI
(Server Application programming Interface). Using SAPI
Command Line Interface the PHP code can be passed to execute
directly
Example:
Php –r ‘print_r(get_defined_constanrs());’
php filename
From a shell/cmd prompt, php –v will display whether the SAPI is CLI or CGI
explain YAHOO’s 20 points for web performance optimization ?
1. Flush the buffer early [server]
2. Use GET for AJAX requests [server]
3. Post-load components [content]
4. Preload components [content]
5. Reduce the number of DOM elements [content]
6. Split components across domains [content]
7. Minimize the number of iframes [content]
8. No 404s [content]
9. Reduce cookie size [cookie]
10. Use cookie-free domains for components [cookie]
11. Minimize DOM access [javascript]
12. Develop smart event handlers [javascript]
13. Choose <link> over @import [css]
14. Avoid filters [css]
15. Optimize images [images]
16. Optimize CSS sprites [images]
17. Don’t scale images in HTML [images]
18. Make favicon.ico small and cacheable [images]
19. Keep components under 25K [mobile]
20. Pack components into a multipart document [mobile]
FMI : http://developer.yahoo.com/performance/rules.html
What are all the new changes in PHP6 ?
Here is the list :

  1. FILE_BINARY and FILE_TEXT constants available for use with filesystem functions.
  2. register_globals will be gone.
  3. magic_quotes will also disappear.
  4. $HTTP_*_VARS has been removed, in favour for $_GET, $_POST, etc.
  5. ereg() no longer available in core PHP6.
  6. Initiating objects with the reference operator (& new Object()) will generate E_STRICT error.
  7. E_STRICT error messages are included in E_ALL errors.
  8. {} for string offsets no longer available.
  9. [] un-deprecated for accessing characters in a string.
  10. ASP-style tags can no longer be used.
  11. Better Unicode Support.
  12. var will be an alias of public, and raises E_STRICT warning.
  13. Support for 64 bit integers.
  14. With ternary operator, the “true” expression is no longer required – this can be done: $a = $s ?: ‘b’; (Not clear yet exactly how this will work).
  15. zend.ze1_compatibility_mode removed.
  16. safe_mode is being removed.
  17. Freetype1 and GD1 support removed.
  18. dl() is only enabled when a SAPI layers registers it explicitly.
  19. Support for dynamic break levels removed.
  20. XMLReader and XMLWriter will be in the core distribution.
  21. mime_magic removed from the core.
  22. Fileinfo moved to the core.
  23. ext/soap on by default.
  24. foreach supports multi-dimensional arrays: foreach($a as $b => list($c, $d))
  25. microtime() will return as float by default.
  26. opcode cache included in core distribution, but turned off by default.
  27. flags parameter available for file_get_contents().
  28. before_needle parameter added to strstr() – allows strstr() to return part of haystack before occurence of the needle.
  29. namespace, import, and goto become reserved words.

FMI : http://blog.tuvinh.com/one-minute-with-php6/

Categories
AJAX Angular CSS CSS3 HTML HTML5 JavaScript jQuery NodeJS UI Uncategorized VueJS

SAP – UI Architect – Angular Interview Questions and Answers

List and explain XSS attack types?

Cross-site scripting (XSS) is a code injection attack that allows an attacker to execute malicious JavaScript in another user’s browser.

XSS attacks are of three types:

  • Persistent XSS, where the malicious string originates from the website’s database.
  • Reflected XSS, where the malicious string originates from the victim’s request.
  • DOM-based XSS, where the vulnerability is in the client-side code rather than the server-side code.

Methods of preventing XSS

  • Encoding, which escapes the user input so that the browser interprets it only as data, not as code.
  • Validation, which filters the user input so that the browser interprets it as code without malicious commands.

What is CORS , how to manage? How to secure the requests?

Cross-Origin Resource Sharing (CORS) is a mechanism that uses additional HTTP headers to tell a browser to let a web application running at one origin (domain) have permission to access selected resources from a server at a different origin. A web application makes a cross-origin HTTP request when it requests a resource that has a different origin (domain, protocol, and port) than its own origin.

two response headers are most important for security:  

  • Access-Control-Allow-Origin specifies which domains can access a site’s resources. For example, if ABC Corp. has domains ABC.com and XYZ.com, then its developers can use this header to securely grant XYZ.com access to ABC.com’s resources. 
  • Access-Control-Allow-Methods specifies which HTTP request methods (GET, PUT, DELETE, etc.) can be used to access resources. This header lets developers further enhance security by specifying what methods are valid when XYZ accesses ABC’s resources. 

As CORS can lead to multiple security vulnerabilities , so instead of allowing CORS use a trusted server as a proxy / reverse proxy and allow all requests/resources to be served  from that dedicated server.

What is Virtual polymorphism ?

Polymorphism is the ability for objects of different classes related by inheritance to respond differently to the same member function call.

virtual function allows a programmer to call a function and let the program determine dynamically which version of the function to use.
To enable this type of behavior, the function will be declared in the base class as a virtual function and then be redefined in each of the derived classes.
To declare a virtual function, precede the function’s prototype with the keyword virtual in the base class.
Combination of both Virtual Function with polymorphism concept is called Virtual Polymorphism.

Write a Sql query for products table to get total price of products sold in a quarter ?

 SELECT
  productname, 
  SUM(price) as total_count
  FROM products
  WHERE `date` >= startdate AND `date` <= enddate
  GROUP BY productname
  ;

Write a Sql query for products table to get total price of products sold in a quarter ?

To calculate any factorial in real-time, you can speed it with a cache, saving the numbers you’ve calculated before.

factorial = (function() {
    var cache = {},
        fn = function(n) {
            if (n === 0) {
                return 1;
            } else if (cache[n]) {
                return cache[n];
            }
            return cache[n] = n * fn(n -1);
        };
    return fn;
})();

Types of requests which can be handled through browser?

HTTP, HTTPS, FILE, and FTP protocols are supported by most of the commonly used browsers.

What is promise? Advantages of it ?

A Promise is an object representing the eventual completion or failure of an asynchronous operation. Essentially, a promise is a returned object to which you attach callbacks, instead of passing callbacks into a function.

Advantages of promises are

  • Callbacks will never be called before the completion of the current run of the JavaScript event loop.
  • Callbacks added with then() even after the success or failure of the asynchronous operation, will be called, as above.
  • Multiple callbacks may be added by calling then() several times. Each callback is executed one after another, in the order in which they were inserted.
  • One of the great things about using promises is chaining.

How to improve the Performance of webpage?

  • Reduce External HTTP Requests
  • Minify CSS, JS and HTML
  • Compress Components with Gzip
  • Optimize Your Images
  • Add CSS at top/header section
  • Add JS at bottom section
  • Reduce DNS Lookups
  • Use CDN and Cache
  • Make Fewer HTTP Requests
  • Avoid empty src or href
  • Add Expires Headers
  • Avoid CSS Expressions
  • Avoid URL Redirects
  • Remove Duplicate JavaScript and CSS
  • CleanUP the unecessary code
  • Configure Entity Tags (ETags)
  • Reduce the Number of DOM Elements
  • Avoid HTTP 404 (Not Found) Error
  • Do Not Scale Images in HTML
  • Make favicon Small and Cacheable

IF Request/Response taking too much time than How to keep alive the request ?

A Request/Gateway Timeout response code indicates that the server did not receive a complete request from the client within a specific period of time tracked by the server.
You can set custom timeout for your http request in the second parameter of http.get() method:
$http.get(‘request-path’, {timeout: 300000});
This will set timeout to 300 seconds = 5 minutes. Increasing it to something much larger should help.
OR
req.setTimeout(0) for no timeout for all requests
Another solution is doing a long polling or short polling to keep alive the request.

DB 2 queries same record update? How to manage? How to intimate the second request to update itself?

Use SQL transaction statements like BEGIN and COMMIT to avoid concurrent updates to same record.
OR
You may have additional field which indicates that column is being edited. When first user starts work, the field would be updated. The second user would query object with ‘on hold’ status and your code would handle this.

Lot of requests , how to manage?

  • Use CDN for optimized content delivery
  • Use Cache Layers like memcache , redis etc..
  • Use Load Balancing techniques for Application Servers / Cache Layers
  • Use Master / Salve configuration for DB Servers

Same application, for 2 different companies but for all users, request to come, how to manage?

Use Proxy / Reverse proxy configuration along with a flag specific to company to manage the requests to handle internally from different servers.

Bind, apply and call difference in angular ?

The bind() method creates a new function that, when called, has its “this” keyword set to the provided value, with a given sequence of arguments preceding any provided when the new function is called.
fun.bind(thisarg[, arg1[,arg2[,….]]])

Function.call allows us to set the this value of a function manually. Instead of simply calling a function like fn(), we use fn.call(param), passing in the object we want this to equal as the parameter.
call also allows us to pass in parameters to the function being called. Anything given after the object to be bound to thiswill be passed along to the function.

Function.apply works the same exact way as call, except instead of passing in arguments one by one, we pass in an array of arguments that gets spread into the function.

In call method parameter will be passed separately. whereas in apply you can pass parameters as Array arguments.

Globalization or internationalization , how to do in angular?

Internationalization (i18n) is the process of developing products in such a way that they can be localized for languages and cultures easily. Localization (l10n), is the process of adapting applications and text to enable their usability in a particular cultural or linguistic market.
internationalizing an application means abstracting all of the strings and other locale-specific bits (such as date or currency formats) out of the application. Localizing an application means providing translations and localized formats for the abstracted bits.
AngularJS supports i18n/l10n for date, number and currency filters.
Localizable pluralization is supported via the ngPluralize directive.
All localizable AngularJS components depend on locale-specific rule sets managed by the $locale service.

How to avoid same button multiple clicks  ?

There are multiple ways to avoid multiple clicks of a same button

  • Once the click event is fired , disable the button till event response is processed
  • Unbind the click event on first click event
  • Provide a time interval for between the same object click event
Categories
JavaScript PHP

How to run production mode in vue.js with laravel ?

How to run production mode in vue.js with laravel  ?   

Method 1 :

In Laravel , Vue.js is included through NPM package and will be compiled as part of webpack in node stack. so while executing the npm assets compile command we need to mention it to compile in production mode. here is the command. 
npm run production  
Method 2 : 
In Laravel, Add an environment variable in laravel configuration and based on the load the Vue Configurations in the run time.

Environment Variable Creation Guide refer : https://laravel.com/docs/5.6/mix#environment-variables

Define :
MIX_ENV_MODE=production

Usage:

process.env.MIX_ENV_MODE
In any of the scripts file make sure to add conditional execution of vue.js configurations as below :
if (process.env.MIX_ENV_MODE === 'production') {
    Vue.config.devtools = false;
    Vue.config.debug = false;
    Vue.config.silent = true; 
}

 

Categories
Angular CSS HTML HTML5 JavaScript NodeJS UI VueJS

UI Developer / Lead / Architect Interview Question and Answers

UI Developer / Lead / Architect Interview Question and Answers 

1) SASS vs LESS  which is better ? 

SASS is better and more reliable, flexible and most of the modern JS frameworks are using SASS for more feature availability.   

2)  List 4 types of memory leaks of JS ?

—  Unnecesseary Global Variables 

—  Unused Functions ex: timers  

—  Unnecesseary DOM reference elements 

—  Improper Closures 

—  Manage Garbae collection wherever required

3) backward compatibility  for libraries how to manage ? 

Shared dependencied must be defined in peerDependencies package attribute. 

When both your project and some module you are using depend on the same libraries but different versions than you should define 

project level library dependency in “peerDependencies” section of the package.json to avoid conflicts of multiple version libraries. 

So project dependency library installed in main folder and module specific dependency library will be installed within the module folder

so it will avoid the conflicts. 

4) profiling of pages ?

For web page loading in a browser it has to wait for 

Initialization (DNS resolution, TCP connection, proxy, and SSL negotiation),

Server rendering, 

Data transfer, 

and 

page rendering in the browser

A web page is composed from many resources besides the main contents that the browser has to resolve

 and load (JavaScripts and stylesheets).

 Then it needs to build the DOM tree from the HTML and execute any needed JavaScript

Server side performance can be improved by improving the infrastructure 

such as no: of clusters/servers, CPU, memory, bandwidth, location etc.. 

Client side performance can be improved by following parameters/criteria :

HTTP optimizations -> by Network optiomaizations like DNS/TCP/SSL connections, browser preloaders , Resource Loading time, Content loading time 

HTML and JavaScript loading optimizations -> Google RAIL model

Response (user interface): Tap to paint in less than 100ms;

Animation: Layout rendering should take less than 16ms per frame;

Idle: Use idle time to compute some work in chunks of 50ms;

Load: The page should be fully loaded in less than 1000ms.

Stylesheets optimizations -> 

Minify and Compress your files

Remove unused CSS rules

Optimize the CSS critical path

Analyze Stylesheets complexity

Image caching / sprite images  

Use CDN 

use Cache control expires

Gzip the componets for reduce load 

Stylesheets at TOP / Scripts at Bottom 

Remove duplicate code/scripts 

Use ETags for browser caching 

Profiling tools like : pingdom, google pagespeedtest to implement and optimize the suggestions 

5) how to make lightweight UI  ?  

Color minimalism

Operation simplification with the minimal steps of operation

Layered interface with flat design and skeumorphism

Micro-interaction  like “pull-down refresh”,”add to shopping cart”, etc.

6) How to make Data processing  better & faster ?  

For JS Frameworks 

 — Caching Your App data with cache layers like memcached, Redis etc.. 

 — Multi clustering of Data / Application for faster proecessing  

 — All data processing queries are Optimized

 — Check All Error in the Scripts by Logging and make all error scenarios are handled 

 For Angular 

 — Use Batarang tool to debug and fix any performance issue  

 — Chrome Dev Tool Profiler to Identify Performance Bottlenecks

 — Use console.time for Debugging Issues

 — Use ng-if or ng-switch instead of ng-show

The ng-show directive toggles the CSS display property on a particular element, while the ng-if directive actually removes the element from DOM and re-creates it if needed. 

 — Avoid using ng-repeat

 — Overuse of the ng-repeat directive can drastically drive down performance. 

 — Lower the number of elements that get looped over by implementing pagination or infinite scroll. AngularJS even has a directive called ngInfiniteScroll for that purpose. 

7) what is STRICT mode in JS ? 

 “use strict”; Defines that JavaScript code should be executed in “strict mode” so it will make “bad syntax” into real errors.

Using a variable, without declaring it, is not allowed:

Using an object, without declaring it, is not allowed:

Deleting a variable (or object) is not allowed.

Deleting a function is not allowed.

Duplicating a parameter name is not allowed:

Octal numeric literals are not allowed:

Octal escape characters are not allowed:

Writing to a read-only property is not allowed:

Writing to a get-only property is not allowed:

Deleting an undeletable property is not allowed:

The string “eval” cannot be used as a variable:

The string “arguments” cannot be used as a variable:

The with statement is not allowed:

For security reasons, eval() is not allowed to create variables in the scope from which it was called:

In function calls like f(), the this value was the global object. In strict mode, it is now undefined.

Keywords reserved for future JavaScript versions can NOT be used as variable 

Categories
LAMP Linux PHP

How to Upgrade PhpMyAdmin in Linux

How to Upgrade PhpMyAdmin in Linux distributions OS like Ubuntu, Redhat etc.. ?

There are 2 ways to install & maintain upgrade phpmyadmin in Linux operating systems.


First way :

Automated installations by using the personal archive repository for phpmyadmin


For adding repository list to Linux –

sudo add-apt-repository ppa:nijel/phpmyadmin

For first time installations

sudo apt-get install phpmyadmin

For updating the existing phpmyadmin second time onward where installation was done using the above command

sudo apt-get update phpmyadmin

Second way :


Manual installation by using the phpmyadmin download package

Make sure you have the sudo/root permissions for all software installations. 


Example takes was to upgarde to 4.8.1 version phpmyadmin –


Goto your home directory

cd /home/{username}


Download phpmyadmin package

wget https://files.phpmyadmin.net/phpMyAdmin/4.8.1/phpMyAdmin-4.8.1-all-languages.tar.gz


extract the downloaded package to folder

tar -zxvf phpMyAdmin-4.8.1-all-languages.tar.gz


rename it to proper folder as used in the webserver configurations

mv phpMyAdmin-4.8.1-all-languages phpmyadmin


Goto user share directory where all shared software installations are managed

cd /usr/share


Move if any existing phpmyadmin folder to rename as old folder

sudo mv phpmyadmin phpmyadmin_old


Goto your home directory

cd /home/{username}


move the download& extracted phpmyadmin folder to user share directory

sudo mv phpmyadmin /usr/share/phpmyadmin


Goto user share directory

cd /usr/share


Provide the required permissions for www-data webserver user to read/write/execute

sudo chgrp -R www-data phpmyadmin

sudo chmod -R ug+rwx phpmyadmin


Your phpmyadmin has been upgraded to latest version.

Categories
Agile

Agile SCRUM interview questions and answers

What does SCRUM refers to in AGILE ? Scrum is a framework for Agile software development that emphasizes teamwork, accountability and iterative progress toward a well-defined goal. It is an agile way to manage a project think of it as a framework for managing a process.

Explain the Roles / Ceremonies /Artifiacts / Events used  in SCRUM ?
Scrum suggests 

three roles

             The team, 

             ScrumMaster, 

      and Product owner

  

four ceremonies

             The sprint planning meeting, 

             Daily Scrum, 

             Sprint review meeting, 

     and Sprint retrospective meeting.   

four formal events 

           Sprint Planning , 

           Daily Scrum , 

           Sprint Review, 

           Sprint Retrospective.

three artifacts

           The product increment, 

            Product backlog,

    and Sprint backlog.   

What is Sprint Burn Down Chart ?

Progress on a Scrum project can be tracked by means of a release burn down chart. The Sprint Burn down Chart is a graphic representation that shows the rate at which work is completed and how much work remains.

What is Sprint Backlog ? 
The sprint backlog is a list of tasks identified by the Scrum team to be completed during the Scrum sprint. 

What is extreme programming model? what activities are involved in it ? 
Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness taken to “extreme” levels to changing customer requirements. 

4 Activties of XP are : Listening, Designing , Coding and Testing.  

What are the Best Practices for Agile/SCRUM methodology ?

  • Daily meetings must not be longer than 15 minutes. 
  • Stand up meeting style is better for daily meetings.
  • Sprint length (in weeks) changes are not recommended
  • sprint hour capacity per story point is 6.5 hrs / day 
  • Prioritize the requirements in Product backlog 
  • Active stakeholders participation continuously
  • Collective Code Ownership 
  • regular Retrospective meeting for improvements   

what is retrospective meeting ? 
An Agile retrospective is a meeting that’s held at the end of an iteration in Agile software development. During the retrospective meeting the team reflects on what happened in the iteration and identifies actions for improvement going forward. 

What are the strength of Agile ? 

Strength of Agile are  

– improving communication between groups 

– A way of working against normal software development methodology 

– Allowing organizations to be flexible to take the products to market faster. 

Categories
AJAX JavaScript

Chart JS canvas dynamic draw chart and clear using AJAX based JSON data

Chart.js  :  How to Clear canvas after drawing a chart based on the dynamic data received from AJAX based JSON response data ?

Normally  if you try to draw a new dynamic chart after an AJAX request based on the JSON data received than the the graph starts jumping around and gets fuzzy between the grid lines. This issue happens every time when the JSON data has changing datasets based on the AJAX cal request. 

To sort out this issue , you need to destroy the chart before redrawing with new dataset. 

create a global variable and use that variable while creating chart :

myChart:

and use this variable to assign chart instance, before assigning the chart instance make sure to check if any previous chart instance is available with the global variable, if exist than clear and destroy the chart distance : 
createChart: function() {
var ctx = document.getElementById(myChart); // check if any existing chart instance data is available and destroy
if(this.myChart instanceof Chart){
this.myChart.clear();
this.myChart.destroy();
} //draw new chart
this.myChart = new Chart(ctx, {
type: this.chartData.type,
data: this.chartData.data
});
}
I have taken the vue.js implementation with chart.js as the example in above scenario. 
Categories
CSS DRUPAL JavaScript LAMP MySQL PHP

Drupal 8 Interview Questions and Answers

How do I add external CSS OR JS libraries in Drupal 8 ? 

You need to add external library (CSS, JS) into your_theme.libraries.yml and attach the library either in twig or in your controller


myLibrary:
js:
https://xyz.com/bootstrap/4.1.11/js/bootstrap.min.js: { type: external, minified: true }
css:
component:
https://xyz.com/bootstrap/4.1.11/css/bootstrap.min.css: { type: external, minified: true }

{{ attach_library ('mythemename/mylibrary') }}

What is TWIG ? 
Drupal uses a new theme engine called Twig. Its a flexible, fast, and secure PHP based theme engine.its templates are written in a syntax that’s less complex than a PHP template and easier to create interactive and more functional Drupal templates using Twig.

What is Clean URLs ? 
user-friendly URLs, or search engine-friendly URLs, are Uniform Resource Locators (URLs) intended to improve the usability and accessibility of a website is called Clean URLs.
In Drupal 8, ‘Clean URLs’ are enabled by default and can’t be disabled. Check your site’s URLs which should not contain ?q= within the URL. It has certain dependencies on Webserver modules to work properly.

Which are all the Symfony components used by Drupal 8 ?
Symfony Components used by Drupal 8 project :
ClassLoader
Console
CssSelector
Debug
DependencyInjection
EventDispatcher
HttpFoundation
HttpKernel
PHPUnit Bridge
Polyfill Iconv
Process
Routing
Serializer
Translation
Validator
Yaml

how to improve DRUPAL performance for anonymous and authenticated users ?
Anonymous Traffic
Lighter user, basic configuration and performance tuning should handle more use cases.

Authenticated Traffic
Heavier user, can lead to more complex configurations to handle load and performance.
Caching for Drupal Websites

so here are five of the most important caching solutions for a Drupal website:

Drupal’s built-in caching
Boost module
Memcached
Varnish
Views caching

Categories
LAMP MySQL PHP

12 Essential PHP Interview Questions

 Our Toptal Engineering Blog has published a great post called “12 Essential PHP Interview Questions,” and I think it would be of interest to all of you.
See the preview of article given below :
Consider the following code:
$str1 = ‘yabadabadoo’;
$str2 = ‘yaba’;
if (strpos($str1,$str2)) {
echo “\”” . $str1 . “\” contains \”” . $str2 . “\””;
} else {
echo “\”” . $str1 . “\” does not contain \”” . $str2 . “\””;
}
The output will be:
“yabadabadoo” does not contain “yaba”
Why? How can this code be fixed to work correctly?
To see more goto : www.toptal.com/php/interview-questions

Categories
PHP

Sapient Interactive Web Development/UI manager interview questions and answer

Recruiter Screen Form
HTML
1. Can you name some HTML5 features/APIs?
Answer:- Here listed some of the HTML 5 features/API
• Media API
• Drag and Drop Feature
• Offline Cache
• Full screen API
• Link Prefetching
• New Input types like : date, datetime, email, number, tel etc…
• New Form elements like : datalist, keygen , output
• New Form Attributes like : autocomplete, min and max, placeholder, required etc..
2. What is a DOCTYPE!?
The declaration instructi the web browser about what version of HTML the page is written in.
Before in HTML4 and prior, declaration refers to a specific DTD.
Whereas HTML 5 does not require a reference to a DTD so simply declared as .
3. What is the difference between alt, title and longdesc attributes of the image tag?
Alt tag specifies an alternate text for an image.
Title tag specifies offers to display information about the image when hovered.
Longdesc tag specifies the URL to a document that contains a long description of an image.
4. Do you understand what semantic markup is and do you follow it in your code?
Using semantic markup means that the (X)HTML code you use like tags and identifiers which describes the content and elements used should have a logical relationship to the data contained within them. Ex:
should be used for textual paragraphs,

      should be used for unordered lists, etc. and applying IDs such as #Navigation, #Header and #Content to your
tags etc..

CSS
1. What are some possible values for the CSS position declaration?
STATIC, FIXED, RELATIVE, ABSOLUTE, INHERIT
2. What is the default CSS position of any HTML object?
STATIC
3. What are some possible values for the CSS display declaration?
INLINE, BLOCK, NONE
4. What is the difference between display: none and visibility:
The display property specifies if/how an element is displayed, and the visibility property specifies if an element should be visible or hidden.
display: none hides an element and it will not take up any space. Whereas visibility: hidden hides an element, but it will still take up the same space as before.
5. What are some of the CSS3 pseudo classes/properties you have used?
Some ex: :nth-child(N) , :last-child, :enabled, :disabled, :only-child etc…
6. Any exposure to CSS preprocessors/frameworks?
Yes exposure to CSS preprocessors/frameworks using LESS.
JavaScript
1. Have you used Object Orient JavaScript concepts in your work? What is your understanding of OOJS?
Yes, have worked on OOJS concepts and have better understanding of OOJS.
2. Have you used prototype objects?
Yes, it allows adding properties and methods to an object.
3. What are closures?
Closures are functions that refer to independent (free) variables. In short, variables from the parent function of the closure remain bound from the parent’s scope.
Closures have access to the outer function’s variable even after the outer function returns
Closures store references to the outer function’s variables
4. Which design patterns have you used/familiar with?
Singleton, constructor, module design patterns etc..
5. Which JavaScript libraries/frameworks have you worked with
jQuery, YUI, Dojo etc…
6. Any exposure to Front End Architecture?
Yes, worked on front end design and development with little bit exposure to architecture.
7. What is your experience with templating?
Very good experience in designing templates for web template system.
8. Have you used or are familiar with JavaScript testing?
Yes familiar with JS testing.
Mobile Development
1. What is your experience in mobile and mobile solutions?
Yes, worked on mobile based solutions for one of the project.
2. Have you used media queries?
Yes, whenever worked on responsive templates, I have used media queries.
3. Have you worked on Responsive Design layouts?
Yes as explained above.
4. Any experience with libraries/frameworks?
Relevant to mobile development very little exposure with mobile libraries and frameworks but has knowledge.