dcsimg
December 16, 2019
Hot Topics:

More articles by Manoj Debnath

manosolireap@outlook.com

An Introduction to the Java Compiler API

Dig into the concept of Java Compiler APIs and learn what they are all about.

An Introduction to Dynamic Language Support in JVM

JVM gives direct support of modern dynamic languages. The strength of the dynamic languages is that the behavior of the program is defined at runtime.

How to Write Methods Efficiently in Java

Explore a number of techniques to establish the idea of writing efficient methods in Java.

How to Use Annotations Effectively in Java

Explore the effectiveness of annotations used by a Java compiler, with appropriate code examples.

How to Use Enum Effectively in Java

The idea of enums is simple, yet handy. Go hands on to show the effective use of enums in Java.

A Quick Look into Common and Useful Patterns in Java

Learn more about common patterns and how to implement them in a Java application.

Understanding MapReduce Types and Formats

MapReduce has a data processing model: inputs and outputs for the map and reduce functions are key-value pairs. Learn about the MapReduce model.

How MapReduce Works in Hadoop

Learn to leverage the MapReduce model used by Hadoop in resolving the Big Data problem.

Understanding the Hadoop Input Output System

Explore the I/O subsystem of Hadoop.

An Introduction to HDFS

Hadoop comes with a distributed filesystem called HDFS, a flagship filesystem of Hadoop. Learn about the design and concepts behind this filesystem.

What Is the Java Priority Queue?

Learn the finer points of using this important Java API.

An Introduction to Hadoop in the Light of Big Data

By reading this, you will gain an introductory idea about Hadoop in the light of Big Data.

Understanding Text Analytics and Big Data

Understand text data in the light of Big Data Analytics.

Understanding Big Data Analytics

Here, you will find a brief overview about the techniques used with big data analytics.

Understanding the Characteristics of Big Data

Learn about the fundamental aspects of Big Data, its basic characteristics, and get a hint of the tools and techniques used to deal with it.

Understanding the PAAS Service Model

What Is Cloud Computing?

Learn the basics of cloud computing.

Diving Deeper into Polymorphism and its Benefits in Java

Explore some of the intricate details about polymorphism and its implication on object-oriented programming.

Learning the Difference Between Comparable and Comparator

Study the concept of both the Comparable and Comparator interfaces to see how they differ. Code examples are given to help you learn.

Using JavaFX Tables to Organize Data

Explore JavaFX tables from the point of view of data organization and how it can be effectively be used in Java programming.

Filtering Data with the JDBC RowSet

Discover the filtering aspect of JDBC RowSet. Appropriate examples are given to guide you.

Implementing Singleton Patterns in Java

The singleton pattern guarantees that only one object with a global access point can be created at a time. Learn to harness its power.

Implementing Flyweight Patterns in Java

Explore flyweight patterns with the help of a simple example in Java.

Implementing Decorator Patterns in Java

Explore the decorator pattern and learn how it can be implemented by using the provided Java code examples.

Implementing Strategy Patterns in Java

Learn to use the strategy design pattern in your Java coding.

Understanding Spring Boot Starters and Tools

Take on a few of the popular Spring Boot starters and tools among many and discover their uses in developing a Spring Boot application.

Implementing Builder Patterns in Java

Explore a design pattern called the Builder Pattern and implement it with Java code examples.

An Introduction to the Java Security API

Java provides many options and features that make applications more secure. Learn about security features available.

How to Create a Scrollable, Updatable ResultSet Object in JDBC

When fetching a list of records through queries, we often need to store them in an object that allows back and forth traversing. Learn how here.

How to Protect a JDBC Application Against SQL Injection

Certain best practices are applied to Java code to guard against SQL injection attack. Discover the details with information about the threat.

Understanding the Intricacies of Threads and Locks in Java

Discover the semantics of multithreaded programming in Java. The material is presented with code examples.

Getting Started with Spring and Vaadin

Both Spring and Vaadin can be used to create a Web application because they are Java frameworks, interleave well, and can work in a single ecosystem.

What is Spring Integration?

Obtain a basic understanding of Spring Integration and how it extends over the Spring programming model.

What Is Spring Batch?

Learn about the Spring Batch framework, and read a description of the history of batch processing, and an overview of the framework's features.

Getting Started with JMS in Spring

Obtain an overview of JMS in Spring and its implementation. Appropriate examples are included.

Working with JavaMail and the Spring Mail APIs

Dive head-first into JavaMail, Spring, and the Sprint mail API and study a simple e-mail application that illustrates their distinctiveness.

Understanding Asynchronous Socket Channels in Java

Become more proficient with the concept of using asynchronous socket channels and see how they can be implemented in Java. There also is a sample.

What Is Spring Testing?

Here's an introductory idea about the testing support provided by the Spring framework and how it is applied with Spring Boot.

What Is Spring Security?

Discover Spring Security, and how it integrates with the Spring Web MVC framework. Examples are provided.

An Introduction to Concurrent Collection APIs in Java

Study an overview of concurrent collection APIs in Java and see their use through an appropriate example scenario.

What Are Sequential vs. Parallel Streams in Java?

Gain a perspective about and see how parallel streams can improve performance. You'll also have appropriate examples to assist your learning.

Understanding Callable and Future Interfaces in Java

Learn about this these advanced topics and see how to implement them in a Java program.

Multithreading in JavaFX

Better understand the principles of multithreading under the periphery of JavaFX programming.

What Is JPA Technology?

Study an overview and JPA's supporting implementation in Java.

Exploring the Basics of Java Logging

Explore the basics behind logging in Java and see how it helps in Java development.

What's New with Java EE 8?

Focus on a few notable changes to the platform with the introduction of Java EE 8.

What Is Non-blocking Socket Programming in Java?

Learn more about the concept of non-blocking socket programming and its allied areas, and work through the accompanying examples.

How to Multicast Using Java Sockets

Learn more about the overall concept of sockets in general and multicasting in particular, and see how it can be implemented by using Java sockets.

Parallel Programming Basics with the Fork/Join Framework in Java

Explore the concept of parallel programming with the help of the Fork/Join Framework in Java.

Interthread Communication in Java Multithreaded Programming

Discover what Java has to offer for interthread communication in a multithreaded programming environment.

Understanding Byte Streams and Character Streams in Java

Become more proficient with stream handling in Java.

Autoboxing and Unboxing in Java

Autoboxing and auto-unboxing streamline the coding of algorithms, removing the tedium of manually boxing and unboxing values.

Exploring Context Dependency Injection (CDI) 2.0 of Java EE 8

Explore the CDI 2.0 update and its implication on Java EE enterprise development.

Exploring the Servlet 4.0 APIs of Java EE 8

Explore the overall concept behind the changes to Servlet 4.0 and the its APIs. You'll also get a glimpse at the HTTP changes involved.

Creating Standalone Web Applications with Spring Boot

Learn how Spring can be used to create a Web application packaged with a Web server that runs with a single click.

What Is Spring Boot?

Discover more about the Spring Boot Project and how it contributes to a simpler Spring programming model.

Exploring REST APIs with Spring MVC

Become more proficient with using the Spring MVC framework in your Web-based Java projects.

Working with JDBC and Spring

Delve into the pros and cons of using JDBC with Spring. Also, there are appropriate examples and code snippets to guide you.

Working with the JavaFX UI and JDBC Applications

Learn to create a database-driven application with JavaFX as the GUI framework.

Understanding the Basic JavaFX Classes and How to Use Them

Dive into the basics of the JavaFX classes, especially with respect to the use of fundamental classes and how they are used in programming.

How to Create a PDF Document from a Java Program Using iText

Delve into the tool called iText, which enables a Java programmer to create PDF documents through Java code.

How to Create an Excel Document from a Java Program Using Apache POI

Learn to use Java programming to manipulate Microsoft Excel documents.

Exploring the Module APIs in Java 9

Explore the Java 9 Module APIs classes and some of the methods. There also are examples to give you an idea of their overall functionality.

What Is a Custom Runtime Image in Java 9?

Take a holistic look at the features of custom runtime images introduced with Java 9.

How Modules Are Packaged in Java 9

Learn briefly about the key aspects of packaging in the JAR and JMOD file formats, and how to create the packages.

Exploring the Intricacies of Module Access in Java 9

Explore the specific access mechanism of the open and opens modules.

Dealing with Module Dependency in Java 9

Peruse the key aspects of module dependency and discover how it is realized in Java programming.

Exploring the Java Monitoring APIs and Java Management APIs

Learn about the Monitoring and Management Services feature, as used in Java programming.

An Introduction to the Mockito Framework for Java Testing

Focus on unit testing with a mocking framework in general, and on the Mockito framework in particular.

Exploring Java Unit Testing with the JUnit Test Framework

Read an overview of the JUnit testing framework, the de-facto standard of Java unit testing.

Getting Started with Java 9's JShell

JShell is a Java tool shipped with JDK 9, and provides a command-line interface to interact with the Java platform.

Java 9 Structural Changes in the JDK and JRE

Explore the key structural changes brought to the JRE (Java Runtime Environment) and JDK due to modularization.

Understand JVM Loading, JVM Linking, and JVM Initialization

Java Virtual Machine does a lot of behind-the-scenes work to execute a binary class file submitted to it for execution. Glimpse JVM's initial stages.

What Is the Java 9 Module System?

Gain an overall picture of the module system as incorporated in Java 9.

Modularity in Java: Java 9 Modularity versus Prior Versions

Look back on the principles of modular programming from the threshold of a new era that is dawning with Java 9.

The Impact of Oracle's Java EE Move to the Eclipse Foundation

Java EE finally moved to the Eclipse Foundation as its new home. Examine the ramifications of the move.

Understanding the Java Labeled Statement

Learn about Java's "labeled" feature and how to use it in your own programming endeavors.

Using Different Types of Java Loops: Looping in Java

Dig into the concept behind looping in Java and learn about the various types of loops you can use.

Using the Java Bit Manipulation Operators

Probe the use of the bitwise operators available in Java.

How to Create Java API Documentation

Study of some key norms that are usually maintained to create standard Java documentation in source code and the usage of the javadoc tool in general.

A Step-by-step Guide to Creating NetBeans Web Apps

Learn how to create a Web application in NetBeans using the bare minimum of tools and technologies.

Getting Started with the Java Spring Framework

Learn more about the Java Spring framework from the perspective of one who wants to get an overall picture of Spring before diving deep into it.

Exploring the Java Networking APIs

Explore some of the key points of network programming through the lens of Java APIs.

Digging Deep into Java Recursion

Unravel some key aspects of the recursive technique in the light of Java programming.

What Is Functional Programming in Java?

Break into functional programming, from the perspective of using Java.

Understanding Java Wrapper Classes

Learn more about the classes provided in the standard API library.

Working with JavaFX Chart APIs

Delve into key aspects of the chart APIs of JavaFX and learn how to implement them.

Working with JavaFX UI Layouts

Learn to create striking, yet functional, UI layouts in JavaFX.

How to Code Java Clipboard Functionality

If you want to use clipboard functionality in a custom user component developed in Swing, AWT, or JavaFX, you'll need to add some Java code.

Understanding Java Process and Java ProcessBuilder

Discover some of the common functionalities of the process APIs to understand them in Java.

How to Add Java Print Services to Your Java Application

Learn to use the Java Print Services API in a Java application.

Understanding Java Tree APIs

Create non-linear data structures, called trees, to organize your data objects.

Understanding JDBC Connection Pooling

Learn to use the connection pooling mechanism and apply it to a Java application.

Creating a JDBC Application in NetBeans: A Step-by-Step Guide

Creating a JDBC application in NetBeans is easy if you keep things simple.

Introducing JEE Application Session Beans

Explore some key information to use session beans in an enterprise application.

Managing Transactions with EJB

Dive into the concept of transaction management with EJB.

Key Classes for Handling Files with Java NIO.2

Explore some of the key classes that are commonly used in file handling in Java.

Java NIO.2 File Handling

Study the features of channel-based I/O and learn about its uses with brief examples.

What Is a Java Formatter in Java Programming?

Explore the Java Formatter class and observe some of its utility in everyday programming in Java.

Exploring the Queue Interface in Java

Learn about the working concept of using the Que interface in Java.

Understanding Java Nested Classes and Java Inner Classes

Using both nested and inner classes is integral to being a successful Java programmer. Pick up some skills here.

Understanding Enumeration in Java

Learn how enumerations can be utilized in Java.

How to Handle Transactions with the JDBC API

Follow these examples and work through how transactions are handled with the JDBC API.

Exploring the Peer Classes of Java String: Java StringBuilder and Java StringBuffer

Learn about using the peer classes of Java String and work through some examples demonstrating their use.

Working with the Java Stream API

Discover the qualities of the Java Stream API and how to use it in a simple manner.

Working with Java Linked List

Discover the concept behind the data structure involved in implementing the LinkedList generic class in Java.

Working with Java Hashing Classes

Plunge into the techniques of hashing before delving into the Java Hashing Classes in brief.

Using Java Comparator

Learn about ways to order objects of a class.

Understanding the Java Servlet Life Cycle

Understand the life cycle of a servlet to understand the intricacies of the low-level functionalities of servlet programming.

An Overview of Java Virtual Machines (JVMs)

Peruse an overview of the JVM and how a Java program executes within it.

Exploring the java.lang Library

Learn about the Object class and the collection of wrapper classes of this package, to get a glimpse of the key aspects of the java.lang library.

Principles of Java Class Design

Learn about the key areas of class design with respect to object-oriented languages in general, and Java class design in particular.

Understanding the Java Thread Model

Learn more about threads in general and the Java thread model in particular.

Working with Images in Java

Explore the key aspects of working with images using the core API library.

Understanding and Using the Java Delegation Event Model

Explore the idea of event handling in general, and delegation event modeling in particular, with a focus on its implementation in Java.

What's Coming with Java 9

Here are ten key areas from the Java Enhancements Proposals index that are going to influence Java programmers in the years to come.

Understanding Exception Handling in Java

Follow through this article to understand the key concepts of exception handling in Java.

How to Use Java Debugger

Learn how to use jdb, from the Java Development Kit, to make finding those pesky errors easier.

What Is a Java ArrayList?

Discover some information about Java ArrayList, with a brief overview of its structure.

What Is Polymorphism in Java?

Learn about using polymorphism as a principle of inheritance in Java.

The Intricacies of Inheritance in Java

Become proficient with some of the intricacies involved with Java Inheritance and see code examples and illustrations to aid you.

A Deeper Look at Java Methods

Explore the intricacies of methods and how things actually work in Java.

Understanding Java Objects and Java Classes

Classes are a fundamental structure of any object-oriented programming language; Java is no exception. Understand these objects and classes.

Discovering Database Metadata with the JDBC Metadata API

Explore some of the key features of the JDBC metadata API in view of discovering database metadata.

What Are Enterprise Java Beans (EJB)?

Understand and delineate the concept behind JEE, with a focus on EJB in particular.

Explore the Java API for JSON Processing

Java has never lacked support for JSON processing. In this article, the specific interest lies in the core API group.

Understanding Java Observable and JavaFX Observable

Learn about the concepts behind the paradigm of Observable and Observer objects and how they are used in Java code.

How to Use the JavaBean API Library

Learn about some of the key aspects of transforming a POJO into a bean component and how the JavaBean API library helps in the process.

JavaBeans Tutorial: What Are JavaBeans?

Learn about the architecture that adheres to the software component model standard and how JavaBeans are integrated and incorporated to become a part of the whole subsystem.

Exploring Java BitSet

Become proficient with the necessary details on how to use the Java BitSet class.

Working with Java Optional Classes

The Optional class in Java is not essential, yet it provides invaluable help in some instances. Master its use here.

Exploring the Java String Tokenizer

Gain a comprehensive understanding of the background concepts of tokenization and its implementation in Java.

Advanced Concepts of Java Garbage Collection

Explore some of the areas of memory management, along with the APIs related to garbage collection.

Advanced Concepts of Java Object Serialization

Probe serialization and its related concepts and learn to delineate some of its nooks and crannies, along with their implementation in the Java API.

Streamline Your Understanding of the Java I/O Stream

Learn to streamline your understanding of I/O streams APIs in Java.

Using the Executor Framework to Deal with Java Threads

Examine the Java core framework and its uses with a little background idea to begin with.

A Deeper Look: Java Thread Example

Become more familiar with some concepts that would aid in better understanding Java threads, eventually leading to better programming.

Explore List, Map, Set, and Collection Classes in Java

Explore the core concepts behind a few of the collection objects in the Java framework.

Stream Operations Supported by the Java Streams API

Take on the concept of streams from a comparative perspective; we'll illustrate some of its usage in regular Java programming.

Using ObjectDB in Java Projects

Study some of the key concepts needed to work with ObjectDB in a Java application.

How to Apply Common Algorithms to Java Collections

Focus on some of the Collection Framework's common algorithmic application to collection elements in Java.

Working with Java Archive Files

Delve into some of the key concepts of working with archive files by using Java programming.

Working with Embedded Databases in Java

Explore the choices available in integrating a database engine and observe some intricacies involved in actually implementing them in Java.

Working with the JDBC API for Large Objects

Dealing with large objects of several types can be tricky. Here are some practical examples to make your coding simpler.

How to Manage Data Persistence with MongoDB and JPA

Learn how to use the Hibernate OGM framework in dealing with a NoSQL database such as MongoDB.

What is JavaFX? An Introduction

Discover what JavaFX is through examples, rather than peruse a dry conceptual overview.

Using MongoDB in a Java EE7 Framework

Create a Web application that uses MongoDB as the storage.

NoSQL in Practice with a CRUD Application in Java

Glance at the practical aspects of NoSQL when implemented in MongoDB and Java.

Getting Started with MongoDB as a Java NoSQL Solution

Explore the Java NoSQL relation from the perspective of MongoDB and acquire some ground up information in a concise manner before going hands on in Java.

Supporting EJB Transactions in Your Java App

Explore the concept of EJB transaction management in a Java EE framework.

How to Use the Java Transaction API

Focus on the conceptual aspect of transaction management within the purview of Java Transaction API as groundwork for JTA implementation.

Java Lambda Expression Revisited

Look into the functional interface in view of Java lambda expression and how it can be used in everyday programming practices in a simple manner.

Using Java Regular Expressions

Become proficient in using Java Regular Expressions and make your coding more efficient.

Using JSTL to Enhance JSP Functionality

Explore some of the key aspects of JSTL that highlight the convenience of using it over scriplets.

Working with the New Java Date and Java Time APIs

Learn to use Joda Time, a new component of the Java 8 core library.

Effective Use of Java Command Line Tools

Explore some of the command line tools that come in quite handy when programming in Java.

Exploring Java Internationalization Support in Java Applications

There are many areas to consider when internationalizing your Java code. Start here with a tutorial.

Creating a Java EE Web Application: A Case Study

Explore some aspects of creating a Web application in the JEE framework. An example application is included.

Socket Programming: UDP Client/Server Application

This article provides some key information about socket programming, with a focus on building an UDP client/server application in Java.

Socket Programming: TCP Client/Server Application

Learn more about the concept behind  the client/server model with hands-on details in creating a TCP client server application in Java.

Exploring the New Java Input/Output (Java NIO.2) Packages

Explore some of the key aspects of new input/output APIs introduced in Java NIO and see code examples.

Getting Started with Java RMI

Explore the concepts and intricacies of getting started with Java RMI while studying appropriate code examples.

Utility of the Collection Framework in Java

The collection framework has an extensive supply of classes that are less used because people don't understand them. Go hands on and learn their utility.

Getting Started with Java Annotations

Annotations are very useful devices. They help you interpret your code and they don't slow its processing speed.

Getting Started with Java Generics

Study some of the key aspects of Java generics with relevant examples to delineate the idea.

RESTful WS with Jersey, Part 2

This time, roll up your sleeves and create your own RESTful Web Service.

RESTful WS with Jersey, Part 1

Learn some of the key elements needed to begin using the Jersey Web service.

How to Create a Multilingual JasperReport

Explore how to fetch Unicode characters persisted in a database and subsequently create a multilingual report with the help of the JasperReport library in Java.

Creating a Graphical Report in JasperReport

Focus on creating a simple graphical report in JasperReport with the help of a few third-party libraries.

Dynamic Database Creation with JDBC

Explore the idea and the role played by JDBC in implementing the process of dynamic database creation.

Working with Multiple Databases in JDBC

Study the problem and possible techniques to get around database complexities.

Developing WebSocket Client/Server Endpoints

Explore ways to implement client/server WebSocket endpoints with Java in EE7.

Getting Started with WebSocket APIs in Java

Familiarize yourself with a few necessary background details before rushing into WebSocket implementation in a Web application.

Creating Android Games with Java

Focus on some key areas of Android with Java that would help in building games your consumers will enjoy.

RAD Application Development with Grails

Explore some of the features that make the Grails platform suitable for a rapid Web application development.

Component-based Web Development Using JSF 2

JSF 2 provides a fine infrastructure to implement a rich user interface. Learn to use it to its full advantage.

Exploring the Spring Web MVC for Web Application Development

Explore some of the Spring framework's key aspects that help to build loosely coupled Web applications on the Spring IoC container.

Understanding Android Code Structure

Master the Java code structure and flow of control in developing an Android application.

Exploring the Struts 2 Web Application Framework

You can master a different approach to creating Action classes in Struts 2.

Java EE Web Development: A Closer Look

Java EE is a driving force behind enterprise development. Learn about some of its framework usages.

How to Create a JVM Instance in JNI

Experience how to shed some light on the way to utilizing Java code in C++.

Getting Started with Android Using Java

Now's the time to receive instruction to get a first taste of Android Programming in Java in a simple manner.

Exception Handling in JNI

Dig deeper into some of the key concepts of exception handling in JNI.

Manipulating Java Objects in Native Code

Explore how to manipulate Java objects from a native code such as C/C++ using JNI.

JNI Data Type Mapping to C/C++

Dig into function and data type mapping between Java and C/C++. You'll also find some appropriate examples to guide you.

Getting Started with JNI

Explore the world of JNI (Java Native Interface), a programming interface through which Java byte code can interact with any native code.

How to Bypass Accessibility Checks Through Reflection in Java

In my humble opinion, security is a farce. The most secure code is the code that you have never written and the most secure language is the language never invented. Learn more about reflection in Java.

Explore Core Features of Reflection and Its Utility in Java

Discover some of reflection's core areas of the API with a few examples to implement them in programming.

Introspection of Java Code Through Reflection

Reflection provides some value so that we can create our own recipe rather than eulogize a bullet-proof black box of language paradigm.

Leverage a JavaFX Application with Nashorn Script

Explore the simplicity of integration between two very different types of languages, especially from the point of view of a JavaFX application.

Explore Scripting in Java

Look into some nooks and corners and key aspects of scripting in Java in general.

3D Graphics in JavaFX

If you've used the 2D APIs of JavaFX, working with the 3D APIs will be almost child's play.

Understanding 3D Graphics (in Java)

Get a solid footing on key ideas and master the intricacies involved before one considers jumping into 3D programming.

From Data Models to Relational Design

Database design needn't be daunting. Here are some easy-to-follow steps to create a basic database.

Understanding Database Normalization

If your database isn't properly normalized, it's hard to maintain. Worse yet, it can't give you desired information. Remedy your database problems.

Implementing Generalization and Specialization in Java

Become proficient with specialization and generalization, which is the subclass and superclass hierarchy mechanism in a relational database.

Doing Animation in JavaFX

Master the power and versatility of JavaFX to achieve animations of several types.

Using Graphics in JavaFX

Discover the depth and intricacies of JavaFX, which is built primarily to create and deliver rich Internet applications (RIAs).

How to Manipulate Complex Graphical Elements in Java with the 2D API

Learn to use <i>Graphics2D</i>, an extension of the legacy <i>Graphics</i> class of the AWT package and which supports more drawing capabilities than its predecessor.

Using Graphics in Java Applications

Explore the Java GUI in general and work with a couple of practical graphics implementations.

Ten Tips For Getting Started with Graphics Programming

Explore the ten crucial points to begin with graphics programming.

Monitoring Email Accounts (IMAP) in Java

Master some of the important aspects of email monitoring and their implementation through code.

Adding Email Support to Your Java Applications

You can add the benefit of mail and messaging support even to a bare bone, standalone Java application.

Random File Access Using Java

A flat file access mechanism can be customized like a database CRUD operation. Learn how to do that for your data.

File Handling in Java: Object Serialization

Explore the serialization/deserialization process with the help of a file handling mechanism.

Sequential File Access Using Java

Explore how to process common sequential files through Java and some aspects of file handling APIs in general.

Working with Searching and Sorting APIs in Java

Explore some specific aspects of searching and sorting APIs found in the Java library.

Understanding Interceptors for Java EE

The Interceptor class is the object-oriented way to handle issues in which "system outcasts" need to be handled. Learn how to use this class here.

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.


Thanks for your registration, follow us on our social networks to keep up-to-date