How to Choose Between GraphQL and REST for Your API

GraphQL and REST APIs are two popular approaches for building APIs for web applications. Both approaches have their own set of benefits and trade-offs, and the choice of which one to use depends on the needs of the application and the preferences of the developer. In this article, we will compare GraphQL and REST APIs, highlighting their key differences and discussing when to use each one. We will also look at some of the tools and technologies available for building each type of API and provide some examples of use cases for each approach. By the end of this article, you should have a good understanding of the pros and cons of each approach and be able to make an informed decision about which one is right for your application.

GraphQL

GraphQL is a query language that was created by Facebook in 2012. It is often used to build APIs for modern web and mobile applications.

One of the main benefits of GraphQL is that it allows the client to request specifically what data it needs, rather than getting a fixed set of data from a specific endpoint. This makes it more flexible and efficient, as the client can retrieve only the data it needs, rather than getting a large amount of data that it may not use.

In GraphQL, the client makes a request to the server by sending a query that specifies the data it needs. The server then responds with the requested data. The client can also specify arguments in the query to filter or sort the data, and can use variables to make the query more flexible and reusable.

Another benefit of GraphQL is that it has a strong type system, which allows the server to specify the types of data that it can return and the client to specify the types of data that it needs. This helps to ensure that the client gets the data it expects, and helps to prevent errors on the server.

There are several tools and technologies that you can use when building GraphQL APIs:

  • GraphQL server libraries: These are libraries that provide the backend infrastructure for your GraphQL API. Some popular options include:
    • Apollo Server: A popular GraphQL server library that supports various language runtime environments, including Node.js, Python, and Java.
    • Express-GraphQL: A GraphQL server middleware for the Express web framework that runs on Node.js.
    • GraphQL.js: The official GraphQL library for JavaScript, which can be used to build a GraphQL server with Node.js.
  • GraphQL client libraries: These are libraries that you can use to make GraphQL queries and mutations from the client side. Some popular options include:
    • Apollo Client: A popular GraphQL client library that supports various language runtime environments, including JavaScript, Android, and iOS.
    • Relay: A GraphQL client library developed by Facebook that is designed for building large-scale applications.
  • GraphQL IDEs: These are integrated development environments (IDEs) that have built-in support for GraphQL, including syntax highlighting, auto-completion, and other features. Some popular options include:
    • GraphiQL: An in-browser IDE for exploring and testing GraphQL APIs.
    • GraphQL Playground: An interactive, graphical GraphQL IDE that can be used to test and debug GraphQL APIs.
  • GraphQL documentation tools: These are tools that can be used to generate documentation for your GraphQL API, including the schema, types, and queries. Some popular options include:
    • GraphQL Voyager: A visual tool that generates interactive diagrams of your GraphQL schema.
    • GraphQL Docs: A tool that generates Markdown documentation for your GraphQL API based on your schema.

These are just a few examples of the many tools and technologies available for building GraphQL APIs. There are many other options to choose from, depending on your specific needs and preferences.

There are several products available in the market that can be used to implement GraphQL in an organization:

  • Apollo Server: Apollo Server is a popular GraphQL server library that supports various language runtime environments, including Node.js, Python, and Java. It provides the backend infrastructure for your GraphQL API and includes features such as schema stitching, caching, and real-time subscriptions.
  • Graphcool: Graphcool is a cloud-based GraphQL platform that provides a managed GraphQL server and a set of tools for building and deploying GraphQL applications. It includes features such as a real-time database, file storage, and user authentication.
  • PostGraphile: PostGraphile is an open-source tool that can be used to build a GraphQL API from an existing PostgreSQL database. It includes features such as automatic schema generation, real-time subscriptions, and advanced query optimization.
  • GraphCMS: GraphCMS is a headless content management system (CMS) that provides a GraphQL API for managing and delivering content. It includes features such as a visual schema editor, real-time previews, and webhooks.
  • GraphQL Engine: GraphQL Engine is a cloud-based GraphQL platform that provides a managed GraphQL server and a set of tools for building and deploying GraphQL applications. It includes features such as schema management, performance monitoring, and real-time subscriptions.

These are just a few examples of the many products available in the market for implementing GraphQL in an organization. There are many other options to choose from, depending on your specific needs and preferences.

Overall, GraphQL is a powerful and flexible tool for building APIs that can be used to power modern web and mobile applications.

REST

REST (Representational State Transfer) is an architectural style for designing APIs. It was first introduced by Roy Fielding in his doctoral dissertation in 2000.

In REST, an API is made up of a set of endpoints, each of which exposes a set of data. The client sends a request to an endpoint, and the server responds with the requested data. The data is typically in the form of a resource, such as a user or a piece of information, and the endpoint is a URL that represents the resource.

One of the main principles of REST is that it should be stateless, meaning that each request from the client to the server should contain all of the information needed for the server to understand the request, and should not rely on any stored context on the server. This makes REST APIs easy to scale, as there is no need to store state on the server.

REST APIs are often used to build web services for modern web and mobile applications. They are easy to use and understand, and there are many libraries and frameworks available to help developers build and consume REST APIs.

There are several tools and technologies that you can use when building REST APIs:

  • Web frameworks: These are libraries or frameworks that provide the backend infrastructure for your REST API. Some popular options include:
    • Express: A popular web framework for building APIs and web applications with Node.js.
    • Flask: A lightweight web framework for Python that is well-suited for building APIs.
    • Django: A full-featured web framework for Python that includes built-in support for building APIs.
  • HTTP clients: These are libraries or tools that you can use to make HTTP requests to your REST API from the client side. Some popular options include:
    • Axios: A popular JavaScript library for making HTTP requests.
    • Requests: A Python library for making HTTP requests.
    • cURL: A command-line tool for making HTTP requests.
  • API documentation tools: These are tools that can be used to generate documentation for your REST API, including the endpoints, parameters, and responses. Some popular options include:
    • Swagger: A tool that generates interactive documentation for your API based on your OpenAPI specification.
    • Postman: An API development platform that includes tools for designing, testing, and documenting APIs.
    • ReadMe: A platform for creating and hosting API documentation.
  • API testing tools: These are tools that can be used to test your REST API, including sending requests and verifying responses. Some popular options include:
    • Postman: An API development platform that includes tools for testing APIs.
    • Insomnia: A cross-platform API testing tool that allows you to send HTTP requests and view responses.
    • cURL: A command-line tool for making HTTP requests that can be used to test your API.

These are just a few examples of the many tools and technologies available for building REST APIs. There are many other options to choose from, depending on your specific needs and preferences.

There are several products available in the market that can be used to implement REST APIs in an organization:

  • Postman: Postman is an API development platform that includes tools for designing, testing, and documenting REST APIs. It includes features such as a visual API editor, automatic documentation generation, and mock servers.
  • SwaggerHub: SwaggerHub is a cloud-based platform for designing, building, and documenting REST APIs. It includes features such as a visual API editor, automatic documentation generation, and collaboration tools.
  • Apigee: Apigee is a cloud-based platform for building, managing, and securing REST APIs. It includes features such as API design and development tools, traffic management, and security controls.
  • Kong: Kong is an open-source platform for building and managing REST APIs. It includes features such as API routing, traffic management, and security controls.
  • Tyk: Tyk is a cloud-based platform for building and managing REST APIs. It includes features such as API design and development tools, traffic management, and security controls.

These are just a few examples of the many products available in the market for implementing REST APIs in an organization. There are many other options to choose from, depending on your specific needs and preferences.

Overall, REST is a popular and widely-used architectural style for designing APIs, and is well-suited for building web services for modern web and mobile applications.

When to choose GraphQL and REST

Both GraphQL and REST can be used to build APIs for web applications, and the choice of which one to use depends on the needs of the application and the preferences of the developer.

Here are some factors to consider when deciding which one to use:

  • Data fetching and manipulation: If your application requires a lot of data fetching and manipulation, GraphQL may be a better choice, as it allows the client to request specifically what data it needs, rather than getting a fixed set of data from a specific endpoint. This can be more efficient, as the client can retrieve only the data it needs, rather than getting a large amount of data that it may not use.
  • API complexity: If your API has a lot of endpoints and resources, and you want to keep the API simple and easy to understand, REST may be a better choice. REST APIs have a fixed set of endpoints that return a fixed set of data, which can make them easier to understand and use.
  • Type safety: If you want to ensure that the client gets the data it expects, and you want to prevent errors on the server, GraphQL may be a better choice, as it has a strong type system that allows the server to specify the types of data that it can return and the client to specify the types of data that it needs.
  • Developer preference: Ultimately, the choice of which one to use may come down to the preferences of the developer or development team. Some developers may prefer the flexibility and efficiency of GraphQL, while others may prefer the simplicity and ease of use of REST.

Here are some example use cases for each:

  • GraphQL: An application that requires a lot of data fetching and manipulation, such as a social media platform or an e-commerce website.
  • REST: An application with a simple API that exposes a fixed set of resources, such as a weather forecasting service or a blog platform.

GraphQL – Reference reading

Here are some good reference readings for learning about GraphQL:

  • “GraphQL: A Data Query Language” (https://graphql.org/learn/): This is the official GraphQL website, and it includes documentation, tutorials, and other resources for learning about GraphQL.
  • “GraphQL: An Introduction” (https://www.howtographql.com/): This is a comprehensive tutorial on GraphQL that covers the basics of the language, as well as advanced topics such as subscriptions and server architecture.
  • “The Fullstack Tutorial for GraphQL” (https://www.howtographql.com/fullstack-react-apollo/): This is a tutorial that shows you how to build a full-stack application with GraphQL, React, and Apollo. It covers topics such as creating a GraphQL server, building a client-side application, and integrating with third-party APIs.
  • “Building GraphQL APIs with ASP.NET Core” (https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-graphql-aspnet-core/): This is a tutorial that shows you how to build a GraphQL API with ASP.NET Core, a popular web framework for building APIs with .NET. It covers topics such as creating a GraphQL server, defining the schema, and implementing resolvers.
  • “GraphQL Best Practices” (https://graphql.org/learn/best-practices/): This is a guide to best practices for building GraphQL APIs, including topics such as schema design, performance optimization, and error handling.
  • The official GraphQL website (https://graphql.org/) is a good starting point. It includes documentation, tutorials, and other resources for learning about GraphQL.
  • The “Learn GraphQL” course on the freeCodeCamp website (https://www.freecodecamp.org/learn/apis-and-microservices/graphql/) is a comprehensive guide to learning GraphQL. It includes interactive exercises and quizzes to help you practice what you have learned.
  • The “GraphQL Fundamentals” course on Pluralsight (https://www.pluralsight.com/courses/graphql-fundamentals) is a paid course that provides in-depth coverage of GraphQL. It includes hands-on exercises and real-world examples to help you understand how to use GraphQL in practice.

These are just a few examples of the many reference readings available for learning about GraphQL. There are many other tutorials, documentation, and blog posts available online, so you should be able to find resources that meet your learning needs and style.

REST – Reference reading

Here are some good reference readings for learning about REST APIs:

These are just a few examples of the many reference readings available for learning about REST APIs. There are many other tutorials, documentation, and blog posts available online, so you should be able to find resources that meet your learning needs and style.

Conclusion

In conclusion, GraphQL and REST APIs are both popular approaches for building APIs for web applications. GraphQL is a flexible and efficient data query language that allows the client to request specifically what data it needs, while REST APIs have a fixed set of endpoints that return a fixed set of data. The choice of which one to use depends on the needs of the application and the preferences of the developer. GraphQL may be a better choice for applications that require a lot of data fetching and manipulation, while REST may be a better choice for APIs with a simple, fixed set of resources. Both GraphQL and REST have their own set of best practices and tools, and there are many resources available for learning more about each approach. Ultimately, the choice of which one to use will depend on the specific requirements and goals of the API and the preferences of the development team.

Page Visitors: 222

Microservices Architecture: Benefits, Challenges, Design Patterns, Tools, and Best Practices

This blog covers a high-level introduction to the concept of microservices and how they differ from traditional monolithic architectures.

What are microservices?

  • Microservices are a way of designing software systems as a collection of independent, modular components
  • Each component, or microservice, is designed to perform a specific function and can be developed, deployed, and scaled independently of the others
  • Microservices communicate with each other through APIs, which can be accessed over a network

Why use microservices?

  • Improved scalability:
    • New instances of a microservice can be added as demand increases, rather than requiring a single, monolithic application to be scaled vertically
    • This can make a system more resilient, as the failure of a single component is less likely to affect the entire system
  • Improved flexibility:
    • The modular nature of microservices allows for more rapid iteration and deployment of new features
    • This is particularly useful in fast-paced and highly dynamic environments
    • Allows for a more agile approach to software development: Microservices can be developed and maintained by different teams, allowing organizations to be more responsive to changing business needs

Challenges of using microservices

  • Testing can be more complex:
    • It can be more difficult to test the interactions between multiple microservices than a single, monolithic application
    • This may require more complex testing strategies, such as integration testing and end-to-end testing
  • Deployment can be more complex:
    • Coordinating the deployment of multiple microservices can be more complex than deploying a single application
    • This may require more sophisticated deployment pipelines and processes
  • Monitoring can be more complex:
    • It can be more difficult to monitor the performance and health of multiple microservices than a single application
    • This may require more sophisticated monitoring and alerting systems
  • Microservices can require more infrastructure:
    • A microservices architecture may require more infrastructure to support the deployment and operation of multiple microservices
    • This can increase the complexity and cost of operating a microservices-based system

Examples of successful microservices implementations

  • Netflix: Netflix has implemented a highly scalable and resilient microservices architecture to support its streaming service This has allowed Netflix to quickly roll out new features and updates to its service without disrupting the entire system
  • Amazon: Amazon has used microservices to enable the rapid iteration and deployment of new features for its e-commerce platform
  • Uber: Uber has implemented a microservices architecture to support its ride-sharing platform

Considerations for implementing microservices

  • Identify the appropriate granularity: Each microservice should be focused on a specific function, but it should not be so granular that it becomes difficult to maintain and scale
  • Design APIs carefully: The APIs that microservices use to communicate with each other should be well-designed and easy to use
  • Choose the right technology stack: It is important to choose the right technology stack for each microservice, based on its specific requirements and the needs of the overall system
  • Consider the impact on your organization: A microservices architecture may require changes to the way your organization approaches software development and operations, so it is essential to carefully consider the impact on your teams and processes

Design patterns that can be used when implementing microservices

There are several design patterns that are commonly followed when building microservices-based systems:

  1. Single Responsibility Principle: Each microservice should be focused on a specific function and have a single responsibility. This helps to ensure that microservices are modular and easy to understand, maintain, and scale.
  2. API Gateway: An API gateway is a microservice that acts as a reverse proxy, routing requests to the appropriate microservice and handling tasks such as authentication, rate limiting, and caching.
  3. Service Registry: A service registry is a microservice that maintains a directory of all the other microservices in the system, allowing them to discover and communicate with each other.
  4. Load Balancer: A load balancer is a microservice that distributes incoming requests evenly across multiple instances of a microservice, improving scalability and availability.
  5. Circuit Breaker: A circuit breaker is a microservice that acts as a fail-safe, preventing other microservices from repeatedly attempting to call a microservice that is unavailable or experiencing errors.
  6. Retry Pattern: The retry pattern is a technique for handling transient errors, such as temporary network outages or resource contention. It involves retrying a request to a microservice if it fails, rather than immediately returning an error to the caller.
  7. Bulkhead: A bulkhead is a technique for isolating critical resources, such as database connections, to prevent a single resource from being overwhelmed and causing a cascading failure.

Tools that can be used for implementing microservices

There are many tools that can be used to build and operate microservices-based systems, including:

  1. Containerization platforms: Containerization platforms, such as Docker, allow developers to package microservices and their dependencies into lightweight containers that can be easily deployed and scaled.
  2. Cluster management platforms: Cluster management platforms, such as Kubernetes, allow organizations to automate the deployment, scaling, and management of microservices across multiple servers.
  3. API management platforms: API management platforms, such as Kong or Tyk, provide features such as authentication, rate limiting, and caching for microservices APIs.
  4. Service mesh platforms: Service mesh platforms, such as Istio or Linkerd, provide features such as service discovery, traffic management, and observability for microservices-based systems.
  5. Monitoring and alerting tools: Monitoring and alerting tools, such as Prometheus or Datadog, allow organizations to monitor the performance and health of their microservices-based systems and receive alerts when issues arise.

In conclusion, microservices architecture can offer significant benefits for organizations looking to improve the scalability, resilience, and flexibility of their software systems. While it is not without its challenges, the benefits of a well-designed microservices architecture can be significant, as demonstrated by successful implementations in organizations such as Netflix, Amazon, and Uber. Suppose you are considering implementing a microservices architecture. In that case, it is important to carefully consider the granularity of your microservices, design your APIs carefully, choose the right technology stack, and consider the impact on your organization.

Page Visitors: 358

Creating a Digital Strategy: Steps and Best Practices – Part 1

A digital strategy is a plan for using digital technologies to achieve specific business goals. It outlines the steps an organization will take to create value for its customers and stakeholders through the use of digital channels and assets.

Some key elements of a digital strategy might include:

  • Identifying the target audience and determining how to reach them through digital channels
  • Defining the desired outcomes and how they will be measured
  • Developing a plan for creating and distributing content through digital channels
  • Identifying opportunities to use data and analytics to inform and optimize the strategy
  • Establishing a budget and timeline for implementing the strategy
  • Defining roles and responsibilities for executing the strategy

A digital strategy should align with the overall business strategy and goals, and it should be regularly reviewed and updated to ensure it remains relevant and effective.

There are several steps you can take to arrive at a digital strategy:

  1. Define your business goals: Start by identifying what you want to achieve with your digital strategy. Do you want to increase brand awareness, drive traffic to your website, or generate leads? Clearly defining your goals will help you focus your efforts and measure the success of your strategy.
  2. Understand your audience: Next, consider who you are trying to reach with your digital efforts. Research your target audience to learn more about their needs, preferences, and behaviors. This will help you tailor your messaging and choose the right channels to reach them.
  3. Analyze your current digital presence: Take a step back and assess your current digital presence. What channels are you using? How are you using them? What is working well, and what could be improved? This will help you identify areas for improvement and opportunities to leverage your existing digital assets.
  4. Identify your unique value proposition: Think about what sets your business apart from competitors. What value do you offer to customers that they can’t find elsewhere? Your unique value proposition should inform your digital messaging and help you stand out in a crowded marketplace.
  5. Develop a plan: Based on your goals, audience, current digital presence, and unique value proposition, create a plan outlining the specific steps you will take to achieve your objectives. Be sure to include details such as timelines, budgets, and responsibilities.
  6. Implement and track: Put your plan into action, and track your progress regularly to see how you are doing. Use data and analytics to inform your decisions and optimize your strategy as needed. Don’t be afraid to make adjustments along the way if something isn’t working as expected.

Defining business goals is an important step in creating a digital strategy, as it helps to focus your efforts and measure the success of your efforts. Here are some tips for defining business goals:

  1. Be specific: Clearly state what you want to achieve, using specific, measurable, achievable, relevant, and time-bound (SMART) criteria. For example, instead of saying “I want to increase sales,” you could say “I want to increase online sales by 10% over the next six months.”
  2. Align with business objectives: Make sure your goals are aligned with the overall objectives of your business. For example, if one of your business objectives is to improve customer satisfaction, a goal related to improving your online customer service could be a good fit.
  3. Prioritize: Not all goals are created equal. Determine which goals are most important to your business and prioritize them accordingly.
  4. Make them actionable: Your goals should be actionable and achievable, meaning you can take specific steps to work towards them.
  5. Be realistic: Make sure your goals are realistic and feasible given your resources and limitations.
  6. Set deadlines: Giving yourself a deadline can help you stay on track and stay motivated.

By setting SMART business goals, you can create a roadmap for success and measure your progress along the way.

Understanding your audience is an important step in creating a digital strategy, as it helps you tailor your messaging and choose the right channels to reach them. Here are some tips for understanding your audience:

  1. Define your target audience: Identify who you want to reach with your digital efforts. Consider factors such as age, gender, location, interests, and needs.
  2. Conduct market research: Gather data about your target audience through market research methods such as surveys, focus groups, and customer interviews.
  3. Analyze data: Use data and analytics tools to learn more about your audience’s behaviors and preferences. Look at metrics such as website traffic, social media engagement, and email open rates to get a better understanding of how they are interacting with your brand.
  4. Monitor social media: Pay attention to what your audience is saying about your brand and industry on social media. This can provide valuable insights into their thoughts and needs.
  5. Keep an eye on industry trends: Stay up to date on industry trends and changes that may impact your audience. This will help you anticipate their needs and stay relevant.

By taking the time to understand your audience, you can create a digital strategy that is more likely to resonate with them and drive results.

There are many tools available for analyzing data, including both free and paid options. Here are a few examples:

  1. Google Analytics: A free web analytics service that provides insights into website traffic, user behavior, and conversions.
  2. Hootsuite: A social media management platform that offers analytics and reporting features for various social media networks.
  3. Mixpanel: A paid analytics platform that provides real-time data and insights for web and mobile applications.
  4. Tableau: A data visualization tool that allows users to create interactive charts, graphs, and maps to better understand their data.
  5. Adobe Analytics: A paid analytics platform that provides insights into customer behavior and marketing performance across various channels.
  6. Excel: A spreadsheet program that can be used to organize, analyze, and visualize data.

Which tool you choose will depend on your specific needs and goals. Some tools may be more suitable for certain types of data analysis than others, so it’s important to consider your needs and do some research before making a decision.

Stay tuned for more parts to this series.

Page Visitors: 103

Shoo trackers and advertisements away

I started this series of blog with my concerns at the amount of data that exist today. You can read the blog here.

After this blog i took the hat of an astrologer and started prediction…😀. My prediction one can be read as a blog here.

My second prediction can be read here. This is where i was stating that incognito mode of browser will/should be made default.

My third prediction can be read here.

Recently i was just going through some blogs in regards to Web 3.0, yes… another topic is slowly gaining more and more traction… slowly many sites would start advertising themselves as being Web 3.0 compliant.. 😀


Coming to the point…

In prediction two, i was mentioning that it is just matter of time when someone creates extensions for browsers (existing), using which you will be able to have more control on advertisements (even Chrome has already started features whereby advertisements can be stopped), trackers (where the hell are you, what are you doing, what are the data you like to share and so on..).

Yes, seems many are thinking of same and now i see a browser namely Brave (i am not advertising you to start using this browser right away), in which they pitch exactly the same aspects and brings in control on privacy, what data is transferred and so on…

If you go through their site, they say things which are quite intriguing to give it a try..

They say…

  • We as users have full control on privacy (privacy by default).
  • Blocks various trackers (control over what data is transferred) by default. They even say that, by doing this, you reduce data consumption. If you have unlimited data package, this is not for you, but for a guy like me who doesn’t want to have data, apart from very specific requirements (yes, i need for maps and i read blogs, nothing else, everything else is avoided from my data plan), this is quite handy because when reading over internet it can avoid data consumption (by the way, in my blog i am using Google ads…. 🤓).
  • By the way if you feel that you need to give some helping hand to some free blogs/sites, you have power to do so (or at least what i read) and you can also get rewarded if you are ready to see the ads these blogs/sites serve. Now, that is something i wrote in my blog while predicting.

So, all in all, you now have a brand new browser which gives us more control. Please note, i haven’t used Brave, nor i have plan at this stage. But the point is that, its coming and we don’t have to wait a great deal for having some control on this.


Its unfair that, these advertisement providers (Google Adsense) use our data package and show these to us and we as end users are not getting a cut… 😀. Also, they track us like anything with our data and then use our data for/against to their advantage. In this due course, more than us, all the other parties are gaining with our private data…😀.

Customer is king, but in this case, seems we are cheated… what do you say?

Share/like the post to spread the word and if you believe in what is written down… Thanks folks…

Disclaimer: I use Google Adsense which gives me money to run this site… contradicting, isn’t…😁

My so called innocent blogging (wordpress backed) site, when run using Brave is showing as below… 🤣… be careful folks…just to be sure… i am just shows ads from Google and i use that to run my site (i have to spend close to 100$ an year to run this site with my own registred domain).

Page Visitors: 269

Data, data everywhere… Prediction Four

I started this series of blog with my concerns at the amount of data that exist today. You can read the blog here.

After this blog i took the hat of an astrologer and started prediction…😀. My prediction one can be read as a blog here.

My second prediction can be read here.

My third prediction can be read here.

You have a variety of mobile covers available today…

Have you seen a mobile cover which allows you to cover the cameras in your mobile phone at will?


I don’t think so… i predict mobile covers allowing users to close these cameras or cover these camera at will (in their control)…

You would have heard of mobile signal jammer (without your knowledge it distorts mobile signals so that your mobile phone just cannot be connected to make calls or SMS)… something similar will come to make sure that we can either distort the camera pictures when not in use or have a mobile cover (not from phone manufacturer but someone else… or might be from phone manufacturer themselves) which can be used to completely cover the mobile phone cameras (front and back camera)…

You might think that… what does this has to do with data…

Again, this is because today you allow apps to take pictures and records video without knowing when they will do it by themselves… who knows that at a particular time of day, they just wake up and start recording videos or take pictures…

I have already seen many colleagues in my workplace already started putting stickers on the laptop camera… what they don’t realize is that, in their pocket or in their hand they have mobile phones which has dual camera having high density clear lenses capable of taking HD quality photos and videos….


I am not against collecting these data and letting companies deciphering these images or videos… but i am against vendors doing this without our permission… now you will say, these companies ask for our permission and we have already agreed to this, but my view is we did this only once and after that, just because you have allowed them to do this, they can misuse this under that license agreement…

In this series, i have one more prediction, thats in regards to voice command being used to control apps… i had this in my head for long… but now i have seen multiple bloggers started to write this as another intrusion into our private life… again we know this and we have agreed to it… but my issue is we don’t have any control on when these devices need to listen and when not…

So my last prediction is soon coming and i would conclude my series on this with that last one…

Thanks for reading… share it if you like/agree… 😀

Page Visitors: 200

Data, data everywhere… Prediction Three

I started this series of blog with my concerns at the amount of data that exist today. You can read the blog here.

After this blog i took the hat of an astrologer and started prediction…😀. My prediction one can be read as a blog here.

My second prediction can be read here.

My next prediction is in the area of mobile apps. Again, this is also very much inline with what i have been raising throughout this blog series.


Mobile apps today asks for various permission to use a number of device features. Once you allow, you don’t even know what all you allowed at a later stage. You have to dig hard (going through various taps and screens) to find these permissions and then disable it if you don’t want them to be used by these apps.

My prediction is that similar to browser, everything would be disabled by default. While installing also, these app vendors cannot ask to accept these permissions. Rather, when they start using that particular feature, app need to ask permission, each and every-time. What i mean by that is, whenever app tries to use a feature, it asks explicitly for what permission and then have to exactly say how this permission will be used. In addition, soon after its use, it again goes back into disabled mode.

As mentioned in my previous blogs, this is going to be tedious for customers/users. But, this is something which OS can take care and if due to any reason user feels tapping on these permission dialogs every-time tedious, they have a provision of enabling it for a period of time (say a weeks time, or a months time). After allowed period expires, again it goes back to disabled mode.

“Remember me” functionality in many websites, nowadays does have a provision of remembering username/password for a period, other than having it never for rest of the life (for a particular allowed browser).


Assume you allowed a particular app access to read gallery (pictures, videos etc..). You really don’t have any clue how and when these apps would be reading these files from your phone. Nowadays, every company in this world is trying to be so intelligent that they are ready to decipher an image, content of a video and so on, quite easily. Some pictures in your gallery would be very personal in nature and you don’t have any clue what these apps are deciphering meanings from these pictures. Also, these could be read and then stored in their digital asset library forever (for various purposes).

I am not saying that these apps would be using these gallery items in a bad way but if someone gets access to these content and then start using these in an unethical manner, its going to be really troubling for you and me.

Recently i did read (somewhere, i don’t remember) that a popular company gave their employees (mainly in support area) access to huge amount of personal data along with real-time information as to where their customers travel (where they start a journey, where they end the journey, what time of day journey took place and so on.) and then they used this information in an unethical manner for their own benefits.

The above is just one such incident and i am sure there are so many such instances out there. With more and more data available about you (with these app vendors), such misuse are bound to be a common problem going forward. Also, you have voluntarily given access to these data without much thought process and because of this you cannot raise any complaints but i am sure this will have huge repercussions on you going forward, which you are not aware off.

Think of such negative scenarios as well when you go ahead and click on “Allow” button on your phones going forward. I am sure there are so many positive aspects to share these data but over period of time, there will be so many negative aspects which could haunt you.

Mind you, its very hard to wipe your digital signature. If you think you have clicked on a particular picture and clicked delete. This in no way mean that the vendor will actually delete that picture. They could just make that picture as “ready for delete” and just leave it.

With AI (Artificial Intelligence) and ML (Machine Learning) becoming strong day by day, i am sure these big names in technology would want to find out as to why you deleted that particular image and would try to put some intelligence and then can use that as a way to haunt you with something down the line.

These are just my thoughts. Yes, i might be thinking too much here…🤓

Page Visitors: 181

Data, data everywhere… Prediction Two

I started this series of blog with my concerns at the amount of data that exist today. You can read the blog here.

After this blog i took the hat of an astrologer and started prediction…😀. My prediction one can be read as a blog here.

Continuing my prediction, in this blog i am predicting second thing which will become a norm going forward.


Incognito mode in browser as we call today would become the default mode…

Or Everything will be disabled by default and customer decides when to turn it own

Again it is not a one time business, rather have to be done every-time when something is happening and soon after that it goes again into disabled mode

Very soon someone would write a cool browser extension (i haven’t searched, whether is already one such extension) and whenever a website is trying to do A/B test on you (client side using a known vendor which the extension knows), the extension would recognize this and would gives a smily face indicating the customer that, this website is trying to test you… beware and here are the A/B versions.. website owners now feel that they are smart… this extension would make them feel otherwise by actually tweaking the A/B test which the owners of the website is looking at in anticipation…

Even if you are a male aged 50.. tell the website owner you are female aged 20 and see what is coming on the site… 😀

If browsers doesn’t make incognito a default… customer would be educated enough to always use incognito mode and they will make that aspect of a browser as default..😬


This will take out many security/privacy problems away from the end user and over the period of time such capabilities to understand the customer would be of no use. All these tests make sense if they collect right data… if crap data goes in… crap analysis would take place… better don’t use this crap data to entice customer anymore…

Also many of the analytics gathering scripts also be intercepted and adequate amount of details given to the customer to see what exactly is happening on the client side and what exactly the website owner wants to know about you…

Just imagine someone selling something to you looking at your color, religion, looks etc. In real world if a customer is looked in these aspects and then goods sold, they can file a case against you in court and i am sure they will surely win it in front of law..

Today without you knowing, this exact thing is happening by bucketing certain users in certain category ad then giving them offers.. enticing them to buy more…

I don’t like this aspect and i feel this would prompt customers to use browsers incognito mode by default… by the way many have realized this and already are doing this…😬

I have my next prediction coming soon… so stay tuned and subscribe to my blog…🤓

Note: Today there are extensions which look at a particular site and lists down all the technologies which is being used. If thats the case, finding whether an A/B testing script is injected and what are the variations will be a piece of cake. Similarly, this extension also lists down all cool analytics script and can also decipher what exactly is being send…so, things are already available to some extent…

Page Visitors: 231