Deepak Vohra
Member for
7 years 1 monthDeepak is a Sun Certified Java Programmer and Web Component Developer, and has worked in the fields of XML, Java programming and Java EE for ten years. Deepak is the co-author of the Apress book Pro XML Development with Java Technology and was the technical reviewer for the O'Reilly book WebLogic: The Definitive Guide. Deepak was also the technical reviewer for the Course Technology PTR book Ruby Programming for the Absolute Beginner. Deepak is also the author of the Packt Publishing books JDBC 4.0 and Oracle JDeveloper for J2EE Development, Processing XML Documents with Oracle JDeveloper 11g, EJB 3.0 Database Persistence with Oracle Fusion Middleware 11g, and Java EE Development in Eclipse IDE. Deepak is a Docker Mentor and has published 5 books on Docker and Kubernetes.
Deepak is a Sun Certified Java Programmer and Web Component Developer, and has worked in the fields of XML, Java programming and Java EE for ten years. Deepak is the co-author of the Apress book Pro XML Development with Java Technology and was the technical reviewer for the O'Reilly book WebLogic: The Definitive Guide. Deepak was also the technical reviewer for the Course Technology PTR book Ruby Programming for the Absolute Beginner. Deepak is also the author of the Packt Publishing books JDBC 4.0 and Oracle JDeveloper for J2EE Development, Processing XML Documents with Oracle JDeveloper 11g, EJB 3.0 Database Persistence with Oracle Fusion Middleware 11g, and Java EE Development in Eclipse IDE. Deepak is a Docker Mentor and has published 5 books on Docker and Kubernetes.
All Articles by Deepak Vohra
All Stories by Deepak Vohra
|
Mastering Remote Mobile QA: Leveraging AWS Device Farm Testing on emulators often misses real-world hardware nuances. AWS Device Farm bridges this gap by providing remote access to physical handsets in the cloud. Establish projects, execute automated runs, and perform exploratory testing on real devices to ensure true production readiness and mobile compatibility. |
|
The Simulation Trap: Why Your General AI Isn’t Actually Coding While general-purpose LLMs excel at text, they often merely simulate the coding process rather than executing it. There are some critical boundaries of generative AI platforms—from sandboxing to verification—specialized agentic assistants are the true key to a functional AI-driven development lifecycle. |
|
Two New Preview Features in Java 25 Java 25 introduces two powerful preview features designed to modernize development: a dedicated API for PEM encoding and the "Stable Values" interface. These enhancements simplify cryptographic object handling and offer a memory-efficient, thread-safe alternative to traditional final fields. Explore how these updates streamline security protocols and optimize resource management for the next generation of Java applications. |
|
Choosing a Storage Engine in MySQL Database MySQL's storage engine determines how data is stored. InnoDB (the default) is ACID-compliant with row-level locking, ideal for OLTP. MyISAM is best for read-only tasks, while MEMORY offers fast lookups, and ARCHIVE handles long-term storage. |
|
A Guide to MCP: Providing Context for AI Models Model Context Protocol (MCP) is an open-source framework that gives AI models context and integrates them with external tools and data sources via a client-server architecture. |
|
How AI Code Assist Aligns with Agile Manifesto Values AI Code Assist significantly enhances software development by aligning with core agile principles. It boosts productivity by automating routine tasks, improving collaboration, and facilitating rapid, high-quality code delivery. While a powerful tool, effective integration requires human oversight to ensure technical excellence and maintain project standards. |
|
Markup Languages: What They Are and Why They Matter Markup languages structure, annotate, and format textual information for electronic devices. From early GML to HTML and XML, they use tags for presentation and data exchange, evolving to meet diverse digital needs like web content, configuration, and data encoding. |
|
Comparing TypeScript with Vanilla JavaScript TypeScript, a JavaScript superset, offers static typing, enhancing debugging and error detection. Though requiring compilation, it provides features like type annotations, generics, and enums, improving code organization and maintainability, especially for large projects. |
|
Java Offers Several Preview Features Java introduces several preview features designed to improve the developer experience. These include enhancements to constructors, a new class-file API for bytecode manipulation, string templates for easier string composition, and stream gatherers for custom intermediate stream operations. |
|
An Introduction to Property Graph Query Language PGQL, a new SQL standard, simplifies querying connected data in relational tables. Oracle 23ai supports PGQL, enabling efficient graph traversal and analysis, offering easier data discovery and deeper insights compared to traditional SQL JOINs. |
|
Agile Roadblocks: Overcoming Obstacles to Embrace Change While Agile development embraces flexibility, it does face some hurdles. Users may cling to the familiar, oversimplified software lacks user control, and remote meetings might hinder collaboration. User feedback may be vague, and new software lacks an initial user base. Solutions inculde user voting, prioritizing user needs, and leveraging feedback from related software. |
|
Streamlined and Up-to-Date: How Agile Documentation Benefits Your Users Agile documentation keeps software instructions current with frequent updates. It focuses on user needs by providing clear explanations, new feature breakdowns, and migration guides. Easy navigation, search, and collaboration tools ensure users can find what they need quickly. |
|
Embracing Agility: Trends to Enhance Your Software Agile software development is constantly evolving to address the challenges of modern software development. This article explores some of the latest trends in agile development, including cloud-based infrastructure, online Scrum, containerization, DevOps, low-code/no-code tools, schema-less data, and serverless computing. These trends can help to make software development more efficient, scalable, and collaborative. |
|
How Cloud Computing Facilitates Agile Software Development Cloud computing provides an environment to develop software using agile methodologies and principles including simplicity, customer collaboration, and incremental development that are based on changing requirements, scalable resources, continuous delivery of working software, scrum and kanban in the cloud, the customer experience (CX) cloud, and custom software development. |
|
Java Introduces Virtual Threads In this article we discuss virtual threads that were first introduced in OpenJDK 19, and are now in a second preview in OpenJDK 20. |
|
JDK 20 Introduces Structured Concurrency The new incubating API for structured concurrency introduces a new style of concurrent programming with several additional benefits. |
|
How C++ Is Agile Two of the Agile principles are simplicity and the ability to meet changing requirements. In this article we discuss how C++ fulfills these and other Agile software development principles through its language features. |
|
MySQL Upgrade Became Simpler in 8.0.16 MySQL server upgrading, the process of upgrading the MySQL server after the installation of a new database version, has been fully automated in MySQL 8.0.16. |
|
What Makes JavaScript Suitable for Agile Development Agile principles for software development emphasize the importance of simplicity, flexibility, and continuous delivery of valuable, working software. Any software that uses JavaScript during development benefits from the Agile features of JavaScript. In this article, we will explore how JavaScript supports Agile. |
|
MySQL 8 Doesn’t Support Some of the Features You May Have Used We often discuss the new features added in new MySQL versions, but it becomes equally important to discuss the removed features that you’ll no longer be able to use. |
|
An Agile Approach to Developing a New Software Version Every software typically develops a new version periodically. Creating a new software version is an involved process, and in this article, we will explore how it can be made Agile. |
|
What Makes Apache Kafka Suitable for Agile Development The Agile Manifesto establishes 12 principles for Agile software development. Most software that has a dependency on another software inherits its Agile features—and in this article, we will explore what makes Apache Kafka suitable for Agile software development. |
|
Java 20 Brings Scoped Values to Core-Libs Each new version of Java brings new features for its different components: specification/language, core libs, and the JVM. In this article, we will explore the scoped values feature in the core-libs component. |
|
What Makes Apache Hadoop Agile Agile software development emphasizes continuous delivery of valuable software, simplicity, working software, customer collaboration, responding to change, and welcoming changing requirements. In this article, we shall discuss how Apache Hadoop (one of the top open-source projects)-based software fulfills Agile software development principles. |
|
What Makes Kubernetes Agile One of the Agile principles is simplicity—the art of maximizing the amount of work not done is essential. Kubernetes provides simplicity through different features based on the Single Responsibility Principle for decoupling, and through automating tasks such scaling, resource allocation, and making updates. |
|
How to Keep SQL Queries Agile When developing software that makes use of a database, you may want to apply Agile principles to help tune your SQL queries. Simplicity, and being able to reduce the time scale of long running queries are the resulting benefits. In this article we discuss how to write more efficient code and reduce the overhead associated with long-running or inefficient queries. |
| |
Resource Groups in MySQL 8 Resource Groups, a new feature in MySQL 8 for resource management, are used to define a group for a certain type of threads, and to allocate the resources that threads in a particular group may consume. This results in prioritizing the different groups of threads. |
|
Window Functions in MySQL 8 Window functions are a new feature in MySQL 8. While most functions operate only on the data pertaining to a single row of data, Window functions operate over a “window” of data when performing a SQL query, and also for each query row. |
|
What Makes Java Agile Java is one of the most commonly used programming languages, patronized for its simplicity, extensibility, and object-orientedness. The principles of Agile software emphasize simplicity, interactions among individuals, working software, customer collaboration, and responsiveness to change. So, what makes Java Agile? |
|
Creating a New User in MySQL 8 In MySql 8, you may create a user that requires multiple authentication methods, uses a random password, with comments and attributes annotated with the user, and configured failed logins. |
|
Agile Data Modeling with MySQL Document Store Agile data modeling involves a collaborative, iterative, and incremental approach to data modeling. In this article, we discuss how MySQL Document Store could be used for agile data modeling. |
|
What Makes Containerization Agile While a few other types of containers are available, Docker is the de facto standard for containerization. Containerization involves running multiple applications in containers on a Docker Engine that runs on an underlying operating system. The principles of Agile software emphasize simplicity, interactions among individuals, working software, customer collaboration, and responsiveness to change. Docker containers make all of these feasible. |
|
Common Table Expressions in MySQL 8 Common Table Expressions (CTEs) are a new feature in MySQL 8.0 to simplify SQL code related to result sets generated by subqueries, offering a better alternative to derived tables. |
|
The New Data Dictionary in MySQL 8.0 The data dictionary tables do incur some operational and upgrade differences, but the benefits outweigh the overhead. |
|
New Java 18 Feature–Default Charset UTF-8 This article discusses the new Java 18 feature of making the default charset as UTF-8, which makes software development more agile as it makes software more portable across different systems. |
|
Agile Authentication in Modern Applications—With OAuth 2.0 This article explains how the OAuth 2.0 authorization framework authenticates a user on a third-party HTTP website, and how this kind of social identity provider based authentication makes use of what is called authorization code grant flow. |
|
Kubernetes—Only Lighter In this article we explore K3S, first made available in early 2019 as a lightweight option for Kubernetes (K8S). One of the issues with Kubernetes when it initially became available was that installing Kubernetes involved several commands to run and several configurations to make. Several managed services for Kubernetes emerged, mostly from cloud service providers. The cloud-managed services did simplify the task of spinning up a Kubernetes cluster, but issues relating to the complexities of running a cluster still remain. |
|
Switch Expressions in Java 14 add Simplicity and Agility The article discusses how the new switch statement is simplified and how the new switch expression simplifies. After setting the environment, we’ll discuss what was lacking in the switch statement that makes it less agile. Then, we’ll discuss how Java 14 simplifies switch.
|
|
Making Big Data Agile Big data is defined as web-scale, large quantities of data ranging to several TeraBytes (TB) or PetaBytes (PB). Big data is inherently difficult to manage due to its sheer size and free format, which is best summarized by the three Vs (volume, velocity, and variety). |
|
Text Blocks Make Java More Agile A Java architect has often posed the dilemma of whether to revise existing code around a new feature. Revising code involves a lot of code review and code rewriting. Revising existing Java code is justified only if the benefits of a new feature outweigh the effort needed to revise the code. |
|
Using Kubernetes for Container Orchestration in DevOpsContainerization has replaced virtual machines to a great extent because containers are lightweight and make efficient use of the OS kernel. Docker’s efficient nature helps with software development, testing, delivery, and deployment in a DevOps environment, and all the benefits of Docker also apply to Kubernetes. Let’s explore some of the additional agile and DevOps benefits you can gain by using Kubernetes. |
|
How Docker Enables Agile Software DevelopmentDocker has revolutionized how software is packaged, distributed, and deployed, so it's easy to see why it has become the de facto containerization platform. But have you thought about how Docker actually makes software development, testing, delivery, and deployment more agile? Let's look at how Docker inherently supports several of the founding principles of agile software development. |