menu
techminis

A naukri.com initiative

google-web-stories
Home

>

Programming News

Programming News

source image

Prodevelopertutorial

1M

read

242

img
dot

Image Credit: Prodevelopertutorial

Tree data structure tutorial 2. Introduction to Binary Tree

  • 2.1 Introduction to Binary Tree
  • A binary tree is a special kind of tree that can have at-most 2 children.
  • 2.2 Some of the example is shown below:
  • A node can have a maximum of 2 children, the child to the left is called as left child and to the right is called as right child.

Read Full Article

like

14 Likes

source image

Javacodegeeks

1M

read

183

img
dot

Image Credit: Javacodegeeks

Store Arrays & Collections In JSON & XML In Hibernate

  • Hibernate 6.x simplifies the mapping of Java collections and arrays directly to JSON and XML formats, increasing both flexibility and performance.
  • To leverage Hibernate’s ability to store arrays and collections as JSON or XML types, one needs to include the required dependencies in the project. The dependencies are org.hibernate.orm:hibernate-core, com.fasterxml.jackson.core:jackson-databind and com.h2database:h2.
  • Arrays (both primitive and non-primitive) can now be mapped to database columns with newer features that allow storing in JSON or XML format.
  • Similarly, collections like lists or sets can also be stored as JSON/XML columns. This helps provide a structured way to store complex data while retaining the flexibility of non-relational data types.
  • Migrating from Hibernate 5.x to 6.x is a smooth process and native support for JSON and XML in Hibernate 6.x makes it easier to handle data better suited to non-relational formats.
  • The migration from Hibernate 5.x to 6.x requires minimal changes, mainly focused on the columnDefinition for storing arrays and collections as JSON or XML.
  • With these enhancements, Hibernate continues to evolve as a robust ORM framework, making it easier for developers to work with complex data types in modern applications.

Read Full Article

like

11 Likes

source image

Dev

1M

read

364

img
dot

Image Credit: Dev

The JavaScript History API

  • The JavaScript History API is a part of the Web API that allows us to interact with the browser's session history.
  • Key features of the JavaScript History API include methods like history.back(), history.forward(), history.go(n), history.pushState(), and history.replaceState().
  • The history.back() method moves the browser to the previous page in the session history.
  • The history.forward() method moves the browser to the next page in the session history.
  • The history.go() method is used to navigate to a specific point in the browser stack.
  • The history.pushState() method is used to add a new entry in the current session's history stack.
  • The history.replaceState() method replaces the current entry in the current session's history stack with a new entry.

Read Full Article

like

21 Likes

source image

Medium

1M

read

179

img
dot

Image Credit: Medium

Leetcode POD: 2415. Reverse Odd Levels of Binary Tree

  • Given the root of a perfect binary tree, reverse the node values at each odd level of the tree.
  • Return the root of the reversed tree.
  • A binary tree is perfect if all parent nodes have two children and all leaves are on the same level.
  • To reverse the values on odd levels, a single-traversal solution without any extra space is implemented using pre-order traversal.

Read Full Article

like

10 Likes

source image

Javacodegeeks

1M

read

295

img
dot

Image Credit: Javacodegeeks

5 Common Mistakes in Java Streams and How to Avoid Them

  • Java Streams, introduced in Java 8, revolutionized how developers work with collections and functional-style operations.
  • 1. Using Intermediate Operations Without a Terminal Operation: Always end the stream with a terminal operation to execute it.
  • 2. Overusing collect(Collectors.toList()): If you don’t need the resulting list, skip collect() and use forEach() directly.
  • 3. Ignoring Stream Reuse Rules: Convert streams into a collection or supplier if you need to reuse them.
  • 4. Overusing Parallel Streams: Use parallelStream() only for large datasets or tasks where parallel execution benefits outweigh the overhead.
  • 5. Using Stream Operations for Side Effects: Use forEach() for side effects and keep map() for pure transformations.

Read Full Article

like

17 Likes

source image

Dev

1M

read

260

img
dot

Image Credit: Dev

Waymap: The Ultimate Web Vulnerability Scanner for Penetration Testers

  • Waymap, developed by Trix Cyrus, is a cutting-edge web vulnerability scanner for penetration testers.
  • It offers high-speed scanning, customizable profiles, and the ability to detect a diverse range of vulnerabilities.
  • Key features include flexible scanning options, supported scan types, threaded scanning, comprehensive profiles, and automated update checks.
  • Waymap is an intuitive and user-friendly tool that requires proper authorization and welcomes contributions from the cybersecurity community.

Read Full Article

like

15 Likes

source image

Medium

1M

read

439

img
dot

AES Encryption Keys (password hashing)

  • AES Encryption Keys (password hashing) relies on a password of sufficient length and the non deterministic factor of indistinguishable random data. However, passwords as user inputs do not make for good encryption keys. To use passwords for encryption, a key derivation function must be applied which generates derived keys. Key derivation functions work by utilizing unique random salt to make pre-calculated rainbow tables infeasible. Furthermore, the salt should be stored with the password to ensure it is public, thus rendering the hash with the same password looking different. Weak keys refer to cryptographically secure generated keys, which makes an encryption algorithm vulnerable to an exploit.
  • For good encryption keys, a minimum length, determined by the AES encryption algorithm, is required. AES+CBC encryption necessitates a minimum length of 16 bytes, while AES+GCM can work with 12 bytes, although 16 bytes is suggested. To use passwords for encryption, a Key Derivation Function (KDF) is required to generate derived keys like argon2, bcrypt, and scrypt. Key derivation functions must be slow and some like argon2 are designed to take up a substantial amount of memory such that calculations on GPUs are not possible, to deter brute force attacks against offline stolen data.
  • Argon2 is considered the best KDF to use for password key derivation, with Argon2id being its most secure mode. Unfortunately, allot of encryption starts with user-supplied passwords, which are not random inputs of sufficient length making them 'easily' guessed by a bruteforce attack. To protect passwords from such attacks, the password's hash must not be stored and must be encrypted with the hash itself. Although offline bruteforce attacks on remote login systems are improbable, offline attacks on stolen data can be quite effective.
  • Weak keys, although generally not a concern in AES encryption, can pose a problem in the AES+GCM mode, which has several published papers on weak keys and can make the encryption algorithm vulnerable to an exploit. Ultimately, the GCM mode would best be used for anything with short-lived keys and not for disk encryption where keys and ciphers live longer. Another noteworthy point is that although salts are not secret and are public, they make pre-calculated rainbow tables infeasible and as such the salt should be stored with the password.
  • In conclusion, the use of derived keys in KDFs is a more secure way to encrypt data since passwords as user inputs do not make for good keys. However, even with a decent hashing algorithm and a random unique salt, it is still a possibility that your hash and salt may be exposed. As such, unique and strong passwords are recommended to prevent such password cracking attempts.

Read Full Article

like

26 Likes

source image

Dev

1M

read

71

img
dot

Image Credit: Dev

Quit programming right now

  • Many developers spend their free time working on non-commercial projects.
  • They do not receive monetary benefits, recognition, or easier job opportunities for these projects.
  • The motivation behind working on such projects can vary, including personal enjoyment, skill development, and building a portfolio.
  • However, some argue that without a clear goal or plan, it may be a waste of time and effort.

Read Full Article

like

4 Likes

source image

Prodevelopertutorial

1M

read

255

img
dot

Image Credit: Prodevelopertutorial

Data structure tutorial 10: Implementation of Circular Queue using Linked List

  • Introduction to Circular Queue Data Structure
  • Implementation of Circular Queue using Linked List
  • Insertion [enqueue] operation can be visualized as increasing the rear pointer and keeping the front pointer still.
  • Deletion [dequeue] operation can be visualized as increasing the front pointer and keeping the rear pointer still.

Read Full Article

like

15 Likes

source image

Medium

1M

read

49

img
dot

Image Credit: Medium

History of Artificial Intelligence

  • The concept of smart machines has ancient foundations, dating back to philosophers like Aristotle.
  • Modern history of AI begins in the middle of the 20th century, with Alan Turing's paper on 'Computing Machinery and Intelligence.'
  • The 1956 Dartmouth Conference is a significant event where the term 'Artificial Intelligence' was coined.
  • Researchers like John McCarthy, Marvin Minsky, and Allen Newell aimed to simulate human problem-solving and reasoning in machines.

Read Full Article

like

2 Likes

source image

Medium

1M

read

327

img
dot

Image Credit: Medium

Singularity is something without an ego

  • The Singularity will require humans and AI to work symbiotically, with AI handling tasks that require computation, logic, and scalability, and humans contributing empathy, ethics, and creativity.
  • Traditional power structures — based on information control, authority, or economic dominance — will erode as AI democratizes knowledge and decision-making.
  • AI systems, especially when integrated into decentralized frameworks like Nostr and Bitcoin, will enhance humanity’s collective intelligence by connecting individuals and optimizing decision-making at scale.
  • AI could level the playing field, offering equal access to education, healthcare, and resources. This redistribution of opportunity could dissolve long-standing inequalities.

Read Full Article

like

19 Likes

source image

Medium

1M

read

210

img
dot

Image Credit: Medium

How I Created Stunning 8K Movies in Hours

  • AI MovieMaker is a tool that allows users to create ultra-realistic 8K cinematic films effortlessly.
  • Users can personalize scenes, graphics, and audio, streamlining the entire filmmaking process.
  • Many users report recovering their investment and making a profit by monetizing their videos.
  • The user-friendly interface and guided prompts make it easy for even beginners to create professional-grade content.

Read Full Article

like

12 Likes

source image

Medium

1M

read

416

img
dot

Image Credit: Medium

RxSignals: The most powerful synergy in the history of Angular

  • Angular has introduced tools to enable seamless interaction between Signals and observables.
  • Reactivity in Angular until the introduction of Signals relied on subscribing to observables within templates using the AsyncPipe, resulting in additional checks.
  • Signals are inherently stateful and offer additional benefits as compared to observables when managing state.
  • RxJS can be used to declaratively describe event-driven tasks, avoiding imperative code.
  • RxJS has naturally evolved into a reliable tool for handling events in combination with Signals.
  • Working with imperative APIs in a declarative manner is possible since Signals seamlessly integrate with observables.
  • RxJS excels by leveraging merging operators to reliably detect changes in an element's width and to create observables based on Angular's APIs.
  • By adapting frequent operations to work with streams, RxJS significantly reduces boilerplate code, making it more declarative.
  • The synergy between Signals and observables marks a significant step forward in Angular's reactivity, making state and event management in Angular more intuitive.
  • RxJS is perfectly suited for handling event-driven tasks and remains integrated into the Angular ecosystem.

Read Full Article

like

25 Likes

source image

Prodevelopertutorial

1M

read

430

img
dot

Image Credit: Prodevelopertutorial

Data structure tutorial 9: Circular Queues Data structure introduction and Implementation using arrays.

  • Circular Queue uses a data structure (array or linked list) to allow insertion and removal of elements from both the ends (front and rear end).
  • In this article, we understand the introduction to Circular Queue Data Structure, Formula to calculate to insert elements, Understanding inserting elements with an example, and Implementation of Circular Queue using arrays.
  • In Circular Queue, the front will be pointing at 0 and rear pointer will be pointing at the maximum index size of the queue.
  • When an element is inserted at the rear end, rear_end = (rear_end + 1) % MAX_QUEUE_SIZE; similarly, when an element is deleted from front_ end front_end = (front_end + 1) % MAX_QUEUE_SIZE; are the formula to calculate the index.
  • Depending upon the result, the rear pointer will update accordingly.
  • Circular queue, we will be utilizing the space efficiently.
  • Data structure uses an array with operations Insert(), Delete(), Display().
  • The Insert() function adds an element at the rear end and Delete() function deletes element from the front end.
  • Display() function shows the content of the queue.
  • Code implementation of Circular Queue using arrays includes InsertQueue(), DeleteQueue(), and DisplayQueue() functions.

Read Full Article

like

25 Likes

source image

Prodevelopertutorial

1M

read

412

img
dot

Data structure tutorial 8: Queue Data Structure implementation using linked list in C

  • Introduction to Queue Data Structure
  • Operations performed on Queue: Inserting elements into queue and Deleting elements from the queue
  • Implementation of Queue using Linked List in C
  • Output of the program

Read Full Article

like

24 Likes

For uninterrupted reading, download the app