What does CRM software do?

CRM software records customer contact information such as email, telephone, website social media profile, and more. It can also automatically pull in other information, such as recent news about the company’s activity, and it can store details such as a client’s personal preferences on communications.

The CRM system organizes this information to give you a complete record of individuals and companies, so you can better understand your relationship over time.

CRM software improves customer relationship management by creating a 360° view of the customer, capturing their interactions with the business, and by surfacing the information needed to have better conversations with customers.


What is CRM?

CRM or Customer Relationship Management is a strategy for managing an organisation’s relationships and interactions with customers and potential customers. A CRM system helps companies stay connected to customers, streamline processes, and improve profitability.

When people talk about CRM, they are usually referring to a CRM system, a tool that is used for contact management, sales management, productivity, and more. The goal of a CRM system is simple: Improve business relationships.

How to process Instant Payment Notification (IPN) messages

IPN is a message service that sends you a notification when any type of transaction occurs in your account. The messages are received and processed by your server(s).

Process overview

To receive and process Instant Payment Notification (IPN) messages:

  1. Create an IPN listener to receive and process the IPN messages sent by PayPal. For complete details on creating an IPN listener, see Implementing an IPN Listener.
  2. In your PayPal merchant account settings, enable the IPN Message Service and specify the URL of your listener.
  3. Continuously run the IPN listener on the website specified by your listener URL.

Why Node.js?

Node.js uses asynchronous programming!

A common task for a web server can be to open a file on the server and return the content to the client.

Here is how PHP or ASP handles a file request:

  1. Sends the task to the computer’s file system.
  2. Waits while the file system opens and reads the file.
  3. Returns the content to the client.
  4. Ready to handle the next request.

Here is how Node.js handles a file request:

  1. Sends the task to the computer’s file system.
  2. Ready to handle the next request.
  3. When the file system has opened and read the file, the server returns the content to the client.

Node.js eliminates the waiting, and simply continues with the next request.

Node.js runs single-threaded, non-blocking, asynchronously programming, which is very memory efficient.


How do you increase the max number of concurrent connections in Apache?

By default, apache2 is configured to support 150 concurrent connections. This forces all parallel requests beyond that limit to wait. Especially if, for example, active sync clients maintain a permanent connection for push events to arrive.

This is an example configuration to provide 8000 concurrent connections. Please ensure that your apache is using the mpm_worker. This allows us to serve lots of concurrent connections by using less RAM than with mpm_prefork as we are going to start much less processes. (mpm_event, which is stated to be stable by Apache nowadays, shows problems in load tests, with connection timeouts.)

<IfModule mpm_worker_module>
    ServerLimit              250
    StartServers              10
    MinSpareThreads           75
    MaxSpareThreads          250 
    ThreadLimit               64
    ThreadsPerChild           32
    MaxRequestWorkers       8000
    MaxConnectionsPerChild 10000

Note: MaxRequestWorkers was previously named MaxClients and MaxConnectionsPerChild was previously named MaxRequestsPerChild. If you are using old (pre 2.4) version of Apache you might need to use the old names.

The short explanation of the parameters:

ServerLimit Declares the maximum number of running apache processes. If you change this value you have to restart the daemon.
StartServers The number of processes to start initially when starting the apache daemon.
MinSpareThreads/MaxSpareThreads This regulates how many threads may stay idle without being killed. Apache regulates this on its own very well with default values.
ThreadsPerChild How many threads can be created per process. Can be changed during a reload.
ThreadLimit ThreadsPerChild can be configured as high as this value during runtime. If you change this value you have to restart the daemon.
MaxRequestWorkers This declares how many concurrent connections we provide. Divided by ThreadsPerChild you get the suitable ServerLimit value. Maybe less than ServerLimit * ThreadsPerChild to reserve some resources that can be engaged during runtime with increasing MaxRequestWorkers and reloading the configuration.
MaxConnectionsPerChild Defines the number of Connections that a process can handle during its lifetime (keep-alives are counted once). After that, it will be killed. This can be used to prevent possible apache memory leaks. If set to 0 the lifetime is infinite.



Build Currency Converter with PHP

function currencyConverter($from_Currency,$to_Currency,$amount) {
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);
$encode_amount = 1;
$get = file_get_contents(https://finance.google.com/bctzjpnsun/converter?a=$encode_amount&from=$from_Currency&to=$to_Currency&#8221;);
$get = explode(“<span class=bld>”,$get);
$get = explode(“</span>”,$get[1]);
$rate= preg_replace(“/[^0-9\.]/”, null, $get[0]);
$converted_amount = $amount*$rate;
$data = array( ‘rate’ => $rate, ‘converted_amount’ =>$converted_amount, ‘from_Currency’ =>strtoupper($from_Currency), ‘to_Currency’ => strtoupper($to_Currency));
echo json_encode( $data );