affiliate_link

Thursday, May 29, 2014

What is Scrum (Software Development) vs Agile Software Development?

Scrum

Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development. It defines

"a flexible and holistic product development strategy where a development team works as a unit to reach a common goal"

It challenges assumptions of the traditional sequential approach to product development

Reference: http://en.wikipedia.org/wiki/Scrum_(software_development)

Agile Software Development

Agile software development is a group of software development methods based on iterative and incremental development in which requirements and solutions evolve through collaboration between self organizing and cross functional teams. It promotes adaptive planning, evolutionary development and delivery encourages rapid and flexible response to change

Reference: http://en.wikipedia.org/wiki/Agile_software_development

Wednesday, May 21, 2014

Multithreading Multiprocessor vs Single-Processor Computers

Multiprocessor Computers

Multithreading provides greater throughput. Ten processors can do ten times the work of one, but only if the work is divided so that all ten can be working at once; threads provide an easy way to divide the work and exploit the extra processing power. If you use multithreading on a multiprocessor computer:
  • The number of threads that can execute concurrently is limited by the number of processors.
  • A background thread executes only when the number of foreground threads executing is smaller than the number of processors.
  • When you call the Thread.Start method on a thread, that thread might or might not start executing immediately, depending on the number of processors and the number of threads currently waiting to execute.
  • Race conditions can occur not only because threads are preempted unexpectedly, but because two threads executing on different processors might be racing to reach the same code block.

Single-Processor Computers 

Multithreading provides greater responsiveness to the computer user, and uses idle time for background tasks. If you use multithreading on a single-processor computer:
  • Only one thread runs at any instant.
  • A background thread executes only when the main user thread is idle. A foreground thread that executes constantly starves background threads of processor time.
  • When you call the Thread.Start method on a thread, that thread does not start executing until the current thread yields or is preempted by the operating system.
  • Race conditions typically occur because the programmer did not anticipate the fact that a thread can be preempted at an awkward moment, sometimes allowing another thread to reach a code block first.

Deadlocks vs Race Conditions

Deadlocks
 
A deadlock occurs when each of two threads tries to lock a resource the other has already locked. Neither thread can make any further progress.

Many methods of the managed threading classes provide time-outs to help you detect deadlocks. For example, the following code attempts to acquire a lock on the current instance. If the lock is not obtained in 300 milliseconds, Monitor.TryEnter returns false

if (Monitor.TryEnter(lockObject, 300)) {
    try {
        // Place code protected by the Monitor here.
    }
    finally {
        Monitor.Exit(this);
    }
}
else {
    // Code to execute if the attempt times out.
}
 
Race Conditions
 
A race condition is a bug that occurs when the outcome of a program depends on which of two or more threads reaches a particular block of code first. Running the program many times produces different results, and the result of any given run cannot be predicted.

A simple example of a race condition is incrementing a field. Suppose a class has a private static field (Shared in Visual Basic) that is incremented every time an instance of the class is created, using code such as objCt++; (C#) or objCt += 1 (Visual Basic). This operation requires loading the value from objCt into a register, incrementing the value, and storing it in objCt.

In a multithreaded application, a thread that has loaded and incremented the value might be preempted by another thread which performs all three steps; when the first thread resumes execution and stores its value, it overwrites objCt without taking into account the fact that the value has changed in the interim.

Reference: http://msdn.microsoft.com/en-us/library/1c9txz50%28v=vs.110%29.aspx

Salesforce.com Questions and Answers

1. What is App in Sales force?

An app is a group of tabs that work as a unit to provide functionality. Users can switch between apps using the Force.com app drop-down menu at the top-right corner of every page.

You can customize existing apps to match the way you work, or build new apps by grouping standard and custom tabs.

Navigation to create app in Sales force: Setup ->Build ->Create->App-> Click on new and create your application according to your requirements.

2. What is object in Sales force?

Custom objects are database tables that allow you to store data specific to your organization in salesforce.com. You can use custom objects to extend salesforce.com functionality or to build new application functionality.

Once you have created a custom object, you can create a custom tab, custom related lists, reports, and dashboards for users to interact with the custom object data. You can also access custom object data through the Force.com API.

Navigation to create object in sales force: Setup->Build->Create->Object-> Click on new object and create object according to your requirement.

3. How many relationships included in SFDC & What are they?


We are having two types of relationships, they are

Lookup Relationship

Master-Detail Relationship

4.  What is a “Lookup Relationship”?

This type of relationship links two objects together,

Up to 25 allowed for object

Parent is not a required field.

No impact on a security and access.

No impact on deletion.

Can be multiple layers deep.

Lookup field is not required.

5. What is “Master-Detail Relationship”?

Master Detail relationship is the Parent child relationship. In which Master represents Parent and detail represents Child. If Parent is deleted then Child also gets deleted. Rollup summary fields can only be created on Master records which will calculate the SUM, AVG, MIN of the Child records.

Up to 2 allowed to object.

Parent field on child is required.

Access to parent determines access to children.

Deleting parent automatically deletes child.

A child of one master detail relationship cannot be the parent of another.

Lookup field on page layout is required.

6. How can I create Many – to – Many relationship?

Lookup and Master detail relationships are one to many relationships. We can create many – to – Many relationship by using junction object. Junction object is a custom object with two master detail relationships.

7.  A custom object contains some records, now my requirement is to create field in this object with master detail relationship. Can we create master detail relationship in this case?

   No, directly we cannot create master details relationship if custom object contains existing records.

   Following are the steps to create to create master-detail relationship when records are available in custom   object.

 1. First create field with lookup relationship.
 2. And then associate look field with parent record for every record
 3. Next change the data type of the field from look up to Master detail.

8. List examples of custom field types?

Text, Pick list, Pick list (multi select), Date, Email, Date/Time, Date, Currency, Checkbox, Number, Percent, Phone, URL, Text Area, Geolocation, lookup relationship, master detail relationship etc…..

9. What is TAB in Salesforce?

   Tab is a user interface component to user creates to display custom object data.

   There are three type of tabs.

        Custom Tabs

        Visual force Tabs

         Web Tabs

10. Does user can create insert their own custom logo, while creating their own custom applications?


Yes user can upload their custom logo in documents and then they choose that logo for organization.

11. List things that can be customized on page layouts?

  We can customize different things on page layout like, Fields, Buttons, Custom Links and Related Lists. We can also create sections.

12. What is a “Self Relationship”?


Self Relationship is a lookup relationship to the same object. Suppose let’s take an object “Merchandise”. Here we can create relationship in between the Account to Account (same object) object. That is called “Self Relationship”.

13. What are the main things need to consider in the “Master-Detail Relationship”?


Record level access is determined by the parent, Mandatory on child for reference of parent, cascade delete (if you delete the parent, it can cascade delete the child).

14. What is difference between trigger and workflow?

Workflow

Workflow is automated process that fired an action based on Evaluation criteria and rule criteria.

We can access a workflow across the object.

We cannot perform DML operation on workflow

We cannot query from database

Trigger

Trigger is a piece of code that executes before or after a record is inserted or updated.

We can access the trigger across the object and related to that objects

We can use 20 DML operations in one trigger.

We can use 20 SOQL’s from data base in one trigger.

15. What is Wrapper class? 

A Wrapper class is a class whose instances are collection of other objects.

It is used to display different objects on a Visual Force page in same table.

16. What is Difference between SOQL and SOSL?

SOQL(Salesforce Object Query Language)

Using SOQL we can Search only on one object at a time.

We can query on all fields of any datatype

We can use SOQL in Triggers and classes.

We can perform DML operation on query results.

SOSL(Salesforce object Search Language)

Using SOSL we can search on many objects at a time.

We can query only on fields whose data type is text,phone and Email.

We can use in calsses but not in Triggers.

We cannot perform DML operation on search result

17. What is difference insert() and database .insert() ?


Using insert method we can insert the records but if any error occurs in any record system will throw an error insertion fail and none of the records are inserted.

If we want to execute partially success of bulk insert operation we will use database .insert.

18. What is Static Resources?

Using Static Resources we can upload images, zip files, jar files, java script and CSS files that can be referred in a visual force page.

The maximum size of Static Resources for an organization is 250mB.

19. How to call java script using Static Resource in Visual Force page?


Add java script file in Static Resource setup -> develop -> Static Resources -> click on ‘New’ -> Name: filename and add file from local desktop and save.

We can use that file as follows in Visual Force page

<apex: includescript values=” {! $Resource.fileName}”/>

20. What is sharing rule?

If we want to give the access to other users we use sharing rules.

21. How many ways we can share a record?

Role Hierarchy:

If we add a user to a role, the user is above in the role hierarchy will have read access.

Setup -> manage users -> roles -> setup roles -> click on ‘add role’ -> provide name and save.

OWD:

Defines the base line setting for the organization.

Defines the level of access to the user can see the other user’s record

OWD can be Private, Public Read Only, Public Read and Write.

Setup -> Security Controls -> sharing settings -> Click on ‘Edit’

Manual Sharing:


Manual Sharing is sharing a single record to single user or group of users.

We can see this button detail page of the record and this is visible only when OWD setting is private.

Criteria Based Sharing rules:


If we want to share records based on condition like share records to group of users

 Whose criteria are country is India.

 Setup -> security controls -> sharing settings -> select the object and provide name and

 Conditions and save

Apex sharing:

Share object is available for every object(For Account object share object is AccountShare ). If we want to share the records using apex we have to create a record to the share object.

22. What are the actions in workflow?   

         1. Email Alert

         2. Task

         3. Field Update

         4. Outbound Message

         Go through the below link for the more information about workflow actions        http://www.salesforcetutorial.com/salesforce-workflow-automation-workflow-management/

23.  How many ways we can made field is required?

            1. While creation of field

            2. Validation rules

            3. Page Layout level

24.  What is difference between Role and Profile?


             Role is Record level access and it is not mandatory for all users.

             Profile is object level and field level access and it is mandatory for all users.

25. What is the maximum size of the PDF generated on visualforce attribute renderAs?

                15MB

26.  How many controllers can be used in a visual force page?

           Salesforce come under SAAS so, we can use one controller and as many extension controllers.

27.  What is difference between Action support and Action function?


Action function:  Invoke the controller method from java script using AJAX and we can use action function from different places on visual force page.

Action support: Invoke the controller method using AJAX when even occurs on page like onMouseOver, onClick, ect… and we can use action support for particular single apex component.

28. How many ways we can call the Apex class?

                1. Visual force page

                2. Web Service

                3. Triggers

                4. Email services

29. How to create Master Details relationship between existing records?

Directly we can’t create Master Detail relationship between existing records, first we have to create Lookup relationship and provide valid lookup fields and it shouldn’t  null.

30. What is permission set?


                Permission sets extend user’s functional access without changing user’s profile.

    Ex:  A user has only read access through profile on custom object, administrator want to give access Edit and create operations to him without changing the profile. Administrator creates the permission set having edit and creates operation on custom object and assign to that user.

31. What is manual sharing?

                Manual sharing is to share a record to a particular user manually.

Go to detail page of record and click on manual sharing button and assign that record to other user with Read or Read/Write access.

Manual Sharing button enables only when OWD is private to that object.


32. How we can change the Grant access using role hierarchy for standard objects?

                Not possible.

33. What is the use of “Transfer Record” in profile?
                If user have only Read access on particular record but he wants to change the owner name of that record, then in profile level Transfer Record enables he can able to change the owner.

34. What is Field dependency?

                According to the field selection on one field filter the pick list values on other field.

35. Is check box performs like controlling field?

                Yes possible. Controlling field should be Check box or pick list.

36. How many field dependencies we can use in Visual Force page?

                Maximum we can use 10 field dependencies in VF page.

37. What is Roll-up summary?

                Roll-up displays the count of child records and calculate the sum, min and max of fields of the child records.

38. How to create Roll-up summary field on lookup relation?
                Not possible. Roll-up summary is enabled for only Master –Detail relationship.

39. What are the Record Types?

                 Record Types are restrict the pick list values and assign to the different page layouts for different Record Types.

40. What is Audit Trail?

                Audit Trail provides the information or track all the recent setup changes that an administrator done to the organization.

               This can store the last 6 months data.

41.  What are the Report Types?

       4 Types of report in Salesforce

       Tabular Reports: We can only displays the grand total in the table form.

        Summary Reports: It is a detail form of report in which the grouping done based on Columns.

       Matrix Reports: It is a detail form of report in which the grouping done based on both Rows and Columns.

       Joined Reports: We can join the two or more reports in the single report displayed in the form of blocks.

42. What is Dashboard?
                Dashboard is a pictorial representation of report. We can add up to 20 reports in single dashboard.


43. What is the default timeout period while calling webservice from Apex.

                10Sec

44. We have a “Time Based Workflow” and there is Action scheduled to be executed. If we Deactivate the workflow, Scheduled actions will be removed from queue or not?

                Action will be performed even if we are deactivated the workflow.

45.  How to delete “Time based workflow” if there is already an action scheduled?

                We can’t delete the “Time based workflow” if any pending actions in the queue.

46. How to update the record using After Trigger context?

                Not possible. You will get error like “Record is Read only”.

47. What is the difference between “Export” and “Export All” in Data Loader in Salesforce?

                Export is export all the data from Salesforce.com excluding the recycle bin’s data.

                Export All is export all the data from Salesforce including the recycle bin’s data.

48. What is the use of “ALL ROWS” in SOQL?

                ALL ROWS is used for retrieving the records from recycle bin.

                         Ex:  SELECT Id from Campaign ALL ROWS

                        -> “ALL ROWS” is not work in developer console.

49. What is the use of “FOR UPDATE” in SOQL?

                FOR UPDATE is used to lock the records.

                Ex:  Campaign cam = [SELECT id FROM Campaign LIMIT 1 FOR UPDATE];

50. What is the use of “savepoint” in apex?

This is will use for to roll back the changes.

51. How to call Apex class using java script?

 Check the below code.

  Apex Class:

global class ClassName{

      webService static String methodName(String camName) {

            Campaign cam = new Campaign(name = camName);

            return cam.name;

       }

}

Java Script:

var Campaign = sforce.sObject(“Campaign”);

var String = sforce.apex.exceute(“ClassName”,”methodName”,{name=”ABC”});

52. How to run trigger in asynchronously?


                If you use @FUTURE annotation trigger run asynchronously.

53. We are not providing some of fields in .csv file which are required in page layout level. What happens if we try to insert records into Salesforce through data loader?              

                 All records are inserted in Salesforce successfully.

54. We are not providing some of fields in .csv file which are required in Filed level. What happens if we try to insert records into Salesforce through data loader?

                Except those records remaining records will be inserted in to Salesforce.


Reference: http://www.salesforcetutorial.com/salesforce-interview-questions/

Sunday, May 18, 2014

SOQL and SOSL Queries - Apex

The same way database systems support a query language for data retrieval, the Force.com peristence layer also provides two query languages.
  • Salesforce Object Query Language (SOQL) is a query-only language. While similar to SQL in some ways, it's an object query language that uses relationships, not joins, for a more intuitive navigation of data. This is the main query language that is used for data retrieval of a single sOobject and its related sObjects. You'll see an example in a minute.
  • Salesforce Object Search Language (SOSL) is a simple language for searching across all multiple persisted objects simultaneously. SOSL is similar to Apache Lucene.
You can write queries directly in Apex without much additional code since Apex is tightly integrated with the database.

SOQL QUERY EXAMPLES

SOQL query is enclosed between square brackets. This example retrieves an sObject (a record from the database) that has the name field value equal to ‘Pencils’:
sObject s = [SELECT Id, Name FROM Merchandise__c WHERE Name='Pencils'];
This next example retrieves all matching merchandise items, assuming that there are zero or more merchandise items, and assigns them to a list. It shows how you can include a variable in a SOQL query by preceding it with a colon (:).
String myName = 'Pencils';
Merchandise__c[] ms = [SELECT Id FROM Merchandise__c WHERE Name=:myName];
Execute the following code to retrieve the first matching merchandise item and assign its Total_Inventory__c field to a variable:
Double totalInventory = [SELECT Total_Inventory__c 
                         FROM Merchandise__c 
                         WHERE Name = 'Pencils'][0].Total_Inventory__c;
System.debug('Total inventory: ' + totalInventory);
This is what you’ll get in the output.
Total inventory: 1000.0

SOSL QUERY EXAMPLE

SOSL statements evaluate to a list of lists of sObjects, where each list contains the search results for a particular sObject type. Here's an example that searches all field across all Merchandise__c and Inventory_Statement__c sObjects. Execute the following:
List<List<SObject>> searchList = [FIND 'Pencil*' IN ALL FIELDS RETURNING 
                                  Merchandise__c (Id, Name), Invoice_Statement__c];
Merchandise__c[] merList = ((List<Merchandise__c>)searchList[0]);
Invoice_Statement__c[] invList = ((List<Invoice_Statement__c>)searchList[1]);
System.debug('Found ' + merList.size() + ' merchandise items.');
System.debug('Found ' + invList.size() + ' invoice statements.');
You’ll get something similar to this in the output.
Found 1 merchandise items.
Found 0 invoice statements.
 
Reference: http://salesforceonlinetrainings.blogspot.com/2012/08/soql-and-sosl-queries.html

What is Scrum?


Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal". It challenges assumptions of the "traditional, sequential approach" to product development. Scrum enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members and daily face to face communication among all team members and disciplines in the project.

Reference: http://en.wikipedia.org/wiki/Scrum_%28software_development%29

Salesforce Enterprise vs Partner Web Services

  • Enterprise Web Services WSDL—Used by enterprise developers to build client applications for a single Salesforce organization. The enterprise WSDL is strongly typed, which means that it contains objects and fields with specific data types, such as int and string. Customers who use the enterprise WSDL document must download and re-consume it whenever their organization makes a change to its custom objects or fields or whenever they want to use a different version of the API. 
  •  Partner Web Services WSDL—Used for client applications that are metadata-driven and dynamic in nature. It is particularly—but not exclusively—useful to salesforce.com partners who are building client applications for multiple organizations. As a loosely typed representation of the Salesforce data model that works with name-value pairs of field names and values instead of specific data types, it can be used to access data within any organization. This WSDL is most appropriate for developers of clients that can issue a query call to get information about an object before the client acts on the object. The partner WSDL document only needs to be downloaded and consumed once per version of the API. 

Ajax vs Query

AJAX is a technique to do an XMLHttpRequest (out of band Http request) from a web page to the server and send/retrieve data to be used on the web page. AJAX stands for Asynchronous Javascript And XML. It uses javascript to construct an XMLHttpRequest, typically using different techniques on various browsers.

According to Wikipedia
Ajax (Asynchronous JavaScript and XML)[1] is a group of interrelated Web development techniques used on the client-side to create asynchronous Web applications. With Ajax, Web applications can send data to, and retrieve data from, a server asynchronously (in the background) without interfering with the display and behavior of the existing page. Data can be retrieved using the XMLHttpRequest object. Despite the name, the use of XML is not required; JSON is often used instead (see AJAJ), and the requests do not need to be asynchronous.[2]
Ajax is not a single technology, but a group of technologies. HTML and CSS can be used in combination to mark up and style information. The DOM is accessed with JavaScript to dynamically display, and allow the user to interact with, the information presented. JavaScript and the XMLHttpRequest object provide a method for exchanging data asynchronously between browser and server to avoid full page reloads.
Ref: http://en.wikipedia.org/wiki/Ajax_(programming)

jQuery (website) is a javascript framework that makes working with the DOM easier by building lots of high level functionality that can be used to search and interact with the DOM. Part of the functionality of jQuery implements a high-level interface to do AJAX requests. jQuery implements this interface abstractly, shielding the developer from the complexity of multi-browser support in making the request.

SOAP vs REST Webservices

SOAP (Simple Object Access Protocol) and REST (Representational State Transfer) both are used as interfaces to the Web Services.

REST Advantages
1. Limited Bandwidth and Resources
2. Totally Stateless Operations
3. Caching Issues

SOAP Advantages
1. Reliable Messaging (SOAP 1.2 offers additional reliability and security)
2. Formal Contracts (Both provider and consumer have to agree on the exchange format)
3. Stateful Operations (Security, Transaction, Coordination)

Sunday, May 11, 2014

Htaccess tips

1. Make all your files extension .htm instead of .php

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.+)\.htm$ /$1.php [NC,L] 

2. Remove file extensions. for example www.website.com/page.php will show as www.website.com/page

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]

3. Force File Download
Instead of opening files in the web browser it forces these files types to download

<FilesMatch "\.(mov|mp3|jpg|pdf)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>




Reference: http://wiki.dreamhost.com/Htaccess_tricks