Wednesday, November 8, 2023

Unleashing the Power of Fractional CTOs: The Future of Tech Leadership

 In today's fast-paced business landscape, staying ahead in the technology race is crucial for companies of all sizes. Enter the fractional Chief Technology Officer (CTO), a game-changing concept that is reshaping the way businesses approach technology leadership.

Why Fractional CTOs?

Gone are the days when a full-time CTO was the only option for businesses seeking tech expertise. The fractional CTO model offers a flexible and cost-effective alternative, allowing companies to tap into a wealth of specialized knowledge without the commitment of a full-time hire.

A Cost-Effective Solution

For startups and small to medium-sized enterprises (SMEs), hiring a full-time CTO can be a hefty investment. Fractional CTOs bridge this gap, offering top-tier expertise on a part-time or contract basis. This approach not only saves costs but also provides access to a level of technical leadership that might otherwise be out of reach.

Tailored Expertise, When You Need It

Fractional CTOs bring a laser-focused expertise to the table. Whether it's solving specific technical challenges or charting a course for future growth, these seasoned professionals offer the precise skills required for the job. Their experience spans a diverse range of industries and technologies, making them invaluable assets for companies looking to make strategic technology decisions.

Flexibility for Every Stage of Your Business

In the dynamic world of startups and SMEs, needs can change rapidly. Fractional CTOs provide the flexibility to scale their involvement in sync with your business's evolving demands. This adaptability ensures that you get the right level of expertise precisely when you need it, without overextending your resources.

Objective Insights for Informed Decision-Making

An external perspective can be a game-changer when it comes to making critical technology decisions. Fractional CTOs offer unbiased advice, free from internal politics or vested interests. This objectivity leads to more effective and strategic technology choices that align with your business goals.

A Network of Possibilities

Fractional CTOs often come armed with an extensive professional network. This valuable resource can open doors to potential talent, collaborations, and partnerships in the tech space. Leveraging their connections can provide a competitive edge in sourcing the right resources for your projects.

Mitigating Risk, Maximizing Impact

The fractional CTO model offers a level of risk mitigation that can be a lifeline for companies navigating uncertain terrain. If the partnership doesn't yield the desired results, parting ways with a contract-based arrangement is typically smoother and less disruptive than severing ties with a full-time employee.

Embracing Best Practices

With experience spanning various industries and companies, fractional CTOs bring a wealth of best practices to the table. They introduce proven approaches to technology development and management, elevating your business's tech game to new heights.

In conclusion, fractional CTOs represent the future of tech leadership, offering a potent blend of expertise, flexibility, and cost-effectiveness. For startups and SMEs, this model provides a strategic advantage in navigating the complex world of technology. By tapping into the power of fractional CTOs, businesses can drive innovation, make informed decisions, and position themselves for success in today's tech-driven landscape.

Wednesday, March 22, 2017

NGNIX vs Apache vs Node

Architectural decisions are always hard to make but the most crucial ones when it comes to server architecture and technology selection. This article is meant to make few of them a bit simpler.

Let us compare Apache, NGNIX and Node and help everyone give an insight to make a right decision.

Apache and Nginx are both HTTP servers. They can serve static files like (.jpg and .html files) or dynamic pages (like a Wordpress blog or forum written in a language like Java, PHP or Python). Apache/nginx need to be configured to recognize the URLs that users will be requesting and route them to the right place.


So, for example, with a typical Java Application you tell Apache that any file that ends with .jsp should be interpreted as Java code, so when the user visits "http://javaexpert.com/java.jsp?q=training", for example, Apache will launch the Java interpreter (JVM) to read the file and process it. As part of this process, Java Controller may talk to a MySQL database and use that to generate the page. Lastly, Tomcat Container gives the final Java Embeded HTML Code to Apache to send to the user's browser.

Sounds simple correct?

Now, Node is a bit different. It's a programming environment like PHP that lets you talk to database, make dynamic pages, etc. However, it differs in that it includes an HTTP server. That means that it can actually act completely on its own without nginx or Apache. You can just run Node and it will be the HTTP server and also the "app server" (which actually creates your dynamic pages and talks to the DB).

It's bullseye deal !
Now let us get into more in detail of each one of them and compare them.
Apache
Apache's architecture simplicity :
Apache debuted in 1995 and in those days the web pages were very simple and the traffic was very low.
Apache's architecture was pretty simple for each new request a new process of correct type was spawned to handle the HTTP connection. The process would receive the request, process the request, make a response and return the response. The architecture was pretty simple and apache adopted it, there was very big downside to it we will discuss it in next paragraph. To make the process of spawning faster apache adopted a prefork model a number of processes were pre-spawned and they would process the HTTP connection as soon as the requests were made.
So each request was handled by a separate process but by 2005 the web traffic was increasing at a very high rate and the web pages were becoming more and more complex and to decrease the web page load time what was earlier a single request to the server was broken down into multiple requests and each request was made in parallel so that the resources could be downloaded in parallel and moreover browser would keep these connections open using keep-alive header. So apache's basic architecture of one process for one request soon started to consume the entire memory and crash.
Nginx :
NGINX was written specifically to address the performance limitations of Apache web servers. It was created in 2002 by Igor Sysoev, a system administrator for a popular Russian portal site (Rambler.ru), as a scaling solution to help the site manage greater and greater volumes of traffic. It was open sourced in October 2004.
The success of Nginx is attributed to its architecture. Nginx follows an asynchronous event driven model for handling requests. Each worker can handle number of requests.
Question is what is event based model and what is relation of event based model with a worker handling multiple number of request ?
So suppose hypothetically we have only one worker on the nginx server. So nginx server maintains a queue for all the requests. It picks up the request if no I/O is required for that request it does the processing and returns the request with a response.
If the request has an I/O the a process is spawned for it at this point asynchronous behaviour and event driven behaviour comes into picture. The web worker does not waits for I/O to complete it moves to next request. What happens to the I/O the I/O on completion fires an event of completion and its callback is placed in queue for execution.
So in this way one web worker is able to handle multiple number of requests and generally on Nginx server there are number of workers or processes.
Node.js :
What JVM is to java, node.js is to javascript. It allows us to use javascript as a language for scripting on servers.
Ryan Dahl creator of Node.js was impressed by Nginx and looked at javascript which was made with asynchronous and event based model. He used google V8 engine which is used in chrome to process Javascript and created Node.js.

Monday, May 9, 2016

iBeacon is a protocol and Beacons are Devices

iBeacon and Beacons


Get the basics


iBeacon is a protocol developed by Apple and introduced at the Apple Worldwide Developers Conference in 2013. 

Several vendors have since made iBeacon-compatible hardware transmitters - typically called beacons - a class of Bluetooth low energy (LE) devices that broadcast their identification to nearby portable electronic devices such as smartphones,tablets, etc. These devices in turn perform specific actions based on the identification they receive.

Applications in the healthcare, fitness (FitBit is an example), beacons, security, and home entertainment industries are based on iBeacon Bluetooth Low Energy technology.

Beacons transmit a UUID(Universally Unique Identifier) picked up by a compatible app or operating system. The identifier and several bytes sent with it can be used to determine the device's physical location, track customers, or trigger a location-based action on the device such as a check-in on social media or a push notification.

Power Consumption

The Bluetooth LE protocol is significantly more power efficient than Bluetooth Classic. Several chipsets makers now supply chipsets optimized for iBeacon use. Power consumption depends on iBeacon configuration parameters of advertising interval in ms and transmit power. A study on different iBeacon vendors reports that battery life can range between 1–24 months. Apple's recommended setting of 100 ms advertising interval with a coin cell battery provides for 1–3 months of life, which increases to 2–3 years as advertising interval is increased to 900 ms.
Battery consumption of the phones is a factor that must be taken into account when deploying beacon enabled apps. A recent report has shown that older phones tend to draw more battery in the vicinity of iBeacons, while the newer phones can be more efficient in the same environment. An energy efficient iBeacon application needs to consider these aspects in order to strike a good balance between app responsiveness and battery consumption.

Use cases


Today’s mobile technology advancements are the key. With branded mobile apps coupled with location-based mobile technologies, you can create a compelling, satisfying, and exciting customer experience in ways not possible just a few months ago.

 • Surprise and delight customers with personalized welcome messages, promotions and discounts as they arrive at your stores.
 • When shoppers approach a new in-store display, automatically trigger pop-up videos, coupons or other information related to the merchandise.
• Help shoppers navigate the store with turn-by-turn directions so they can find what they’re looking for and not leave empty-handed.
• Engage shoppers when they are not at the store and encourage them to come back.

Wohooo Google is also into iBeacon comparison and much better

Apple’s iBeacon technology and Google’s Eddystone is this: iBeacon can only communicate with apps, whereas Eddystone works across apps and browsers

It would be interesting to see how the world will been changing their routes around IoT and Beacons will play a significant role in proximity based search and notification. 



Feel free to post your valuable comments in form of feedback and questions for me to answer.

Friday, November 6, 2015

Send Email Using Java Mail API


Lot you might find this post really handy as it has been so many instances that you find one or the other issues with the email sending using Java Mail API. Following code is working perfectly fine with no errors. Please replace placeholders with your concerned credentials, sender and recipients. Do not forget to download mail.jar and activation.jar which are part of Java Mail API and Activation framework. 

Just make sure you check the credentials you are providing for authentication have following things enabled under URL : http://myaccount.google.com/security

1. Enable "Allow less secure apps"
2. 2-Step Verification Off



import java.util.*;

import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

class SendEmail{

        public static void main(String args[]){
// Sending email start
// Recipient's email ID needs to be mentioned.
      String to= "head.teamgogetters@gmail.com"; 

      // Sender's email ID needs to be mentioned
      String from = "abc@gmail.com";

      // Assuming you are sending email from Gmail
    
      Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");

Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("email_address","password");
}
});

      try{
         // Create a default MimeMessage object.
         Message message = new MimeMessage(session);

         // Set From: header field of the header.
         message.setFrom(new InternetAddress(from));

         // Set To: header field of the header.
         message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

         // Set Subject: header field
         message.setSubject("This is the Subject Line!");

         // Now set the actual message
         message.setText("This is actual message");

         // Send message
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }

                  }
}


Feel free to contact me in case of any issues and queries. 

Thursday, April 23, 2015

Mobile Doctors and Facilities

MobiDoc : Solution towards Quicker and Healthy Living

  • Having sever pain in back and neck and we don't know whom to approach. Which physiotherapist lives near by and is available ?
  • Having small health issues with a kid and don't know which Pediatrician to approach who can consult at home?
  • Help required from Dietician or Nutritionist at home would be great?
  • Anyone new to the city and don't know who would be the best doctor fit to treat you and/or your family. 
  • Blood test or any other possible physical test which can be done at home. 

MobiDoc is a solution to all of the above problems. 

Boon for all patients to get connected to Medical Community on Demand. 

Boon to all Doctors to stay connected to other Doctors and patient community. 

Whomsover thinks this is innovation and serves current problems, please cast your vote and if interested to be a member of this community, kindly enroll your name and contact details, we will contact you.