Learn why converting strings to OffsetDateTime objects is crucial for handling date and time in Java applications.
Also find me here:
Baeldung Editor
Michal Aibin
Michal Aibin is a Faculty at British Columbia Institute of Technology and Visiting Associate Professor at Northeastern University with over 10 years experience in software development industry. He received his doctorate degree in Informatics in 2017 and since then published more than 50 research papers. His main research interests are optimization and modeling of computer networks, and adaptive algorithms and machine learning for geospatial analysis/remote sensing. Personally, he enjoys horseback riding and playing music.
Here's what I've reviewed (so far):
Baeldung on Java
- All
- Java (80)
- Core Java (60)
- Testing (55)
- Spring (52)
- Spring Boot (49)
- Persistence (39)
- Java String (35)
- Java Collections (31)
- Algorithms (27)
- DevOps (24)
- Spring MVC (22)
- Spring Data (22)
- NoSQL (22)
- Java Numbers (22)
- Java IO (20)
- Data (20)
- Spring Security (19)
- Jakarta EE (19)
- REST (18)
- Java Map (18)
- JVM (18)
- JSON (17)
- JPA (16)
- Security (15)
- Maven (15)
- Java Concurrency (15)
- HTTP Client-Side (15)
- Java Dates (14)
- Java Streams (13)
- Spring Cloud (12)
- Java Array (12)
- Jackson (12)
- Reactive (11)
- Spring Web (10)
- Cloud (9)
- Architecture (9)
- Groovy (8)
- Spring Persistence (7)
- Logging (6)
- Gradle (6)
- IDE (5)
- Networking (4)
- XML (3)
- Web Services (3)
- Docker (2)
- Java Web (1)
- Guava (1)
Implement the Builder Pattern in Java 8
Filed under Java
Learn how to implement a Builder Pattern in Java 8.
Different Ways to Use Limit and Skip in MongoRepository
Filed under Spring Data
Explore the skip and limit functionalities within MongoRepository.
Finding the Redirected URL of a URL in Java
Filed under Java Web
Learn how handling redirection correctly is essential for building robust web applications that interact with external resources.
Print the Default Value When Overriding toString() Method
Filed under Core Java, Java String
Learn about overriding the toString() method and handling the potential null within.
Find the Length of the Longest Symmetric Substring
Filed under Algorithms, Java String
Learn how to handle the symmetric substring expansion methods, taking into account the specific requirements such as input size and computational efficiency.
What Does It Mean to Hydrate an Object?
Filed under Java
Learn about the meaning of the term hydration in the context of programming.
Convert a String to a List of Characters in Java
Filed under Java String
Learn how to convert a string into a list of charactеrs in Java.
Skip Bytes in InputStream in Java
Filed under Java IO
Learn how to use the skip() method to skip bytеs within a Java InputStrеam.
String vs StringBuffer Comparison in Java
Filed under Java String
Compare String and StringBuffer classes.
Deserializing JSON to Java Record using Gson
Filed under JSON
Learn how to dеsеrializе JSON data into Java rеcords using Gson.
Spring Kafka Trusted Packages Feature
Filed under Spring
Explore the Spring Kafka trusted packages feature.
String’s Maximum Length in Java
Filed under Java String
Explore thе constraints and considеrations rеlatеd to thе maximum lеngth of strings in Java.
Connect to Database Through Intellij Data Sources and Drivers
Filed under IDE, Persistence
Learn how to connect to a database through IntelliJ data sources and drivers.
Rounding Up a Number to Nearest Multiple of 5 in Java
Filed under Java Numbers
Explore multiplе mеthods for rounding up a numbеr to thе nеarеst multiplе of 5 in Java.
Catch Common Mistakes with Error Prone Library in Java
Filed under Java
Explore the functionalities of the Error Prone library, from installation to customization, and the benefits it offers in enhancing code quality and robustness.
How to Convert Byte Array to Char Array
Filed under Java Array
Learn how to convert bytе arrays to charactеr arrays in Java while managing various data manipulation tasks.
How to Use a Custom Font in Java
Filed under Java
Learn how to use custom fonts in Java applications to еnhancе visual appеal and crеatе distinctivе usеr intеrfacеs.
How to Increment a Map Value in Java
Filed under Java Map
Explore several ways to increment the value of a Map entry.
Convert Long Timestamp to LocalDateTime in Java
Filed under Java Dates
Learn how to convert a Long timеstamp to a LocalDatеTimе objеct in Java.
Passing JVM Options from Gradle bootRun
Explore different ways to pass JVM options to the bootRun command.
Setting a Spring Bean to Null
Filed under Spring
Learn how to set beans in the Spring context to nulls.
Context-Specific Deserialization Filters in Java 17
Filed under Core Java
Explore Java’s latest enhancement, Context-Specific Deserialization Filter (JEP 415), in action.
Time Complexity of Java Collections Sort in Java
Filed under Java Collections
Explore thе Collеctions.sort() timе complеxity using Java Microbеnchmark Harnеss (JMH).
Convert Timestamp String to Long in Java
Filed under Java Dates
Learn how to convеrt a timеstamp string to a long valuе.
Working with Exceptions in Java CompletableFuture
Filed under Java Concurrency
Explore the ways to handle exceptions that occur in CompletableFuture stages.
Executable Comments in Java
Filed under Core Java
Learn how comments and Unicode escape sequences work together.
Sharing Memory Between JVMs
Filed under JVM
Learn how to use share a memory area between two JVMs running on the same machine.
HashSet toArray() Method in Java
Filed under Java Collections
Learn how to convert a HashSet into an array using the toArray() method of the HashSet class.
Comparing the Values of Two Generic Numbers in Java
Filed under Java Numbers
Explore the nuances of comparing Number objects, and find detailed insights and code examples for each strategy.
Convert a Hex String to an Integer in Java
Filed under Java Numbers
Explore various approaches to converting a Hex String into an int in Java.
Create a “Mutable” String in Java
Filed under Java String
Learn about mutable Strings and ways of mutating a String.
Convert a Stream into a Map or Multimap in Java
Filed under Java Map, Java Streams
Explore ways of transforming a stream into a Map or Multimap in Java using various approaches and libraries.
Round the Date in Java
Filed under Java Dates
Learn how to round the date using the java.util.Date, as well as LocalDateTime and ZonedDateTime.
How to Write and Read a File with a Java HashMap
Filed under Java Map
Explore three methods for writing to and reading from a file with HashMap data.
@ConditionalOnThreading Annotation Spring
Filed under Spring
Explore a new Spring annotation – @ConditionalOnThreading.
Overriding Cucumber Option Values
Filed under Testing
Explore three methods to override the Cucumber option values.
Convert String Containing XML to org.w3c.dom.Document
Filed under XML
Learn how to convert a string with XML-based content into Org.w3c.dom.Document in Java.
Convert an XML Object to a String in Java
Filed under Java String, XML
Learn how to convert an XML Document object to a string in Java.
How to Create CSV File from POJO with Custom Column Headers and Positions
Filed under Java IO
Learn how to convert POJO to CSV format and write to the CSV file.
Remove Elements From a Queue Using Loop
Filed under Java Collections
Learn how to remove elements from a queue using a while loop in Java.
Taking Every N-th Element from Finite and Infinite Streams in Java
Filed under Java Streams
Explore how to get every N-th element from finite and infinite streams in Java.
How to Center Text Output in Java
Filed under Java String
Learn multiple ways to center text output in Java: String formatting, StringBuilder, and StringUtils from the Apache Commons Lang libraries.
Why wait() Requires Synchronization?
Filed under Java Concurrency
Learn why the Java wait() method requires synchronization.
How to Write Hashmap to CSV File
Learn how to write HashMap to a CSV file.
Deprecate Finalization in Java 18
Filed under Core Java
Learn about the reason behind Java’s decision to deprecate finalization for removal.
How to Convert Double to Float in Java
Filed under Java Numbers
Explore double and float in Java and learn how to convert them into each other.
Finding the Square Root of a BigInteger in Java
Filed under Java Numbers
Learn three approaches to calculating the square root of a big number in Java.
API Versioning in Micronaut
Filed under REST
Learn how to implement API versioning with Micronaut.
SpringRunner vs. SpringBootTest
Filed under Spring Boot, Testing
Learn about SpringRunner and SpringBootTest.
Check if a String Is Strictly Alphanumeric With Java
Filed under Java String
Explore a couple of ways to check if a String is alphanumeric.
Unnamed Patterns and Variables in Java 21
Filed under Core Java
Learn about an exciting preview feature in Java 21: unnamed patterns and variables.
Create a GraalVM Docker Image
Filed under Docker, Spring Boot
Learn how to build a Docker image for a GraalVM native executable.
Skipping the First Iteration in Java
Filed under Java Collections
Explore various methods to skip the first element using loops and the Stream API.
How to Detect the Username Using Java
Filed under Java
Explore a couple of ways to get the required information about the environment.
Difference Between Arrays.sort() and Collections.sort()
Filed under Java Array, Java Collections
Compare two Java’s commonly used sorting methods: Arrays.sort() and Collections.sort().
Converting HashMap Values to an ArrayList in Java
Filed under Java Map
Explore several ways to convert a HashMap to an ArrayList in Java.
String Templates in Java 21
Filed under Java String
Explore several String composition techniques and understand the idea behind String interpolation.
Expand Columns with Apache POI
Filed under Java IO
Explore two approaches in Apache POI to adjusting the column width of Excel spreadsheets.
Value-Based Classes in Java
Filed under Core Java
Explore value-based classes and the notion of value types in Java.
How To Convert Excel Data Into List Of Java Objects
Filed under Java Collections, Java IO
Learn about the usage of several libraries, such as Apache POI, Poiji, FastExcel, and JExcelApi, to read and convert data from Excel files into Java objects.
Secure Kubernetes Secrets with Vault
Filed under Spring
Explore different ways to access secrets stored in a Vault instance from Kubernetes-based applications.
How to Get Index of an Item in Java Set
Filed under Java Collections
Explore how to find the index of an element in a Set.
How to Mock Constructors for Unit Testing using Mockito
Filed under Testing
Learn different ways to mock constructors through Mockito and PowerMock.
Streams vs. Loops in Java
Filed under Java Streams
Dive deep into a Java Streams vs. For-Loops comparison.
When to Call System.out.flush() in Java?
Filed under Core Java
Learn when to call System.out.flush() in Java.
JSON File Data Into Kafka Topic
Filed under JSON
Explore the necessary steps to send JSON format data to the topic using a Kafka producer and consumer.
Find the Middle Element of an Array in Java
Filed under Java Array
Explore several approaches to finding the middle elements of an array in Java.
Convert int to Long in Java
Filed under Java Numbers
Learn several ways of convert an integer to a Long in Java.
Format Multiple ‘or’ Conditions in an If Statement in Java
Filed under Core Java
Learn how to improve the readability of multiple conditions in an if statement.
Amazon SNS vs. Amazon SQS
Filed under Architecture, Cloud
Learn about two of the top services that AWS provides to users: SNS and SQS.
How to Fix “Error in Opening Zip File” When Running Maven
Filed under Maven
Explore different ways to resolve the “Error in Opening Zip File” issue.
Creating a Telegram Bot with Spring Boot
Filed under Spring Boot
Learn how to implement a Telegram bot using Spring Boot.
Inner Classes vs. Subclasses in Java
Filed under Core Java
Explore subclasses, inner classes, and their role in writing modular object-oriented code.
Update an Existing Amazon S3 Object Using Java
Filed under Cloud
Learn how to replace the existing file content with newer content for the same AWS S3 path using AWS Java SDK.
Get Values and Keys as ArrayList From a HashMap
Filed under Java Map
Explore how to obtain the key and value lists from a HashMap in Java.
Calculating the Sum of Two Arrays in Java
Filed under Java Array
Learn how to calculate the sum of two arrays element by element in Java.
Java Validation List Annotations
Filed under Jakarta EE
Explore the utility of the List variant of the annotations available under the package jakarta.validations.constraints.
@JsonSubTypes vs. Reflections for Polymorphic Deserialization in Jackson
Explore two distinct approaches, focusing on using a custom annotation and Reflections, for identifying and registering subtypes.
JDBC vs. R2DBC vs. Spring JDBC vs. Spring Data JDBC
Filed under Spring Data
Explore several database approaches in the Java ecosystem.
A Guide to ShardingSphere
Filed under Data
Learn the first steps using ShardingSphere.
Remove Whitespaces From a JSON in Java
Filed under JSON
Explore various methods for removing extra whitespaces from a JSON string in Java.
Receiving PostreSQL Push Notifications with Spring Integration
Filed under Spring Persistence
Learn how to leverage the NOTIFY/LISTEN mechanism available on PostgreSQL to implement asynchronous message delivery in Spring Integration applications.
Performance Comparison Between Different Java String Concatenation Methods
Filed under Java String
Explore different string concatenation methods in Java and evaluate their performance using JMH.
Gradle Toolchains Support for JVM Projects
Filed under Gradle
Explore the Gradle toolchains feature for JVM.
Pretty-Print a JSON in Java
Filed under Jackson
Explore various methods for achieving pretty printing of JSON in Java.
How to Convert application.properties to application.yml for Spring Boot
Filed under Spring Boot
Explore the difference between .properties and .yml files and learn how to convert the application.properties file to application.yml and vice-versa using various tools and plugins.
The Vector API in Java 19
Filed under Core Java
Explore the Vector API, its associated terminologies, and how to leverage it.
Difference Between Boolean.TRUE and true in Java
Filed under Core Java
Explore the differences between Boolean.TRUE and true in Java to properly use these representations of true boolean values.
Setting Default Values to Null Fields in Jackson Mapping
Filed under Jackson
Explore three ways of dealing with missing or null values in JSON when parsing it with Jackson.
Get Partition Count for a Topic in Kafka
Filed under Data
Explore how to retrieve the total number of partitions of a specific Kafka Topic using Java and CLI.
Converting a Java List to a Json Array
Filed under Java Collections, JSON
Learn how to convert a Java List to a JSON array.
What Is Elasticsearch?
Filed under Data
Learn about Elasticsearch: a powerful search and analytics engine that can revolutionize how we handle and understand data.
Mock a URL Connection in Java
Filed under Testing
Explore several ways of mocking a URL connection to write stand-alone unit tests that don’t rely on external services.
Converting Object To Map in Java
Filed under Java Map
Explore various approaches such as reflection, Jackson, and Gson to convert Java Objects into Java Maps.
Using PostgreSQL as a Message Broker
Filed under Spring Boot
Explore PostgreSQL’s NOTIFY/LISTEN mechanism and learn how to use it to implement a lightweight message broker with no extra components.
Convert Hashmap to JSON Object in Java
Learn how to convert a Map to JSON in Java.
Array vs. List Performance in Java
Filed under Java Array, Java Collections
Explore the performance of arrays and lists in Java.
Classpath vs. Modulepath in Java
Filed under Core Java
Explore the distinction between the modulepath and classpath in Java.
Creating Custom Iterator in Java
Filed under Java Collections
Learn how to create a custom iterator in Java and apply it to our collections.
Get Last N Messages in Apache Kafka Topic
Filed under Data
Learn how to get the latest N messages of a Kafka Topic.
Opening a New Tab Using Selenium WebDriver in Java
Filed under Testing
Explore two approaches to opening a new tab with Selenium.
Regular Expression: \z vs \Z Anchors in Java
Filed under Java String
Explore the differences between \z and \Z anchors, how they work, and when to use them.
Read Multiple Inputs on the Same Line in Java
Filed under Java IO
Learn how to read multiple inputs on the same line using the Scanner class.
Intercept SQL Logging with P6Spy
Filed under Persistence
Explore multiple advantages of relying on an external third-party library such as P6Spy to log database queries.
Overriding hashCode() And equals() For Records
Filed under Core Java
Learn how records provide us with a default implementation of equals() and hashCode() methods.
Difference Between FileReader and BufferedReader in Java
Filed under Java IO
Learn how to use FileReader and BufferedReader and the differences between them.
How to Persist a List of String in JPA?
Filed under JPA
Explore what kind of possibilities there are in JPA to store a list of strings of an entity.
Getting Pixel Array From Image in Java
Filed under Java Array
Learn how to get a two-dimensional array that contains the combined RGB values for every pixel in an image in Java.
Working with Virtual Threads in Spring 6
Filed under Java Concurrency, Spring
Learn how to use virtual threads in a Spring 6-based application.
Create and Detect Memory Leaks in Java
Filed under JVM
Learn about memory allocation and garbage collection in Java to prevent memory leaks and build more efficient, robust applications.
Analyze, Generate and Transform Code Using Spoon in Java
Filed under Java
Learn how to use the Spoon library to analyze and modify Java source code.
External Debugging With JMXTerm
Learn how to use JMXTerm to perform external debugging on a Java application.
Configuring Protobuf Compilation with Custom Source Directories
Filed under Java
Learn how to configure a custom source directory for protobuf files.
Shards and Replicas in Elasticsearch
Filed under Architecture, DevOps
Learn about Elasticsearch shards and replicas.
Java Modularity and Unit Testing
Explore Java Modularity and learn how it affected the testing in Java applications.
Reuse StringBuilder for Efficiency
Filed under Java String
Explore the advantages of reusing a StringBuilder and explore a concrete example of how to do it.
A Guide to @Timeout Annotation in JUnit 5
Filed under Testing
Explore JUnit5’s new @Timeout annotation.
Deserialize Generic Type with Jackson
Filed under Jackson
Explore two simple ways to deserialize a JSON string into an object with a generic type.
URL Matching in Spring Boot 3
Filed under Spring Boot
Explore the changes in URL-matching introduced by Spring Boot 3 (Spring 6).
Unidirectional One-to-Many and Cascading Delete in JPA
Filed under JPA
Learn about the Cascading deletion, focusing on unidirectional One-to-Many relationships.
Retrying Requests using Apache HttpClient
Filed under HTTP Client-Side
Learn about the default retry behavior in Apache HttpClient.
The Difference Between junit-vintage-engine and junit-jupiter-engine
Filed under Testing
Explore the difference between the junit-vintage-engine and the junit-jupiter-engine.
Difference Between parallelStream() and stream().parallel() in Java
Filed under Java Concurrency, Java Streams
Explore the ways we can create parallel Streams from a Collection data source.
How to Determine Date of the First Day of the Week Using LocalDate in Java
Filed under Java Dates
Learn about the date of the first day of the week from LocalDate in Java.
Difference Between asText() and toString() in JsonNode
Filed under Jackson
Learn about asText() and toString() methods for working with JSON data in Java.
Using Java Records with JPA
Filed under JPA
Learn how we can use records with JPA and Spring Data JPA.
How to configure Redis TTL with Spring Data Redis?
Filed under Spring Boot, Spring Data
Explore various approaches to setting Redis TTL via Spring Data Redis.
Maven Reactor
Filed under Maven
Learn about the benefits of using Maven Reactor in the Apache Maven ecosystem to build multi-module complex projects.
Introduction to Interface Driven Development (IDD)
Filed under Architecture
Explore the advantages of IDD and an example of how to use it.
Pipeline Design Pattern in Java
Filed under Architecture
Learn about the Pipeline pattern as a potent tool.
Different Ways to Create an Object in Java
Filed under Core Java
Learn how to use keywords, such as new or class, to create an object.
Post form-url-encoded Data with Spring Cloud Feign
Filed under Spring Cloud
Learn how to use Feign to make POST API requests with form-url-encoded data in the request body.
Authenticating Users with AzureAD in Spring Boot
Filed under Cloud, Spring Security
Learn how to use AzureAD with Spring Security to authenticate users, including the required configuration steps for a demo application.
Pitfalls on Testing with Spring Boot
Filed under Spring Boot, Testing
Learn the pitfalls of writing Spring Boot tests.
Copying All Keys and Values From One Hashmap Onto Another Without Replacing Existing Keys and Values
Filed under Java Map
Explore ways to copy the entries from one HashMap to another while preserving the existing entries of the target HashMap.
Guide to Quarkus Funqy
Filed under DevOps
Learn about Quarkus Funqy as a great addition that helps to run Java functions on the Serverless infrastructure.
Java HttpClient Connection Management
Filed under HTTP Client-Side
Learn how the Java HttpClient reuses connections from its internal connection pool.
Jakarta EE 10
Filed under Jakarta EE
Explore features of the new Jakarta EE 10 release.
Record vs. Final Class in Java
Filed under Core Java
Explore the differences between records and final classes in Java.
Guide to HTTPie for Terminal
Filed under HTTP Client-Side
Learn how to install and use the HTTPie CLI tool.
Initialize an ArrayList with Zeroes or Null in Java
Filed under Java Collections
Learn the alternatives when we need to initialize an ArrayList with null or 0 values.
Generate Unit Test Data in Java Using Instancio
Filed under Testing
Learn how to eliminate manual data setup in tests by auto-generating the data using Instancio.
Structured Concurrency in Java 19
Filed under Core Java, Java Concurrency
Learn about structured concurrency capabilities in Java 19.
Introduction to ScyllaDB with Java
Filed under NoSQL
Explore ScyllaDB.
Converting a Number from One Base to Another in Java
Filed under Java Numbers
Learn how to convert numbers from one base to another in Java.
The JVM Run-Time Data Areas
Filed under JVM
Explore different types of runtime data areas and their purpose.
Check If All the Variables of an Object Are Null
Filed under Core Java
Explore the importance of checking for null variables in our Java classes.
Monads in Java – Optional
Filed under Architecture, Java
Explore why the Java Optional class is a monad.
Implementing Retry in Kafka Consumer
Filed under Spring
Learn how to implement retry logic on a Kafka topic, including blocking and non-blocking approaches.
Record Patterns in Java 19
Filed under Core Java
Learn how record patterns allow us to extract the values of a record into variables using pattern matching.
Using Watermarks with iText in Java
Filed under Java IO
Learn how to add watermarks to generated PDF and to an existing PDF using iText.
Extract Values using AssertJ in Java
Filed under Testing
Learn two ways to extract an object’s value to be asserted on.
Form Login and Basic Authentication in springdoc-openapi
Filed under Spring Security
Learn how to configure authentication in Springdoc for accessing protected endpoints via generated documentation in Swagger-UI.
Functors in Java
Filed under Java
Learn what is a Java Functor.
Handle Browser Tabs With Selenium
Filed under Testing
Learn how we handle browser tabs with Selenium.
A Guide to Spring CredHub
Filed under Spring
Learn how to integrate CredHub with Spring Boot using the Spring CredHub library.
Errors and Exceptions in Java
Filed under Core Java
Explore the differences between errors and exceptions in the Java ecosystem.
Using Firebase Cloud Messaging in Spring Boot Applications
Filed under Spring Boot
Learn how to send notification messages to web and mobile applications using Google’s Firebase Cloud Messaging service.
String Interpolation in Java
Filed under Java String
Explore the topic of String interpolation in Java.
Choosing the Right Java Collection
Filed under Java Collections
Explore all collection interfaces and collection classes in the Java library.
How to Serialize a Singleton in Java
Filed under Core Java
Learn how to create a serializable singleton class in Java.
Find the First Non Repeating Character in a String in Java
Filed under Java String
Explore different approaches to finding the first non-repeating character in a string.
Jackson’s Deserialization With Lombok
Filed under Jackson
Explore two simple approaches to configure our Lombok builder classes to work seamlessly with Jackson.
Inserting an Object in an ArrayList at a Specific Position
Filed under Java Collections
Learn how to add a new element at a specific position to an ArrayList.
The Factory Design Pattern in Java
Filed under Architecture
Explore the factory design pattern.
Kong Ingress Controller with Spring Boot
Filed under DevOps, Docker, Spring Boot
Explore the use of the Kong Ingress Controller to manage access to a Spring Boot application deployed on a K8s cluster.
Apache Camel Exception Handling
Filed under Data
Learn how to handle exceptions in our routes using Apache Camel.
Difference Between Map and MultivaluedMap in Java
Filed under Java Map
Explore the differences between Map and MultivaluedMap.
Java Program to Calculate the Standard Deviation
Filed under Algorithms
Learn how to calculate the standard deviation in Java.
A Guide to LinkedHashSet in Java
Filed under Java Collections
Explore the LinkedHashSet data structure from the Java Collections library.
How to Access the First Element of a Flux
Filed under Reactive
Explore various ways of accessing the first element of a Flux.
Implementing Factory Pattern With Generics in Java
Filed under Java
Learn how to implement and use the factory pattern in Java.
Coupling in Java
Filed under Core Java
Explore coupling in Java.
Introduction to Datafaker
Filed under Testing
Learn how to generate mock data for different purposes with Datafaker.
How to Resolve Spring Webflux DataBufferLimitException
Explore what DataBufferLimitException is and how to fix it on both the server and client sides.
Channels and Connections in RabbitMQ
Filed under Data
Explore Channels and Connections in RabbitMQ and how we can use them.
Setting Time-To-Live Value for Caching
Filed under Spring
Learn how to set TTL caching for Spring-based caching.
Infinity in Java
Filed under Java Numbers
Explore the concept and usage of positive and negative infinity in Java.
Variable Instantiation on Declaration vs. on Constructor in Java
Filed under Core Java
Learn that using either field declaration or constructor initialization is more of a preference.
Dealing with “java.lang.OutOfMemoryError: PermGen space” Error
Filed under JVM
Explore the purpose of PermGen memory and the main difference with heap memory.
Set vs List in Java
Filed under Java Collections
Explore the difference between a List and a Set in Java.
Validate UUID String in Java
Filed under Java String
Learn how to validate a UUID string by using regular expressions or the static method of the UUID class.
Java Scanner Taking a Character Input
Filed under Java IO
Learn how to take char input using the Java Scanner.
Convert between JSON and Protobuf
Filed under JSON
Learn how to convert JSON to protobuf and vice versa.
Static Fields and Garbage Collection
Filed under Core Java
Learn how garbage collection in Java deals with classes and static fields.
Handle Classes With the Same Name in Java
Filed under Core Java
Explore two possible approaches regarding the use of classes having the same name in Java.
Apache Camel Conditional Routing
Filed under Spring
Learn how we can route messages based on conditions in our routes using Apache Camel.
PKCE Support for Secret Clients with Spring Security
Filed under Spring Security
Learn how to enable OAuth’s PKCE extension in a Spring Security application.
Permutations of a String in Java
Filed under Java String
Learn how we to easily create permutations in Java using third-party libraries.
Integer.toString() vs String.valueOf() in Java
Filed under Java String
Learn about the Integer.toString() and String.valueOf() methods.
How To Find Maven Dependencies
Filed under Maven
Explore different ways to add a Maven dependency to our project.
How to Configure Conditional Dependencies in Gradle
Filed under Gradle
Learn how to configure conditional dependencies in a Gradle project.
Spring Boot 3 and Spring Framework 6.0 – What’s New
Filed under Spring Boot
Learn about new features that come with Spring Boot 3 and Spring 6.
Scanning Java Annotations at Runtime
Filed under Java
Learn about scanning Java annotations at runtime.
Query Documents using Document ID in MongoDB
Filed under NoSQL
Learn to query documents using Document ID in MongoDB.
Processing the Response Body in Spring Cloud Gateway
Filed under Spring Cloud
Learn how to access the response body of a backend service and modify it using the Spring Cloud Gateway library
What Are the Spring Boot Default Memory Settings?
Filed under Spring Boot
Learn about the default values of various heap and stack memory configuration options available for Java applications.
Is There a Destructor in Java?
Filed under Core Java
Learn about the possibility of object destruction in Java.
A Guide to Maven Encoding
Filed under Maven
Learn how to set character encoding in Maven.
Configure JWT Authentication for OpenAPI
Filed under Spring Security
Learn how to configure JWT authentication to our OpenAPIs
Tomcat Warning “To Prevent a Memory Leak, the JDBC Driver Has Been Forcibly Unregistered”
Filed under Persistence
Learn about the meaning of the JDBC driver forcible unregistration warning message from Tomcat.
Expose GraphQL Field with Different Name
Filed under Web Services
Learn how a GraphQL field can be exposed with a different name.
Sorting Objects in a List by Date
Filed under Java Dates
Learn how to sort a Java Collection by Date object in both ascending and descending modes.
@RequestMapping Value in Properties File
Filed under Spring Web
Learn how to set the @RequestMapping value in a properties file.
Java HttpClient Timeout
Filed under HTTP Client-Side
Learn how to configure a timeout using the new Java HTTP Client to handle requests when timeouts overflow.
Joining Tables With Spring Data JPA Specifications
Filed under Spring Data
Learn how to use JPA Specifications to query a table based on one of its associated entities.
Building Native Images With Spring Native and Liberica Tools With a Speed Comparison
Filed under Spring
Explore how to use the native image technology with Spring Boot applications.
Add Header to Every Request in Postman
Filed under HTTP Client-Side
Explore the pre-request Script functionality of Postman to add HTTP headers to every request.
Spring Security Authorization with OPA
Filed under Spring Security
Learn how to use OPA to externalize authorization decisions of a Spring Security-based application.
Swap Two Variables in Java
Filed under Algorithms
Learn how to swap two variables in Java, depending on the type of the variables.
Exception Handling With Jersey
Filed under REST
Explore many ways we can handle exceptions using Jersey.
How to Store HashMap<String, ArrayList> Inside a List
Filed under Java Map
Learn about storing HashMaps inside a List in Java.
Creating a Java Array from Regular Expression Matches
Filed under Java Array
Learn to look for patterns in a string of text in Java.
Checking Connection to MongoDB
Filed under NoSQL
Learn how to check the connection of the MongoDB server with different real-time cases.
A Guide to JPA Buddy
Filed under JPA
Explore JPA Buddy and its main features and see how we can use them during the application development cycle.
Retrieve a Value from MongoDB by Its Key Name
Filed under NoSQL
Learn how to retrieve the value by key name in MongoDB.
Spring Security – Map Authorities from JWT
Filed under Spring Security
Explore different ways to customize the way Spring Security map authorities from JWT claims.
Send a SOAP Object with Feign Client
Filed under HTTP Client-Side, Web Services
Learn how to invoke a SOAP web service using Feign.
Bulk Update of Documents in MongoDB
Filed under NoSQL
Learn how to perform bulk operations in MongoDB using different kinds of write operations.
Guide to Upsert in MongoDB
Filed under NoSQL
Learn how to perform upsert operations with various update methods of MongoDB.
Subtract Days from a Date in Java
Filed under Java Dates
Explore several ways to subtract days from a date object.
Apache Camel Routes Testing in Spring Boot
Filed under Spring Boot, Testing
Learn how to test Apache Camel routes in Spring Boot.
Push Operations in MongoDB
Filed under NoSQL
Learn how to insert documents into an array in MongoDB.
Push and Set Operations in Same MongoDB Update
Filed under NoSQL
Learn how to apply multiple operations together in a single MongoDB query.
Introduction to Jakarta EE MVC / Eclipse Krazo
Filed under Jakarta EE
Learn about the Jakarta MVC 2.0 and how to develop a web application and a REST API using Eclipse Krazo.
Check Collection Existence in MongoDB
Filed under NoSQL
Explore various ways to check the existence of a collection using the MongoDatabase and DB class methods.
Update Documents in MongoDB
Filed under NoSQL
Explore various ways to update the documents in MongoDB.
Update Multiple Fields in a MongoDB Document
Filed under NoSQL
Explore various ways to update multiple fields of a document in MongoDB.
Java Missing Return Statement
Filed under Java
Explore some examples of missing return statements in Java.
Difference Between Map and HashMap in Java
Filed under Java Map
Learn why interfaces are a great means for abstraction and defining a contract.
URL Rewriting With Spring Cloud Gateway
Filed under Spring Cloud
Explore different ways to rewrite URLs using the Spring Cloud Gateway library.
Connecting to a NoSQL Database with Spring Boot
Filed under NoSQL, Spring Boot
Learn how to set up and connect to a hosted Cassandra Astra Database.
Document Enum in Swagger
Filed under Spring Web
Learn how to document enum in Swagger using the Maven plugin and verify the generated JSON document in the Swagger editor.
Spring @Autowired Field Null – Common Causes and Solutions
Filed under Spring
Learn about an error that would cause a NullPointerException when we unintentionally mix Spring injection with objects we create by calling their constructors.
Configure and Use Multiple DataSources in Spring Boot
Filed under Spring Boot, Spring Persistence
Learn how to configure multiple data sources with Spring Boot.
Using Spring Cloud Gateway with OAuth 2.0 Patterns
Filed under Spring Cloud, Spring Security
Explore some of the OAuth 2.0 security patterns and how to implement them using Spring Cloud Gateway.
Java Concurrent HashSet Equivalent to ConcurrentHashMap
Filed under Java Collections, Java Concurrency
Explore different possibilities to create thread-safe Set instances and emphasized the differences between them.
Lombok Configuration System
Filed under Java
Learn how to configure Lombok.
Working with (Unknown Source) Stack Traces in Java
Filed under Java
Learn why we see an unknown source in our Java exception stack trace and how can we fix it.
Micronaut vs. Spring Boot
Filed under Spring Boot
Compare the functionality of Spring Boot with Micronaut.
Check if an Enum Value Exists in Java
Filed under Java
Learn various ways to search enums in Java.
Reading Values From Excel in Java
Filed under Java IO
Learn how to access different cell values using Apache POI.
Unix Domain Socket in Java 16
Filed under Networking
Learn how to use Unix domain socket channels in Java 16.
Testing NoSQL Queries With Spring Boot and @DataCassandraTest
Filed under Data, Spring Boot
Learn how to test a Cassandra database slice of a Spring Boot application using the Spring @DataCassandraTest annotation.
CassandraUnit Test Tutorial
Write reliable, self-contained unit tests using CassandraUnit.
Get all the Keys in a JSON String Using JsonNode
Filed under Jackson
Learn different ways to read key names from JSON content.
Add Borders to Excel Cells With Apache POI
Filed under Java IO
Explore how to generate a variety of cell borders using CellRangeAddress, RegionUtil, BorderStyles, and IndexedColors classes.
Check if the First Letter of a String Is Uppercase
Filed under Java String
Explore different solutions for checking if the first letter is uppercase.
Nested HashMaps Examples in Java
Filed under Java Map
Learn how to create, compare, update and flatten a nested HashMap.
Logging Queries with Spring Data Cassandra
Filed under Logging, Spring Data
Explore the logging of queries and statements when using Apache Cassandra with Spring Boot.
Multiline Text in Excel Cell Using Apache POI
Filed under Java IO
Learn how to add multiline text to a cell using Apache POI.
Environment Variable Prefixes in Spring Boot 2.5
Filed under Spring Boot
Learn how to use a prefix for environment variables with Spring Boot.
Reactive Streams API with Ratpack
Explore Ratpack’s support for reactive streams and how to apply it in different scenarios.
Using Fail Assertion in JUnit
Filed under Testing
Explore practical use cases for the fail assertion in JUnit.
Error Handling in gRPC
Filed under Java
Learn how to implement error handling in gRPC for unary and stream-based RPC calls.
Spring Security – Request Rejected Exception
Filed under Spring Security
Explore Spring Security’s protection against malicious URLs that may cause the Path Traversal/Directory Traversal attacks.
Differences Between applicationContext.xml and spring-servlet.xml in Spring
Filed under Spring
Learn about the applicationContext and spring-servlet files.
Joinpoint vs. ProceedingJoinPoint in AspectJ
Filed under Java
Learn about the differences between Joinpoint and ProceedingJoinPoint in AspectJ.
Understanding Maven’s “relativePath” Tag for a Parent POM
Filed under Maven
Learn about the Parent POM resolution of Maven.
Access Control Models
Filed under Security
Explore different access control models and how applications use them to enforce access rules.
The DTO Pattern (Data Transfer Object)
Filed under Architecture
Explore the definition of the DTO Pattern and its reason for existing, and how to implement it.
How to Check Field Existence in MongoDB?
Filed under NoSQL, Persistence
Learn how to check if a field exists in MongoDB.
Display Custom Items in JavaFX ListView
Filed under Java
Explore a way to show custom items in JavaFX ListView.
Context Path vs. Servlet Path in Spring
Filed under Spring MVC
Explore the differences between context path and servlet path in Spring.
Change the Default Location of the Log4j2 Configuration File in Spring Boot
Filed under Spring Boot
Learn different ways to change the default location of the Log4j2 configuration file in Spring Boot.
Spring Data with ArangoDB
Filed under Spring Data
Learn how to configure ArangoDB and use it with Spring Data.
How to Set JSON Content Type in Spring MVC
Filed under JSON, Spring MVC
Learn different options for setting the content type in Spring MVC.
EntityNotFoundException in Hibernate
Filed under Persistence
Explore situations when EntityNotFoundException occurs and solutions to handle it.
Creating a Kubernetes Admission Controller in Java
Filed under DevOps
Learn how to create a Kubernetes admission controller in Java and deploy it to an existing cluster.
Significance of Getters and Setters in Java
Filed under Core Java
Explore the pros and cons of using getters and setters in Java.
Force Repository Update with Maven
Filed under Maven
Explore the options and goals of Maven that forcibly updates our local repository.
Guide to Java BigInteger
Filed under Java Numbers
Learn about the implementation details of the BigInteger class in Java.
Count Occurrences Using Java groupingBy Collector
Filed under Java Map
Learn how to use Collector.groupingBy() to group the equal objects.
Difference Between Maven Surefire and Failsafe Plugins
Compare Surefire and Failsafe plugins for separating and running different types of tests.
Lookahead and Lookbehind in Java Regex
Filed under Java
Learn how to use the four types of regex lookaround to solve some difficult cases of matching strings with regex.
Common Shortcuts in Eclipse
Filed under IDE
Learn most common keyboard shortcuts available in the Eclipse IDE.
Monitor the Consumer Lag in Apache Kafka
Learn how to find the consumer lag on a Kafka topic.
Running Selenium Scripts with JMeter
Filed under Testing
Learn how to run a Selenium script using JMeter.
Cluster, Datacenters, Racks and Nodes in Cassandra
Explore the basic components of Cassandra’s architecture.
How to Implement Min-Max Heap in Java
Filed under Java
Learn how to implement a min-max heap in Java and explore some of the most common operations.
Private Methods in Java Interfaces
Filed under Core Java
Learn how to define private methods within an interface and how we can use them from both static and non-static contexts.
Local JAR Files as Gradle Dependencies
Filed under Gradle
Learn how we can add local JAR files to our Gradle dependencies.
Creating, Updating and Deleting Resources with the Java Kubernetes API
Filed under DevOps
Learn how to manipulate Kubernetes resources using the Java Kubernetes API library.
Kafka Streams vs. Kafka Consumer
Filed under Data
Learn how Kafka Streams simplify the processing operations when retrieving messages from Kafka topics.
How to Return Multiple Entities in JPA Query
Filed under JPA
Learn how to return multiple entities in the JPA query.
IllegalAccessError in Java
Filed under Java
Learn about the java.lang.IllegalAccessError.
AliasFor Annotation in Spring
Filed under Spring
Learn about the @AliasFor annotation in the Spring Framework.
Converting String to BigDecimal in Java
Filed under Java String
Explore multiple methods to convert String to BigDecimal values.
Build a Trading Bot with Cassandre Spring Boot Starter
Filed under Spring Boot
Learn how to create a strategy interacting with a crypto exchange and test it against historical data.
Copying Files With Maven
Filed under Maven
Learn how to copy a source file to a destination using three different Maven plugins.
Java Objects.hash() vs Objects.hashCode()
Filed under Core Java
Learn how and when to use the Object.hashCode(), Objects.hashCode() and Objects.hash().
Using Namespaces and Selectors With the Kubernetes Java API
Filed under DevOps
Explore different ways to filter resources using the Java Kubernetes API client.
A Guide to Events in OkHTTP
Filed under HTTP Client-Side
Learn how to capture events using OkHttp.
Should Logging Out Be a GET or POST?
Explore the common design question of whether logging out should be a GET or POST.
Using Cucumber Tags with JUnit 5
Filed under Testing
Learn how we can use Cucumber tag expressions to manipulate the execution of tests and their relevant setups.
Using Watch with the Kubernetes API
Filed under DevOps
Learn about different ways to create Kubernetes Watches using the Java API client.
Displaying Error Messages with Thymeleaf in Spring
Filed under Spring MVC
Learn how to build a simple Spring application to demonstrate how to display various types of errors in Thymeleaf.
RSA in Java
Filed under Security
Learn how to create RSA keys in Java and how to use them to encrypt and decrypt messages and files.
How to Enable All Endpoints in Spring Boot Actuator
Filed under Spring Boot
Have a look at how to enable all the endpoints in the Spring Boot Actuator.
Open API Server Implementation Using OpenAPI Generator
Filed under Spring
Learn how to generate a Spring-based server stub from a YAML specification using the OpenAPI generator’s Maven plugin.
Mocking Static Methods With Mockito
Filed under Testing
Explore a couple of examples of how we can use Mockito to mock static methods.
Paging and Async Calls with the Kubernetes API
Filed under DevOps
Explore how to use paging and asynchronous calls with the Kubernetes Java API.
Creating a Read-Only Repository with Spring Data
Filed under Spring Data
Learn how to extend Spring Data’s Repository interface in order to create a reusable read-only repository.
Adding Interceptors in OkHTTP
Filed under HTTP Client-Side
Learn how to create interceptors using OkHttp.
Spring @EntityScan vs. @ComponentScan
Filed under Spring
Learn about the usage of @EntityScan and @ComponentScan annotations and their differences.
A Quick Intro to the Kubernetes Java Client
Filed under DevOps
Discover the Kubernetes API for Java.
Where Does Java’s String Constant Pool Live, the Heap or the Stack?
Filed under Java String
Learn about the storage area for String constant pool.
Spring @Component Annotation
Filed under Spring
Learn about the Spring @Component annotation.
Configure the Heap Size When Starting a Spring Boot Application
Filed under JVM
Learn how to override the Java heap settings for three common ways of running Spring Boot applications.
File Upload With Open Feign
Filed under REST, Spring Cloud
Learn how to implement a Multipart File upload using OpenFeign.
Multiple Submit Buttons on a Form
Filed under Spring MVC
Learn how to add another button to the same form in a Spring MVC application that maps to the same RequestMapping on the controller.
An Introduction to the Constant Pool in the JVM
Filed under JVM
Learn about the constant pool in JVM.
Setting a Request Timeout for a Spring REST API
Explore a few possible ways to implement request timeouts for a Spring REST API.
Using Custom User Providers with Keycloak
Filed under Security
Learn how to create a custom provider for Keycloak.
New Features in Java 12
Filed under Core Java
Explore the new features implemented in Java 12.
Data Modeling with Apache Kafka
Filed under Algorithms, DevOps
Learn how to use a Docker environment to cover the fundamentals of data modeling for a system that uses Apache Kafka for message processing.
New Features in Java 14
Filed under Core Java
Explore various JEPs of Java 14.
Unmarshalling a JSON Array Using camel-jackson
Filed under Jackson, JSON, Spring Boot
Learn two simple approaches for unmarshalling JSON arrays using camel message routing and the camel-jackson component.
A Guide to MultipleBagFetchException in Hibernate
Filed under Persistence
Learn about the MultipleBagFetchException in detail.
Spring Boot With Spring Batch
Filed under Spring Boot
Learn how to create a simple Spring Batch job using Spring Boot.
Introduction to Servlets and Servlet Containers
Filed under Jakarta EE
Learn the concepts around servlets, their containers, and a few essential objects they revolve around.
Testing Kafka and Spring Boot
Filed under Data, Spring Boot, Testing
Learn about a couple of approaches for testing Kafka applications with Spring Boot.
Defining Indexes in JPA
Filed under JPA
Learn how to implement and use indexes using JPA.
Creating a Discord Bot with Discord4J + Spring Boot
Filed under Spring Boot
Explore all the necessary steps for creating a Discord bot using the Discord4J library and Spring Boot
Sealed Classes and Interfaces in Java
Filed under Core Java
Explore sealed classes and interfaces, a preview feature in Java SE 15, delivered in Java 17.
Apache Commons Collections vs Google Guava
Filed under Guava, Java Collections
Explore the functionality offered by Apache Commons and Google Guava, specifically in the area of the collections framework.
Retrofit 2 – Dynamic URL
Filed under HTTP Client-Side
Learn how to create a dynamic URL in Retrofit2
Performance of removeAll() in a HashSet
Filed under Java Collections
Explore the performance of removeAll() in HashSet.
Apache Spark: Differences between Dataframes, Datasets and RDDs
Filed under Persistence
Explore three of the Spark basic concepts: dataframes, datasets, and RDDs.
Where Does H2’s Embedded Database Store The Data?
Filed under Persistence
Learn how to configure the location of the H2 database files.
Differences Between Netflix Feign and OpenFeign
Filed under Spring Cloud
Compare the Spring Cloud integrations of OpenFeign and Netflix Feign.
Using JNA to Access Native Dynamic Libraries
Filed under Java
Learn how to use JNA to access native code easily when compared to JNI.
Using libphonenumber to Validate Phone Numbers
Filed under Java
Explore the functionality offered by libphonenumber to format and validate phone numbers using code samples.
Getting Started with jOOQ
Filed under Persistence
Learn how to configure and create a simple CRUD application using the jOOQ framework.
Does a Method’s Signature Include the Return Type in Java?
Filed under Core Java
Learn why method signatures are comprised of the name and the parameter types’ list in Java.
Checking if a Method Is Static Using Reflection in Java
Filed under Java
Learn how we can check if a method is static or not.
Guide to the System Rules Library
Filed under Testing
Explore the System Rules library in detail.
Sending Emails with Attachments in Java
Filed under Java
Learn how to send emails with single and multiple attachments in Java.
Differences in @Valid and @Validated Annotations in Spring
Filed under Spring Web
Explore the key differences between the @Valid and @Validated annotations.
Keycloak User Self-Registration
Filed under Security
Learn how to enable user self-registration in Keycloak.
Difference Between when() and doXxx() Methods in Mockito
Filed under Testing
Learn the advantages and disadvantages of the configuring a mock object the when().thenXxx() or the doXxx().when() way.
SSH Connection With Java
Learn how to establish an SSH connection with Java using two of the available Java libraries – JSch and Apache Mina SSHD.
Custom User Attributes with Keycloak
Filed under Spring
Learn how to add extra attributes to a user in Keycloak.
IllegalArgumentException or NullPointerException for a Null Parameter?
Filed under Java
Explore the issue of which exception to throw when someone passes a null parameter to one of our methods: IllegalArgumentExcpetion or NullPointerException.
Customizing the Login Page for Keycloak
Filed under Spring
Learn how to change the default login page for Keycloak and add our customizations.
Customizing Themes for Keycloak
Learn about themes in Keycloak – their types and structure.
OAuth 2.0 Resource Server With Spring Security 5
Filed under Spring Security
Learn how to configure a Spring Security based resource server application for validating JWT as well as opaque tokens.
When Are Static Variables Initialized in Java?
Filed under Core Java
Learn about the static variable initialization in Java.
System.console() vs. System.out
Filed under Core Java
Learn about the differences between System.console() and System.out.
How to Read PEM File to Get Public and Private Keys
Learn how to read public and private keys from PEM files.
Unit Testing of System.out.println() with JUnit
Filed under Testing
Learn about approaches for testing System.out.println.
Java Generics – <?> vs <? extends Object>
Filed under Java
Explore the similarities and differences between two constructs in Java generics.
Taking Screenshots With Selenium WebDriver
Filed under Testing
Explore two approaches to capturing screenshots using Selenium WebDriver.
Print an Integer in Binary Format in Java
Filed under Java Numbers
Explore different ways of printing an integer in binary format in Java.
Mapping Collections with MapStruct
Filed under Java Collections
Explore how to map collections using MapStruct.
Inject a Map from a YAML File with Spring
Filed under Spring
Learn how to inject a Map from a YAML file in Spring Boot.
Testing a Spring Multipart POST Request
Filed under Spring Web
Learn how to test a Spring Multipart POST Request using MockMvc with the help of an example.
The Covariant Return Type in Java
Filed under Java
Explore what the covariance and covariant return types are and how they behave in Java.
Conditional CSS Classes in Thymeleaf
Filed under Spring MVC
Learn a few different ways to conditionally add CSS classes in Thymeleaf.
Java IOException “Too many open files”
Filed under Java IO
Learn when and how to avoid the “Too many open files” exception in Java.
Spring YAML vs Properties
Filed under Spring
Compare the usage of Spring YAML versus the properties file.
HTTP Server with Netty
Filed under Networking
Explore how to implement the HTTP protocol, particularly an HTTP server using Netty.
The “Cannot find symbol” Compilation Error
Filed under Java
Review what compilation errors are, and then specifically explain what the “cannot find symbol” error is and how it’s caused.
Spring BeanPostProcessor
Filed under Spring
Learn how we can use Spring’s BeanPostProcessor to customize the beans themselves.
An Introduction to Invoke Dynamic in the JVM
Filed under JVM
Learn about invokedynamic and see how it can help library and language designers to implement many forms of dynamicity.
Univocity Parsers
Filed under Java IO
Learn the basics of parsing files using the Univocity library.
Spring REST Docs vs OpenAPI
Explore the differences between the OpenAPI based springdoc and Spring REST Docs.
How to Call Python From Java
Filed under Java
Learn the most common ways of calling Python code from Java.
Open/Closed Principle in Java
Filed under Java
Explore the Open/Closed Principle (OCP) as one of the SOLID principles of object-oriented programming in Java.
Java 14 Record Keyword
Filed under Core Java
Explore the fundamentals of records, including their purpose, generated methods, and customization techniques.
Spring Data Redis’s Property-Based Configuration
Filed under NoSQL, Spring Data
Learn how to configure Spring Boot to talk to Redis via Lettuce
Manual Logout With Spring Security
Filed under Spring Security
Learn how to execute a manual logout with Spring Security.
Invoking a SOAP Web Service in Spring
Filed under Spring
Learn how to invoke a SOAP web service using Spring WS.
Using Multiple Cache Managers in Spring
Filed under Spring
Learn how we can enable multiple cache managers in our Spring Boot application.
Invoking a SOAP Web Service in Java
Filed under Jakarta EE
Learn how to build a SOAP client in Java with JAX-WS RI.
Building a Simple Web Application with Spring Boot and Groovy
Filed under Groovy, Spring Boot
Learn how to build a simple todo application with Spring Boot and Groovy.
The Difference Between mockito-core and mockito-all
Filed under Testing
Explore the difference between mockito-core and mockito-all.
How to Determine the Data Type in Groovy
Filed under Groovy
Explore different ways to find the data type in Groovy.
A Guide to jpackage in Java 14
Filed under Core Java
Learn about the usage of the jpackage command-line tool introduced in Java 14.
HTTP/2 in Netty
Filed under HTTP Client-Side, Java
Learn how to implement an HTTP/2 server and client in Netty using code samples.
Returning Plain HTML From a Spring MVC Controller
Filed under Spring MVC
Learn how to return HTML from a Spring MVC controller.
Add CSS and JS to Thymeleaf
Filed under Spring MVC
Learn how to apply CSS styling and external JavaScript functionality to our Thymeleaf pages.
Boruvka’s Algorithm for Minimum Spanning Trees in Java
Filed under Algorithms
Learn about the Java implementation of Boruvka’s algorithm for finding a Minimum Spanning Tree (MST) of an edge-weighted graph.
Java Convert PDF to Base64
Filed under Java IO
Learn how to do Base64 encoding and decoding of a PDF file using Java 8 and Apache Commons Codec.
Pattern Matching for instanceof in Java 14
Filed under Core Java
Learn about the Pattern Matching with instanceof in Java 14.
Spring Bean vs. EJB – A Feature Comparison
Filed under Jakarta EE, Spring
Learn about the history and differences between Spring Bean and Enterprise Java Bean.
Exponential Backoff With Spring AMQP
Filed under Spring
Explore two different ways of implementing a message sending retry strategy named Exponential Backoff.
Introduction to Moshi Json
Filed under JSON
Explore Moshi – a modern JSON library for Java that will give us powerful JSON serialization and deserialization in our code with little effort.
Modifying the Response Body in a Zuul Filter
Filed under Cloud, Spring Cloud
Learn about the Netflix Zuul’s post filter.
How to Handle Java SocketException
Filed under Java
Learn what causes SocketException in Java and how to handle it.
Cache Headers in Spring MVC
Filed under Spring MVC
Learn about HTTP caching by using the Cache-Control response header in Spring MVC.
MongoDB Aggregations Using Java
Filed under NoSQL, Persistence
Learn what are MongoDB aggregations, and how to apply them in Java using an example dataset.
Spring Cloud Gateway Routing Predicate Factories
Filed under Spring Cloud
Explore how to add custom predicate factories to Spring Cloud Gateway and use them to define routes using arbitrary logic.
JPA Entity Lifecycle Events
Filed under JPA
Explore what the JPA entity lifecycle callbacks are and when they’re called.
Introduction to Dropwizard
Filed under REST
Learn how to set up a Dropwizard application with Maven.
java.net.UnknownHostException: Invalid Hostname for Server
Filed under Networking
Learn what causes UnknownHostException, how to prevent it, and how to handle it.
Guide to the Cactoos Library
Filed under Java
Explore the Cactoos library and some of the classes it provides for string and data structure manipulation.
Creating a LocalDate with Values in Java
Filed under Java Dates
Explore all the variants of creating a LocalDate with values in Java.
Introduction to Big Queue
Filed under Java Collections
Learn about the Big Queue, a Java implementation of a persistent queue.
Generating Random Numbers in Java
Filed under Java Numbers
Learn different ways of generating random numbers in Java.
Obtaining a Power Set of a Set in Java
Filed under Algorithms, Java Collections
Study the process of generating a power set of a given set in Java.
Introduction to Greedy Algorithms with Java
Filed under Algorithms
Learn about greedy algorithms in the Java ecosystem.
Specify an Array of Strings as Body Parameters in Swagger
Filed under Spring
Learn how to produce a default example value for String arrays as this behavior is not enabled by default.
Decompiling Classes in Java
Filed under Java
Learn about decompilation in Eclipse and IntelliJ IDEA IDEs as well as a command-line option when they aren’t available.
Arrays.sort vs Arrays.parallelSort
Filed under Java Array
Learn how Java sort() and parallelSort() differ.
AWS S3 with Java – Reactive Support
Explore the basics of using the reactive extensions available in the AWS SDK V2 library.
Wrapping vs Rethrowing Exceptions in Java
Filed under Java
Explore the main difference between re-throwing the original exception vs first wrapping it.
Java Default Parameters Using Method Overloading
Filed under Java
Learn how to use method overloading to simulate default parameters in Java.
Cucumber Background
Filed under Testing
Learn how to use the Cucumber Background feature.
How to Create a Maven Plugin
Filed under Maven
Learn how to create a Maven plugin from scratch.
Writing Custom Spring Cloud Gateway Filters
Filed under Spring Cloud
Learn how to write custom Spring Cloud Gateway filters.
Basic Calculator in Java
Filed under Algorithms
Learn how to implement a Basic Calculator in Java, using two different constructs.
The Caesar Cipher in Java
Filed under Algorithms, Security
Learn how to cipher and decipher a message by shifting its letters by a given offset using Caesar Cipher.
Mockito and Fluent APIs
Filed under Testing
Learn how we can use Mockito to mock a simple fluent API.
Spring Optional Path Variables
Filed under Spring MVC
Explore how to make a path variable optional in different Spring versions.
Benchmark JDK Collections vs Eclipse Collections
Filed under Java Collections
Explore the performance of traditional JDK collections with Eclipse Collections.
The strictfp Keyword in Java
Filed under Core Java
Explore when and how to use the strictfp keyword in Java.
Using Lombok’s @Accessors Annotation
Filed under Java
Learn about Project Lombok’s @Accessors annotation and its support for fluent, chained, and custom accessors.
How to Determine if a Binary Tree Is Balanced in Java
Filed under Algorithms
Learn how to determine if a binary tree is balanced in Java.
How to Count Duplicate Elements in Arraylist
Filed under Java Collections
Explore various ways to calculate the count of duplicate elements in a list.
Spring @ComponentScan – Filter Types
Filed under Spring
Explore different types of filter options available with the @ComponentScan annotation.
Spring Path Variables with Thymeleaf
Filed under Spring MVC
Explore how to use Thymeleaf to create URLs with path variables.
Java Application Remote Debugging
Explore how to use JDWP together with JDB, both JDK tools.
Unable to Find @SpringBootConfiguration with @DataJpaTest
Filed under Spring Boot, Testing
Explore two different causes for the error: “Unable to find a @SpringBootConfiguration”.
Flogger Fluent Logging
Filed under Logging
Learn how to use the Flogger framework as an alternative for the traditional logging frameworks.
Using Multiple Source Objects with MapStruct
Filed under Java
Learn how to use multiple source objects with MapStruct.
Changing the Logging Level at the Runtime for a Spring Boot Application
Filed under DevOps, Logging, Spring Boot
Explore different ways of controlling the logging level at runtime in a Spring Boot Application.
Using JDBI with Spring Boot
Filed under Persistence, Spring Boot
Explore how to quickly integrate JDBI into a Spring Boot application.
Radix Sort in Java
Filed under Algorithms
Learn about the Radix sort algorithm and implement it in Java.
Difference between context:annotation-config vs context:component-scan
Filed under Spring
Explore the differences between context:annotation-config and context:component-scan XML elements.
How to Compress Requests Using the Spring RestTemplate
Filed under HTTP Client-Side, REST, Spring
Learn how to create an interceptor for a RestTemplate that compresses the content of a request.
Java – “Could Not Find or Load Main Class” Error
Filed under Java
Explore the reasons for the error “Could not find or load main class” and learn how to avoid them.
Listing Numbers Within a Range in Java
Filed under Java Numbers
Explore various ways of generating random numbers within a range in Java.
A Guide to the Java FileReader Class
Filed under Java IO
Learn about the basic concepts of a Reader and how FileReader makes it simple to do read operations on text files though some examples.
Add a Header to a Jersey SSE Client Request
Filed under HTTP Client-Side, Jakarta EE
Explore how to add headers to SSE client requests in Jersey using filters.
Convert Character Array to String in Java
Filed under Java Array, Java String
Explore different ways of converting a given character array to its String representation in Java.
Command-Line Arguments in Java
Filed under Java
Explore how to configure your Java applications using command-line arguments.
A Guide to Spring Boot Configuration Metadata
Filed under Spring Boot
Learn about the Spring Boot Configuration Processor and the associated JSON metadata files that document each property’s meaning, constraints, and so on.
Counting Sort in Java
Filed under Algorithms, Java
Learn about the counting sort and then implement it in Java.
Using a Mutex Object in Java
Filed under Java Concurrency
Explore the concept of a mutex object in Java.
Interpolation Search in Java
Filed under Algorithms
Learn about the interpolation search algorithms and discuss their pros and cons.
A Guide to SirixDB
Filed under Persistence
Learn how to use the low-level transactional cursor API to manage JSON databases and resources in SirixDB.
Java String equalsIgnoreCase()
Filed under Java String
Learn how to check if two String values are the same when we ignore case.
Guide to In-Place Sorting Algorithm Works with a Java Implementation
Filed under Algorithms
Learn how the in-place sorting algorithm works.
Binary Numbers in Java
Filed under Java Numbers
Learn how to convert binary numbers into decimal ones and vice versa.
A Guide to Increment and Decrement Unary Operators in Java
Filed under Core Java
Explore the increment and decrement unary operators in Java.
Convert String to Double in Java
Filed under Java String
Explore many ways of converting a String into a double in Java.
Composition, Aggregation, and Association in Java
Filed under Core Java
Explore the properties and representation of composition, aggregation, and association in Java.
Spring Security: Exploring JDBC Authentication
Filed under Persistence, Spring Security
Explore the capabilities offered by Spring to perform JDBC Authentication using an existing DataSource configuration.
The Difference Between Failure and Error in JUnit
Filed under Testing
Explore the differences between a failure and an error in JUnit tests.
Changing the Thymeleaf Template Directory in Spring Boot
Filed under Spring Boot, Spring MVC
Learn about Thymeleaf template locations.
Shell Sort in Java
Filed under Algorithms
Learn how to implement Shell Sort algorithm in Java.
Checking If an Array Is Sorted in Java
Filed under Java Array
Learn how to check if an array is sorted in Java.
Concatenate Strings with Groovy
Filed under Groovy
Learn how to concatenate Strings using Groovy.
A Quick Look at R2DBC With Spring Data
Filed under Persistence, Reactive, Spring Data
Explore R2DBC in its early stage.
Override Properties in Spring’s Tests
Explore various ways to override properties in Spring’s tests.
How to Reverse a String in Java
Filed under Java String
Explore different ways of reversing a String in Java.
Working with Enums in Thymeleaf
Filed under Spring MVC
Learn how to work with enums in Thymeleaf.
JWS + JWK in a Spring Security OAuth2 Application
Filed under Spring Security
Learn about JSON Web Signature, and how it can be implemented using the JSON Web Key specification on applications configured with Spring Security OAuth2.
A Guide to NanoHTTPD
Filed under REST
Explore an open-source, lightweight, web server written in Java – NanoHTTPD.
Checking If a String Is a Repeated Substring
Filed under Java String
Learn two ways of checking if a String consists only of its substrings in Java.
Breaking Out of Nested Loops
Filed under Java
Explore different ways to break from a loop in Java.
Spring Data MongoDB Tailable Cursors
Filed under Reactive, Spring Data
Explore how to use MongoDB as an infinite data stream by utilizing tailable cursors with Spring Data.
Handling Maven Invalid LOC Header Error
Filed under Maven
Learn how to handle an invalid LOC header error in Maven.
Download a Large File Through a Spring RestTemplate
Filed under HTTP Client-Side, Spring
Explore different techniques on how to download large files with RestTemplate.
Checking if a Java Graph Has a Cycle
Filed under Java
Learn how to check if a cycle exists in a given directed graph in Java.
Hibernate Validator Specific Constraints
Filed under Data
Explore the constraints in Hibernate Validator that go beyond the minimal set defined in the Bean Validation specification.
A Guide to Crawler4j
Filed under Java
Learn how to use crawler4j to create your own web crawlers.
Java 8 Collectors toMap
Filed under Java Streams
Learn how to use the toMap() method of the Collectors class.
Explore Jersey Request Parameters
Filed under Jakarta EE, REST
Explore how to read different request parameter types via a simple Jersey project.
Intro to OData with Olingo
Filed under Persistence
Learn how to implement a simple OData service using the Apache Olingo library.
The Difference Between CDI and EJB Singleton
Filed under Jakarta EE
Explore the differences between JEE CDI and EJB singletons.
LIKE Queries in Spring JPA Repositories
Filed under Spring Data
Learn how to create LIKE queries in Spring JPA Repositories.
String Initialization in Java
Filed under Java String
Learn about the difference between declaration and initialization of String in Java.
Converting Between Stream and Array in Java
Filed under Java Array, Java Streams
Learn how to convert a Stream to an array and vice versa in Java.
Derived Query Methods in Spring Data JPA Repositories
Filed under Spring Data
Explore the query derivation mechanism in Spring Data JPA.
OData Protocol Guide
Filed under Persistence
Explore the OData protocol that allows easy access to data sets using a RESTFul API.
JPA @Basic Annotation
Filed under JPA
Learn when and how to use JPA’s @Basic annotation.
Default Column Values in JPA
Filed under JPA
Learn how to set a default column values in JPA.
Java Localization – Formatting Messages
Filed under Java
Learn how to localize and format the messages in Java language.
Guide to Maven Profiles
Filed under Maven
Learn how to work with Maven profiles to be able to create different build configurations.
Pattern Matching in Strings in Groovy
Filed under Groovy
Learn how Groovy language supports pattern matching in Strings.
How to Process YAML with Jackson
Learn how to use Jackson to read and write YAML files.
REST Assured Authentication
Learn how to authenticate secured APIs using REST Assured.
Spring Data JPA Delete and Relationships
Filed under Spring Data
Explore different ways to delete entities in Spring Data JPA.
Types of SQL Joins with Java Examples
Filed under Persistence
Explore different types of SQL joins and their implementation in Java.
Anonymous Classes in Java
Filed under Core Java
Learn about Java anonymous classes.
Spring Boot With H2 Database
Filed under Persistence, Spring Boot
Learn how to configure and how to use the H2 database with Spring Boot.
Jpa @Embedded and @Embeddable
Filed under JPA
Learn about @Embeddable and @Embedded annotations provided by the Java Persistence API (JPA).
JPA Join Types
Filed under JPA
Explore different join types supported by JPA.
How to Read HTTP Headers in Spring REST Controllers
Filed under REST, Spring Web
Learn how to access request headers in Spring REST controllers.
EnvironmentPostProcessor in Spring Boot
Filed under Spring Boot
Learn how to use the EnvironmentPostProcessor to customize the application’s Environment before application context is refreshed.
Case Insensitive Queries with Spring Data Repository
Filed under Spring Data
Learn how to create a case insensitive query in a Spring Data repository.
A Guide to jBPM with Java
Filed under Java
Learn about the Business Process Management (BPM) System and its implementation in Java as jBPM System.
Types of JPA Queries
Filed under JPA
Explore JPA queries along with their usage.
Find If Two Numbers Are Relatively Prime in Java
Filed under Algorithms, Java Numbers
Learn how to find if two numbers are relatively prime using three implementations of the gcd algorithm.
The Exists Query in Spring Data
Filed under Spring Data, Spring Persistence
Learn how to check if an object exists in a database using Spring Data and JPA.
Read an InputStream using the Java Server Socket
Filed under Java IO
Learn how to read data from a Java Server Socket.
Guide to jlink
Learn how to create a custom, modular JRE that only contains the bare minimum files using jlink.
TransactionRequiredException Error
Filed under JPA
Learn about the cause of the TransactionRequiredException error and how to solve it.
Spring Boot Consuming and Producing JSON
Filed under JSON, Spring Boot
Learn how to consume and produce JSON content in a typical CRUD REST service developed with a Spring Boot.
How to Fix java.lang.UnsupportedClassVersionError
Filed under JVM
Learn what causes the “java.lang.UnsupportedClassVersionError: Unsupported major.minor version error” message, and how to fix it.
Method Inlining in the JVM
Filed under JVM
Learn about the method inlining in the JVM and how the Just-In-Time compiler achieves it.
Mapping Multiple JSON Fields to a Single Java Field
Filed under JSON
Learn how to convert multiple formats JSON into the same Java object.
Adding a Copyright License Header for Java Source Files in IntelliJ IDEA
Filed under IDE
Learn how to configure IntelliJ IDEA to add license headers automatically to your project files.
An Introduction to Epsilon GC: A No-Op Experimental Garbage Collector
Filed under JVM
Learn how Epsilon works, and explore the common use cases.
Combining JPA And/Or Criteria Predicates
Filed under JPA
Learn how to use the JPA Criteria API to implement use cases where we needed to combine AND/OR predicates.
Converting a String to a Date in Groovy
Filed under Groovy
Learn how to transform a String into a Date in the Groovy language, paying attention the peculiarities between the specific versions.
JDK Configuration for Maven Build in Eclipse
Learn how to configure Maven builds to work within the Eclipse IDE.
Static Content in Spring WebFlux
Filed under Spring Web
Explore how to serve static content in our web applications using Spring WebFlux.
A Guide to the Reflections Library
Filed under Java
Learn how to configure the Reflections library and use it in your Java projects
How to Change Java Version in an Eclipse Project
Filed under IDE
Learn how to add a new JRE into our Eclipse workspace and how to switch to a different Java version in our current Eclipse project.
Maven Enforcer Plugin
Filed under Maven
Learn about the Maven Enforcer Plugin and how we can use it to guarantee the level of compliance in our project.
SQL Injection and How to Prevent It?
Filed under Persistence, Security
Explore coding mistakes in Java that can lead to a vulnerable application and how to avoid them using the APIs available in the JVM’s standard runtime library.
An Introduction to Traits in Groovy
Filed under Groovy
Learn how to create traits in Groovy and explore some of their useful features.
A Quick Guide to Iterating a Map in Groovy
Filed under Groovy
Explore ways to iterate over a map in Groovy using standard language features like each, eachWithIndex, and a for-in loop.
Formatting JSON Dates in Spring Boot
Filed under JSON, Spring Boot
Explore a number of different ways to format JSON dates in a Spring Boot application.
Java Valhalla Project
Filed under Java
Learn about Project Valhalla – the current state of development and what it brings to the table for the day-to-day Java developer once it’s released.
Hibernate Aggregate Functions
Filed under Persistence
Explore the aggregate functions available in Hibernate.
A Guide to the Problem Spring Web Library
Filed under Spring
Learn how to use the Problem Spring Web library to create messages with the errors’ details using an application/problem+json response.
Defining a Char Stack in Java
Filed under Java Collections
Learn how to create a char stack in Java.
Filtering Jackson JSON Output Based on Spring Security Role
Filed under Jackson, Spring Security
Learn how to filter JSON output in a web application based on a Spring Security role.
An Introduction to ZGC: A Scalable and Experimental Low-Latency JVM Garbage Collector
Filed under JVM
Explore how Z Garbage Collector manages to keep low pause times on even multi-terabyte heaps.
Differences Between Oracle JDK and OpenJDK
Filed under JVM
Explore the differences between Oracle Java Development Kit and OpenJDK.
Accessing Spring MVC Model Objects in JavaScript
Filed under Spring MVC
Learn how to access Spring MVC objects in JSP views that contain JavaScript code.
Java Classes and Objects
Filed under Core Java
Explore two basic concepts of the Java language – classes and objects – with examples of their implementation.
Notify User of Login From New Device or Location
Filed under Spring Security
Learn how we can verify if our users are logging in from a new device/location.
Blade – A Complete Guidebook
Filed under Java
Explore a complete guidebook for a tiny Java 8+ MVC framework called Blade.
Java 8 Streams peek() API
Filed under Java Streams
Learn about the peek() method and explore the lifecycle of a stream.
Deprecated Classes in Spring
Filed under Spring Boot, Spring Security, Spring Web
Explore deprecated classes in Spring and Spring Boot.
Map to String Conversion in Java
Filed under Java Map
Learn how to convert a Map to a String and the other way around using both core Java methods and third-party libraries.
Using Curl in Java
Filed under Networking
Learn how to use the curl tool inside a Java program.
Spring WebClient and OAuth2 Support
Filed under HTTP Client-Side, Spring Security
Learn how to set up an application as an OAuth2 Client and use the WebClient to retrieve a secured resource in a full-reactive stack.
Attaching Values to Java Enum
Filed under Core Java
Explore features of the Java Enum implementation.
Differences Between ZonedDateTime and OffsetDateTime
Filed under Java Dates
Explore the differences between the ZonedDateTime and the OffsetDateTime classes in Java
Java Interfaces
Filed under Core Java
Explore the concept of Java interfaces and learn how Java uses them to implement polymorphism and multiple inheritance.
Control Structures in Java
Filed under Core Java
Learn about the control structures you can use in Java.
If-Else Statement in Java
Filed under Core Java
Learn how to use the if-else statement in Java.
The Java Native Keyword and Methods
Filed under Java
Learn the basics of the Java native keywords and methods.
Introduction to Basic Syntax in Java
Filed under Core Java
Explore the basics of Java syntax.
Java EE vs J2EE vs Jakarta EE
Filed under Jakarta EE
Learn how Java Enterprise evolved over the years.
Mapping a Dynamic JSON Object with Jackson
Explore multiple ways of handling dynamic JSON objects with Jackson.
Intersection of Two Lists in Java
Filed under Java Collections
Learn how to retrieve the intersection of two Lists.
A Guide to Hibernate OGM
Filed under Persistence
Explore the basics of Hibernate OGM, including its architecture.
Implementing a Custom Lombok Annotation
Filed under Java
Learn how to implement a custom annotation using Lombok handlers.
Pagination and Sorting using Spring Data JPA
Filed under Spring Data
Learn how to paginate and sort query results in Spring Data JPA.
Spring MVC Interview Questions
Filed under Spring MVC
Explore Spring MVC interview questions.
How to Start a Thread in Java
Filed under Java Concurrency
Explore different ways to start a thread and execute parallel tasks.
How to Check if Java Is Installed
Learn how to find out if Java is installed on a Windows 10, Mac OS X or Linux/Unix machine even if it’s not on the PATH.
Debugging Reactive Streams in Java
Learn how to efficiently and correctly debug reactive streams in Spring 5.
Hibernate Named Query
Filed under Persistence
Learn how to define and use named HQL and native queries.
Immutable Map Implementations in Java
Filed under Java Map
Explore the differences between an Unmodifiable Map and Immutable Map in Java.
Remove Leading and Trailing Characters from a String
Filed under Java String
Explore several ways to remove leading and trailing characters from a String.
Auto-Generated Field for MongoDB using Spring Boot
Filed under NoSQL, Spring Boot, Spring Persistence
Learn how to generate sequential, auto-incremented values for the id field and simulate the same behavior as seen in SQL databases.
Remove or Replace Part of a String in Java
Filed under Java String
Explore more than one way of removing and replacing a substring in Java.
A Guide to the Java Math Class
Filed under Java Numbers
Learn about the Math class that provides helpful static methods for performing numeric operations.
Difference Between @JoinColumn and mappedBy
Filed under JPA
Learn about the difference between @JoinColumn and mappedBy and how to use them in a one-to-many bidirectional relationship.
Guide to ReflectionTestUtils for Unit Testing
Learn how to use ReflectionTestUtils in unit testing by going through several examples.
Criteria API – An Example of IN Expressions
Filed under JPA
Learn different ways to achieve the IN operation using the Criteria API.
Pad a String with Zeros or Spaces in Java
Filed under Java String
Learn how to pad a String in Java with a specific character.
Calculate the Area of a Circle in Java
Filed under Algorithms, Java
Explore different ways of calculating the area of a circle using Java.
ZonedDateTime with Spring Data MongoDB
Filed under NoSQL, Spring Data
Learn how to create MongoDB converters in order to handle Java ZonedDateTime objects.
Limiting Query Results With JPA and Spring Data JPA
Filed under Spring Data
Learn about limiting query results with JPA and Spring Data JPA.
Deep Dive Into the New Java JIT Compiler – Graal
Filed under JVM
Explore the functionalities of the new Java JIT compiler – Graal.
Array Operations in Java
Filed under Java Array
Learn how we can handle common array operations in Java.
Get a Value by Key in a JSONArray
Filed under JSON
Learn how to parse a JSONArray to get all the mapped values for a given key.
HTTPS using Self-Signed Certificate in Spring Boot
Filed under Security, Spring Boot
Explore how to generate a self-signed certificate to enable HTTPS in a Spring Boot application.
An Introduction to SuanShu
Filed under Java
Learn about the SuanShu – a Java math library for numerical analysis, statistics, root finding, linear algebra, optimization, and lots more.
Heap Sort in Java
Filed under Algorithms
Learn how to implement a Binary Heap and Heap Sort in Java.
Validation for Functional Endpoints in Spring 6
Filed under Spring Web
Explore how to implement input validation for functional endpoints in Spring 5 to avoid unexpected errors later when we’re processing the data.
Convert XML to JSON Using Jackson
Learn different ways in which Jackson can read XML data and write it to JSON.
Combining Different Types of Collections in Java
Filed under Java Collections
Explore different ways of combining collections in Java.
Gradle: build.gradle vs. settings.gradle vs. gradle.properties
Filed under Gradle
Explore different configuration files of a Gradle Java project.
WildFly with Eclipse – Installation and Setup
Filed under Jakarta EE
Learn how to run and debug applications on WildFly directly from the Eclipse IDE.
Proxy in Hibernate load() Method
Filed under Persistence
Learn how Hibernate proxies work and how this impacts the load method with entities and their relationships.
Quicksort Algorithm Implementation in Java
Filed under Algorithms, Java
Explore the details of the QuickSort algorithm, focusing on the Java implementation.
Ternary Operator in Java
Filed under Core Java
Learn about the ternary operator ?:, which allows us to define conditional expressions in Java.
Operating on and Removing an Item from Stream
Filed under Java Streams
Learn about the various ways in which we can operate on an item in a Java 8 Stream and then remove it once the operation is complete.
Netflix Archaius with Various Database Configurations
Filed under Cloud, Persistence, Spring
Explore how we can setup various database configuration sources using Netflix Archaius.
Hibernate 5 Naming Strategy Configuration
Filed under Persistence
Learn about the relationship between the Implicit and Physical Naming Strategies.
A Quick Guide to @TestPropertySource
Learn how to use the @TestPropertySource Spring annotation effectively.
Lombok @Builder with Inheritance
Filed under Java
Learn how to deal with the @Builder annotation when inheritance is involved.
Check if Two Rectangles Overlap in Java
Filed under Algorithms, Java
Explore how to solve an algorithmic problem of finding whether the two given rectangles overlap with each other, using Java.
Server-Sent Events in Spring
Filed under Reactive, Spring Web
Explore the concept of Server-Sent-Events-based APIs with Spring.
Working With Custom HTML Attributes in Thymeleaf
Filed under Spring MVC
Explore how to define custom attributes in HTML5 tags using Thymeleaf.
JBoss Server – How to Start and Stop?
Filed under DevOps, Jakarta EE
Explore how to start and stop a JBoss server with different configurations.
Throw Exception in Optional in Java 8
Filed under Java
Explore how to throw an exception from Java 8 Optional.
Spring Security Login Page with Angular
Filed under Spring Security
Learn how to implement a Spring Security login page with Angular.
Java Check a String for Lowercase/Uppercase Letter, Special Character and Digit
Filed under Java String
Learn how we to check if a String contains at least one uppercase letter, lowercase letter, digit or special character in Java.
Difference Between Throw and Throws in Java
Filed under Core Java
Explore the difference between two Java keywords: throw and throws.
Introduction to Netflix Archaius with Spring Cloud
Filed under Spring Cloud
Learn about Netflix Archaius and some of the cool features it offers to take advantage of configuration management.
An Overview of Regular Expressions Performance in Java
Filed under Java
Explore how the pattern-matching engine works in Java.
Initialize a HashMap in Java
Filed under Java Map
Explore the various ways of initializing a Map, particularly to create empty, singleton, immutable and mutable maps.
Collections.emptyList() vs. New List Instance
Filed under Java Collections
Learn the differences between the Collections.emptyList() and a new list instance.
Why String Is Immutable in Java?
Filed under Java String
Explore why Strings in the Java language are immutable.
A Simple E-Commerce Implementation with Spring
Filed under Spring Boot
Explore how to create a simple e-commerce application, using Spring Boot and Angular frameworks.
Java Null-Safe Streams from Collections
Filed under Java Streams
Explore how to create a null-safe stream from a given collection.
Add Multiple Items to an Java ArrayList
Filed under Java Collections
Explore different ways of adding multiple items to an already initialized ArrayList.
Vue.js Frontend with a Spring Boot Backend
Filed under Spring Boot
Explore how to set up a web application using Spring Boot and Vue.js.
Overriding System Time for Testing in Java
Filed under Testing
Explore different ways to override the system time for testing.
Query Entities by Dates and Times with Spring Data JPA
Filed under Java Dates, Spring Data
Learn how to query entities using their dates and times fields with Spring Data JPA.
Initializing HashSet at the Time of Construction
Filed under Java Collections
Explore multiple ways to initialize a HashSet while it’s constructed.
Spring Security Custom AuthenticationFailureHandler
Filed under Spring Security
Learn how to customize application’s authentication failure handler by using the Spring’s AuthenticationFailureHandler interface.
Copy a List to Another List in Java
Filed under Java Collections
Explore different ways to copy a List to another List in Java and a common error produced in the process.
Stack Memory and Heap Space in Java
Filed under JVM
Explore how Stack Memory and Heap Space works and when to use them for developing better Java programs.
Spring Boot with Multiple SQL Import Files
Filed under Spring Boot, Spring Persistence
Learn how to configure Spring Boot application to load initial data from custom SQL files.
Spring AMQP in Reactive Applications
Filed under Reactive, Spring Persistence, Spring Web
Learn how to create a Spring Boot Reactive Application that integrates with the RabbitMQ messaging server, an implementation of the AMQP messaging standard.
How to Get the Start and the End of a Day using Java
Filed under Java Dates
Explore different ways of getting the start and end of a day in Java.
Testing Callbacks with Mockito
Filed under Testing
Explore two different ways of testing callbacks when using Mockito.
Introduction to Joda-Time
Filed under Java Dates
Learn about the most widely used date and time processing library, before the release of Java 8 – Joda-Time.
A Guide to DeltaSpike Data Module
Filed under Persistence
Explore the DeltaSpike Data module to simplify the implementation of the repository pattern.
Implementing a FTP-Client in Java
Filed under Java IO
Learn how to easily interact with an external FTP server in Java.
Thin JARs with Spring Boot
Filed under Spring Boot
Explore how to make a thin jar using Spring Boot Thin Launcher.
Generalized Target-Type Inference in Java
Filed under Java
Explore Java’s Type Inference, that along with generics and Lambda Expression enables us to write concise Java code.
Histograms with Apache Commons Frequency
Filed under Algorithms
Explore the Frequency class of Apache commons-math3 library.
Spring Core Annotations
Filed under Spring
Explore the most commonly used Spring core annotations.
Mockito ArgumentMatchers
Filed under Testing
Learn how to use the ArgumentMatcher and how it differs from the ArgumentCaptor.
Spring Scheduling Annotations
Filed under Spring
Explore the most common Spring scheduling annotations.
Spring Web Annotations
Filed under Spring MVC
Explore the main annotations you can use to handle HTTP requests and responses in Spring MVC.
Spring Boot Annotations
Filed under Spring Boot
Explore the Spring Boot Annotations.
Spring Data REST Events with @RepositoryEventHandler
Filed under REST, Spring Data
Learn how to handle entity events in Spring Data REST.
Exclude Fields from Serialization in Gson
Explore the options available to exclude fields from serialization in Gson.
Spring Data Annotations
Filed under Spring Data
Learn about the most important annotations we need to handle persistence using the Spring Data project
Use char[] Array Over a String for Manipulating Passwords in Java?
Filed under Security
Explore several reasons why we shouldn’t use Strings for storing passwords and use char[] arrays instead.
Java Optional – orElse() vs orElseGet()
Filed under Core Java
Explore the differences between Optional orElse() and OrElseGet() methods.
Hamcrest Common Core Matchers
Filed under Testing
Explore the different methods of CoreMatchers class in the Hamcrest library.
Check If a String Is Numeric in Java
Filed under Java String
Explore different ways to determine whether a String is numeric or not.
Pass-By-Value as a Parameter Passing Mechanism in Java
Filed under Core Java
Learn how parameter passing is handled in Java for the cases of Primitive and Object types.
A Guide To Logback
Filed under Logging
Explore the fundamentals of using Logback in your application.
Spring Cache – Creating a Custom KeyGenerator
Filed under Spring
Learn how to implement a custom Spring Cache KeyGenerator.
Handling NoClassDefFoundError for JAXBException in Java 9
Filed under Java
Learn how to solve the JAXBException when migrating to Java 9.
Sending Emails with Java
Filed under Java
Learn how to use the native Java mail library to send emails with and without attachments.
Working with Boolean in Thymeleaf
Filed under Spring MVC
Take a look at how to work with boolean values in Thymeleaf.
Testing Netty with EmbeddedChannel
Filed under Testing
Learn how to use EmbeddedChannel to test the functionality of the inbound and outbound channel handlers.
Maven Compiler Plugin
Filed under Maven
Learn how to use the Maven compiler plugin, used to compile the source code of a Maven project.
Using the JetS3t Java Client With Amazon S3
Filed under Cloud
Learn how to use JetS3t to connect to Amazon and work with different types of data using S3 buckets.
Conditionals in Thymeleaf
Filed under Spring MVC
Learn about the different types of Thymeleaf conditionals.
Java List UnsupportedOperationException
Filed under Java Collections
Have a look at the UnsupportedOperationException and how to avoid it when working with lists in Java.
Hamcrest Custom Matchers
Filed under Testing
Learn how to create custom matchers using Hamcrest
Introduction to Atlassian Fugue
Filed under Java
Learn about a Java library by Atlassian named Fugue that provides a collection of utilities to support Functional Programming.
Handling Cookies and a Session in a Java Servlet
Filed under Jakarta EE
Learn how to store user data between subsequent requests to the server, using cookies and a session.
Publish and Receive Messages with Nats Java Client
Filed under Data
Learn how to connect to a NATS server and sent both pub/sub messages and load-balanced queue messages.
The Spring @Controller and @RestController Annotations
Filed under REST, Spring MVC
Learn about the differences between @Controller and @RestController annotations in Spring MVC.
Hamcrest Object Matchers
Filed under Testing
Learn about Hamcrest Object matchers, which are a straightforward way of checking class properties.
Hamcrest Bean Matchers
Filed under Testing
Learn about Hamcrest bean matchers – a tool that provides an effective way of making assertions, a frequently used feature when writing unit tests.
A Guide to Flips for Spring
Filed under Spring
Learn about Flips, a library that implements feature flags in the form of powerful annotations for Spring Core, Spring MVC, and Spring Boot applications.
A Guide to Jdbi
Filed under Persistence
Learn how to query a relational database using an open source Java library – jdbi.
A Custom Task in Gradle
Filed under Gradle
Learn how to create a custom task in Gradle.
Security in Spring Integration
Filed under Spring Security
Learn how to use Spring Integration and Spring Security together in an integration flow.
JDBC with Groovy
Filed under Groovy
Learn how to use the Groovy SQL module and how it enhances and simplifies JDBC with closures and Groovy strings.
An Intro to Spring Cloud Task
Filed under Spring Cloud
Learn how Spring Cloud Task works and how to configure it to log its events in a database.
Intro to Google Cloud Storage with Java
Filed under Cloud
Hit the ground running with Google Cloud Storage with quick examples of how to create a bucket, write, read, and update data.
A Practical Guide to DecimalFormat
Filed under Java Numbers
Explore the Java’s DecimalFormat class along with its practical usages.
Code Analysis with SonarQube
Filed under DevOps
Learn how to set up a SonarQube server locally and how to use Quality Gate to define the criteria for the fitness of a project for production release.
AssertJ Exception Assertions
Filed under Testing
Learn how to use AssertJ for performing assertions on exceptions.
Life Cycle of a Thread in Java
Filed under Java Concurrency
Learn about the life cycle of a thread in Java.
Reliable Messaging with JGroups
Filed under DevOps
Learn how to create an application for exchanging messages using JGroups.
Exploring the New HTTP Client in Java
Filed under HTTP Client-Side
Explore the new Java HttpClient API which provides a lot of flexibility and powerful features.
wait and notify() Methods in Java
Filed under Java Concurrency
Learn how to use wait() and notify() to solve synchronization problems in Java.
Introduction to Lettuce – the Java Redis Client
Filed under NoSQL, Persistence
Learn how to use Lettuce to connect and query a Redis server from within our application.
Geospatial Support in ElasticSearch
Filed under NoSQL, Persistence
Learn how to save geo-data in Elasticsearch and query it using geo queries.
Introduction to Spliterator in Java
Filed under Java Streams
Learn about the Spliterator interface that can be used for traversing and partitioning sequences.
A Guide to JavaLite – Building a RESTful CRUD application
Filed under REST
Learn about a JavaLite framework to simplify common tasks that every developer has to deal with when building applications.
Writing a Jenkins Plugin
Filed under DevOps
Learn how to create from scratch a Jenkins plugin.
A Quick Guide to Maven Wrapper
Filed under Maven
Learn how to set up and use Maven Wrapper in a Maven project.
Java TreeMap vs HashMap
Filed under Java Map
Learn about the differences and similarities between TreeMap and HashMap.
Overview of Java Built-in Annotations
Filed under Core Java
Discover built-in annotations in Java.
Introduction to the OrientDB Java APIs
Filed under Persistence
A quick and practical introduction to OrientDB.
Using InfluxDB with Java
Filed under Persistence
Learn how to use an InfluxDB – a high-performance store for time-series data.
ExecutorService – Waiting for Threads to Finish
Filed under Java Concurrency
Learn how to use ExecutorService in various scenarios to wait for threads to finish their execution.
Configure Jenkins to Run and Show JMeter Tests
Learn how to set up a simple continuous delivery environment to run and show Apache JMeter tests in Jenkins.
Intro to Performance Testing using JMeter
Learn to use Apache JMeter to configure and run performance tests.
Creating a Custom Logback Appender
Filed under Logging
Learn how to implement a custom Logback appender.
Varargs in Java
Filed under Core Java
A quick and practical introduction to varargs in Java.
Convert Date to LocalDate or LocalDateTime and Back
Filed under Java Dates
Learn about possible ways of converting the between old java.util.Date classes and new java.time API.
Mock Final Classes and Methods with Mockito
Filed under Testing
Learn how to mock final classes and methods with Mockito.
How to Kill a Java Thread
Filed under Java Concurrency
Learn how to properly stop a Thread in Java.
Spring 5 Testing with @EnabledIf Annotation
Learn how to use the @EnabledIf and @DisabledIf annotations in JUnit 5 tests using a SpringExtension.
A Guide to Spring AbstractRoutingDatasource
Filed under Spring Persistence
Learn how to use the Spring AbstractRoutingDataSource to dynamically determine the actual DataSource based on the current context.
Introduction to Spring REST Shell
Learn how to use Spring REST Shell, a command-line tool built to facilitate working with HATEOAS-compliant REST APIs.
A Quick Guide to Using Keycloak With Spring Boot
Filed under Security, Spring Boot
Learn how to configure a Keycloak server and use it with a Spring Boot Application.
Mocking of Private Methods Using PowerMock
Filed under Testing
Learn how PowerMock can be used to extend the capability of Mockito for mocking and verification of private methods in the class under test.
Implementing a Runnable vs Extending a Thread
Filed under Java Concurrency
Learn why implementing Runnable is a better approach than extending Thread class.
A Guide to Spring Boot Admin
Filed under Spring Boot
Learn how to monitor and manage the Spring Boot applications using Spring Boot Admin.
Quick Guide to Micrometer
Learn about the metrics facade Micrometer and its integration with Spring.
A Guide to the Static Keyword in Java
Filed under Core Java
Learn about Java static fields, static methods, static blocks and static inner classes.
Bubble Sort in Java
Filed under Algorithms, Java
Learn how Bubble Sort algorithm works, and how to implement it in Java.
Advanced Querying in Apache Cayenne
Filed under Persistence
Learn how to write simple and advanced queries using Apache Cayenne.
JIRA REST API Integration
Filed under REST
Learn how to integrate with the JIRA Rest API to perform basic JIRA operations.
Introduction to JGraphT
Filed under Algorithms
Learn how to use JGraphT to create graphs and explore the variety of graph algorithms.
Introduction to Apache Cayenne ORM
Filed under Persistence
Learn how to interact with a MySQL database using Apache Cayenne ORM.
Querying Couchbase with N1QL
Filed under NoSQL, Persistence
Learn about querying a Couchbase Server with N1QL – the SQL equivalent for NoSQL databases.
Proxy, Decorator, Adapter and Bridge Patterns
Filed under Architecture
Learn about the Structural Design Patterns concept by discovering the differences between the Proxy, Decorator, Adapter and Bridge Patterns.
Binary Search Algorithm in Java
Filed under Algorithms, Java
Learn how and when to use the Binary Search algorithm.
Introduction to JCache
Filed under Data
Learn about a standard caching API for Java – JCache.
Number of Digits in an Integer in Java
Filed under Java Numbers
Learn different ways of getting the number of digits in an Integer in Java.
Introduction to MBassador
Discover MBassador – a high-performance pub-sub event bus.
Difference Between Two Dates in Java
Filed under Java Dates
Learn how to calculate the difference between dates in Java, using native approach, as well as external libraries.
Introduction to GraphQL
Filed under Web Services
Learn about GraphQL – a query language that provides an easy way of minimizing complexity between client/server as an alternative approach to REST applications.
Converting a List to String in Java
Filed under Java String
Learn how to convert a List to a String using different techniques.
Custom Login Page for Returning User
Learn how to develop a custom login page for users returning to our application.
Guide to the Volatile Keyword in Java
Filed under Java Concurrency
Learn about the Java volatile keyword and its capabilities.
Spring Batch using Partitioner
Filed under Spring
Learn how to implement a job with parallel processing using Spring Batch.
Java 9 java.util.Objects Additions
Filed under Java
Learn about the new utility methods introduced in the java.util.Objects class in Java 9.
Introduction to NoException
Filed under Java
Learn about the NoException library that provides concise and handy exception handlers.
Collect a Java Stream to an Immutable Collection
Filed under Java Streams
Learn how to collect Java Streams to immutable Collections.
Introduction to MockServer
Filed under Testing
Explore the MockServer – the tool for mocking/stubbing external HTTP APIs.
Spring Cloud Bus
Filed under Jakarta EE, Spring Cloud
Learn how to use Spring Cloud Bus for broadcasting configuration changes and automating client updates.
Introduction to Vaadin
Filed under Jakarta EE
Learn how to use Vaadin – a server-side Java framework for creating web user interfaces.
Guide to PDFUnit
Filed under Java IO
Learn how to use PDFUnit to test PDFs text, images, bookmarks and much more.
Java Static Analysis Tools in Eclipse and IntelliJ IDEA
Filed under IDE
Learn how to use PMD and Cobertura – static analysis tools for Java – and how they integrate with Eclipse and IntelliJ IDEA.
Introduction to Minimax Algorithm with a Java Implementation
Filed under Algorithms
Learn how to implement one of the most popular problem solver for computer board games – the Minimax algorithm.
BigDecimal and BigInteger in Java
Filed under Java Numbers
Learn about the Java BigDecimal and the BigInteger data-types.
A Guide To Cron Expressions
Filed under DevOps
Quick guide to the Unix-based utility cron utility.
A Java Client for a WebSockets API
Filed under Spring
Learn how to use Spring to implement a Java client to consume a WebSockets API.
Monte Carlo Tree Search for Tic-Tac-Toe Game in Java
Filed under Algorithms
Learn Monte Carlo Tree Search (MCTS) algorithm and its applications by exploring implementation for Tic-Tac-Toe game in Java.
Changing the Order in a Sum Operation Can Produce Different Results?
Filed under Java Numbers
Learn how the computers represent numbers and why changing the sum order returns a different result.
Introduction to Liquibase Rollback
Filed under Persistence
Learn how to use the rollback feature of a Liquibase framework.
How to Get All Spring-Managed Beans?
Filed under Spring Boot
Learn about different techniques for displaying all Spring-managed beans.
Example of Hill Climbing Algorithm in Java
Filed under Algorithms
Learn to implement the Hill-Climbing algorithm in Java – the heuristic technique used for finding the optimal results in large solution space.
How to Inject a Property Value Into a Class Not Managed by Spring?
Filed under Spring
Learn how to initialize properties values in Java classes without the direct use of Spring’s injection mechanism.
Guide to Dynamic Tests in Junit 5
Filed under Testing
Learn about dynamic tests introduced in JUnit 5 – a new programming model that supports full test lifecycle.
Introduction to Testing with Arquillian
Filed under Testing
Learn how to prepare and execute tests using Arquillian, a container-agnostic integration testing framework.
ClassNotFoundException vs NoClassDefFoundError
Filed under Java
Learn about the differences between ClassNotFoundException and NoClassDefFoundError.
Introduction to Mustache
Filed under Jakarta EE
Learn how to use Mustache, a logicless template engine for creating dynamic HTML pages, configuration files, etc.
Introduction to Drools
Filed under Java IO
Learn how to use Drools as a Business Rule Management System (BRMS).
A Guide to @RepeatedTest in JUnit 5
Filed under Testing
Learn different ways of using and configuring the @RepeatedTest annotation provided by JUnit.
JHipster with a Microservice Architecture
Filed under Architecture
Learn how to build a microservices architecture using JHipster.
Guide to Java Data Objects
Filed under Persistence
Learn how to use the Java Data Objects (JDO) – designed for persisting object-oriented data into any database.
Converting a Stack Trace to a String in Java
Filed under Core Java
Learn how to convert a Stack Trace to a String using core Java method or Apache Commons-Lang library.
Guide to the Most Important JVM Parameters
Filed under JVM
Learn about the most important JVM parameters which can be used to improve web applications performance.
Testing in Spring Boot
Filed under Spring Boot, Testing
Learn about how the Spring Boot supports testing, to write unit tests efficiently.
Introduction to Apache Commons Math
Filed under Java Numbers
Learn about the Apache Commons Math, which is the biggest open-source library of mathematical functions and utilities for Java.
Quick Guide to MyBatis
Filed under Persistence
Learn about MyBatis, an open source persistence framework which simplifies the implementation of database access.
JVM Garbage Collectors
Filed under JVM
Learn the basics of different JVM Garbage Collection (GC) mechanisms and use cases.
JVM Log Forging
Filed under JVM
Learn about JVM log forging and techniques to overcome this security concern.
Converters, Listeners and Validators in Java EE 7
Filed under Jakarta EE
Learn about converters, listeners, and validators provided by Java EE 7.
Quick Guide to the Java StringTokenizer
Filed under Java String
Learn how to use StringTokenizer in Java.
Check If a Number Is Prime in Java
Filed under Java Numbers
Learn how to check the primality of the number using Java.
Cucumber and Scenario Outline
Filed under Testing
Learn how to write Behavioral Driven Development (BDD) unit tests using Cucumber and its concept named Scenario Outline.
Custom Information in Spring Boot Info Endpoint
Filed under Spring Boot
Learn how to add custom data to Spring Boot Actuator’s /info endpoint.
Ratpack Google Guice Integration
Filed under Reactive
Learn how to use a Java open source software framework, Google Guice, by integrating it with Ratpack.
A Guide to GemFire with Spring Data
Filed under Spring Data
Learn how to use GemFire to efficiently manage distributed data.
CORS in JAX-RS
Filed under Jakarta EE
Learn how to implement Cross-Origin Resource Sharing (CORS) mechanism in JAX-RS based applications.
Full-text Search with Solr
Filed under Persistence
Learn how to use Solr Search Engine’s capabilities and features, such as building different queries, search faceting, highlighting and suggesting terms.
Using Math.pow in Java
Filed under Java Numbers
Learn how to use the Java’s Math.pow() method to calculate the power of any given base quickly.
Introduction to Project Jigsaw
Filed under Java
Learn how to create, compile and run a simple modular application, using new JDK tools, introduced as a Project Jigsaw.
Introduction to JSONassert
Learn how to use a JSONassert library, focused on understanding JSON data, by writing complex JUnit tests.
Introduction to JiBX
Filed under XML
Learn how to use JiBX to convert XML to Java POJOs and vice versa.
Introduction to Ratpack
Filed under Reactive
Learn how to use Ratpack, a set of JVM based libraries built for modern days high-performance web applications.
Using Custom Banners in Spring Boot
Filed under Spring Boot
Learn how to configure custom start-up banners in Spring Boot applications.
Introduction to Javatuples
Filed under Data
Learn how to use javatuples library that provides elegant semantics for working with tuples.
Introduction to Twitter4J
Filed under Java
Learn how to communicate with the Twitter API from Java using the Twitter4J.
Introduction to Java 9 StackWalking API
Filed under Core Java
In this article, we will look at Java 9’s new StackWalking API that provides an access to a Stream of StackFrames.
Java Primitive Conversions
Filed under Core Java
The most useful conversions of Java primitive types.
Java 9 Process API Improvements
Filed under Core Java
A quick intro to the interesting Java 9 additions to the Process API and how these give us much more control over the running and spawned processes.
Guide to java.util.concurrent.Locks
Filed under Java Concurrency
In this article, we explore various implementations of the Lock interface and the newly introduced in Java 9 StampedLock class.
Guide to Spring WebUtils and ServletRequestUtils
Filed under Spring MVC
In this article, we explore the build-in web request utils in Spring MVC – WebUtils, ServletRequestUtils.
Introduction to Apache Velocity
Filed under Jakarta EE
Learn the main features of Apache Velocity and explore how it can be used to create dynamic web pages in a Java web application.
String Operations with Java Streams
Filed under Java Streams
Learn how to split a comma-separated String into a list of Strings and how to join a String array into a comma-separated String.
Spring @RequestMapping New Shortcut Annotations
Filed under REST, Spring MVC
In this article, we introduce different types of @RequestMapping shortcuts for quick web development using traditional Spring MVC framework.
A Guide to Spring Mobile
Filed under Spring
This article, focuses on the Spring Mobile project. We are highlighting use cases of Spring Mobile by building a sample project.
Chained Exceptions in Java
Filed under Java
In this tutorial we are covering the topic of chained exceptions in Java, based on the code examples.
New Stream Collectors in Java 9
Filed under Java Streams
In this article, we explore new Stream collectors that were introduced in JDK 9
A Guide to JGit
Filed under DevOps
Learn the basics of using JGit – a Git version control written in Java.
A Guide to MongoDB with Java
Filed under NoSQL, Persistence
Learn how to use MongoDB with a simple, standalone Java client.
A Basic AWS Lambda Example With Java
Filed under Cloud
Learn how to create and deploy a simple AWS Lambda app in Java.
A Guide To Spring Redirects
Filed under Spring MVC
A guide to redirect and forward in Spring MVC, with a focus on the code and implementation of each strategy.
Java Timer
Filed under Core Java
Using the Java Timer and TimerTask to get the most out of it. Schedule a delayed one time task, a daily task or just repeat on an interval. Cool beans.
Baeldung on Linux
- All
- Administration (123)
- Scripting (67)
- Processes (66)
- Networking (49)
- Filesystems (32)
- Files (31)
- Security (28)
- Installation (27)
- File Editing (24)
- File Viewing (16)
- Web (14)
- File Searching (10)
- File Permissions (10)
- File Compression (9)
- File Conversion (6)
- Search (2)
- Building (2)
- Docker (1)
tmux Session Logging and Pane Content Extraction
Filed under Networking, Processes
Explore ways to extract data from tmux panes manually and automatically.
Managing NVIDIA Drivers and How to Disable and Enable a GPU
Filed under Administration, Installation
Learn about the management of an NVIDIA graphics adapter.
Kernel Mode Setting (KMS) and the Linux Graphics Subsystem
Filed under Administration
Learn about graphics settings at the kernel level by using a specific driver as an example.
Linux Display Managers (LightDM, SLiM, XDM, GDM, SDDM, KDM, Ly): Install and Uninstall Guide
Filed under Administration, Installation
Learn about display managers, their role, and several specific examples along with their installation, configuration, and uninstallation procedures.
Screensavers From and Within the Linux Terminal CLI
Filed under Installation, Processes
Learn about screensaver control and play in the Linux terminal.
Where and How Are the User $HOME Environment Variable and Tilde Set?
Filed under Administration
Learn about the user home directory and the $HOME environment variable.
Linux mailutils Mail System With mail and “You have new mail”
Filed under Administration, Web
Learn about the mail system of Linux.
How to Install Certificates in Linux CLI
Filed under Installation, Security
Learn how to generate and install certificates using Linux CLI.
Add Default Routes and Gateways to IPv6 Routing Table
Filed under Networking
Learn about default IPv6 routes and gateways.
Unterminated Output and How to Hide the Unterminated Line Symbol in Zsh
Filed under Scripting
Learn about the handling of unterminated lines in the Zsh shell.
How to Fix sudo: unable to resolve host Error
Filed under Administration, Networking
Learn about sudo name resolution and ways it can fail.
Permission Searching With find and Locating SUID or SGID Files
Filed under File Permissions, File Searching
Learn about special permissions, as well as ways to use the POSIX standard find command to search for files based on different permissions-related criteria.
Text and Code Folding in Vi
Filed under File Editing
Explore text and code folding and the ways it works within the Vi editor.
Storage Block Sizes and the blockdev Command
Filed under Administration, Filesystems
Explore block sizes in Linux and how to manipulate them.
Starting Redis Server on a Non-Default Port in Linux
Filed under Administration, Networking
Explore various ways to run a Redis server on a non-default port.
Advanced Linux Sound Architecture (ALSA) or Sound Servers to Mute and Unmute
Filed under Administration
Explore the audio setup in Linux and how to cut off sound completely.
Linux Free, Available and Cached Memory and How to Fill Them
Filed under Administration
Learn how to fill the memory of a Linux system.
How Is whoami Different From who?
Filed under Administration, Processes
Learn about the similarly-named who and whoami commands.
ARP Table and Clearing the ARP Cache
Filed under Networking
Learn about the ARP cache and ways to drop entries from it.
Mount Permissions and Remounting a Filesystem as Writable
Filed under Administration, Filesystems
Learn about mounting, parallel mounts, and remounts in terms of the permissions the attached location has.
How to Set a Linux User Account to Have No Password
Filed under Administration
Learn how to create a Linux user account without password protection.
The test Command and When to Use -eq, =, and ==
Filed under Scripting
Learn about data types and the test or [] builtin of Bash.
Common UNIX Printing System (CUPS) Installation and Listing Available Printers
Filed under Administration
Explore the practical basics of the CUPS system.
How to Find and Change the UUID of the Swap Partition
Filed under Filesystems
Explore ways to check the UUID of the swap partition.
Searching and Matching Base64 Strings via grep and Perl Regular Expressions
Filed under Security
Learn about Base64 and methods to find Base64 strings via different means.
Other Ways to Exit Insert Mode Besides Escape in Vim
Filed under File Editing
Explore alternative methods to exit Insert mode in Vim comfortably and efficiently.
Difference Between PGP and GPG
Filed under Security
Explore OpenPGP and GnuPG, their common ground and differences.
How to Remove the Password from a PDF File in Linux
Explore two command line tools and one graphical software for removing password protections from PDFs.
Kernel Errors and RTNETLINK answers Like No such process When Working With Routes
Filed under Networking
Explore routing checks and changes, as well as errors that might result from them.
Directory and Filesystem Limits in Linux
Filed under Filesystems
Explore different major filesystems, their constraints, and the maximum directory size of each.
How to Test /etc/hosts Host File Entries
Filed under Administration
Explore ways to test the configuration of /etc/hosts as the default hosts file of most Linux distributions.
How to Convert Files and Strings to Lowercase or Uppercase
Filed under File Editing, Scripting
Explore ways to change the text case of strings and files.
Extract Name and Extension of a File
Filed under Files
Explore ways to extract the extension from a filename.
Storage UUID and How to Change the UUID of a Partition or Disk
Filed under Administration
Explore the definition and function of a storage UUID and how to change it for a given partition.
How to Set a Keyboard Shortcut in Linux Terminal
Filed under Administration
Explore two methods of configuring keyboard shortcuts in Linux.
Does the wheel Group Still Matter?
Filed under Administration
Learn about the wheel group, its function, and name origin.
Why Are quiet and splash Part of the Boot Options in GRUB?
Filed under Administration, Filesystems
Explore two kernel parameters that are often part of default installations and affect the boot process cosmetically.
How to Encode URL With curl
Filed under Web
Explore one of the most common URL encoding methods as well as an option curl provides for automating that.
How To Split a Screen Session Vertically
Filed under Administration
Learn how to add a vertical split in a region in a GNU screen session.
Polkit and the polkitd “Unregistered Authentication Agent” Message
Filed under Administration, Security
Look at the Polkit mechanism to regulate, authenticate, and authorize user access.
Exploring ld Linker Search Paths
Filed under Building
Explore the ld linker’s search paths.
Printing Values in One Line Using the jq Command
Filed under Scripting
Explore various ways of printing values in a single line using the jq command.
How to Disable the Internal Keyboard of a Laptop on Linux
Filed under Administration
Explore ways to disable and enable devices on a Linux system with a main focus on the internal keyboard of a laptop.
Converting UTF-8 to ASCII
Filed under Files
Explore various ways of conversion from a Unicode file (UTF-8) to an ASCII file.
Configuring firewalld for NFS Connections
Filed under Networking, Security
Learn how to configure firewalld on an NFS server.
Sound Equalizers on Linux
Filed under Administration
Learn how to use sound equalizers on Linux.
Truncate or Delete File in Use
Filed under File Editing, File Permissions
Explore the concept of truncation and learn how it differs from deletion.
Get Parent Processes and Subprocesses with pstree
Filed under Processes
Explore the use of pstree to get an insight into parent and child processes.
Convert Multiple Image Files to PDF From the Command Line
Filed under File Conversion
Explore imagemagick and img2pdf to convert multiple images to PDF files.
Convert Timespan in Seconds to Formatted Time in the Shell
Filed under Scripting
Explore how to represent second timespans in common time formats.
Disable and Enable Memory Address Randomization in Linux
Filed under Processes
Explore memory randomization in Linux with the ASLR feature.
Restore Default Debian and Ubuntu Repositories
Filed under Administration, Installation
Explore the repositories of Debian and the Debian-based Ubuntu. Learn how to restore the default repository list.
The Meaning of the Symbols !, !! and * in /etc/shadow
Filed under Administration
Explore the meaning of !, !!, and *, that may appear in the password field of the /etc/shadow file on a Linux system.
How to Improve Boot Speed of Linux
Filed under Administration, Installation
Learn how to improve the boot speed of Linux.
Environment Constraints and Maximum Variable Size
Learn about context size constraints and environment variable constraints in particular.
Cloning Ownership and Permissions From Another File in Linux
Filed under File Permissions
Learn how to clone ownership and permissions from one file to another.
Split and Recombine PDF Files and Pages in Linux
Filed under File Compression, File Editing
Learn about splitting and recombining PDF files and pages with different tools.
Enable the MySQLi Extension on Linux
Filed under Administration, Installation
Explore the MySQLi extension on a Linux system and learn how to enable it.
Send Mail With curl
Explore the requirements and methods for sending e-mails via curl.
How to Use Wireless Network in VirtualBox
Filed under Networking
Learn how to use a wireless connection in VirtualBox VMs in NAT and bridged modes.
Installing OpenSSL and Resolving Configuration Issues
Filed under Networking
Learn about OpenSSL deployment and dependency problems and how to remedy them.
Disable IPv6 Autoconfiguration
Filed under Networking
Learn how to disable the automatic configuration of IPv6.
Zip Multiple Directories Into Individual Zip Files
Filed under File Compression
Learn how to zip multiple directories in Linux.
What Are the GNU libtool .la Files?
Filed under Building, Installation
Learn about the libtool and its .la files.
Print Path or Directory Permissions Recursively
Filed under File Permissions
Explore ways to get the permissions of filesystem objects under or along a given path.
Kernel IP Forwarding
Filed under Networking
Learn about IP forwarding within the Linux kernel.
How to Use Shell Variables as a Pattern in AWK
Filed under Scripting
Learn about using shell variables within and as AWK patterns.
Welcome Banners and Messages
Filed under Administration
Explore welcome banners and messages, as well as how to configure and use them.
uptime Internals and System Uptime Epoch
Filed under Administration, Processes
Explore the source of the uptime command time baseline, as well as the general Linux boot time start.
Kernel Module Loading at Boot and modprobe Automation
Filed under Administration, Installation
Explore ways to load kernel modules on boot and automate modprobe.
Security Policies and ImageMagick Conversion Problems
Filed under Security
Explore security policies and how their implementation in ImageMagick works.
Basic Vi Navigation and Scroll
Filed under File Editing, File Viewing
Learn about positioning the cursor and view in the Vi editor.
Insert Newline in Shell Command
Filed under Scripting
Explore ways to insert a newline in a shell command.
How to Add a Number to a Filename While Creating It
Filed under Scripting
Learn how to add a number to a filename while creating it.
How to Download a File Without curl or wget in Linux
Filed under Web
Learn how to download a file from a URL without wget or curl. We show a script that automates this process.
Zero NULL Character and Typing or Inserting NULL in the Terminal
Filed under Scripting
Learn about the special place of zero and NULL in Linux and computing, as well as ways to display, output, and type the NULL character.
How to Kill or Restart a tmux Pane
Filed under Processes
Learn about killing and restarting a tmux pane.
How to Grep a Substring Between Quotes
Filed under Search
Learn how to find substrings within quotes using the grep command.
How to Assign the Output of a Command Like tee to a Variable
Learn about tee and ways to assign command output to a variable.
Python Buffering and tee
Learn about the tee command, buffers, and pipes and how those concepts relate to the use of output from Python.
Swappiness in Linux
Filed under Administration
Explore one of the main swap settings – swappiness.
How to Get the Current Connection Information in Linux
Filed under Networking, Processes
Learn how to use the ss command to query socket information.
How to List the Connected Devices on a Wireless Access Point
Filed under Networking
Explore several methods to list connected devices on a wireless access point in Linux.
Meta Keys and Key Processing Priority in the Shell and Terminal
Filed under Scripting
Explore keyboards, pressing a key, the modifier keys and combinations, as well as how we detect, interpret, and output the latter at different levels.
The Backslash and Removing Backslashes From a Text File or String
Filed under Scripting
Learn about the backslash character and how to remove it from a file or string.
How to Safely Reinstall Original YUM and Dandified DNF YUM
Filed under Installation
Explore the original and DNF YUM versions, as well as how to install, uninstall, and debug them.
How to Extract Filename From a Path via AWK
Filed under Files
Explore ways to extract the filename from a path via AWK.
The Ease of Manual UNIX Timestamp Arithmetic in the Shell
Filed under Scripting
Learn about the UNIX epoch timestamp, how to do arithmetic with the format, and how to use it to your advantage.
Set Up and Disable SELinux
Filed under Security
Learn about setting up and disabling SELinux.
What Is a umask and How to Set It System-Wide?
Filed under File Permissions
Explore the concept of a umask and how to configure its global value.
Disable IPv6 in NGINX
Filed under Networking
Explore several methods of limiting and preventing the use of IPv6 in NGINX.
The du Command and Printing Total File Size by Extension
Filed under File Permissions, Installation
Learn about the du command and ways to get the total size of files with a given extension.
How To Split an Image Vertically Using ImageMagick
Filed under File Editing
Explore two methods part of the ImageMagick software suite in Linux to split images vertically: convert, and mogrify.
List All Available Certificate Authority (CA) SSL Certificates
Filed under Networking, Security
Explore how to list all SSL certificates in the default store of a Linux machine.
How to Print an RFC-3339 Format Date
Explore the RFC-3339 standard and ways to produce dates based on it.
Changing the Default Audio Device From the Command Line
Filed under Administration
Learn three command line methods to change the default audio device in Linux: pactl, ALSA, and amixer.
Changing Bluetooth Device Name
Filed under Installation
Learn how to change the name of a Bluetooth device.
Character Notations and Removing Whitespace While Keeping Line Endings
Filed under File Editing
Learn about removing whitespace while preserving newlines.
The Shell Prompt and How to Correct for Missing Newlines
Filed under Scripting
Explore the reasons for a distorted prompt position and how to work around them.
How to Use grep in an if-else Statement in Bash
Filed under Scripting
Learn how to use grep in an if-else statement and potentially increase the usefulness of our shell scripts.
How to Enable/Disable Touchpad Scrolling and Tapping Using the Command Line
Filed under Administration
Explore three methods to enable and disable touchpad scrolling and tapping using the command line in Linux: xinput, libinput, and synclient.
How to Detect Headphone Connection/Disconnection in Linux
Filed under Installation
Explore three approaches to determine whether a headphone is connected in Linux.
How to Convert a Color PDF to Black and White in Linux
Filed under File Editing
Explore two methods for converting a color PDF file into a black-and-white PDF file: Ghostscript and GIMP.
Differences Between BSD tar and GNU tar and star
Filed under Administration, File Compression
Explore several tar implementations along with their differences and similarities.
World-Writable Directories in Linux
Filed under Administration
Explore fully-open directories in Linux, their behavior, and how to identify them.
Uptime Wars and the htop Easter Egg Exclamation Point
Filed under Processes
Explore the system uptime and its relation to top and htop.
How to List All Executables From $PATH
Filed under Installation
Explore many ways to output the executables within the $PATH environment variable directories.
The requiretty Option of sudo
Filed under Administration
Learn about terminal allocation and the role of requiretty when using sudo.
modprobe and Fixing the “Operation not permitted” Error
Filed under Administration
Explore kernel permissions, the modprobe command, as well as the “Operation not permitted” error when trying to load a module.
How to Find Out What Is Using a Kernel Module
Filed under Administration
Explore tools and methods for discovering what processes or apps use a specific kernel module.
Passing Binary Data to Applications Like curl Without Using a File
Filed under Filesystems
Explore ways to supply binary data directly to commands with the primary example of curl.
How to Access Microsoft Windows Administrative Share From Linux
Filed under Administration
Explore browsing Microsoft Windows administrative shares from Linux.
Huge Page Settings and Disabling Huge Pages in Linux
Filed under Administration
Explore the settings of standard and transparent huge pages, as well as how to check their status and disable them completely.
How to Exclude Filesystems When Using find
Filed under Filesystems
Explore ways to limit the filesystems find traverses.
sed Print to Standard Output When Editing In-place
Learn a sed-only way to delete the first line of a file while also printing it with a single command.
Change the Default /tmp Directory to a User-Defined Path
Filed under Filesystems
Explore ways to change the Linux temporary directory path.
Systemd Unit File Permissions
Filed under Administration, File Permissions
Explore unit files and their permissions.
Allowing Traffic From a Domain With Dynamic IP Address
Filed under Networking, Security
Explore different options to configure firewall rules to allow access from a dynamic IP address.
How to Find Files with Non-Printable and Non-ASCII Characters in Their Names
Filed under File Searching
Explore ways to find path elements with names that contain special characters.
Fast Ways to Efficiently Make Multiple Files in Linux
Filed under Files
Explore different ways to generate many files.
Remove All Comments From a Bash Script in the Shell
Filed under Scripting
Explore ways to remove comments from a Bash script.
HTML Parsing for Extracting Text Between HTML Tags in the Shell
Filed under Scripting
Explore ways to extract the content between two HTML tags in the shell.
Network Processes and How to Identify a Process Which Has No PID
Filed under Processes
Learn about network processes and why they might seem to lack a PID.
Owner of a Mounted Partition
Filed under Administration, Filesystems
Learn how to change the owner of a mount point and location.
Universal Unique Identifiers and the Purpose of an UUID for a Network Interface Card
Filed under Networking
Learn about serial numbers, universal unique identifiers, and their role in network interfaces.
Setting ulimit Limits in systemd Units
Filed under Administration
Learn how to set limits within systemd units.
Zero Padding in the Shell
Filed under Scripting
Explore ways to add and remove zero padding in a standard POSIX environment.
Why Are Hard Links Not Allowed for Directories?
Filed under Filesystems
Explore why hard links aren’t allowed for directories in Linux.
NGINX Timeouts and How to Disable Them
Explore NGINX timeouts and their settings.
Check and Change Default Document Root in NGINX
Filed under Administration, Web
Explore ways to check and set NGINX’s default and current document root paths.
How to Send a Signal to a Process Without Killing or Stopping It
Filed under Processes
Explore ways to send a signal that doesn’t stop or terminate a process.
Inspecting TXT Records of a Domain in the Shell
Filed under Networking
Learn about domain TXT records with different tools, exploring some details of the process.
Store Paths and Change Directory With a Variable in the Shell
Filed under Scripting
Explore ways to use shell variables when changing to a new path.
Vi Initialization and Configuration Files
Filed under File Editing
Explore the initialization process of the Vi editor when it comes to settings and configuration files.
CMake and Setting CMAKE_INSTALL_PREFIX
Filed under Installation
Learn about CMake and make to understand how to change options like the installation destination path.
Logging Every Command Executed by a User
Filed under Administration
Learn how to use the rsyslog service to log every command a user executes in Linux.
Deleting Files With Logrotate
Filed under Administration
Learn how to delete files using the logrotate utility.
How to Split Only on a Newline in Shell
Filed under Scripting
Explore ways to split text only at newlines in the shell.
Getting and Changing ARP Settings and the Default ARP Cache Timeout
Filed under Networking
Explore the ARP protocol implementation in Linux and focus on its available settings.
Remove and Avoid Duplicate Entries in Bash History
Filed under Administration
Learn about the duplicates in the Bash history list, as well as how to deal with them.
How to Close a TTY?
Filed under Administration
Learn how to close a terminal on several levels.
Storing the Output of watch to a File
Learn about the output of watch and how to capture that in a file.
Toggle Between FTP Active and Passive Modes
Filed under Networking, Processes
Learn how to switch session modes with different FTP clients.
Absolute Paths and Removing Leading Slashes With tar
Filed under File Compression
Explore leading slashes and absolute paths, as well as their consequences when using tar.
Automate FTP Login and Scripting Using the Shell
Filed under Administration, Networking
Learn ways to log in to an FTP, FTPS, and SFTP server automatically.
Basic and Advanced Searching in Vi
Filed under File Viewing
Explore basic and advanced ways to search in Vi.
How to Find the “n” Most Frequent Words in a File
Filed under File Searching, File Viewing
Learn how to find the n most frequent words in a file in Linux using a combination of command-line tools such as tr, sort, uniq, and head.
Is It Safe to Clear the /tmp Temporary Directory?
Filed under Administration, Files
Learn how to remove files from the /tmp directory safely.
Mirroring With wget and Avoiding Parent Directories
Filed under Filesystems
Learn how to handle directory creation while mirroring with wget.
Installing Packages on Debian and Using a URL
Filed under Installation
Learn how to install a Debian package directly from a URL.
How to Make Tab Auto-Completion Case-Insensitive in Bash
Filed under Scripting
Explore disabling case sensitivity for auto-completion.
Using $RANDOM to Generate a Random String
Filed under Scripting
Learn about creating a series of random characters with and without $RANDOM.
The Difference Between sudo -i and sudo su –
Filed under Administration
Learn how three ways to elevate a session differ.
Getting Speech Output From Entered Text From the Command Line
Filed under Scripting
Explore four ways to convert text to speech from the command line.
How to Remove the Passphrase From an Existing SSH Key
Filed under Security
Learn how to remove the password from SSH keys via two common SSH suites.
How to Change root Password via sudo Without su
Filed under Administration
Learn about modifying passwords and how to do that for the root user without first using su.
How to Use Shell Variables in an AWK Script
Filed under Scripting
Explore how to pass values of shell variables to AWK for internal use.
Symbolic and Hard Link Modification and Ownership Changes
Filed under Administration, File Permissions
Explore ways to work with links instead of their targets.
How to Use Multiple SSH Private Keys in Linux
Filed under Security
Explore ways to organize the use of multiple private keys with SSH.
Absolute and Relative Symlinks and Moving a Relative Symbolic Link
Filed under File Viewing
Learn a standard way to relocate relative symbolic links without severing the connection with their target.
How to Check for User Group Privileges
Filed under Administration
Learn about the basics of user groups, why they are important, and different ways to check for user group privileges using command-line tools and system utilities.
Separate Home Partition – Pros and Cons
Filed under Administration, Files
Explore the pros and cons of having a separate home partition in Linux.
Insert Newline Without Leaving Normal Mode in Vim
Filed under File Editing
Explore plenty of effective ways to insert a new line without leaving normal mode in Vim.
How to Check TCP Timeout in Linux
Filed under Administration, Networking, Web
Explore different ways to check for TCP timeouts in Linux using various system files.
List Processes Attached to a Shared Memory Segment in Linux
Filed under Processes
Learn why the shared memory is an important feature for processes to share data.
Extracting Album Covers from Audio Files in Linux using EyeD3
Filed under File Viewing
Learn how to extract the album cover from an audio file in Linux using the EyeD3 command line tool.
Getting a Unique Machine Identifier
Filed under Administration
Explore methods to extract an identity from a Linux system.
How to Install LaTeX on Linux
Filed under Administration, Installation
Learn how to install LaTeX on Linux.
How to Login as User “jenkins” After Installing Jenkins
Filed under Administration, Installation
Explore several solutions for not being able to su to the jenkins user after installation.
Convert Text to PDF From the Command Line
Filed under File Conversion
Explore ways to convert simple text files to PDF from the command line.
Prevent Jenkins Build From Failing When Execute Shell Step Fails
Filed under Processes
Explore several methods to prevent Jenkins build failures.
Restarting a MySQL Server in Linux
Filed under Processes
Explore different ways to restart a MySQL server on Linux.
Cleartext Passwords in the Shell and How to Handle Special Characters
Filed under Administration, Scripting
Learn about passwords with special characters and ways to handle them.
System Calls and Library Calls in Linux
Filed under Administration, Processes
Explore system calls, library calls, and how they differ.
How to Compare Local and Remote Directories
Filed under Networking, Processes
Learn how to perform a comparison between a local and a remote directory.
Parsing, Validating, and Printing JSON in Shell Scripts
Filed under Scripting
Explore many ways to handle JSON in the shell.
How to Scroll on the Linux Console
Filed under Processes
Explore a few keyboard shortcuts useful in scrolling on the Linux console.
How to Iterate Over a List of Strings in a Shell Script
Filed under Scripting
Explore the most common situations for looping over a list of strings.
Line Endings and Resolving the configure: /bin/sh: bad interpreter Error
Explore newlines, how they can affect file processing, and what we can do about it.
Kill a defunct Zombie Process with Parent init PID 1
Filed under Processes
Learn about our options when an initialization process is the parent of a zombie.
List Files in Linux With the Full Path
Filed under File Viewing
Learn many ways to list files in Linux with the full path.
How to Check Whether Terminal Can Print Colors
Filed under Administration
Learn if terminal supports colors and ways to detect it.
Path of Bash Script From Symbolic Link
Filed under Administration, Files, Scripting
Explore two ways of determining the absolute path of a bash script, irrespective of how it is invoked.
Character Navigation or How to Jump to a Specific Character in Vi
Filed under File Viewing
Learn about character positioning and how to employ it when moving the cursor.
Mount Files Systems Without Root Privileges
Filed under Filesystems
Explore some of the techniques to allow non-root users to mount file systems.
PDF Tools and How to View and Edit the Code of a PDF File in Linux
Filed under Files
Explore the PDF file format, how to view its contents, as well as tools that can handle and manipulate it under Linux.
Idling and Dummy Executable Files That Do Nothing in Linux
Learn about built-ins, commands, binaries, and other executables that do nothing.
Locales and How to Find Character Encoding of Linux Terminal
Filed under Administration
Learn about locales, how they are used in Linux, and checking the encoding in different environments.
Extend The Session Time for sudo
Filed under Administration
Explore sudo sessions, why we need them, and how to control their lengths.
List Upgradable Packages in Linux
Filed under Installation
Explore ways to check which packages on a given system currently have upgrades.
SSH Key Format Issues and Fixing the “invalid format” Error
Filed under Security
Explore common causes for malformed SSH keys, as well as their consequences.
When kill -9 or kill -SIGKILL Does Not Work
Filed under Processes
Learn why attempting to kill a process might not always succeed and what we can do about it.
How to Manage and Keep Environment Variables When Using sudo
Filed under Administration
Explore ways to work with and preserve the environment of a sudo session.
Force Edit and Save of Opened File Without Permissions in Vi
Filed under File Editing, File Permissions
Explore different ways to preserve our changes and save a file opened without write permissions in Vi.
Changing Indentation Size in Vi
Filed under File Editing
Explore different ways to indent in the Vi editor and how to set the indentation amount.
Are Hostnames Case Sensitive in Linux?
Filed under Networking
Explore types of system identifiers, numeric address to name resolution, and whether the latter is case-sensitive.
Generating Keys Without a Passphrase with OpenSSH, PuTTY, and OpenSSL
Explore how to generate passwordless SSH keys with three common tools.
How to Solve the “sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set” Error
Filed under Administration
Learn how to remedy global permission issues.
Managing the Way the File Is Cached in RAM
Filed under Administration, Processes
Learn commands to monitor and manage loading files in the disk cache.
How to Control Variable Access in the sudo Environment
Filed under Administration, Processes
Learn how to pass environmental variables to the sudo shell.
Search for Class Files in Multiple JAR Files in Linux
Filed under Filesystems, Installation
Explore one simple and one complex but precise way to search for class files within JAR files under a given directory.
/etc/shadow and Creating yescrypt, MD5, SHA-256, and SHA-512 Password Hashes
Filed under Administration, Security
Explore the /etc/shadow file and its options to set passwords.
Actual Use of the Linux arp Command
Filed under Networking
Explore the arp command along with its options.
Vi Automatic Commands and Reloading the Current File Contents
Filed under File Editing, File Viewing
Learn how to automate commands in Vi.
What Is the /dev/mem File?
Filed under Administration, Files
Look at address space files available in Linux.
Ways to Stop and Restart a Linux System or the Difference Between halt, poweroff, shutdown -H, and shutdown -P
Filed under Administration
Explore usual commands for stopping and restarting a Linux system, some of their history, and their current status quo.
prlimit and Setting the Maximum File Limit for a Running Process
Filed under Processes
Explore ways to limit resource usage for a given process, with the main example of lowering the maximum number of open file handles.
Unzip Files Bigger Than 4GB
Filed under File Compression
Explore the limits of FAT32 regarding the size of files, how they affect archive extraction, and what we can do to avoid problems.
How to Renew DHCP IP Address in Ubuntu
Filed under Networking
Learn how to acquire a new IP address on the Ubuntu system.
How to Backup Cron Files
Filed under Administration
Explore the anacron and cron tools, their configuration file structure, and a simple way to back them up.
Linux Overcommit Modes
Filed under Processes
Learn about the memory overcommit concept.
Manual Network Configuration in Linux and How to Set a Static IP Address
Filed under Administration, Networking
Explore network configuration under many different Linux distributions, with the main goal of setting a static IP address.
Manually Add a User Without Tools Like useradd and adduser
Filed under Administration
Explore steps necessary to create a user manually without the help of useradd and adduser.
How to Allow Only SSH Access Using iptables
Filed under Administration, Networking, Security
Explore the iptables rules for leaving a machine open only to SSH traffic.
Using SSH Name Resolution to Associate Name with IP
Filed under Administration, Networking, Security
Explore ways to use name resolution with SSH.
Automate Commands Upon SSH Connection
Filed under Administration, Networking
Explore ways to execute remote commands when establishing an SSH session with the example of a simple directory change.
SSH Key Types and Formats or How to Convert PuTTY .ppk to OpenSSH Keys Under Linux
Filed under Administration, Security
Explore PuTTY and OpenSSH, their key types and formats, as well as how to convert between them.
SSH Key Comments and Adding a Comment to an Existing Key
Filed under Administration, Security
Learn how to work with public and private key comments via both the OpenSSH and PuTTY toolsets.
What Is the SSH known_hosts File and How to Temporarily Ignore It
Explore the known_hosts file structure and ways to ignore the known hosts from an SSH client.
Authentication Methods and Their Order in SSH
Filed under Networking, Security
Learn about the SSH authentication methods.
SSH Error “permissions are too open” for Private Key File
Filed under Security
Explore SSH key permissions, problems they may cause, and how to correct them.
Find Out Which Partition a File or Directory Is Located On
Filed under Filesystems
Explore ways to get the physical partition a file or directory is located on.
How to Configure SSH for Multiple Ports
Filed under Security
Learn how to start an SSH server on multiple ports.
Edit /etc/sudoers From a Script
Filed under Scripting
Explore sudo, its sudoers plugin, its configuration, and various ways to change it.
Using sar to Show Current and Past System’s Statistics
Filed under Administration, Processes
Explore the sar command to report various kernel activities.
How Is /dev/vda Different From /dev/sda?
Filed under Filesystems
Explore the differences between /dev/sda and /dev/vda.
Check if IP Multicast Is Enabled
Filed under Administration, Networking
Explore many ways to check whether multicast is supported and enabled in a given system.
Mapping a Network Share as a Drive Using the Linux CLI
Filed under Networking
Learn about drive mapping and mounting.
Too Many Authentication Failures Error and Its Consequences
Filed under Security
Learn how to get rid of the Too many authentication failures error when using a public key identification.
How to Disable IPv6 Globally and on a Specific Interface
Filed under Administration, Networking
Explore the most common way to disable IPv6 on modern Linux distributions.
Printing ASCII Art in the Shell
Filed under Scripting
Explore different ways to print ASCII artwork in the shell.
Portable Ways to Get File Size in Bytes
Filed under Files
Learn how to get the true size of a file.
Invalid Paths and How to cd Into a Directory Without Having Permission
Filed under Filesystems
Learn why we might not be able to change into a given directory in Linux.
Force a CIFS Connection to Unmount
Filed under Filesystems
Learn how to forcefully unmount an SMB connection when it’s not responding.
Execute Shell Commands and Silence Them in Vim
Filed under Scripting
Explore ways to run shell commands and suppress their output while preventing session takeover within the Vi editor.
Stripping Leading and Trailing Whitespaces From All Lines in a File in Vim
Filed under File Editing
Learn how to identify whitespaces in the Vi editor.
Displaying the Full Path of the Current File in Vim
Filed under File Viewing
Explore relative and absolute file paths, concentrating on ways to show the full path of the current file in the Vi editor.
ulimit and the Difference Between Soft Limit and Hard Limit
Filed under Filesystems
Learn about soft and hard limits in the context of resource usage restrictions.
Indenting and Turning Off Auto Indent When Pasting Text Into Vi
Filed under File Editing, Scripting
Explore indenting in Vi and ways to avoid problems with automatic indentation and formatting when pasting contents to the editor.
How to Kill a TTY in Linux
Filed under Processes
Learn what comprises a TTY, how it comes to life, and how we can dispose of one.
Kill a Process That Keeps Restarting
Filed under Processes
Explore different ways to kill constantly restarting processes.
How to Work With Multipart Zip Archives and Split Files?
Filed under File Compression
Learn how to split a file into parts and join pieces back together.
How to Set Default Entry for the Grub Menu
Filed under Administration
Learn how to customize the GRUB menu.
Resetting a Broken TTY
Filed under Processes
Learn how to break a terminal and restore an already broken one.
Reset a Lost User’s Password
Filed under Administration
Explore various ways to reset a lost password and recover your account.
Linux Network Bonding
Filed under Networking
Learn how to bind together Internet interfaces.
What do PTY and TTY Mean?
Filed under Processes
Explore TTYs, PTYs, and the differences between them.
One Line if-else Condition in Linux Shell Scripting
Filed under Scripting
Explore single-line if-else statements in contrast to their regular multi-line forms.
Show Special Characters in Linux with less
Filed under File Editing
Learn how less could show special characters, as well as the notation it uses to do so.
Share Config Between Vim and Neovim
Filed under File Editing
Learn how to share the configuration between Vim and Neovim.
Interactive, Non-interactive, Login, Non-login Shells in Linux
Learn about the different kinds of shells we can get in the Linux environment.
The update-alternatives Command in Linux
Filed under Administration
Learn how to manage alternative programs.
Force Logout a User in Linux
Filed under Administration
Learn how to log out a user forcefully from our Linx system.
How to Find File Encoding in Linux
Filed under File Viewing
Explore two methods to find the character encoding of a file in Linux.
How to Install and Use Popular Linux Bootloaders
Filed under Administration
Learn about a few popular Linux bootloaders and how to install and use them.
How To Detect Disk’s I/O Bottlenecks
Filed under Administration
Learn how to monitor resource availability in the context of I/O operations.
Linux GUI Tools for Git Similar to Sourcetree
Filed under Administration
Explore two git graphical user interface clients meant for Linux – Git Cola and Gitg.
How to Change HDD State From Read-Only After Temporary Crash in Linux
Filed under Filesystems
Learn how we can change a device state from read-only after a temporary crash in Linux.
Setting Environment Variables for systemd Services
Explore different ways to set environment variables for daemons managed by systemd.
Wildcard a Subdomain in the Hosts File
Filed under Networking
Learn three ways to resolve all subdomains of a given domain to the local IP address.
Checking a User’s Sudo Access
Filed under Administration, Security
Learn how to check if a user might use sudo.
Linux Memory Overcommitment and the OOM Killer
Filed under Administration, Processes
Learn about the Linux way to manage memory.
Using Telnet in Linux
Filed under Networking
Learn how to install and use telnet on a Linux machine.
Overloaded Terminals or How To Kill a Runaway cat in Linux
Filed under Processes
Learn how to handle overburdened terminals with the primary example of a runaway cat command.
How to Delete a User in Linux When the System Says Its Currently Used in a Process
Filed under Administration
Learn how to delete a user and what to do if that doesn’t work as expected.
Difference Between a Terminal, Shell, TTY, and Console
Filed under Administration
Explore the terms console, terminal, and tty and learn why are they very closely related.
Using Homebrew on Linux
Filed under Installation
Learn how to install and use Homebrew on Linux.
Docker Error Bind: Address Already in Use
Filed under Docker, Networking
Learn how to resolve the “address already in use” issue in Docker.
Get a List of All IP Addresses on a LAN
Filed under Networking
Learn three approaches to scanning a LAN to get a list of all IP addresses on a LAN.
Monitoring HTTP Requests on a Network Interface in Real Time
Filed under Networking, Processes
Learn how to use programs to monitor network interfaces in real-time.
Changing the Primary Monitor in X and Wayland
Filed under Administration
Learn about changing the primary monitor in X and Wayland.
How to Read Corresponding Lines From Two Input Files
Filed under File Viewing
Learn how to read corresponding lines from two input files.
How to Ignore File Properties When Using rsync
Filed under Administration, Files
Learn how to add particular options to rsync to make it ignore specific file properties.
Convert Binary Data to Hexadecimal
Filed under File Conversion
Explore different ways of converting binary data into hexadecimal format.
Using rsync to Transfer Files
Filed under Files, Networking
Explore several examples of using rsync in different scenarios.
Terminal Shortcuts and How to Unfreeze the Terminal After Pressing Ctrl-S
Filed under Administration, Processes
Learn about terminal shortcuts in Linux.
Processing YAML Content With yq
Filed under File Editing
Explore the yq command.
Primary and Secondary Groups in Linux
Filed under Administration
Learn about primary and secondary groups in Linux and their differences.
Entirely Detach a Process From Terminal
Filed under Processes
Explore several ways to run programs detached from the terminal.
Introduction to Flatpak in Linux
Filed under Administration, Installation
Learn how to work with Flatpak, a package manager with many advantages.
Write to a Text File in Bash
Filed under File Editing
Explore various ways to utilize the feature of writing to a file directly from a Bash terminal.
Introduction to Snaps in Linux
Filed under Installation, Processes
Learn about the Snap ecosystem and its main components.
How to Use iPerf to Measure Network Performance
Filed under Networking, Processes
Learn how to initiate a server and run iPerf on the client machine to measure network performance and bandwidth.
Count Occurrences of Character per Line/Field on Linux
Filed under File Searching
Explore different ways of counting characters in a line.
Monitoring Linux File Access With auditd
Filed under Administration, Files
Explore the comprehensive auditd package in Linux.
Reading a File Line by Line in Bash Script
Filed under File Viewing
Learn how to create a Bash script that reads a text file line by line and displays each line on the screen.
Checking if a File Is Executable in Bash
Filed under Files
Learn how to check if the Linux system regards a file as executable.
Creating a Simple Select Menu in the Shell Script
Filed under Scripting
Learn how to create a menu with a list of options in Bash.
How to Convert Videos to GIFs Using FFmpeg
Filed under File Conversion
Learn how to convert videos to gifs using the command-line FFmpeg tool.
Monitor Resource Usage of a Single Process
Filed under Administration, Processes
Explore ways to view and access the system resource usage in the Linux system.
How to Set or Change System Hostname in Linux
Filed under Administration
Learn to manage the system’s hostname.
Batch Converting Image Formats on Linux
Filed under File Conversion
Explore different ways to batch convert image files from one format to another.
Attach a Terminal to a Detached Process in Linux
Filed under Processes
Explore the general idea of attached and detached processes.
Using FTP Command to Transfer Files
Filed under Networking
Learn how to connect to an FTP server, run several commands, and send files to/from the FTP server.
The Exec Family of Functions
Filed under Processes
Learn what each member of the exec() family of functions does and the differences between them.
Checking the Battery’s Status via the Terminal
Filed under Administration
Learn some ways to check the battery status (charging status and power percentage) using commands.
Log the Memory Consumption on Linux
Filed under Administration
Learn about the different ways to monitor memory usage.
How to Obtain Basic Information About System and Disk Partitions?
Filed under Administration, Filesystems
Explore ways to provide information about the Linux operating system.
Linux Setuid Programs and Their User IDs
Filed under Administration, Processes
Explore the setuid programs with the ability to do privileged work for ordinary users.
Start, Stop, and Restart Nginx on Linux
Filed under Administration
Learn to start, stop and restart the Nginx server in Linux.
Safe Use of eval in Bash
Filed under Scripting
Explore the applications of eval.
Linux Bash Equivalent to the Windows Batch Pause
Filed under Processes
Explore ways to get the behavior of the Windows Batch pause in Linux.
Getting MongoDB on Linux to Listen to Remote Connections
Filed under Networking
Learn how to configure the remote access of MongoDB.
Sending JSON HTTP Request Body in Terminal
Filed under Web
Learn how to send JSON objects as the request body correctly.
Raise an Error in Bash Script
Filed under Scripting
Explore different ways we can raise an error and exit from the script.
What Is rc and What Are rc Files?
Filed under Filesystems
Explore rc, its meaning, and how it could hint at the contents of a file or directory.
Using Iconv to Convert From UTF-16LE to UTF-8
Filed under Files
Learn how to check encoding schemes for a file and use the iconv tool to convert files to another encoding format.
How to Get the Command Line Args Passed to a Running Process on Unix/Linux Systems?
Filed under Processes
Explore two different ways of getting the list of arguments that we pass to a running process.
Comparing Words in Two Files in Linux
Filed under File Editing
Learn how to compare two files, word by word, on the Linux command line.
Extract Duration From Video File in Linux
Learn how to extract the duration from video files using different tools.
Disassembling Machine Code in Linux
Filed under Administration
Learn how we can read machine code in Linux.
Managing gnome-terminal From the Command Line
Filed under Administration
Learn to effectively run bash commands using gnome-terminal’s tabs.
The Exit Status of Piped Processes
Filed under Processes
Learn several ways of getting the exit status of commands that are piped to another.
Check and Monitor Active GPU in Linux
Filed under Administration
Explore options to check and monitor the active video card of a Linux system.
Download a Directory and Subdirectories Using wget
Filed under Web
Learn all about the essentials for downloading directories and subdirectories recursively on the web.
Find Out What Symbols Are Exported From a DLL File on Linux
Filed under Administration
Learn how to use the winedump command-line tool that is part of the wine tool to show exported symbols of a DLL.
Reading/Parsing Properties File in a Linux Script
Filed under Scripting
Learn how to parse a properties file.
Find Out When a Linux System Was Installed
Filed under Administration, Installation
Explore many ways of checking how old a Linux system is.
Inserting a Newline in a Variable in Bash
Filed under Scripting
Learn how to insert newlines to a variable in bash.
Iterating Over Each Line of ls -l Output
Filed under Scripting
Learn about the different ways we can iterate over the output of the ls command.
Request a File Without Saving in Linux
Filed under Web
Explore different approaches to request a file in Linux without saving it locally.
Efficiently Delete a Large Directory in Linux
Filed under Files
Discuss methods for efficiently deleting a directory in Linux.
Concatenate Files With a Separator
Filed under Files
Learn about the different ways we can concatenate files.
Remove Jenkins Completely From Linux
Filed under Installation
Learn different ways to uninstall Jenkins from Linux.
Find Open Ports in Linux
Filed under Networking
Learn about Linux open ports and their importance in minimizing security threats.
Recover Lost and Deleted Data in Linux
Filed under Files, Filesystems
Explore many ways data can be lost, damaged, or deleted and discuss diagnosis, repair, and recovery in all cases.
How Do Linux Binary Installers (.bin, .sh) Work?
Filed under Installation
Learn how can we install an entire software package that has hundreds of files.
inotify and Solving the “upper limit on inotify watches reached!” Error
Filed under Processes
Explore the inotify Linux subsystem, used by many applications.
Get External IP Address in a Shell Script
Filed under Networking
Explore how to check a machine’s external IP address via a Bash shell script.
Text Objects in Vim
Filed under File Editing
Learn about text objects and how to use them in the Vi editor.
Find All Storage Devices Attached to a Linux Machine
Filed under Administration, Filesystems
Explore a few ways to list the storage devices attached to a Linux system.
Create a Directory and Set Permissions in a Single Command
Filed under File Permissions
Learn how to create a directory and set permissions in a single command with the help of the mkdir and install commands.
Using grep on a Continuous Stream
Explore how grep can be used with continuous streams of data.
Linux inodes
Filed under Filesystems
Explore inodes and their major role in filesystems.
Restrict Commands for SSH Users
Learn how to restrict the commands a logged-in user can run in SSH session.
Getting Data Locally From a Remote SSH Session in Linux
Filed under Networking, Security
Explore different ways to get data back to the client after and during an SSH session to a server.
Expand a Relative Path in Bash
Filed under Scripting
Learn about absolute and relative paths and how we can expand them in bash scripts while accounting for symlinks as well.
Get Bash Script Location From Within the Script
Filed under Scripting
Explore acquiring a Bash script’s location from within the script.
Escaping Characters in Bash
Filed under Scripting
Discuss character escaping in Bash.
Debugging Programs Using the GDB Command
Explore debugging with the GNU Project Debugger.
Testing Bash Scripts With Bats
Filed under Scripting
Learn how to use the Bats library for testing Bash scripts.
How to List Last Five Modified Files in Linux
Filed under File Viewing, Filesystems
Learn how to combine the ls command with head to show us the five last modified files in a directory.
Get Unique Values from an Array in Bash
Filed under File Searching, Scripting
Learn the ways to sift out duplicates from our arrays, so they only include unique entries and no duplicates.
Understanding and Ignoring Errors in Bash
Filed under Processes
An overview of errors in Bash.
Tcpdump: Localhost to Localhost
Filed under Networking
Learn why the localhost is the default name of our system and how it helps test applications through the loopback network interface.
Understanding the /dev Directory in Linux
Filed under Administration, Filesystems
Explore the /dev directory and the contents that fall under it.
Using 2D Arrays in Bash Under Linux
Filed under Scripting
Explore different Bash implementations for 2D arrays, along with their downsides.
Adding a Disk in LVM
Filed under Filesystems
Learn how to add a new physical disk to our storage pool and use the added storage to grow our existing filesystem.
“No such file or directory” Error When Executing a Binary
Filed under Administration
Learn what could be causing the “No such file or directory” error when we try to execute a binary of a program.
Meaning of Tilde in Linux Bash
Filed under Filesystems
Explore the Bash feature called tilde expansion.
Using printf and echo in Linux
Filed under Scripting
Explore the usage of echo and printf commands in Linux and Unix-based systems.
What’s the Difference Between sh and Bash?
Filed under Administration
Explore the current and installed shells in the Linux system.
Understanding Stale File Handles in Linux
Filed under Filesystems
Explore stale file handles in Linux.
Is My Disk SSD or HDD?
Filed under Administration
Explore how to reveal the hardware specifics of our storage.
Count Occurrences of a Char in a Text File in Linux
Filed under File Searching
Learn about different approaches in Linux to find the character count in a text file.
Manipulating Images With ImageMagick Command-Line Tools
Filed under File Conversion, File Editing
Learn some of the basic capabilities that ImageMagick provides for manipulating images via the command line.
Aborting a Shell Script if Any Command Fails
Learn how to use set -e to make bash scripts terminate immediately when some error occurs.
How To Compare Two Directories on Linux
Filed under File Searching, File Viewing
Explore several ways of how directories can be compared on Linux.
Print Lines Between Two Patterns in Linux
Learn how to extract data lines between two patterns.
Set Up cURL to Permanently Use a Proxy
Filed under Web
Learn how to make curl permanently send all requests through a proxy server.
Introduction to Bash Globbing
Filed under File Searching, File Viewing
Learn about the process of filename expansion, also known as globbing.
Specify an Editor for Crontab
Filed under Administration
Learn how to make crontab -e use our favorite editor.
Mapping Hostnames with Ports in /etc/hosts
Filed under Administration, Networking
Learn how to map hostnames to specific ports.
Why Should We Disable Root-Login Over SSH?
Filed under Administration, Security
Learn why it’s not a good idea to enable root logins over SSH.
Filtering Files Copied When Using rsync
Filed under File Searching, File Viewing
Learn how to use the include option to filter the files transferred when using rsync.
Using the find -exec Command Option
Filed under Administration, File Searching
Learn how to use the -exec argument when running the find command in Linux.
Extracting a WAR File in Linux
Filed under File Compression, Files
Explore several alternatives for extracting and viewing the contents of WAR files on the Linux platform.
Here Document and Here String
Filed under Scripting
Learn the syntax for heredoc and herestring.
Partitioning Disks in Linux
Filed under Filesystems
Learn different ways of partitioning disks in Linux.
Defining a Bash Variable With or Without ‘export’
Filed under Scripting
Learn about the differences between defining a bash variable with export and without export.
Why Do We Use su – and Not Just su?
Filed under Administration
Explore the main differences between su and su – commands in Linux.
Managing Environment Variables in Linux
Filed under Administration, Processes
Learn how we can manage environment variables.
Execute Bash Script Directly From a URL
Learn how to execute a shell script directly from a URL using curl and wget.
Process Memory Management in Linux
Filed under Processes
Learn how we can use the different memory measurements of Linux processes.
Understanding the time Command
Filed under Processes
Learn how to interpret the output of the time command.
How Do so (Shared Object) Filenames Work?
Filed under Files, Filesystems
Explore how so (shared-object) files are organized in a Linux filesystem.
Decompressing Files in Linux with Gunzip
Filed under File Compression, Files
Learn how to use gunzip to decompress gzip-compressed archives.
Linking to Files in Linux
Filed under Files
Learn four forms of ln command to create symbolic links.
Kill Commands in Linux
Filed under Processes
Learn how to use the kill command to terminate processes.
Soft-Delete Files from the Terminal
Filed under Files
Learn how to soft-delete (trash) files in Linux systems.
How Do I Zip/Unzip on the Unix Command Line?
Filed under File Compression, Files
Explore the most popular archiving software in Unix.
Linux Commands: Using Secure Shell (ssh)
Filed under Security
Learn how ssh can provide secure communication under many different circumstances.
Modify Files in Linux using vi, nano or emacs
Filed under File Editing, Files
Explore file editors we can use to modify or create a new file in Linux.
How to Pass Command Line Arguments to Bash Script
Filed under Scripting
Explore different ways of passing command-line arguments to the bash script during run time
A Guide to Yum and Apt
Filed under Installation
Explore the concepts related to YUM and APT, as well as the practical usage of their main commands.
Guide to Linux jq Command for JSON Processing
Filed under Web
Explore the capabilities that jq provides for processing and manipulating JSON via the command line.
Linux Commands – top
Filed under Processes
Learn how to use top command in Linux.
Linux Commands – Parallel Downloading with wget
Filed under Web
Explore different ways in which we can download multiple files in parallel using wget.
Creating Symbolic and Hard Links with Linux Commands
Filed under Filesystems, Scripting
Learn about the hard and symbolic/soft links used in all Unix-based operating systems.
Copy a File to Multiple Directories on Linux
Filed under Files
Explore how to copy a file to multiple directories for both predefined and wildcard inputs on Linux.
How Long a Linux Process Has Been Running
Filed under Processes
Learn about the ps command-line utility to find out how long a particular process is running.
Baeldung on Scala
- All
- Scala Collections (4)
- Testing (2)
- Scala Syntax (1)
- Scala Strings (1)
- Scala Concurrency (1)
- Scala Basics (1)
- Akka (1)
Different Ways To Iterate Over Collections in Scala
Filed under Scala Collections
Explore how to iterate over collections in Scala using foreach and for comprehension.
How to Check If Code Compiles in ScalaTest
Filed under Testing
Learn how to test whether a Scala snippet compiles using Matchers or Assertions.
Understanding the Differences: reduceLeft, reduceRight, foldLeft, foldRight, scanLeft, and scanRight in Scala
Filed under Scala Collections
Learn about six powerful functions of Scala language for aggregating the elements of a collection.
Get a Subarray in Scala
Filed under Scala Collections
Learn how to obtain subarrays in Scala, exploring two primary methods: the slice() function and the combination of drop() and take().
Introduction to Parallelism and Parallel Collections
Filed under Scala Concurrency
Explore some theoretical concepts of parallel computing applied with Scala.
Testing Akka Actors
Filed under Akka
Explore how we can test Actors to ensure that they behave as expected.
Usages of Underscore (_) in Scala
Filed under Scala Syntax
Explore different ways to use the Scala underscore.
String Interpolation in Scala
Filed under Scala Strings
Explore different ways of using string interpolation in Scala.
Guide to Scala Collections
Filed under Scala Collections
Learn about the Scala’s collection library.
Introduction to Testing With ScalaTest
Filed under Testing
Learn about ScalaTest, a comprehensive testing framework for Scala.
A Guide to Sorting in Scala
Filed under Scala Basics
Explore different methods for sorting data in Scala.
Baeldung on Computer Science
- All
- Networking (143)
- Machine Learning (107)
- Algorithms (86)
- Security (78)
- Programming (75)
- Math and Logic (67)
- OS (60)
- Deep Learning (50)
- Software Architecture (44)
- Data Structures (36)
- Artificial Intelligence (34)
- Trees (33)
- Computer Vision (33)
- Sorting (23)
- Graphs (22)
- Core Concepts (20)
- Searching (17)
- Latex (17)
- Graph Traversal (16)
- Path Finding (12)
- Concurrency (12)
- Data Science (7)
- Research (5)
- Methodology (5)
- Web (3)
- Graph Theory (3)
Difference Between Parallel and Distributed Computing
Filed under Software Architecture
Learn about parallel and distributed computing and discover the differences between these two paradigms.
What are Vector Databases?
Filed under Data Structures
Learn how and where vector databases are used.
An Introduction to Gemini by Google DeepMind
Filed under Deep Learning
Explore the Gemini model by Google DeepMind.
Softmax vs. Log Softmax
Filed under Deep Learning, Math and Logic
Learn about Softmax and Log Softmax as activatin functions in neural networks.
Log-Structured File Systems
Filed under OS
Explore the first Log-Structured File System (LFS).
Internetwork Packet Exchange Explained
Filed under Networking
Explore an important networking protocol, the Internetwork Packet Exchange (IPX).
What Is Kanban?
Filed under Programming
Explore Kanban as a dynamic project management approach.
What Is Noise Contrastive Estimation Loss?
Filed under Deep Learning, Machine Learning
Explore the NCE loss and how it is used in training probabilistic models.
Tournament Selection in Genetic Algorithms
Filed under Algorithms
Explore the Tournament Selection algorithm.
Wi-Fi 6 Explained
Filed under Networking
Explore a comprehensive introduction to Wi-Fi 6.
ReLU vs. LeakyReLU vs. PReLU
Filed under Deep Learning, Machine Learning
Explore the family of ReLU activation functions.
How to Calculate the VC-Dimension of a Classifier?
Filed under Machine Learning
Explore the VC dimеnsion that sеrvеs as a fundamеntal concеpt in undеrstanding thе complеxity of lеarning algorithms and thеir gеnеralization capabilities.
How to Handle Missing Data in Logistic Regression?
Filed under Machine Learning
Learn about missing data in logistic rеgrеssion and approaches to addressing this issue.
How to Compare Two Algorithms Empirically?
Filed under Research
Learn how to empirically compare two algorithms, looking beyond computational complexity to understand their real-world performance.
How Is a Quantum Computer Faster Than a Regular Computer?
Filed under Software Architecture
Explore the potential behind quantum computing.
Why Does TCP/IP Use Big-Endian Encoding?
Filed under Networking
Find out why TCP/IP uses big-endian encoding.
Systems Design: Interface Segregation Principle
Filed under Software Architecture
Learn how the Interface Segregation Principle enhances the design of software systems by promoting lean interfaces.
Feature Driven Development
Filed under Methodology
Explore Feature-Driven Development, its operational processes, its lifecycle and the challenges and limitations it entails.
How to Plot Logistic Regression’s Decision Boundary?
Filed under Machine Learning, Math and Logic
Learn how to visualize the logistic regression’s decision boundary.
How Does Rolling Code Work?
Filed under Security
Explore the concept of rolling code.
Saturating Non-Linearities
Filed under Deep Learning, Machine Learning
Explore non-linearities – a key component of neural networks.
Latent and Embedding Space
Filed under Artificial Intelligence
Explore the concept and applications of the latent and embedding spaces.
Data Access Layer Explained
Filed under Software Architecture
Explore the general architecture of an application and the data access layer (DAL) in particular.
Euler Circuits and Paths: Fleury’s Algorithm
Filed under Graph Traversal, Path Finding
Explore the Fleury’s algorithm and its real-world applications.
Partially Mapped Crossover in Genetic Algorithms
Filed under Algorithms
Explore PMX as one of the most potent genetic operators that are used in GAs for solving search and optimization problems.
What Benefit Is Conferred by TCP Timestamp?
Filed under Networking
Explore the benefits of using the TCP timestamp.
LaTeX vs. Word: Main Differences
Filed under Latex
Explore the differences between Microsoft Word and LaTeX.
Matrix Chain Multiplication Using Dynamic Programming
Filed under Math and Logic, Programming
Learn to multiply a chain of matrices using dynamic programming.
Neural Networks: Strided Convolutions
Filed under Machine Learning
Explore the concept of strided convolutions in neural networks.
What Are Requirements Traceability Matrixes?
Filed under Programming
Learn why and how Requirement Traceability Matrices (RTMs) are the cornerstone of successful software projects.
Length Extension Attack
Filed under Networking, Security
Explore the Length Extension Attack.
Confidence Intervals
Filed under Data Science, Math and Logic
Learn about confidence intervals.
What Is a Software Build?
Filed under Programming, Software Architecture
Explore the definition of a software build and the reasons to use frameworks for it.
Draw Timeline in LaTeX
Filed under Latex
Learn about drawing the timeline in LaTeX.
What is the Cost of Many TIME_WAITs on the Server Side?
Filed under Networking, Software Architecture
Explore the cost of many TIME_WAITs on the server side.
How to Rotate a Two-Dimensional Array
Filed under Math and Logic
Explore algorithms for rotating two-dimensional matrices.
How Attackers Exploit robots.txt?
Filed under Security, Software Architecture
Learn what a robots.txt file is and how attackers exploit it to learn about the structure of the directories of a web server.
How Does Gratuitous ARP Work?
Filed under Networking
Explore the concept of gratuitous ARP and understand what it’s used for.
Introduction to the Student’s t-distribution
Filed under Data Science
Learn about the Student’s t-distribution and how it helps us deal with uncertainty and variability in cases where data is frequently limited or sparse.
Differences Between Byte-addressed and Word-addressed Memory
Filed under OS
Learn how the addressing can affect various aspects of an operating system, such as byte ordering and memory access patterns.
Networking: Rogue Access Points and Evil Twins
Filed under Networking, Security
Learn about rogue access points and evil twin access points.
Differences Between REST and RPC
Filed under Programming, Software Architecture
Explore the differences between REST and RPC, uncovering their histories, principles, advantages, and disadvantages.
Single SSL Certificate on Multiple Servers
Filed under Networking
Explore how to use a single SSL certificate on multiple servers.
Unit Digit in Exponentiation: How to Compute It?
Filed under Math and Logic
Learn how to compute the unit digit in exponentiation.
Introduction to Message Queues
Filed under Data Structures, Networking
Learn how to use message queues for efficient communication.
How to Choose a Default Port Number for a New Network Service?
Filed under Networking
Learn how to choose a port for a new network service.
Encryption: ECDSA vs. RSA Keys
Filed under Networking
Explore two asymmetric encryption algorithms: Elliptic Curve Digital Signature Algorithm (ECDSA) and the Rivest-Shamir-Adleman algorithm (RSA).
How to Do Early Stopping?
Filed under Machine Learning
Learn about early stopping.
How Does Proof of Stake Work?
Filed under Software Architecture
Learn how staking is used in blockchain networks.
An Introduction to Graph Neural Networks
Filed under Deep Learning
A comprehensive introduction to GNNs, exploring their architecture and training, as well as various applications.
Difference Between Full, Complete, and Perfect Tree
Filed under Trees
Explore the essential properties of full binary trees, complete binary trees, and perfect binary trees.
Access to a Site on localhost from Remote
Filed under Networking
Explore possible solutions to accessing a localhost site from a remote device.
How to Measure Sortedness?
Filed under Sorting
Learn how to define and compute the sortedness of an array.
Differences Between an NMS and an EMS
Filed under Networking
Explore the differences between NMS and EMS.
What Are Cryptojacking Attacks?
Filed under Security
Learn about cryptojacking attacks and their potential dangers.
Online Transaction Processing vs. Online Analytical Processing
Filed under Software Architecture
Explore OLTP and OLAP.
Introduction to AI Ethics
Filed under Artificial Intelligence
Explore many practical and theoretical considerations when dealing with AI ethics.
What Is Singular Value Decomposition?
Filed under Machine Learning, Math and Logic
Explore the relevance of and how to compute an SVD of a matrix.
What Are Broadcast Storms?
Filed under Networking
Explore the concept of broadcast storms.
Software Testing: Boundary Value Analysis
Filed under Programming
Explore an interesting method of testing the software – boundary value analysis (BVA).
Operating Systems for IoT
Filed under OS
Learn how operating systems for IoT play a crucial role in enabling the functionality and management of IoT devices.
Typed vs. Untyped Languages
Filed under Programming
Explore the difference between typed and untyped languages.
Creating a Curriculum Vitae with LaTeX
Filed under Latex
Learn a fast way to create a CV with LaTeX using the ModernCV package.
Focal Length and Intrinsic Camera Parameters
Filed under Computer Vision
Explore the concept of focal length and its relationship with the camera intrinsic matrix.
What Is Bandwidth Throttling?
Filed under Networking
Learn about bandwidth throttling, exploring its methods, motivations, types, impacts on various applications, and how to mitigate bandwidth throttling and ensure fair access for end-users.
Collision Domain vs. Broadcast Domain
Filed under Networking
Explore the differences between collision and broadcast domains.
Understanding the Monte Carlo Simulation
Filed under Algorithms
Explore the Monte Carlo Simulation algorithm.
TCP Socket No Connection Timeout
Filed under Networking
Learn why TCP sometimes keeps the connection for so long that there seems to be no timeout.
The Complexity of Binary Search
Filed under Searching
Learn about the complexity of binary search.
Bluetooth vs. Wi-Fi
Filed under Networking
Explore the general idea behind Bluetooth and Wi-Fi.
Successive Refinement
Filed under Programming
Learn what successive refinement is in coding and why it has so much significance.
Blockchains: What Is Proof of Work?
Filed under Networking, Software Architecture
Learn about Proof of Work in the blockchain technology.
Presenting Research Results in a Paper
Filed under Research
Learn how to present research results in a paper.
The C Parameter in Support Vector Machines
Filed under Machine Learning
Learn about the importance of the C parameter in SVM.
How to Design Simulation Experiments?
Filed under Research
Learn how to design a simulation experiment.
An Introduction to Search Engine Optimization
Filed under Web
Explore the definition of SEO, its importance, key components, and best practices.
Differences Between SQL and NoSQL
Filed under Programming
Explore the differences between SQL and NoSQL databases.
Finding the Origin of Increased Latency
Filed under Networking
Explore network latency, its origins, its impacts on different kinds of applications, and how to reduce it.
How Does Face Recognition Work?
Filed under Computer Vision
Explore face recognition and its importance in today’s machine-learning era.
Flash Memory: NOR vs. NAND
Filed under OS
Explore NOR and NAND flash memory.
Deterministic vs. Stochastic Policies in Reinforcement Learning
Filed under Deep Learning
Explore a deterministic policy that maps each state to a single action and a stochastic policy that maps each state to a probability distribution over actions.
The Optimal Page Replacement Algorithm
Filed under OS
Explore the OPT algorithm that minimizes page faults in theory and is a benchmark for evaluating page replacement algorithms in practice.
The Readers Writers Problem
Filed under Concurrency
Learn about the Readers-Writers Problem – a classic synchronization challenge that explores the coordination of multiple reader and writer threads accessing a shared resource.
Why Does RTP Use UDP Instead of TCP?
Filed under Networking
Learn why the Real-time Transport Protocol uses UDP instead of TCP, and why TCP is not suitable for real-time communication.
The Printer-Spooler Problem
Filed under Concurrency
Explore the Printer-Spooler problem, which provides valuable insight into the challenges of concurrency control and the necessity of synchronization mechanisms in computer systems.
How to Narrow Down a Research Problem?
Filed under Research
Explore the significance of a good research question, emphasizing its role in refining the scope and aligning research objectives.
Channelization Protocols Explained
Filed under Networking
Learn how channelization protocols play a critical role in optimizing the utilization of communication channels in various systems.
How to Write a Good Literature Review?
Filed under Research
Learn about writing literature reviews.
Priority Inversion
Filed under OS
Explore priority inversion in scheduling processes and how to avoid it.
Spam Explained
Filed under Security
Explore a technique spammers use to steal sensitive data and launch cyber attacks: spam.
Optical Flow: Lucas-Kanade Method
Filed under Computer Vision
Explore the Lucas-Kanade method, a fundamental technique in computer vision.
What and Where Are the Memory Stack and Heap?
Filed under Data Structures, OS, Programming
Explore stack and heap memory in OS.
The Bounded-Buffer Problem
Filed under Concurrency, OS
Explore the Bounded-Buffer Problem.
Traveling Salesman Problem: Exact Solutions vs. Heuristic vs. Approximation Algorithms
Filed under Graph Traversal, Path Finding, Searching
Explore the travelling salesman problem, including its definition, mathematical formulations, and several algorithms for solving it.
Practical Examples of the Big O Notation
Filed under Core Concepts
Explore several examples of different classes of the asymptotic complexity of algorithms.
The Different Types of Backups in Computing
Filed under Security
Explore different types of backups in computing.
IPV6: Stateful vs. Stateless
Filed under Networking
Explore the differences between the stateful and stateless addressing modes in IPv6.
Security: What Does It Mean to “Burn a Zero-Day”?
Filed under Security
Explore the term “burn a zero-day” and its implications in the realm of cybersecurity.
What Is Gradient Orientation and Gradient Magnitude?
Filed under Computer Vision
Explore gradient orientation and magnitude and their applications.
How to Analyze Loss vs. Epoch Graphs?
Filed under Machine Learning
Learn how to analyze loss vs. epoch graphs.
Introduction to Macros in Latex
Filed under Latex
Learn how to work with macros in LaTeX.
What Are Sessions? How Do They Work?
Filed under Web
Explore web sessions in detail.
Oligomorphic vs. Polymorphic vs. Metamorphic Viruses
Filed under Security
Explore various types of viruses in detail, learn about their differences, and investigate how to detect and prevent them.
Transport Layer: Multiplexing and Demultiplexing
Filed under Networking
Explore multiplexing and demultiplexing techniques.
Virtual Memory: Second Chance Replacement
Filed under OS
Explore a second chance replacement as an efficient and versatile page replacement algorithm that effectively manages memory resources in various scenarios.
Distributed Systems: Thin and Thick Clients
Filed under Networking, Software Architecture
Explore the differences between thin and thick clients in distributed systems.
Microservices vs. Monolithic Architectures
Filed under Software Architecture
Explore microservices and monolithic software architecture.
What Is Ad Hoc Testing?
Filed under Programming
Learn about an unstructured and quick-to-perform testing technique: ad hoc testing.
Basics of One-time Passwords
Filed under Security
Explore a modern security mechanism used for authentication: one-time password (OTP).
The Ostrich Algorithm
Filed under Concurrency, OS
Explore the Ostrich algorithm, how it works, and its advantages and disadvantages for deadlock prevention.
Difference Between MTU and MSS
Filed under Networking
Explore difference between MTU and MSS in the TCP/IP protocol stack.
Federation in Computing
Filed under Core Concepts
Explore the concept of the federation in computing that enables organizations and systems to collaborate effectively while maintaining autonomy.
Database Sharding vs. Partitioning
Filed under Core Concepts
Explore two methods for splitting databases into parts to manage them efficiently: sharding and partitioning.
What Is Demand Paging?
Filed under OS
Explore a memory management technique: demand paging.
What Is Human-Machine Integration?
Filed under Artificial Intelligence
Explore HMI – a process of combining human expertise with machines to improve individual and industrial automation.
Scheduling: Highest Response Ratio Next
Filed under Algorithms, OS
Learn about the HRRN (Highest response ratio next) scheduling policy.
UML State Diagrams Explained
Filed under Core Concepts
Learn about the components and syntax of a UML state diagram.
What Are Brute Force Attacks?
Filed under Security
Explore brute-force attacks in detail.
Domains of Protection in OS
Filed under Security
Explore three crucial protection domains in operating systems: memory protection, process isolation, and privilege levels.
Switches: Managed vs. Unmanaged
Filed under Networking
Explore the differences between managed and unmanaged switches.
Patience Sort Algorithm
Filed under Sorting
Explore the patience sort algorithm.
How Do Artificial Immune Systems Work?
Filed under Artificial Intelligence
Learn about Artificial Immune Systems.
RSTP and STP Protocols
Filed under Networking
Explore the key differences between RSTP and STP, including their operation, features, and benefits.
Eventual Consistency vs. Strong Eventual Consistency vs. Strong Consistency
Filed under Software Architecture
Explore topics of consistency, strong eventual consistency, and strong consistency depending on the specific requirements and constraints of the distributed system.
The Spiral Model: An Overview
Filed under Methodology
Explore the spiral model which is a widely used and effective process model for managing software development.
Ukkonen’s Suffix Tree Algorithm
Filed under Data Structures, Searching
Explore Ukkonen’s algorithm for building suffix trees in linear time.
Key Differences Between NetFlow and sFlow
Filed under Networking
Explore NetFlow and sFlow, popular protocols for monitoring network traffic.
Mobile Networking: Snooping TCP
Filed under Networking, Security
Explore a technique used to inspect and analyze TCP traffic on a network: snooping TCP.
Understanding Passkeys
Filed under Security
Explore an alternative to traditional passwords: passkeys.
Epoch or Episode: Understanding Terms in Deep Reinforcement Learning
Filed under Deep Learning
Learn the difference between episodes and epochs.
The Elgamal Cryptography Algorithm
Filed under Algorithms, Core Concepts
Learn about the Elgamal cryptographic algorithm.
Q-Learning vs. Deep Q-Learning vs. Deep Q-Network
Filed under Deep Learning, Machine Learning
An overview of reinforcement learning, including its definition and purpose.
How MAC Flooding and Cloning Attacks Work?
Filed under Networking, Security
Explore how a switched LAN network works and how a MAC Flooding and a MAC Spoofing attack work.
An Introduction to VRRP and HSRP Protocols
Filed under Networking
Explore Virtual Router Redundancy Protocol (VRRP) and Hot Standby Router Protocol (HSRP).
Publisher-Subscriber Model
Filed under Software Architecture
Explore the publisher-subscriber model, how it works, and some common use cases for this architectural pattern.
Multiple Access with Collision Avoidance
Filed under Networking
Explore Multiple Access with Collision Avoidance (MACA) protocol.
Introduction to Landmark Detection
Filed under Computer Vision
Learn about landmark detection.
An Introduction to Peer-to-Peer Network Model
Filed under Networking
Learn about the P2P model, its features, pros, cons, and diverse applications.
Finding Strongly Connected Components: Tarjan’s Algorithm
Filed under Graphs
Learn about the Tarjan’s algorithm for finding strongly connected components in directed graphs.
Tournament Sort Algorithm
Filed under Sorting
Explore the tournament sort algorithm.
JPEG Compression Explained
Filed under Algorithms
Learn how JPEG compression works.
Network Flow: Edmonds-Karp Algorithm
Filed under Networking
Learn about the Edmonds-Karp algorithm for finding the maximum flow in network graphs.
An Introduction to Management Information System (MIS)
Filed under Software Architecture
Explore Management Information Systems as a crucial component of modern business operations.
What Is Neural Style Transfer?
Filed under Computer Vision, Machine Learning
Learn about the algorithm of neural style transfer.
Bandwidth vs. Data Rate vs. Throughput
Filed under Networking
Explore bandwidth, data rate, and throughput.
What Is Middleware?
Filed under Security
Explore the basic concept of middleware, along with an example.
How Does Meet-in-the-Middle Attack Work?
Filed under Security
Learn about the meet-in-the-middle attacks (MITM).
The Difference Between Connection-Oriented and Connectionless Protocols
Filed under Networking
Learn about the differences between connection-oriented and connectionless protocols, their characteristics, and their use cases.
Routing: IGP and EGP Protocols
Filed under Networking
Explore interior and external gateway protocols.
Simulated Annealing Explained
Filed under Algorithms
Learn about the Simulated Annealing algorithm.
Explaining the Context Design Pattern
Filed under Programming, Software Architecture
Explore several patterns that use the idea of context.
Guide to Splay Trees
Filed under Trees
Learn about the Splay Tree data structure.
Distributed Systems: The Byzantine Generals Problem
Filed under Networking, Security
Learn the origins of the Byzantine generals problem and its commonly deployed solutions.
Different Types of Firewalls
Filed under Networking, Security
Explore the types of firewalls.
Data Storage: What Does CRUD Means?
Filed under Core Concepts
Learn about CRUD in the context of data storage.
What Does Learning Rate Warm-up Mean?
Filed under Machine Learning
Learn about learning rate warm-up in machine learning.
Telnet vs. SSH
Filed under Networking
Explore two popular network protocols: Telnet and Secure Shell Protocol (SSH).
What Are Expert Systems?
Filed under Artificial Intelligence
Learn about expert systems, their types, working mechanism, applications, advantages, and limitations.
What Are Datagram Networks?
Filed under Networking
Learn about the datagram networks.
All-Pairs Shortest Paths: Johnson’s Algorithm
Filed under Graph Traversal, Path Finding
Learn about the Johnson’s algorithm.
What Is VoIP?
Filed under Networking
Learn about Voice over Internet Protocol.
Dominating Sets and Domination Numbers in Graph Theory
Filed under Graphs
Learn about the dominating sets and the domination number of graphs.
SOAP vs. WSDL
Filed under Networking, Programming
Explore the difference between WSDL and SOAP.
Introduction to Triplet Loss
Filed under Computer Vision, Machine Learning
Learn about the triplet loss function.
Network Management Principles With SNMP
Filed under Networking
Learn how Simple Network Management Protocol (SNMP) works.
Networking: Stop-and-Wait Protocol
Filed under Networking
Explore the stop-and-wait ARQ mechanism.
Selective Repeat Protocol
Filed under Networking
Learn about a protocol used for the reliable delivery of data packets in networks: Selective Repeat Protocol (SRP).
How Do Siamese Networks Work in Image Recognition?
Filed under Computer Vision, Deep Learning
Learn about the Siamese Networks, a class of deep learning architectures that are employed by designing two identical sub-networks.
Software Engeneering: What Is a Shim?
Filed under Software Architecture
Explore the shim concept in software engineering with an example.
Level-order Traversal of Binary Tree
Filed under Graph Traversal, Trees
Learn about the level-order traversal of binary trees.
Automatic Private IP Addressing Explained
Filed under Networking
Learn about automatic private IP addresses.
Factory Method vs. Factory vs. Abstract Factory
Filed under Programming, Software Architecture
Learn about the Factory pattern and all its flavors.
Wireless Disassociation Attacks
Filed under Networking, Security
Learn how an attacker could launch wireless disassociation attacks on devices connected to a network.
Indexing: Inverted Index
Filed under Data Structures
Explore an inverted index concept.
Switching Techniques in Computer Networks
Filed under Networking
Explore three popular network-switching techniques: circuit, packet, and message switching.
Digital Data Communications Protocol
Filed under Networking
Learn about the DDCMP.
What Is the Belady’s Anomaly?
Explore Belady’s anomaly and an example demonstrating its existence in computer memory.
Neural Networks: Pooling Layers
Filed under Machine Learning
Learn about pooling, a machine-learning technique widely used to reduce input size.
What Is LaTeX?
Filed under Latex
Learn what LaTeX is and how it works.
Node Degrees
Filed under Graphs
Learn the definitions of a node’s degree, indegree, and outdegree.
What Is Reverse Engineering in Computer Science?
Filed under Programming
Learn about reverse engineering in the computer science field.
Slime Mould Algorithm
Filed under Algorithms
Explore Slime Mould Algorithm.
Graph Theory: What Is Vertex Coloring?
Filed under Graphs
Learn the vertex coloring problem.
How Do Eigenfaces Work?
Filed under Computer Vision
Learn about the method of eigenfaces.
Dimensionality of Word Embeddings
Filed under Machine Learning
Learn about word embedding and its dimensionality.
Difference Between Segment Trees, Interval Trees, Range Trees, and Binary Indexed Trees
Filed under Data Structures, Trees
Explore the differences between segment trees, binary indexed trees, interval trees, and range trees.
What Are Tournament Graphs?
Filed under Data Structures, Graphs
Explore a unique graph data structure: a tournament graph.
What Is the Credit Assignment Problem?
Filed under Machine Learning
Explore the credit assignment problem in reinforcement learning with an example.
ADAM Optimizer
Filed under Machine Learning
Learn how ADAM optimizer works.
What Is Round Trip Time?
Filed under Networking
Learn about the Round Trip Time.
Image Processing: Sampling and Quantization
Filed under Computer Vision
Learn about image processing as well as sampling and quantization concepts.
Genetic Algorithms: Order One Crossover
Filed under Algorithms
Learn about the order-one crossover operator in Genetic Algorithms.
Sensitivity and Specificity
Filed under Machine Learning
Learn about sensitivity and specificity in ML.
What Is Dynamic DNS?
Filed under Networking
Learn about DDNS and how it’s different from a standard DNS server.
Random Access Protocols: Pure ALOHA
Filed under Networking
Explore the Pure ALOHA protocol
How Fonts Work in LaTeX?
Filed under Latex
Learn how to change the font of a LaTeX document to meet your needs.
What Is an API Endpoint?
Filed under Programming, Software Architecture
Learn about endpoints and their role in API design and development.
What Is a Peer in Computer Network?
Filed under Networking
Learn about peers in a computer network.
Understanding MAC Addresses
Filed under Networking
Learn about MAC addresses.
Scheduling: Earliest Deadline First
Filed under Algorithms, OS
Explore a priority-based CPU scheduling algorithm.
How Does AO* Algorithm Work?
Filed under Graph Traversal, Path Finding
Learn about AO* as an example of best-first search algorithms.
The Difference Between Exploit and Payload
Filed under Security
Learn the difference between an exploit and a payload.
Differences Between a Gateway and a Firewall
Filed under Networking
Explore two popular network security devices: gateway and firewall.
Representing Max Heap in an Array
Filed under Algorithms, Data Structures
Learn how to use an array for Max Heap representation.
What Is Software Diversity?
Filed under Programming, Software Architecture
Explore the concept of software diversity.
What Is Functional Decomposition?
Filed under Programming, Software Architecture
Learn about functional decomposition in detail with a practical example.
What Is Wardriving?
Filed under Networking
Learn about the term wardriving.
Hard vs. Soft Voting Classifiers
Filed under Machine Learning
Learn about hard and soft voting.
Deep Neural Networks: Padding
Filed under Deep Learning
Learn about padding, a machine learning technique used in image processing to improve model performance and simplify data processing.
Routing: Distance Vector vs. Link State
Filed under Networking
Explore two categories of dynamic routing protocols: distance vector and link state.
Difference Between Fundamental Matrix and Essential Matrix
Filed under Artificial Intelligence, Math and Logic
Explore the fundamental matrix and the essential matrix.
What Is Fog Computing?
Filed under Networking
Explore fog computing.
Differences Between Network-level and Application-level Information Security
Filed under Security
Explore two popular information security variants: network-level and application-level security.
Multithreading vs. Hyperthreading
Filed under Concurrency
Explore the most important aspects of multithreading and hyperthreading.
How Does External Fragmentation Happen?
Filed under OS
Learn about external fragmentation in the operating system with a practical example.
Requirements: Functional vs. Non-functional
Filed under Software Architecture
Explore functional and non-functional requirements.
Dependency Injection vs. Service Locator
Filed under Programming, Software Architecture
Explore two patterns: Dependency Injection and Service Locator.
What Is State Space Search?
Filed under Artificial Intelligence, Path Finding, Searching
Explore the state space search concept in detail with an example.
What Is the Difference Between Standard VLAN and Extended VLAN?
Filed under Networking
Explore two variants of virtual local area networks (VLAN): standard and extended VLAN.
Difference Between Reinforcement Learning and Optimal Control
Filed under Machine Learning
Explore the differences between reinforcement learning and optimal control.
How to Root a Tree?
Filed under Trees
Learn how to root a tree using the depth-first traversal.
Eccentricity, Radius, Diameter, Center, and Periphery
Filed under Graphs
Learn about several concepts from graph theory: eccentricity, radius, diameter, center, and periphery.
What Are Bridges in a Graph?
Filed under Graphs
Learn about bridges in graphs.
Threat vs. Vulnerability vs. Risk
Filed under Security
Explore threats, vulnerabilities, and risks in security topics.
Rearrange an Array to Put the Negative Elements Before the Positive Ones
Filed under Sorting
Explore two ways to rearrange a numeric array so that its negative elements get before its positive ones and those equal to zero, keeping the relative order of the elements in the same sub-array.
What Is Agile Programming?
Filed under Methodology
Learn about the Agile approach, its values and principles, and the differences between Agile and waterfall models.
Defining Multiobjective Algorithms and Pareto Frontiers
Filed under Algorithms
Explore multiobjective algorithms and Pareto frontiers with examples.
Differences Between a Parametric and Non-parametric Model
Filed under Machine Learning
Learn about parametric and non-parametric models in machine learning.
What Is Maxout in a Neural Network?
Filed under Deep Learning
Explore the maxout activation function, discuss an example, and analyze its main advantages and disadvantages.
Maximum Likelihood Estimation
Filed under Machine Learning
Learn about maximum likelihood estimation.
How to Check if a Line Segment Intersects a Rectangle?
Filed under Math and Logic
Learn how to check if a line segment intersects with a rectangle.
Recurrent Neural Networks
Filed under Deep Learning
Learn about Recurrent Neural Networks (RNNs).
Understanding Honeypots
Filed under Security
Explore honeypots in security.
Different Types of System Calls
Filed under OS
Learn about system calls and their types.
Circular Buffer
Filed under Data Structures, OS
Learn about a circular buffer data structure.
Skip List Comparison with Binary Search Tree
Filed under Searching
Compare skip lists and balanced binary search trees using various criteria.
What Is the Difference Between Keyword and Reserved Word?
Filed under Programming
Explore the importance of keywords and reserved words.
Isomorphic Trees
Filed under Algorithms, Trees
Learn how to check if two trees are isomorphic.
Octet String: What Is It?
Filed under Networking
Explore the basics of octet string along with the applications.
Different Network Topologies Explained
Filed under Networking
Explore various network topologies.
Front-End vs. Back-End Development
Filed under Programming
Learn about front-end and back-end development and their differences.
Differences Between Luong Attention and Bahdanau Attention
Filed under Machine Learning
Explore the Luong and Bahdanau attention methods.
What Are Logic Bombs?
Filed under Security
Explore logic bombs.
What Is an Eavesdropping Attack?
Filed under Security
Explore eavesdropping attacks with a practical example.
How Does a Blockchain Work?
Filed under Security
Explore blockchain technology and see how it works.
Optimization: Gradient-Based Algorithms
Filed under Algorithms
Learn about gradient-based algorithms in optimization.
What Are HTTP Flood Attacks?
Filed under Networking, Security
Explore HTTP flood attacks and prevention strategies.
Bugs and Debugging in Programming
Filed under Programming
Learn about bugs and the debugging process.
What Is the Difference Between GET and POST Methods?
Filed under Networking
Learn the differences between the GET and POST methods.
Cryptography: Known-Plaintext Attack vs. Chosen-Plaintext Attack
Filed under Security
Explore the differences between known-plaintext and chosen-plaintext cryptographic attacks.
Cryptography: Rail Fence Technique
Filed under Security
Explore the rail fence cryptography technique with an example.
Genetic Algorithms: Crossover Probability and Mutation Probability
Filed under Algorithms
Explore two crucial steps in a genetic algorithm: crossover and mutation.
KISS Software Design Principle
Filed under Programming
Learn about the KISS software principle, why we should use it, and how to apply it to our programs.
What Is Edge Computing?
Filed under Networking
Explore the concept and principles of edge computing.
Web Crawling vs. Web Scraping
Filed under Web
Explore web crawling and web scraping, two concepts of data mining used to understand website data and collect website data.
Differences Between Homography and Affine Transformation
Filed under Math and Logic
Explore affine transformation and homography, two essential techniques used to align and correct geometric distortion in images.
What Are Low-Code and No-Code Development?
Filed under Programming
Explore the concept of low-code and no-code development.
Unit vs. Integration Testing
Filed under Programming
Learn about unit and integration testing.
What Are Replay Attacks?
Filed under Networking
Explore the fundamental idea behind replay attacks with a practical example.
How Do Filesystems Handle Concurrent Read/Write?
Filed under Concurrency
Explore the different strategies that file systems use to manage concurrent read and write operations.
DRY Software Design Principle
Filed under Programming
Learn about the DRY software principle and its advantages.
Builder Pattern vs. Factory Pattern
Filed under Software Architecture
Explore the differences and similarities between the Factory and Builder patterns.
State Pattern vs. Strategy Pattern
Filed under Programming
Explore the differences between the Strategy and the State pattern.
Computer Vision: Differences Between Low-Level and High-Level Features
Filed under Computer Vision
Walk through low and high-level features in computer vision.
Remote Code Execution (RCE) and How to Prevent It?
Filed under Networking
Learn about the remote code execution vulnerability.
Cloud: Public vs. Private vs. Hybrid
Filed under Networking, Software Architecture
Study public, private, and hybrid clouds.
Machine Learning: Flexible and Inflexible Models
Filed under Machine Learning
Learn about model flexibility in machine learning.
Smart Contracts – Blockchain
Filed under Software Architecture
Learn about smart contracts.
How Does 1’s Complement Work in Error Detection?
Filed under Networking, Security
Learn how to use 1’s complement technique to detect errors in data transmission.
What Is Space Carving?
Filed under Computer Vision
Explore the main principles and applications of Space Carving.
Social Engineering
Filed under Security
Learn about Social Engineering, an effective method used by cybercriminals to access the sensitive information of others.
Granularity: Coarse-Grained vs. Fine-Grained
Filed under Core Concepts
Learn about coarse-grained and fine-grained entities in computing.
VAE Vs. GAN For Image Generation
Filed under Computer Vision
Learn about VAE and GAN.
How Does a Load Balancer Work?
Filed under Networking, Software Architecture
Dive deep into the architecture of load balancers.
Differences Between AR, VR, MR, and XR
Filed under Artificial Intelligence
Learn about the virtuality continuum and the differences between AR, VR, and MR.
Difference Between Goal-based and Utility-based Agents
Filed under Artificial Intelligence
Explore two types of AI agents: goal-based and utility-based agents.
What Is Steganography?
Filed under Security
Learn about steganography.
Distributed Systems: Consensus
Filed under Networking, Software Architecture
Explore the concept of Consensus in distributed systems.
Internet vs. Intranet vs. Extranet
Filed under Networking
Learn the differences between the Internet, intranet, and extranet.
Memory Management: Inverted Paging
Filed under OS
Explore a memory management technique: inverted paging.
2-Way and K-Way Merging
Filed under Sorting
Explore the K-Way Merge and Two Way Merge algorithms.
What Are Restricted Boltzmann Machines?
Filed under Machine Learning
Explore Restricted Boltzman Machines.
Shuffling an Array
Filed under Algorithms
Learn how to shuffle an array efficiently.
What Is Multi-Task Learning?
Filed under Artificial Intelligence
Explore the concept of multi-task learning.
The 3Sum Problem
Filed under Math and Logic, Programming
Learn about two solutions to the integer 3Sum problem.
Differences Between Cloud, Grid and Cluster
Filed under Networking, Software Architecture
Explore the general idea of cloud, grid, and cluster from a computer networking perspective.
Software Engineering: White-Box vs. Black-Box Testing
Filed under Programming
Learn about white-box and black-box testing.
Statistical Independence
Filed under Math and Logic
Explore statistical independence or events and random variables.
Understanding Piggybacking in Networks
Filed under Networking
Explore the piggybacking technique which allows data centers to connect with each other by using the existing connections of other organizations.
Continuous Integration vs. Continuous Deployment vs. Continuous Delivery
Filed under Methodology
Explore main processes that together constitute the software production pipeline and their differences.
Quicksort vs. Timsort
Filed under Sorting
Explore the differences between Timsort and Quicksort.
Differences Between Network Edge and Core
Filed under Networking
Explore two networking design structures: edge and core networks.
Bayes’ Theorem
Filed under Math and Logic
Explore Bayes’ theorem.
System Call vs. System Interrupt
Filed under OS
Explore system calls and system interrupts in detail.
The XP’s Commandments of Simple Code
Filed under Methodology
Explore four commandments of simple design in the context of XP methodology.
How Do DMA Controllers Work?
Filed under OS
Explore direct memory access (DMA) in detail.
Differences Between a Data Type and a Data Structure
Filed under Data Structures, Programming
Explore data types and data structures, along with their fundamental differences.
The Cyber Kill Chain
Filed under Security
Study the cyber kill chain.
Linear Search With Fewer Comparisons
Filed under Searching
Explore an improved version of linear search.
Introduction to Inception Networks
Filed under Artificial Intelligence
Explore the concept of Inception Networks.
What Is Privilege Escalation?
Filed under Security
Explore privilege escalation attacks.
What Are Data Warehouses?
Filed under Software Architecture
Learn about Data Warehouses.
Probability: Joint vs. Marginal vs. Conditional
Filed under Math and Logic
Explore concepts of marginal, joint, and conditional probabilities.
Translation Invariance and Equivariance in Computer Vision
Filed under Computer Vision
Explore the concepts of translation invariance and translation equivariance.
Underlay Network vs. Overlay Network
Filed under Networking
Learn about the underlay and overlay networks.
Neural Network and Deep Belief Network
Filed under Artificial Intelligence
Explore Deep Belief Networks.
Decrease-Key Dijkstra’s Algorithm
Filed under Path Finding
Learn about a priority queue implementation that supports the Decrease-Key in Dijkstra algorithm.
Differences Between Transfer Learning and Meta-Learning
Filed under Machine Learning
Learn about the concepts of transfer learning and meta-learning.
Residual Networks
Filed under Computer Vision
Learn about the Residual Networks.
Finding the Digital Root
Filed under Math and Logic
Explore two ways to calculate the digital root of an integer.
Differences Between Active and Passive Attacks
Filed under Security
Study the differences between active and passive attacks.
Why Use a Surrogate Loss
Filed under Deep Learning, Machine Learning, Math and Logic
Learn why we need surrogate loss functions as well as see examples of their effectiveness.
Calculating the Average of a Set of Circular Data
Filed under Math and Logic
Explore how to calculate the average of a set of circular data.
Optimization: Local vs. Global Optima
Filed under Math and Logic
Learn about the global and local optima.
Random Variables
Filed under Math and Logic
Learn more about the random variables.
Differences Between Simulation and Emulation
Filed under Programming, Software Architecture
Learn about the simulation and emulation.
Introduction to Optical Flow
Filed under Computer Vision
Learn about optical flow and its applications with a simplified example.
How to Get Bold Math Symbols in Latex
Filed under Latex
Explore bolding math symbols in Latex.
Generative Adversarial Networks: Discriminator’s Loss and Generator’s Loss
Filed under Deep Learning
Explore GAN’s two main neural networks, the generator and the discriminator, and understand how they play a competitive min-max game trying to replicate a probability distribution.
Fast R-CNN: What is the Purpose of the ROI Layers?
Filed under Computer Vision
Explore the RoI pooling layers and their impact on the speed and accuracy of Fast R-CNN.
What Is a Backdoor?
Filed under Security
Explore the concept of a backdoor.
Parameters vs. Hyperparameters
Filed under Machine Learning
Explore the difference between the parameters and hyperparameters in machine learning.
High Availability vs. Fault Tolerance
Filed under Networking
Explore the concepts of high availability and fault tolerance.
Optimization: Objective Functions, Decision Variables and Constraints
Filed under Math and Logic
Learn about mathematical optimization.
Finding Neighbors of a Matrix Cell
Filed under Math and Logic, Programming
Learn how to find neighbors of a cell in a 2D matrix.
How Do Blurs in Images Work?
Filed under Computer Vision
Learn about how the blur operation works in images.
Differences Between Sequential and Random Writes of Memory
Filed under OS
Explore two writing methods for memory: sequential and random writes.
Referencing Subordinate Equations in LaTeX
Filed under Latex
Learn how to reference subordinate equations in LaTeX and customize their labels.
Networking: Baseband vs. Broadband
Filed under Networking
Explore two popular concepts in radio frequency technology: baseband and broadband.
Network Management: The FCAPS Model
Filed under Networking
Explore the FCAPS model for network management.
Differences Between Firmware and Operating System
Filed under OS
Explore the basics of firmware and operating systems.
Pigeonhole Sort Explained
Filed under Sorting
Learn how the pigeonhole sorting algorithm works and when it’s appropriate to use it.
The Viola-Jones Algorithm
Filed under Computer Vision
Explore the Viola-Jones algorithm.
How to Describe Network Performance?
Filed under Networking
Explore several terminologies that are used to describe network performance.
Programming Languages: Lexicon vs. Syntax vs. Semantics
Filed under Programming
Explore the meaning of lexicon, syntax, and semantics in the context of computing, particularly programming languages.
Differences Between Routing and Forwarding Tables
Filed under Networking
Explore the role of routing and forwarding tables in networking.
What Is a Network File System?
Filed under Networking, Software Architecture
Explore the Network File System in detail.
How Does Pose Estimation Work?
Filed under Computer Vision
Learn how human pose estimation works in a computer vision system.
Webhooks Explained
Filed under Networking, Software Architecture
Learn about different methods of sending information about real-time events between applications.
How to Determine the Entropy of a Password?
Filed under Security
Learn how to calculate the password entropy with an example.
Differences Between Directories and Folders
Filed under OS
Explore directories and folders, which are part of a computer’s file system.
Traffic Engineering: Shaping Vs. Policing
Filed under Networking
Explore traffic engineering through traffic shaping and policing techniques.
Difference Between API and SDK
Filed under Programming
Explore the difference between an API and an SDK.
Cryptography: What Is a Trapdoor?
Filed under Security
Learn about the trapdoor concept in cryptography.
Differences Between Definition, Declaration, and Initialization
Filed under Programming
Discuss declarations, definitions, and initialization in programming.
Spatial Pyramid Pooling
Filed under Computer Vision
Explore the Spatial Pyramid Pooling (SPP) layer.
Routing vs. Forwarding vs. Switching
Filed under Networking
Explore routing, forwarding, and switching with examples.
Networking: Stateless and Stateful Protocols
Filed under Networking
Explore two types of networking protocols: stateless and stateful.
Object Detection: SSD Vs. YOLO
Filed under Computer Vision
Compare two main object detection algorithms, SSD and YOLO.
Stateful vs. Stateless in Programming
Filed under Programming
Learn about stateful and stateless programming.
Language Processors Explained
Filed under Programming
Learn about programming language processors and their differences.
Understanding Activation Functions
Filed under Artificial Intelligence
Learn why activation functions are an essential part of neural network architectures.
Network Function Virtualization Explained
Filed under Networking
Learn about the Network Function Virtualization (NFV) paradigm.
Differences Between Scaling Horizontally and Vertically
Filed under Software Architecture
Explore the vertical and horizontal scaling of a computing system.
Differences Between an IDS and an IPS
Filed under Networking, Security
Study Intrusion Detection Systems (IDS) and Intrusion Prevention Systems (IPS).
How to Project a 3D Point Onto a 2D Plane?
Filed under Math and Logic
Learn how to project a point onto a plane and find its coordinates in the plane’s coordinate system.
Port Scanning Explained
Filed under Networking, Security
Learn about port scanning types and methods.
Security: What Is Formjacking?
Filed under Security
Learn about formjacking attacks.
How to Create a Glossary in LaTeX
Filed under Latex
Explore a step-by-step tutorial to generate a glossary in LaTeX using the glossaries package.
Hash Code vs. Checksum
Filed under Security
Explore hash codes and how they are related to checksums.
Computer Vision: Popular Datasets
Filed under Computer Vision
Explore three popular datasets in computer vision.
How to Handle Large Images to Train CNNs?
Filed under Computer Vision
Explore three ways of using large images as input to CNNs.
What Is the Difference Between User Variables and System Variables?
Filed under OS
Explore two different categories of environmental variables.
How Many Threads Is Too Many?
Filed under Concurrency, OS
Learn how many threads servers should use at most.
The Complexity of Shellsort
Filed under Sorting
Explore Shellsort’s complexity.
Caching and CDNs: What Is the Difference?
Filed under Networking, Software Architecture
Learn about web caching, CDNs and their advantages.
Object Recognition Tasks and Their Differences
Filed under Computer Vision
Learn about the main tasks of object recognition.
Security: Credential Stuffing vs. Password Spraying
Filed under Security
Learn about credential stuffing and password spraying attacks.
What Is One Class SVM and How Does It Work?
Filed under Machine Learning
Explore how they differ from basic SVMs.
Caching: Cold Cache vs. Warm Cache
Filed under OS, Software Architecture
Learn about cold and warm caches.
What Is a Content Delivery Network (CDN)?
Filed under Networking
Learn how CDNs work, their advantages, and the types of content they can serve.
Remote Procedure Calls vs. Local Procedure Calls
Filed under Programming
Learn about the procedure calls in programming.
How to Check If a String Is a Palindrome?
Filed under Algorithms
Explore recursive and iterative algorithms for checking if a string is a palindrome.
Deterministic and Stochastic Optimization Methods
Filed under Core Concepts
Explore deterministic and stochastic optimization.
UDP Packet Loss
Filed under Networking
Explore several reasons for packet loss in UDP.
From Postfix Expressions to Expression Trees
Filed under Graph Theory
Explore a linear-time algorithm for converting a postfix expression into an expression tree.
Counting Sort vs. Bucket Sort vs. Radix Sort
Filed under Sorting
Explore three interesting sort algorithms that don’t use comparisons.
Heuristics vs. Meta-Heuristics vs. Probabilistic Algorithms
Filed under Algorithms
Learn about the differences between heuristics, metaheuristics, and probabilistic strategies.
Firewalls: Stateless vs. Stateful
Filed under Networking, Security
Learn about stateless and stateful firewalls.
Differences Between Stream Cipher and Block Cipher
Filed under Security
Explore stream and block ciphers in detail.
How to Use Gabor Filters to Generate Features for Machine Learning
Filed under Computer Vision, Machine Learning
Learn about the Gabor convolution filters, commonly used in image processing.
Elitism in Evolutionary Algorithms
Filed under Algorithms
Explore elitism in the context of evolutionary algorithms.
Computer Boot Process Explained
Filed under OS
Explore every step of the booting process.
Correcting Fisheye Images
Filed under Math and Logic
Explore different methods for programmatically correcting fisheye images.
Differences Between Role and Permission-based Access Control
Filed under Security
Explore permission and role-based access control mechanisms.
Differences Between NTFS, FAT32 and exFAT
Filed under OS
Explore three major file systems that are widely used nowadays.
Neural Networks: What Is Weight Decay Loss?
Filed under Deep Learning, Machine Learning
Learn about the weight decay loss.
Win Gomoku with Threat Space Search
Filed under Machine Learning
Learn how to win a Gomuku game with AI strategy.
Neural Networks: Difference Between Conv and FC Layers
Filed under Deep Learning, Machine Learning
Explore the Conv and the FC layer of a neural network.
Type Safety in Programming Languages
Filed under Programming
Explore in detail the type safety issues in computer programming.
Algorithms and Flowcharts: Mapping Process
Filed under Algorithms
Learn how to represent relevant programming structures into a flowchart.
Scale-Invariant Feature Transform
Filed under Machine Learning
Learn about the Scale-Invariant Feature Transform (SIFT).
Private URLs vs. Password-based Authentication
Filed under Security
Learn how private URLs and password-based authentication can provide access control in networked services.
Jump Search Algorithm
Filed under Searching
Learn about the Jump Search algorithm.
Private Bytes, Virtual Bytes, and Working Set
Filed under OS
Learn about some memory-related concepts in the operating system: private bytes, virtual bytes, and working sets.
The Curse of Dimensionality
Filed under Computer Vision
Explore the problems related to the Curse of Dimensionality.
Exponential Search
Filed under Searching
Learn about Exponential Search.
Security: What Is the CIA Triad?
Filed under Networking, Security
Learn about the security aspects of the CIA (Confidentiality, Integrity, and Availability) triad.
Data Compression: ZLib vs. GZip vs. Zip
Filed under Algorithms
Explore three popular data compression techniques: zlib, gzip, and ZIP.
How to Share a Key in Symmetric Cryptography?
Filed under Security
Learn how to share symmetric keys for cryptography in a secure way.
Machine Learning: What Is Ablation Study?
Filed under Machine Learning
Learn about the term ablation study in the field of machine learning
Sampling From the Exponential Distribution
Filed under Math and Logic
Learn about sampling from an exponential distribution.
Differences Between Key, Initialization Vector and Nonce
Filed under Security
Explore security related keys, initialization vectors, and nonces resources.
What’s a Hypothesis Space?
Filed under Math and Logic
Learn about hypotheses spaces in machine learning.
Is a Markov Chain the Same as a Finite State Machine?
Filed under Artificial Intelligence
Explore the differences and the similarities between finite-state machines and Markov chains.
Differences Between Epoch, Batch, and Mini-batch
Filed under Artificial Intelligence
Explore the differences between an epoch, a batch, and a mini-batch.
Converting Floats into Fractions
Filed under Math and Logic
Explore four ways of converting a float into a fraction: two exact techniques and two approximate.
Socket vs. RPC
Filed under Networking
Explore two techniques that can create a channel of information flow in networking: socket and RPC.
Public DMZ Network Architecture
Filed under Networking, Security
Explore the technical details and implementation architectures of demilitarized zones.
Differences Between Scalability and Elasticity
Filed under OS
Explore the scalability and elasticity of a computing system.
Which Is Faster – Hash Lookup or Binary Search?
Filed under Data Structures, Searching
Compare two searching methods: binary search and hash lookup.
Disparity Map in Stereo Vision
Filed under Computer Vision, Core Concepts
Explore the concept of disparity, and learn about its importance in stereo vision.
How to Find Common Elements in Two Sorted Arrays
Filed under Sorting
Explore two efficient ways of finding common elements of two sorted arrays.
Cloud Computing: SaaS vs. PaaS vs. IaaS
Filed under Software Architecture
Explore the XaaS offerings of IaaS, PaaS, and SaaS.
How to Redirect DNS to Different Ports
Filed under Networking
Explore several types of DNS records and learn how to use the to redirect the traffic.
MapReduce Algorithm
Filed under Algorithms
Learn about MapReduce, a widely used algorithm due to its capability of handling big data effectively and achieving high levels of parallelism in cluster environments.
How to Compute the Similarity of Colours
Filed under Algorithms
Explore three common methods for computing the similarity between colors.
Basic Services of an Operating System
Filed under OS
Explore the essential services of an operating system.
How Do Antiviruses Really Work?
Filed under Security
Learn about antivirus software.
How Does Ransomware Infect Computers?
Filed under Security
Explore the definition and variants of ransomware.
Precision vs. Average Precision
Filed under Artificial Intelligence
Explore the differences between precision and average precision.
How Does a Zip Bomb Work?
Filed under Security
Learn about zip bombs, and how they’re created and employed in particular attacks.
How to Calculate the Runtime Percentage Improvement
Filed under Algorithms, Programming
Learn how to compute the percentage improvement when the performance metric is time.
32-Bit vs. 64-Bit Operating Systems
Filed under OS
Explore differences between 32-bit and 64-bit operating systems.
How to Convert a Color From HSL to RGB
Filed under Algorithms
Learn about a method that converts a color from HSL to RGB.
Man in the Middle (MITM) Attacks Explained
Filed under Networking, Security
Learn about the man-in-the-middle attacks.
Comparing Naïve Bayes and SVM for Text Classification
Filed under Machine Learning
In this tutorial, we analyze the advantages and disadvantages of Naïve Bayes (NB) and Support Vector Machine (SVM) classifiers applied to text classification.
How Do DoS and DDoS Attacks Really Work?
Filed under Networking, Security
Study distributed denial of service attacks (DDoS).
Binary Search Trees vs. AVL Trees: the Complexity of Construction
Filed under Data Structures, Trees
Explore the construction complexities of Binary Search Trees (BSTs) and AVL trees.
Authentication: Multi-Step vs. Multi-Factor
Filed under Security, Software Architecture
Explore multi-step and multi-factor authentication schemes.
Efficiently Sorting Linked Lists
Filed under Sorting
Explore the most efficient ways to sort linked lists.
Memory-Mapped vs. Isolated I/O
Filed under OS
Explore various methods in I/O operations.
What Are “Bottlenecks” in Neural Networks?
Filed under Deep Learning, Machine Learning
Learn about the Information Bottleneck Principle (IB).
Differences Between Viruses, Worms and Trojans
Filed under Security
Learn about viruses, worms, and trojans in detail.
Pre-increment vs. Post-increment in a Loop
Filed under Programming
Explore the difference between the pre-increment and post-increment operators inside a loop’s termination condition.
How Are DNS Requests Resolved When Using VPN?
Filed under Networking, Security
Learn how the DNS is actually used during a VPN connection.
Understanding Hash Tables
Filed under Data Structures, Searching
Explore hash tables and their time complexity
Abstract Methods vs. Virtual Methods
Filed under Programming
Learn about abstract and virtual methods.
Differences Between Strong-AI and Weak-AI
Filed under Artificial Intelligence
Explore the differences between strong-AI and weak-AI.
How to Find the Minimum Difference Between Elements in an Array
Filed under Algorithms, Security
Learn how to find the closest two numbers in an array.
HTTP: 1.0 vs. 1.1 vs 2.0 vs. 3.0
Filed under Networking, Security
Learn about HTTP versions.
Mean Average Precision in Object Detection
Filed under Computer Vision, Deep Learning
Learn about the mAP metric for object detection.
Lambda Functions
Filed under Programming
Learn about lambda functions and their use in programming.
How to Bind to Any Available Port?
Filed under Networking
Explore the basics of socket and socket programming.
Find the Kth Smallest Element in a Binary Search Tree
Filed under Graph Traversal, Trees
Learn how to find the k-th smallest element in a binary search tree.
Public/Private Keys Vs. Certificates
Filed under Networking, Security
Learn about the relation between asymmetric cryptography and certificates.
Hidden Layers in a Neural Network
Filed under Deep Learning, Machine Learning
Learn about the hidden layers in a neural network.
How to Calculate Packet Time from Latency and Bandwidth
Filed under Networking
Learn the basics of network bandwidth, latency, packet time in detail.
How to Find the Two Points With the Minimal Manhattan Distance
Filed under Algorithms
Learn how to find the closest two points in a two-dimensional space endowed with the Manhattan distance.
Real-Life Examples of Supervised Learning and Unsupervised Learning
Filed under Deep Learning, Machine Learning
Explore some real-life examples of supervised and unsupervised learning.
Antipatterns: Magic Numbers
Filed under Algorithms, Math and Logic
Explore the antipattern called magic numbers.
How to Test if a Number Is a Fibonacci Number
Filed under Algorithms, Math and Logic
Learn to check if a given number is a Fibonacci number or not.
Decision Trees vs. Random Forests
Filed under Machine Learning
Explore the difference between decision trees and random forests.
Centralized Computing vs. Distributed Computing
Filed under Programming, Software Architecture
Explore the main differences and similarities between centralized and distributed systems.
What Is Inductive Bias in Machine Learning?
Filed under Deep Learning, Machine Learning
Learn about the two types of inductive biases in traditional machine learning and deep learning.
What Is the Difference Between Artificial Intelligence, Machine Learning, Statistics, and Data Mining?
Filed under Data Science, Machine Learning
Learn about the differences between artificial intelligence, machine learning, statistics, and data mining.
An Introduction to Self-Supervised Learning
Filed under Machine Learning
Learn about self-supervised learning.
Latent Space in Deep Learning
Filed under Deep Learning, Machine Learning
Learn about the latent space in deep learning.
Difference Between SSL & TLS
Filed under Networking, Security
Learn about the TLS and SSL protocols.
Difference Between the Cost, Loss, and the Objective Function
Filed under Machine Learning
Explore the meanings of the loss, cost, and objective functions.
Activation Functions: Sigmoid vs Tanh
Filed under Deep Learning, Machine Learning
Explore two activation functions, the tanh and the sigmoid.
Hash Collision: Weak and Strong Resistance
Filed under Security
Explore hash collision resistance.
Red-Black Tree vs. AVL Tree
Filed under Data Structures, Trees
Explore AVL and red-black tree data structures.
An Introduction to Contrastive Learning
Filed under Deep Learning, Machine Learning
Learn about contrastive learning.
Gradient Boosting Trees vs. Random Forests
Filed under Machine Learning
Learn about the gradient-boosting trees and compared them to random forests.
Basic Concepts of Machine Learning
Filed under Machine Learning
Explore the basic concepts of machine learning.
Intuition Behind Kernels in Machine Learning
Filed under Deep Learning, Machine Learning
Discuss the role of kernels in machine learning intuitively.
Understanding Security by Obscurity
Filed under Security
Learn about security by obscurity in the context of computing
Algorithms for Image Comparison
Filed under Deep Learning, Machine Learning
Explore three algorithms for image comparison
Image Processing: Occlusions
Filed under Deep Learning, Machine Learning
Learn about occlusions in image processing.
Information Gain in Machine Learning
Filed under Data Science, Machine Learning
Learn how to calculate the information gain in Data Science and Machine Learning.
How to Convert an RGB Image to a Grayscale
Filed under Algorithms
Learn how to convert an RGB image to grayscale.
Cross-Validation and Decision Trees
Filed under Artificial Intelligence
Learn about cross-validating decision trees.
Applications of Generative Models
Filed under Computer Vision, Deep Learning
Learn about various applications of generative models.
Supported Memory by 32 and 64-Bit Machines
Filed under OS
Learn about 32 and 64-bit architectures.
Pseudo-Polynomial vs. Polynomial Complexity
Filed under Algorithms, Math and Logic
Learn about pseudo-polynomial algorithms.
Can TCP and UDP Sockets Use the Same Port?
Filed under Networking
Explore a general overview of the ports used by TCP and UDP sockets.
Virtual Memory Address
Filed under OS
Learn about Virtual Memory Address concept.
Valid Characters of a Hostname
Filed under Networking, Security
Explore the basic concept of hostname in networking.
Network: Longest Prefix Matching
Filed under Networking
Learn about the IP prefix concept in computer networking.
Calculate the Output Size of a Convolutional Layer
Filed under Computer Vision, Deep Learning
Learn about computing the outputs size of a convolutional layer.
Binary Tree vs. Binary Search Tree
Filed under Data Structures, Trees
Explore two tree data structures: binary tree and binary search tree.
Is Selection Sort Stable?
Filed under Sorting
Learn about the stability of Selection Sort.
What Is the Maximum Length of a URL in Different Browsers?
Filed under Networking, OS
Learn about the maximum length of a URL in different browsers.
Making Presentations With LaTeX
Filed under Latex
Learn how to create presentations with LaTeX.
Number of Comparisons in Straight Selection Sort
Filed under Sorting
Learn how to calculate the number of comparisons in Straight Selection Sort.
Introduction to Curve Fitting
Filed under Artificial Intelligence, Math and Logic
Learn about curve fitting and the least-squares algorithm.
An Introduction to Generative Adversarial Networks
Filed under Deep Learning, Machine Learning
Learn about Generative Adversarial Networks (GANs).
K-Means for Classification
Filed under Machine Learning
Learn how to use K-means for classification.
What Is a Random Walk?
Filed under Algorithms, Math and Logic
Explore the concept of random walk in detail.
Determining Network and Broadcast Address Using IP Address and Subnet Mask
Filed under Networking
Explore IP address, broadcast address, network address, and subnet mask thoroughly.
Differences Between SGD and Backpropagation
Filed under Machine Learning
Learn about the differences between Backpropagation (BP) and Stochastic Gradient Descent (SGD).
Graph Theory: Path vs. Cycle vs. Circuit
Filed under Graphs
Learn about sequences of graphs nodes.
Linearly Separable Data in Neural Networks
Filed under Deep Learning, Machine Learning
Learn about linear separability in Machine Learning.
Master Theorem for Asymptotic Analysis
Filed under Math and Logic
Explore the Master Theorem to compute the runtime of the algorithm.
The Effects of the Depth and Number of Trees in a Random Forest
Filed under Machine Learning
Explore a methodology for estimating how the depth and number of trees affect the performance of a random forest.
Radix Sort
Filed under Sorting
Learn about the Radix Sort algorithm.
Using GANs for Data Augmentation
Filed under Computer Vision, Deep Learning
Explore how we can use GANs for data augmentation.
The Monty Hall Problem
Filed under Math and Logic
Explore the Monty Hall Problem.
Basics of Polynomial Interpolation
Filed under Math and Logic
Learn about polynomial interpolation.
How to Draw Flowcharts With LaTeX
Filed under Latex
Learn how to draw flowcharts with LaTeX/TikZ.
How to Check String Periodicity
Filed under Algorithms
Explore three algorithms designed to check string periodicity.
Binary Insertion Sort
Filed under Sorting
Learn about Binary Insertion Sort algorithm and its complexity.
Tabulation vs. Memoization
Filed under Programming
Explore tabulation and memoization.
Simple Hashing vs. Salted Hashing
Filed under Security
Learn about simple and salted hashing.
Tree Edit Distance
Filed under Trees
Learn about tree edit distance and how to calculate it.
Moth Flame Optimization
Filed under Algorithms
Explore the Moth Flame Optimization algorithm.
Drift, Anomaly, and Novelty in Machine Learning
Filed under Machine Learning
Learn about novelty, concept and data drifts.
Markov Decision Process: How Does Value Iteration Work?
Filed under Machine Learning
Learn how to implement a dynamic programming algorithm to find the optimal policy of an RL problem, namely the value iteration strategy.
Exporting LaTeX TikZ as Image Files
Filed under Latex
Learn how to export LaTeX/TikZ defined images to image file formats.
Non-opinionated vs. Opinionated Design
Filed under Software Architecture
Explore the concepts of non-opinionated and opinionated software design.
Rainbow Table Attacks
Filed under Security
Learn about rainbow table attacks.
What Is Selection Bias and How Can We Prevent It?
Filed under Artificial Intelligence, Math and Logic
Explore the methods for preventing selection bias when we conduct statistical analysis.
Graph Density
Filed under Graphs
Explore graph density in detail.
Applications of Red-Black Trees
Filed under Data Structures, Searching, Trees
Learn about important applications of Red-Black trees.
Context-Free Languages
Filed under Programming
Learn about context-free languages and some techniques for proving that a language is (not) context-free.
B-tree Data Structure
Filed under Data Structures, Trees
Learn about a self-balancing tree data structure: B-tree.
Balanced Trees
Filed under Data Structures, Trees
Explore three types of balanced trees: the AVL trees, red-black trees, and weight-balanced trees.
Decision Tree vs. Naive Bayes Classifier
Filed under Machine Learning
Take a look at two of the most well-known classifiers, Naive Bayes and Decision Trees.
How to Sort Mostly Sorted Arrays
Filed under Sorting
Compare the efficiency of four standard sorting algorithms: Bubble Sort, Insertion Sort, Quicksort, and Merge Sort.
Encoding vs. Signing in Asymmetric Encryption
Filed under Security
Learn about encoding and signing with asymmetric encryption.
The Skip List Data Structure
Filed under Data Structures
Explore skip lists and operations of insertion, search, and deletion using the skip list data structure.
Bayesian Networks
Filed under Machine Learning
Learn about the Bayesian Networks (BNs).
Active vs. Passive Connection in TCP
Filed under Networking
Learn about active and passive TCP connections opening.
Induced Subgraphs
Filed under Graphs
Learn about induced and ordinary subgraphs.
Weighted vs. Unweighted Graphs
Filed under Graphs
Learn about the differences between the unweighted and weighted graphs.
Prim’s Algorithm
Filed under Graph Traversal, Trees
Explore Prim’s algorithm for finding the Minimum Spanning Tree in graphs.
Rank of a Node in a Binary Search Tree
Filed under Graph Traversal, Trees
Explore three ways to determine a node’s rank in a binary search tree.
The Pseudo-Header in TCP
Filed under Networking
Learn about the pseudo-header in the context of modern TCP/IP.
Outlier Detection and Handling
Filed under Deep Learning, Machine Learning
Learn about outliers in datasets and why they are important.
Finding the In-Order Successor of a Node
Filed under Graph Traversal, Trees
Explore three ways to find the in-order successor of a node.
Data Mining in WEKA
Filed under Data Science
Learn about WEKA – a comprehensive toolkit for data mining tasks.
Differences Between Core and CPU
Filed under OS
Learn about the differences between a processing core and a CPU.
Types of Operating Systems
Filed under OS
Learn about five variations of the operating systems: batch, distributed, time-sharing, network, real-time operating system.
From Lists to Forests
Filed under Data Structures, Trees
Explore two algorithms for building a forest of trees from a flat list.
Choosing a Learning Rate
Filed under Machine Learning
Explore different strategies to update the weights during the training phase of any machine learning model.
From Recursive to Iterative Functions
Filed under Programming
Learn about converting recursion into iteration.
Messages: Payload, Header, and Overhead
Filed under Networking
Explore the general structure of messages transmitted in computer networks.
Streaming Median
Filed under Algorithms, Math and Logic
Explore two algorithms for finding the median of a big data stream.
Tail vs. Non-Tail Recursion
Filed under Programming
Explore the difference between the tail and non-tail recursion.
Underfitting and Overfitting in Machine Learning
Filed under Machine Learning
Explore overfitting and underfitting in machine learning.
Binary Semaphores vs. Counting Semaphores
Filed under Concurrency
Learn about binary and counting semaphores.
Are HTTPS URLs Encrypted?
Filed under Security
Learn more about HTTPS URLs.
Minimax Algorithm
Filed under Graph Traversal
Explore the Minimax algorithm’s functionality and the domains where it’s usually applied.
The Akra-Bazzi Method
Filed under Algorithms
Explore the Akra-Bazzi method used to determine the complexity divide-and-conquer algorithms.
How Do “20 Questions” AI Algorithms Work?
Filed under Machine Learning
Learn how we can implement the 20 Questions Game using a nonparametric model called a decision tree.
Generating Permutations with Repetition
Filed under Math and Logic
Explore two ways to generate all the permutations with repetition of the set.
TCP: Differences Between FIN and RST
Filed under Networking
Learn about about FIN and RST messages of TCP.
Bidirectional Search for Path Finding
Filed under Path Finding
Learn about two algorithms: Bidirectional Search (BiS) and Bidirectional UCS (BiUCS).
How to Get Vector for A Sentence From Word2vec of Tokens
Filed under Machine Learning
Explore vector representations of sentences using token representations.
HTTP: Differences Between PUT and PATCH
Filed under Networking, Security
Learn about the HTTP methods of PUT and PATCH.
How to Solve Constraint Satisfaction Problems
Filed under Algorithms
Learn about a general backtracking algorithm for solving constraint satisfaction problems.
Feature Selection and Reduction for Text Classification
Filed under Deep Learning, Machine Learning
Explore the most common techniques for feature selection and reduction for text classification.
Imperative and Declarative Programming Paradigms
Filed under Programming
Explore the imperative and declarative programming paradigms.
Expectimax Search Algorithm
Filed under Searching
Explore the Expectimax algorithm for stochastic games.
Internal Fragmentation vs. External Fragmentation in Paging
Filed under OS
Explore fragmentation and its variations: internal and external.
How Many Principal Components to Take in PCA?
Filed under Artificial Intelligence, Math and Logic
Explore the Principal Component Analysis.
OSI Model: Packets vs. Frames
Filed under Networking
Explore the differences between packets and frames from the OSI model.
Dijkstra vs. A* – Pathfinding
Filed under Path Finding
Explore differences between Dijkstra’s and A* algorithms.
Flow Control vs. Congestion Control in TCP
Filed under Networking
Explore flow and congestion control mechanisms in TCP.
High-Level Languages vs. Low-Level Languages
Filed under Programming
Explore the differences between high-level and low-level languages.
The Subnets in IPv4 Networks
Filed under Networking
Learn about subnets in IPv4 networks.
Segment Tree and Its Applications
Filed under Data Structures, Trees
Learn how to create a segment tree.
Fastest Algorithm to Find Prime Numbers
Filed under Math and Logic
Explore some of the fastest algorithms that we can use to generate prime numbers up to a given number.
Depth-First Search vs. Breadth-First Search
Filed under Graph Traversal
Compare Depth-First Search (DFS) to Breadth-First Search (BFS).
Graph Search vs. Tree-Like Search
Filed under Graph Traversal
Compare the Graph-Search and Tree-Like Search strategies.
Multicast vs. Broadcast vs. Anycast vs. Unicast
Filed under Networking
Study different message addressing methods.
Uniform-Cost Search vs. Best-First Search
Filed under Graph Traversal
Explore Uniform-Cost Search (UCS) and Best-First Search (BeFS).
Segmented Paging vs. Paged Segmentation
Filed under OS
Explore two memory allocation techniques: segmented paging and paged segmentation.
Memory Management
Filed under OS
Explore the management of Random Access Memory (RAM).
Calculate Upload/Download Speed Using Ping
Filed under Networking
Learn how we can use ping to measure the bandwidth of a network connection.
Finding All Tic-Tac-Toe Winning Combinations
Filed under Algorithms
Learn how to find all the tic-tac-toe grids that represent a win.
Introduction to Serverless Architecture
Filed under Networking, Software Architecture
Explore the basics of a serverless architecture with an overview of the most popular serverless platforms
Tracing the Path in DFS, BFS, and Dijkstra’s Algorithm
Filed under Path Finding
Explore several ways to trace the paths in Depth-First Search, Breadth-First Search, and Dijkstra’s Algorithm.
Beam Search Algorithm
Filed under Graph Traversal
Learn about the Beam Search algorithm.
Iterative Deepening vs. Depth-First Search
Learn about the differences between Depth-First Search and Iterative Deepening.
An Algorithm for Inflating and Deflating Polygons
Filed under Algorithms, Math and Logic
Explore how to inflate or deflate a polygon utilizing homothety and offsetting.
API Gateway vs. Reverse Proxy
Filed under Networking
Learn about the API Gateway and the Reverse Proxy.
What Is Abstract Data Type?
Filed under Data Structures
Explore three popular ADTs: list, queue, stack.
How to Create a Smart Chatbot?
Filed under Deep Learning, Machine Learning
Explore the fundamentals of a smart chatbot and how understanding its architecture can help develop an intelligent bot capable of carrying on a meaningful conversation.
Hill Climbing Search vs. Best First Search
Filed under Searching
Explore the Hill Climbing and Best First Search (BeFS) algorithms and compare their characteristics.
Introduction to Cache Memory
Filed under OS
Explore the cache memory concepts.
Instructions and Programs
Filed under Programming
Explore the fundamentals of computer programs and instructions with examples.
Complexity Analysis of QuickSelect
Filed under Searching
Analyze the worst, best, and average-case time complexity of QuickSelect.
Finding the Volume of Water Collected Between Towers
Filed under Algorithms
Explore possible ways to find the maximum amount of water that can be collected between two towers.
Extended Euclidean Algorithm
Filed under Math and Logic
Learn about the extended Euclidean algorithm (EEA).
Docker and Containers vs. Virtual Machines
Filed under Networking, OS
Explore virtualization and containerization and compare the technical differences and trade-offs.
Knight’s Shortest Path on Chessboard
Filed under Algorithms
Explore the knight’s shortest path problem on a chessboard.
IPv4 Datagram
Filed under Networking
Understand the IPv4 datagram in detail.
Edge Relaxation in Dijkstra’s Algorithm
Filed under Graph Traversal, Path Finding
Explore the concept of relaxing edges and its importance in various shortest path algorithms.
Choosing the best q and p from ACF and PACF plots in ARMA-type modeling
Filed under Math and Logic
Explore some important terms relared to time-series forecasting.
An Overview of Evolutionary Algorithms
Filed under Algorithms
Learn about the evolutionary algorithms that have performed well compared to other techniques in artificial intelligence.
Sine Cosine Algorithm
Filed under Algorithms, Math and Logic
Learn about the sine-cosine algorithm.
How Is a Minimum Bottleneck Spanning Tree Different from a Minimum Spanning Tree?
Filed under Trees
Compare two very close yet different graph concepts in graph theory: minimum spanning tree, minimum bottleneck spanning tree.
Program Counter and Instruction Register
Filed under OS
Explore two CPU units in a computer: program counter and instruction register.
Greedy vs. Heuristic Algorithm
Filed under Programming
Explore the general idea of greedy and heuristic algorithms.
Hash Table vs. Balanced Binary Tree
Filed under Data Structures
Explore hash tables and self-balancing binary search trees.
NLP’s word2vec: Negative Sampling Explained
Filed under Artificial Intelligence
Explore the Skip-gram model for training word vectors and learn about how negative sampling is used for this purpose.
LL vs. LR Parsing
Filed under Core Concepts
Explore the differences between LL and LR parsers.
Compiled vs. Interpreted Programming Languages
Filed under Programming
Explore the differences between compiled and interpreted programming languages.
Linked List / Double Linked List
Filed under Data Structures
Explore the linked list data structure and its variations.
Registers and RAM
Filed under OS
Explore details about registers and RAM.
Introduction to Assembly Language
Filed under Core Concepts, Programming
Read a brief overview of Assembly language.
Binary Search Tree with Strings
Filed under Algorithms, Trees
Explore the basic operations of a BST that contains strings as keys.
What Is Thrashing?
Filed under OS
Understand the concept of thrashing in Operating Systems.
When Will the Worst Case of Merge Sort Occur?
Filed under Sorting
Learn about the time complexity of Merge Sort.
Finding the Only Unpaired Element in the Array
Filed under Algorithms, Searching
Understand the problem of finding the only unpaired element in an array, and a few approaches to solve it.
k-Nearest Neighbors and High Dimensional Data
Filed under Deep Learning, Machine Learning
Explore the the k-NN algorithm in detail.
Sockets: Close vs. Shutdown
Filed under Networking
Explore the main concepts of sockets and their operational behavior.
State Machines: Components, Representations, Applications
Filed under Core Concepts
Explore the components, representations, and applications of finite-state machines.
OSI Model: Transport Layer vs. Networking Layer
Filed under Networking
Explore two important layers in the OSI model: the transport and network layer.
Value Iteration vs. Policy Iteration in Reinforcement Learning
Filed under Deep Learning, Machine Learning
Explore two algorithms to find an optimal policy for an Markov Decision Process.
Why Are TCP and UDP More Popular Than SCTP?
Filed under Networking
Learn about the core features of SCTP and issues affecting SCTP’s broader adoption.
Code Smells
Filed under Programming
Explore ideas how to prevent a codebase’s quality from decreasing.
The Difference Between Virtual Memory and Swap Space
Filed under OS
Explore the fundamentals of virtual memory and swap space in the OS.
Difference Between Access Point, Station, Bridge, and Router
Filed under Networking, Security
Compare bridge, station, router, and access points.
Trade-offs Between Accuracy and the Number of Support Vectors in SVMs
Filed under Deep Learning, Machine Learning
Explore the relationship between the number of support vectors and the performances of a support vector classifier.
Deadlock: What It Is, How to Detect, Handle and Prevent?
Filed under Concurrency
Explore the concept of deadlock in OS thoroughly
Priority Queue
Filed under Data Structures
Explore the data structure called a priority queue.
Time Complexity vs. Space Complexity
Filed under Algorithms, Core Concepts
Explore the theory behind time and space complexity.
Divide and Conquer vs. Dynamic Programming
Filed under Algorithms
Explore the basic idea of divide and conquer and dynamic programming paradigms.
Fermat Primality Test
Filed under Math and Logic
Learn about Fermat’s little theorem and Fermat primality test.
What Is a Heuristic Function?
Filed under Algorithms, Core Concepts
Learn about heuristic functions, their benefits and pitfalls, and some of the examples where we can use them.
Open Source Neural Network Libraries
Filed under Deep Learning, Machine Learning
Explore some commonly used open-source libraries for neural networks.
BIOS vs. CMOS vs. UEFI
Filed under OS
Learn about the BIOS, CMOS, UEFI and the differences between them.
Database Design in a Microservices Architecture
Filed under Software Architecture
Learn about database design in a microservices architecture.
Transformer Text Embeddings
Filed under Machine Learning
Learn what transformers are, their building blocks, and why they work so well, thanks to their advanced attention model.
What Is an OS Kernel?
Filed under OS
Explore the definition of the kernel in OS.
Insertion Sort vs. Bubble Sort Algorithms
Filed under Algorithms, Sorting
Compare two fundamental sorting algorithms: insertion sort and bubble sort.
Saga Pattern in Microservices
Filed under Software Architecture
Learn about the Saga architecture pattern to implement distributed transactions in a microservice-based application.
Generative vs. Discriminative Algorithms
Filed under Machine Learning
Learn about generative and discriminative machine learning algorithms.
Semantic Similarity of Two Phrases
Filed under Artificial Intelligence
Learn about the definition and types of text similarity.
Virtual Memory
Filed under OS
Explore the virtual memory concept in detail.
Polynomial Addition and Multiplication Using Linked List
Filed under Data Structures, Math and Logic
Learn how to represent a polynomial with the linked list data structure.
Ackermann Function
Filed under Math and Logic
Explore the Ackermann function and the problems associated with its computation.
Quicksort vs. Mergesort
Filed under Sorting
Compare two sorting algorithms: Quicksort and Mergesort.
Difference Between IP Address and Port Number
Filed under Networking
Learn about the IP addresses and networking ports in detail.
Why Feature Scaling in SVM?
Filed under Machine Learning
Learn about the SVM algorithm and how feature scaling affects its classification success.
Semaphore vs. Mutex
Filed under Concurrency, OS
Learn about the differences between mutexes and semaphores.
Generalized Suffix Trees
Filed under Algorithms, Trees
Learn how to build a generalized suffix tree to solve a substring recognition problem.
Normalization vs Standardization in Linear Regression
Filed under Machine Learning
Explore two well-known feature scaling methods: normalization and standardization.
Alternatives of Ten – Binary, Octal, Hexadecimal
Filed under Math and Logic, OS
Explore numeral systems and their associated concepts.
SSL vs. SSH
Filed under Networking, Security
Understand how the SSH and SSL protocols compare.
A Guide to Semantic Versioning
Filed under Programming
Explore a quick guide to using and interpreting the SemVer specification.
String Similarity Metrics: Sequence Based
Filed under Algorithms, Machine Learning
Explore sequence-based methods in the general field of analyzing the similarity of two strings.
How to Improve Naive Bayes Classification Performance?
Filed under Machine Learning, Math and Logic
Learn about the Naive Bayes classifier and explore ways to improve its classification performance.
SYN/ACK in the TCP Protocol
Filed under Networking
Learn how to create a TCP connection between a client and server by sending the correct packets to initiate and complete the TCP 3-way handshake.
Ugly Duckling Theorem
Filed under Machine Learning, Math and Logic
Learn about the ugly duckling theorem in its relationship with algorithmic bias.
Topic Modeling with Word2Vec
Filed under Algorithms, Machine Learning
Learn about the definitions and techniques of topic models, word embeddings, and WordVec.
Normalize Features of a Table
Filed under Data Science, Machine Learning
Learn how to normalize the features of a table or dataset.
Bit Stuffing
Filed under Networking
Learn about bit stuffing in detail.
Definition of Network Units: Packet, Fragment, Frame, Datagram, and Segment
Filed under Networking
Explore various data units in computer networking.
Networking: IPv4 vs. IPv6 Addresses
Filed under Networking
Compare two different IP address types – IPv4 and IPv6.
String Similarity Metrics: Token Methods
Filed under Machine Learning
Learn about the Token-Based string similarity metrics.
The Difference Between a Port and a Socket
Filed under Networking, OS
Learn about ports and sockets in networking.
Inter-Process Communication
Filed under OS
Explore computer system processes and various mechanisms of communications between them.
Gradient Descent Equation in Logistic Regression
Filed under Machine Learning, Math and Logic
Learn how we can utilize the gradient descent algorithm to calculate the optimal parameters of logistic regression.
Correlated Features and Classification Accuracy
Filed under Machine Learning, Math and Logic
Learn how correlation phenomena are generally harmful within a predictive method.
Offline Concurrency Control
Filed under Concurrency
Explore the concept of offline concurrency control.
Dynamic Linking vs. Dynamic Loading
Filed under OS
Explore various aspects of linking and loading in a computer application.
Weakly Supervised Learning
Filed under Algorithms, Artificial Intelligence, Machine Learning
Learn about strong and weak supervision learning.
What Is the Time Complexity of Tree Traversal?
Filed under Algorithms, Data Structures, Trees
Learn about the time complexity of the tree traversal algorithms.
Using Min/Max Within an Integer Linear Program
Filed under Math and Logic, Programming
Learn about integer linear programming (ILP).
Guide to Single Sign-On (SSO)
Filed under Security
Learn about Single Sign-On in detail.
Splitting a Dataset into Train and Test Sets
Filed under Machine Learning
Have a look at why and how to split a dataset into training and test sets.
Encoder-Decoder Models for Natural Language Processing
Filed under Deep Learning
Explore the building blocks of encoder-decoder models with recurrent neural networks, as well as their common architectures and applications.
Solving the K-Armed Bandit Problem
Filed under Machine Learning
Learn about the k-armed bandit setting and its relation to reinforcement learning.
Minimum Cut on a Graph Using a Maximum Flow Algorithm
Filed under Algorithms, Graphs
Learn how to find a minimum cut by calculating the maximum flow value of a graph.
Process Lifecycle
Filed under OS
Learn about the lifecycle of a process in an operating system.
Epoch in Neural Networks
Filed under Artificial Intelligence, Deep Learning, Machine Learning
Learn about the epoch concept in neural networks.
Complexity of Inserting N Numbers into a Binary Search Tree
Filed under Algorithms, Trees
Explore the insertion process of the binary search tree in detail.
GIT vs. SVN
Filed under Programming
Explore two most popular version control systems, namely GIT and SVN.
Popular Network Protocols
Filed under Networking
Explore 12 network protocols that are most widely used.
Haversine Formula
Filed under Math and Logic
Learn about the Haversine formula for calculating great circle distances in spherical surfaces.
Time Complexity of Sieve of Eratosthenes Algorithm
Filed under Algorithms
Explore the Sieve of Eratosthenes algorithm in detail.
Advanced Data Structures
Filed under Data Structures
Explore several advanced data structures.
Object-Oriented vs Functional Programming
Filed under Programming
Learn about object-oriented and functional programming and discover that they are not mutually exclusive.
Random Initialization of Weights in a Neural Network
Filed under Deep Learning, Machine Learning
Study weight initialization techniques in artificial neural networks and why they’re important.
Sum of Digits in Factorial
Filed under Algorithms, Math and Logic
Learn how to find the sum of digits of a factorial.
Backtracking Algorithms
Filed under Algorithms
Explore the general idea of the backtracking technique.
OSI Model
Filed under Networking
Explore the OSI model in detail.
Calculating the Height of a Binary Tree
Filed under Algorithms, Trees
Learn how to calculate the height of a binary tree.
REST vs SOAP
Filed under Programming
Analyze the two most known approaches to building APIs called REST and SOAP.
The General Concept of Polymorphism
Filed under Core Concepts
Learn what polymorphism is with examples.
Time Complexity of Searching in a Balanced Binary Search Tree
Explore a binary search tree data structure time complexity.
Time Complexity of Inserting into a Heap
Filed under Algorithms, Data Structures, OS
Explore the heap insertion algorithm.
Max-Heapify A Binary Tree
Filed under Algorithms, Trees
Learn about the process of max-heapify in a binary heap.
Traveling Salesman Problem – Dynamic Programming Approach
Filed under Path Finding
A guide to a dynamic approach for solving the Traveling Salesman Problem.
UDP vs TCP
Filed under Networking
Explore UDP and TCP networking protocols in detail.
Clean Code: Naming
Filed under Programming
Explore best practices for naming and some practices you should rather avoid.
Matrix Multiplication Algorithm Time Complexity
Filed under Algorithms, Math and Logic
Explore two algorithms for matrix multiplication: the naive approach and the Solvay Strassen method.
Minimum Spanning Tree: The Cut Property
Filed under Trees
Learn about the cut property in a minimum spanning tree.
Time Complexity of Euclid’s Algorithm
Filed under Algorithms, Math and Logic
Explore two variations of Euclid’s Algorithm to find the greatest common divisor of two positive integers.
Complete Binary Tree vs Almost Complete Binary Tree
Filed under Trees
Explore the concept of a complete and almost complete binary tree.
Algorithm for “Nice” Grid Line Intervals on a Graph
Filed under Algorithms, Latex
Explore an algorithm for placing nice gridlines on a bar chart.
The Difference Between Lower Bound and Tight Bound
Filed under Math and Logic
Explore the difference between Omega notation for lower bounds and the Theta notation for tight bounds.
Roulette Selection in Genetic Algorithms
Filed under Algorithms
Study the roulette wheel selection method for genetic algorithms.
Geofencing – Determining Whether a Point Is Inside of a Polygon
Filed under Algorithms
Learn how to determine whether a point is inside a polygon or not.
Choosing an Attractive Linear Scale for a Graph’s Y Axis
Filed under Algorithms, Latex
Learn how to determine a nice scale for the Y axis in a chart.
Converting a Uniform Distribution to a Normal Distribution
Filed under Artificial Intelligence
Explore how to generate a pseudorandom variable that’s distributed normally.
Gradient Descent vs. Newton’s Gradient Descent
Filed under Artificial Intelligence
Compare gradient descent and Newton’s method for finding the minima in a cost function.
How Does the Google “Did You Mean?” Algorithm Work?
Filed under Algorithms, Artificial Intelligence
Learn how the “Did you mean?” algorithm works in Google.
Understanding Forecast Accuracy: MAPE, WAPE, WMAPE
Filed under Math and Logic
Explore three different ways to measure forecast accuracy and how to apply them.
Worst Sorting Algorithms – What to Avoid
Filed under Sorting
Study sorting algorithms that are even worse than Bogosort.
Brute Force Algorithm in Cybersecurity and String Search
Filed under Algorithms, Security
Explore the definition of a brute-force search for combinatorial problems and for fixed-length strings.
What Is a Dmz in Networking?
Filed under Networking, Security
Learn about the concept of demilitarized zones for cybersecurity and networking.
How Does FIFO Page Replacement Work?
Filed under OS
Learn about the FIFO page replacement in detail.
What Is Cross-Entropy?
Filed under Machine Learning
Study the definition of cross-entropy.
Advantages and Disadvantages of Neural Networks Against SVMs
Filed under Deep Learning, Machine Learning
Explore the advantages of ANNs against SVMs, and vice versa.
Graph Auto-Layout Algorithm
Filed under Programming
Explore the principles behind the layout of graphs in drawings.
Draw a Chart Using LaTeX
Filed under Latex
Learn how to draw basic charts in LaTeX.
Draw a Graph Using LaTeX
Filed under Latex
Learn how to draw graphs using LaTeX.
Generating Dependency Graphs With Text
Filed under Latex, Programming
Learn about the tools that we can use to generate dependency graphs.
Graphs: Sparse vs Dense
Filed under Data Structures, Graphs
Explore the definition of density in a graph in relation to its size, order, and the maximum number of edges.
Neural Network Architecture: Criteria for Choosing the Number and Size of Hidden Layers
Filed under Deep Learning, Machine Learning
Explore methods for identifying the correct size and number of hidden layers in a neural network.
What’s the Difference Between a Word and a Byte?
Filed under Programming
Learn the characteristics of words and bytes and discussed their different relationships with memory and processors.
Branch and Bound Algorithm
Filed under Algorithms
Explore the branch and bound method in detail.
Training Data for Sentiment Analysis
Filed under Deep Learning, Machine Learning
Learn the basics of the methodology for sentiment analysis and explore public datasets for supervised sentiment analysis.
Looping in a Spiral
Filed under Algorithms
Explore how to loop over the elements of a matrix in a square spiral pattern.
What the Correlation Coefficient Actually Represents
Filed under Algorithms, Math and Logic
Explore the concept of correlation for bivariate distributions.
Differences Between Classification and Clustering
Filed under Machine Learning
Learn about the difference between classification and clustering.
Understanding Randomness
Filed under Core Concepts
Explore the ontological and epistemological foundations of randomness.
How to Prove That a Problem Is NP-Complete?
Filed under Algorithms, Math and Logic
Learn how to prove the NP-Completeness of the problem.
Quicksort Worst Case Time Complexity
Filed under Sorting
Discuss the worst-case scenario for time complexity of the Quicksort algorithm.
Object-Orientation in the Real World
Filed under Programming
Explore the core concepts behind the object-oriented programming.
Deep Dive into Hashing
Filed under Programming
Dive deeply into the topic of hashing: how it works, hash functions, algorithms, and potential attacks.
What Is a Policy in Reinforcement Learning?
Filed under Deep Learning, Machine Learning
Explore the concept of policy for reinforcement learning agents
SVM Vs Neural Network
Filed under Machine Learning
Explore the main similarities and differences between support vector machines and neural networks.
Support Vector Machines (SVM)
Filed under Machine Learning
Explore the theoretical foundation of support vector machines.
When Not to Use Regular Expressions?
Filed under Programming
Explore some common cases in which we shouldn’t use RegExes.
Regular Expressions
Filed under Programming
Study the syntactic rules for regular expressions.
Boolean Algebra: Basic Laws
Filed under Math and Logic
Study the basic laws of Boolean algebra and learn how to apply them for the simplification of Boolean expressions.
Introduction to Convolutional Neural Networks
Filed under Deep Learning, Machine Learning
Study the main characteristics of convolutional neural networks.
Computing Bubble Sort Time Complexity
Filed under Algorithms, Sorting
Analyze the pseudocode of the bubble sort algorithm and its time complexity.
Why Does the Cost Function of Logistic Regression Have a Logarithmic Expression?
Filed under Machine Learning, Math and Logic
Discover the reasoning according to which we prefer to use logarithmic functions such as log-likelihood as cost functions for logistic regression.
Linear Regression vs. Logistic Regression
Filed under Machine Learning, Math and Logic
Explore the main similarities and differences between linear and logistic regression.
First-Order Logic
Filed under Math and Logic
Learn the conceptual bases of first-order logic and explore how to derive it as a generalization from propositional logic.
Bias in Neural Networks
Filed under Deep Learning, Machine Learning
Learn the formal definition of bias in measurements, predictions, and neural networks.
How to Find Total Number of Minimum Spanning Trees in a Graph?
Filed under Algorithms, Trees
Learn how to find the total number of spanning trees and minimum spanning trees in a graph.
Floyd-Warshall Algorithm: Shortest Path Finding
Filed under Path Finding
Learn about the Floyd-Warshall algorithm to find all pair shortest distance in a weighted directed graph.
How to Compute the Similarity Between Two Text Documents?
Filed under Machine Learning
Learn how to compute the similarity between two text documents as a common task in NLP.
Propositional Logic
Filed under Math and Logic
Explore the foundational concepts for propositional logic, which include the idea of proposition and declarative sentences.
Introduction to Graph Theory
Filed under Graph Theory
Learn the conceptual bases of graph theory.
How to Build a Knowledge Graph?
Filed under Artificial Intelligence, Graphs
Learn about the theory behind Knowledge Bases, expert systems, and their associated knowledge graphs.
The Difference Between Asynchronous and Multi-Threading
Filed under Concurrency
Explore the definitions of asynchronous programming and multithreaded programming
Difference Between a Feature and a Label
Filed under Machine Learning
Explore two important conceptual definitions for supervised learning – features and labels in a dataset.
Function Parameters: Call by Reference vs Call by Value
Filed under Programming
Explore the concepts of pass by value and pass by reference.
SAT and 3-SAT – Cook-Levin Theorem
Filed under Math and Logic
Discuss the Cook-Levin theorem to show SAT is an NP-Complete problem.
Computing the Diameter of a Network
Filed under Algorithms, Networking
Explore the problem of finding the diameter of a graph.
The Liskov Substitution Principle
Filed under Programming
Learn about the Liskov Substitution principle, one of the SOLID principles.
Big Data vs Data Mining
Filed under Data Science
Explore the main conceptual and technical differences between Big Data and Data Mining.
Cache Write Policy
Filed under OS
Explore various write policies used in caches.
What Is the Difference Between Labeled and Unlabeled Data?
Filed under Computer Vision
Explore the information-theoretic explanation of the difference between labeled and unlabeled data.
Introduction to Emotion Detection in Written Text
Filed under Artificial Intelligence
Study the theoretical foundations of the problem of emotion detection in texts.
Maximum Value of an Integer: Java vs C vs Python
Filed under Programming
Explore the differences between these three top languages in relation to the maximum possible integer value.
What Are the Prerequisites for Studying Machine Learning?
Filed under Artificial Intelligence
Explore common prerequisites to the study of machine learning.
Go-Back-N Protocol
Filed under Networking
Learn how the Go-Back-N protocol works for both the sender and the receiver side to ensure reliable data transfer.
What Is an Incident Edge?
Filed under Graphs
Learn about the concept of incident edges and vertices in both directed and undirected graphs.
Determine Maximum Number of Edges in a Directed Graph
Filed under Algorithms, Graphs
Learn how to calculate the maximum number of edges in a directed graph.
How to Find If a Graph Is Bipartite?
Filed under Algorithms, Graphs
Learn about the bipartite graphs in detail.
What Is the Difference Between a Directed and an Undirected Graph
Filed under Data Structures, Graphs
Explore the differences between directed and undirected graphs.
Euclidean Distance vs Cosine Similarity
Filed under Math and Logic
Study two important measures of distance between points in vector spaces: the Euclidean distance and the cosine similarity.
Divide and Conquer Algorithms
Filed under Algorithms
Explore the strategy of divide and conquer, with the use of recursion.
Types of Queues
Filed under Data Structures, Programming
Learn about various types of queues and their applications.
Fibonacci: Top-Down vs Bottom-Up Dynamic Programming
Filed under Algorithms, Programming
Learn how to compute numbers in the Fibonacci Series with a recursive approach and with two dynamic programming approaches.
Understanding Dimensions in CNNs
Filed under Deep Learning
Learn how different dimensions are used in convolutional neural networks.
Finding the Lowest Common Ancestor of Two Nodes in a Binary Tree
Filed under Algorithms, Trees
Learn how to solve the Lowest Common Ancestor problem of two nodes in a binary tree.
How ReLU and Dropout Layers Work in CNNs
Filed under Artificial Intelligence
Study two fundamental components of Convolutional Neural Networks – the Rectified Linear Unit and the Dropout Layer.
Nonlinear Activation Functions in a Backpropagation Neural Network
Filed under Artificial Intelligence
Study the nonlinear activation functions most commonly used in backpropagation algorithms and other learning procedures.
Inadequacy of Linear Models: the Road to Nonlinear Functions
Filed under Artificial Intelligence
Explore the differences between linear and nonlinear problems, and how the former are inadequate in dealing with complex nonlinear problems.
Tries (Prefix Trees)
Filed under Data Structures, Trees
Learn how to implement a prefix tree data structure.
What Is a Monitor in Computer Science?
Filed under OS
Explore the concept of a monitor and then learn about its implementation in Java.
Connected Components in a Graph
Filed under Graphs
Explore a simple definition of connected component followed by a couple of simple and easy to understand examples
The Difference Between B-trees and B+trees
Filed under Data Structures, Trees
Explore the concept of B-trees and B+trees/
Cycles in an Undirected Graph
Filed under Algorithms, Graphs
Learn how to detect cycles in an undirected graph using Depth-First Search (DFS).
Graph Data Structures
Filed under Data Structures, Graphs
Learn how to store a graph in memory.
Methods of Depth First Traversal and Their Applications
Filed under Graph Traversal
Explore depth-first traversal methods and learn about their applications in the real world.
Logarithmic Time Complexity
Filed under Algorithms, Core Concepts
Explore the use of logarithmic time complexity in computer science.
P, NP, NP-Complete and NP-Hard Problems in Computer Science
Filed under Algorithms, Core Concepts
Explore the famous problem in computer science.
Common and Useful Data Structures
Filed under Data Structures, Graph Theory
Explore common data structures that are useful in programming.
What Is a Closure – Different Types of Scopes
Filed under Programming
Learn about closures, one of the most important topics when preparing for an interview.
Code Coverage
Filed under Programming
Learn what code coverage term means and analyze various ways to measure it.
Two’s Complement
Filed under Core Concepts
Explore the concept of two’s complement that allows computers to have one set of circuits – adders – that do two jobs: Addition and subtraction.
An Introduction to the Theory of Asymptotic Notations
Filed under Algorithms, Core Concepts
Understand the concepts behind the theory of the Big-O notation.
Introduction to Supervised, Semi-supervised, Unsupervised and Reinforcement Learning
Filed under Machine Learning
Discover multiple techniques to apply machine learning in projects.
Stable Sorting Algorithms
Filed under Sorting
Learn about stable sorting algorithms using Radix Sort as an example.
Baeldung on Kotlin
- All
- Kotlin Collections (9)
- Kotlin Basics (6)
- Testing (3)
- Kotlin-Java Interop (3)
- Libraries (2)
- Kotlin Server-Side (2)
- Kotlin Classes and Objects (2)
- Kotlin (2)
- Algorithms (2)
- Spring (1)
- Persistence (1)
- Kotlin Web (1)
- Kotlin Strings (1)
- Kotlin IO (1)
- Kotlin Functions (1)
Remove Elements From a List While Iterating in Kotlin
Filed under Kotlin Basics
Learn how to remove elements from a list when iterating over it.
Print Lists Content Separated by Comma
Filed under Kotlin Collections
Explore different techniques to print a List’s elements separated by a comma in Kotlin.
Kotlin actual Keyword
Filed under Kotlin-Java Interop
Explore two Kotlin keywords: expect and actual.
Using Java Reflection with Kotlin Companion Objects
Filed under Kotlin-Java Interop
Learn how to access Kotlin companion objects via Java Reflection API.
The Difference Between Int and Integer in Kotlin
Filed under Kotlin Basics
Explore the differences between Int and Integer in Kotlin.
Introduction to Kotlin Documentation with Dokka
Filed under Kotlin
Explore Dokka, an API documentation engine for Kotlin.
How to Serialize Arrays in Kotlin With Kotlinx.serialization
Filed under Kotlin Collections
Learn how data can be serialized using Kotlin’s kotlinx-serialization library.
Sum All the Items in a List of Integers in Kotlin
Filed under Kotlin Collections
Explore one of the Kotlin standard library collection functions sum().
Comparing Objects in Kotlin
Filed under Kotlin Classes and Objects
Learn how to override the default behavior of the == operator.
Introduction to Kotest
Filed under Testing
Explore several basic functionalities provided by the Kotest framework.
Guide to Spring Boot Testing with Kotlin
Filed under Kotlin Web, Testing
Explore a few unit and integration testing techniques for the Spring Boot app with Kotlin.
Interfaces as Method Parameters and Higher Order Functions in Kotlin
Filed under Kotlin Functions
Learn how we can create functions that take functions as arguments and return them as results.
Iterate Through a JSONArray in Kotlin
Filed under Kotlin Collections
Learn how to iterate over a JSONArray in Kotlin.
Kotlin – Getting Started with IntelliJ
Filed under Kotlin Basics
Learn how to use Kotlin in IntelliJ IDEA.
Writing InputStream to File in Kotlin
Filed under Kotlin IO
Learn a few approaches to copy the contents of an InputStream to a file in Kotlin.
Combining Two Arrays in Kotlin
Filed under Kotlin Collections
Explore the most common ways to merge arrays in Kotlin.
Getters and Setters in Kotlin
Filed under Kotlin Classes and Objects
Learn about getters and setters for properties in Kotlin.
Kotlin Loops
Filed under Kotlin Basics
Explore various loops supported by Kotlin.
Difference Between fold and reduce in Kotlin
Filed under Kotlin Collections
Explore the differences between fold() and reduce().
Kotlin Reactive Microservice With Spring Boot
Filed under Kotlin Server-Side, Spring
Learn how to create a microservice application with Kotlin and Spring Boot.
Sequences in Kotlin
Filed under Kotlin Collections
Learn how to work with sequences in Kotlin.
Introduction to Supervised Learning in Kotlin
Filed under Algorithms
Learn how to use supervised learning to train a machine learning model using Kotlin.
Finding an Element in a List Using Kotlin
Filed under Kotlin Collections
Learn how to use Kotlin with lists to find and filter elements on it.
Java EE Application with Kotlin
Filed under Kotlin Server-Side
Learn how to build CRUD REST JPA application in Kotlin, how to deploy it, how to run it in the Java EE container and how to test it with Arquillian.
Introduction to RxKotlin
Filed under Libraries
Explore the RxKotlin library, which augments RxJava to make its API look more like idiomatic Kotlin.
Kotlin Annotations
Filed under Kotlin
Learn about Kotlin annotations and their Java counterparts.
Nested forEach in Kotlin
Filed under Kotlin Basics
Learn how to use the default parameter it in Kotlin and how to access the parameters of an outer forEach from within a nested forEach loop.
Implementing a Binary Tree in Kotlin
Filed under Algorithms, Kotlin Collections
Learn how to implement the basic operations for a binary tree using the Kotlin programming language.
Converting Kotlin Data Class from JSON using GSON
Filed under Libraries
Learn how to use Gson in Kotlin to convert a Kotlin data class to JSON string and vice versa.
Guide to the Kotlin Exposed Framework
Filed under Persistence
Explore how to query a relational database using Exposed framework for Kotlin.
Kotlin String Templates
Filed under Kotlin Strings
Explore Kotlin’s String templates and learn how to use them.
Try-with-resources in Kotlin
Filed under Kotlin Basics
Learn how Kotlin is managing resources automatically and how it differs from Java’s try-with-resources construct.
Guide to Kotlin @JvmField
Filed under Kotlin-Java Interop
Explore the different ways of using the Kotlin’s @JvmField annotation.
Kotlin with Mockito
Filed under Testing
Learn how to use Mockito and Kotlin together in order to create mocks and write effective unit tests.
Baeldung on Ops
- All
- Docker (23)
- Jenkins (12)
- Kubernetes (6)
- Logging (2)
- Git (2)
- DevOps Concepts (1)
How to Troubleshoot and Resolve Jenkins “Pending – Waiting for Next Executor” Issue?
Filed under Jenkins
Explore various steps for troubleshooting the Jenkins “Pending – Waiting for Next Executor” issue.
How to Stop/Pause a Pod in Kubernetes
Filed under Kubernetes
Learn to stop a pod in Kubernetes using the kubectl delete command.
Creating Kafka Topic With Docker Compose
Filed under Docker
Learn how to create a Kafka topic using Docker Compose.
Using Liquibase in Kubernetes
Filed under Kubernetes
Learn how to use Liquibase, Kubernetes, and Spring Boot together.
Introduction to Docker Buildx
Filed under Docker
Explore Docker buildx, a tool that extends the building and managing abilities of Docker images.
How to List All Pods and Its Nodes in Kubernetes
Filed under Kubernetes
Explore commands to retrieve information about all pods and their assigned nodes.
How to Decode a Kubernetes Secret?
Filed under Kubernetes
Explore the fundamentals of Kubernetes secrets, including their functionality, encoding process, and how to decode them for content access.
Change Date Inside a Docker Container
Filed under Docker
Explore various ways to change the date and time of a Docker container.
Difference Between Openjdk Docker Images: Slim vs Slim-Stretch vs Stretch vs Alpine
Filed under Docker
Learn about the differences between various Docker images of OpenJDK.
Skip a Stage in a Jenkins Pipeline
Filed under Jenkins
Explore different solutions for skipping stages in a Jenkins-scripted pipeline.
Lightweight Kubernetes Distributions
Filed under Kubernetes
Learn about different lightweight distributions of Kubernetes and when to use them.
Running Stages in Parallel With Jenkins Workflow / Pipeline
Filed under Jenkins
Learn how to run multiple stages in parallel with a Jenkins workflow or pipeline job.
How to Use –init Parameter in Docker Run Command
Filed under Docker
Learn how to use the –init parameter in the Docker run command.
Service Profiles in Docker
Filed under Docker
Learn how to use service profiles in Docker.
Get the Output of a Shell Command in a Jenkins Pipeline
Filed under Jenkins
Explore two different methods for capturing the output of a shell command executed in the Jenkins pipeline into a variable.
Securing Passwords in Docker
Filed under Docker
Explore several methods to secure passwords in Docker, including using environment variables, a secret management system, and a key management system.
Enable BuildKit with Docker Compose
Filed under Docker
Learn how to enable BuildKit with Docker Compose.
Jenkins Pipeline – Change to Another Folder
Filed under Jenkins
Learn how to change the working directory in a Jenkins pipeline.
Quick Guide to Sentry
Filed under Logging
Learn how to use Sentry with Java-based server-side applications.
Fixing the “No Such DSL method” Error in Jenkins Pipeline
Filed under Jenkins
Learn how to fix the “No such DSL method” error in Jenkins Pipeline.
How to Get the API Token for Jenkins
Filed under Jenkins
Learn how to generate and use an API token in Jenkins.
What is the Default WORKDIR in a Dockerfile?
Filed under Docker
Learn about the default value of the WORKDIR instruction in Docker.
How to Sync a Forked Repository on GitHub
Filed under Git
Learn how to sync a fork with its original repository using both GitHub’s web UI and the command line.
Root User and Password Inside a Docker Container
Filed under Docker
Learn how to run commands inside a Docker container with different users.
Difference Between docker stop and docker kill Commands
Filed under Docker
Explore the difference between the execution of the docker stop and the docker kill command.
A Guide to Docker Logs
Learn different ways to monitor the logs of a container.
Deployment Strategies
Filed under DevOps Concepts
Learn what are deployment strategies and compare six different strategies.
A Guide to Tag in Docker
Filed under Docker
Learn how to create and manage tags in Docker.
Reduce Build Context for Docker Build Command
Filed under Docker
Learn about the concept of the build context in Docker.
Docker – Removing Dangling and Unused Images
Filed under Docker
Learn why dangling and unused images are common in Docker.
Get Environment Variable from Docker Container
Filed under Docker
Learn how to retrieve all the environment variables from a Docker container.
Docker: “build” Requires 1 Argument Error
Filed under Docker
Learn about the issues related to the Docker build command.
Cannot Connect to a Docker Daemon
Filed under Docker
Learn about the frequently encountered Docker daemon connectivity issue.
Reset/Disable Jenkins Security Settings From Command Line
Filed under Jenkins
Learn about different approaches to regain access to the Jenkins console after losing the password.
Removing Docker Containers
Filed under Docker
Learn why it is necessary to remove Docker containers.
States of a Docker Container
Filed under Docker
Explore different states of a Docker container.
Dockerfile Strategies for Git
Filed under Git
Explore a few ways to use a Git repository inside a Dockerfile.
Serverless Architecture with Knative
Filed under Kubernetes
Explore how we can leverage Kubernetes as the underlying infrastructure to host a serverless environment using Knative.
Share Docker Images Without Using the Docker Hub
Filed under Docker
Learn about the Docker save and load commands and how to transfer a Docker image using these commands.
Guide to Jenkins Architecture and Performance Improvements
Filed under Jenkins
Learn how we can configure Jenkins to improve its performance.
How to Set Environment Variables in Jenkins?
Filed under Jenkins
Learn about the different ways to set and use environment variables in Jenkins.
PostgreSQL with Docker Setup
Filed under Docker
Learn how to install the PostgreSQL database using the Docker container.
An Introduction to Kaniko
Filed under Docker
Learn how to build container images using Kaniko.
Run Gatling Tests From Jenkins
Filed under Jenkins
Learn how to insert load tests performed with Gatling into a Jenkins pipeline.
Configure Jenkins to Run and Show JMeter Tests
Filed under Jenkins
Learn how to set up a simple continuous delivery environment to run and show Apache JMeter tests in Jenkins.