teleren/devto huggingface dataset:
Software Engineering - FAQ
Published: 2023-04-20 08:06:48

## What is Software Engineering? 
Engineering discipline that concerned with every stage of software development and maintenance

## What is a Software
A set of instructions to perform a specific task

## Software Developer
A highly skilled profession with coding skills

## Software Engineer
A highly skilled profession with coding skill mathematical skills

## Software Engineering Activities

- Specification
- Development
- Validation
- Evolution

## Types of software products

- Generic
- Bespoke

## Software Engineering Diversity

- Entertainment System
- Transactional System
- Simulations
- Embedded Control System
- Data collection system

## Software Engineering team roles

- FE/BE Engineer	
- QA Engineer
- Tester
- Tech Lead	

## Software Engineering Ethics

- Confidentiality
- Competency
- Intellectual Property rights
- Computer Misuse
- Computer Science VS Software Engineering
- Computer science is focusing on Theories and fundamentals.
- SE is focusing on Practicalities


## SDLC
SDLC is the process of Planning to implementation and operation. 
It consists of documentation

1. Planning
 Feasibility Study Areas
  - Technical
  - Operational
  - Legal
  - Schedule
  - Economical

2.Gathering requirements

3.Design and Prototype
  - Architecture
  - UI
  - Programming
  - Platform
  - Communication
  - Security

4.Developing
5.Testing
6.Deployment
7.Maintainance and Operation

## Uses of SDLC
  Assure the quality of the product
  Easy for developers to develop

## Attributes of a Good Software
  - Maintainability
  - Efficiency
  - Acceptability
  - Dependability
  - Security

## Types of requirements

- Functional - It is required for the system’s function(They are must for operation) 
   FaceBook
    - User login for the system(Authentication)
    - Adding posts
    - Commenting
    - Liking the post

- Non Functional - It is not required directly, but it is required circulatory.
    - Allow users to use either mouse or keyboard
    - Allow user to change focus
    - Providing feedback

## User requirements and System requirements

  - User Requirements - The requirements that users need, in          natural language
   - Functional : Account create, Account Login
   - Non Functional : Dark Mode, Loading speed, Ads, Animation

  - System Requirements - The requirements that need for the system’s function
   - Functional : Login data secure, Should be able to register a customer
   - Non Functional : Ability to change the mode

## Software Process Model
 - Set of related activities to the software development
   - V Model
   - Waterfall
   - Spiral
   - Prototype
   - Iteractive
   - Incremental

## Process Maturity Approach

 - Agile Approach : Focus on iterative development and reduction of overhead

 - Process Maturity Approach : Focused on improving process and project management
Hibernate Part 1
Tags: java, hibernate, orm, backend
Published: 2023-04-20 07:41:12

From the today's post we are going to talk about the ORM and Hibernate.

## What is ORM? 
ORM is Standing for Object Relational Mapping. We are using this to reduce the gap between the Relational Databases and Objects we are creating on the Object Oriented Programming language.

## What is JPA
JPA Commonly known as Java Persistence API which is Java Specification for ORM Frameworks. It provide high level API for managing relational data, simplifying the task of persisting Java Objects to Database.

## What is Hibernate
Hibernate is ORM mapping tool for Java Language. It provides a framework for mapping an Object Oriented Domain model to relational database.

## What is the difference between JPA and Hibernate?
JPA is responsible in managing relational databases in Java Applications, while Hibernate is an ORM tool used for saving the state of the Java Object in the database

## What is RDBMS?
A program which is used to Create, Update and manage relational databases. Most well known RDBMSs are MySQL, MariaDB, PostgreSQL ...etc

## What is the difference between RDBMS and Hibernate?
RDBMS is a software that is used to manage relational databases, while Hibernate is an ORM framework that provides layer of abstraction on top of RDBMS. Hibernate is managing data persistence and mapping between Java objects and relational databases. Hibernate is using RDBMS as its underlying data stores, but it provides additional features to make work with databases more conveniently.

## What are the advantages and disadvantages of Hibernate?
Advantages

- Database independent - We can use any database.
- Open source
- Better than JDBC
- It allows inheritance and polymorphism
- Have caching mechanism
- Developer friendly

Disadvantages

- Hard to debug
- Have to study lots of API
- Slower than JDBC
- Not suitable for Small projects



This is the end of part one on the Hibernate Series. Let's continue others FAQ on the other posts
Logging Design Overview & Per-transaction Logging & Exception Handling
Tags: opengauss
Published: 2023-04-20 07:36:21

**Logging Design Overview**
Write-Ahead Logging (WAL) is a standard method for ensuring data durability. WAL's central concept is that changes to data files (where tables and indexes reside) are only written after those changes have been logged, meaning after the log records that describe these changes have been flushed to permanent storage.

The MOT Engine uses the existing openGauss logging facilities, enabling it also to participate in the replication process.

Figure 1 Three Logging Options

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uiq9dbw06tkvhju83tev.png)

The RedoLog component is used by both by backend threads that use the MOT Engine and by the WAL writer in order to persist their data. Checkpoints are performed using the Checkpoint Manager, which is triggered by the Postgres checkpointer.

**Per-transaction Logging**

In the In-Memory Engine, the transaction log records are stored in a transaction buffer which is part of the transaction object (TXN). The transaction buffer is logged during the calls to addToLog() – if the buffer exceeds a threshold it is then flushed and reused. When a transaction commits and passes the validation phase (OCC SILO[Comparison – Disk vs. MOT] validation) or aborts for some reason, the appropriate message is saved in the log as well in order to make it possible to determine the transaction's state during a recovery.

Figure 1 Per-transaction Logging

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2o4f68sjetzxskp4va7o.png)

Parallel Logging is performed both by MOT and disk engines. However, the MOT engine enhances this design with a log-buffer per transaction, lockless preparation and a single log record.

**Exception Handling**

The persistence module handles exceptions by using the Postgres error reporting infrastructure (ereport). An error message is recorded in the system log for each error condition. In addition, the error is reported to the envelope using Postgres’s built-in error reporting infrastructure.

The following exceptions are reported by this module –

Table 1 Exception Handling

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52oknxupspsrx6khdbjk.png)
Observability: A Critical Practice to Enable Digital Transformation
Tags: devops
Published: 2023-04-20 07:27:49

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/97377dy06qlqrppb23kz.png)
The road to digital transformation isn’t straightforward, but it gets easier with [DevOps](https://cloudzenix.com/devops/) and cloud computing. As critical enablers of digital transformation, DevOps and Cloud Computing. Such is observability, a critical practice to enable digital transformation by providing a real-time performance analysis. Simply put, observability is the ability to evaluate the internal modules of a system by inspecting the system’s overall output.

DevOps specialists often lack proper visibility in their [CI/CD pipeline](https://cloudzenix.com/devops/devops-ci-cd-services/). If this persists, your end-users will find the bottleneck before you do! When it comes to understanding observability, you’ll come across several definitions on the internet. Moreover, they morph all the time. Nevertheless, to make someone understand the essence of observability, the general idea is to empower IT professionals to ask questions about applications and the infrastructure that runs them.

You often must have encountered instances where a DevOps engineer says they can’t see persisting issues. When an IT professional doesn’t have access to a platform or a tool that can answer questions you can’t think of, you’ll be rendered blind. Asking the right questions when a digital infrastructure is up and running will help you to gauge downtime or misconfigurations, among other issues. That’s what observability is about, answering questions about the digital infrastructure as well as being able to ask questions. Learn more about the blog: https://cloudzenix.com/observability-a-critical-practice-to-enable-digital-transformation/
Responsive CSS Flex example
Tags: css, html, webdev, codepen
Published: 2023-04-20 07:12:42

A simple way to create two columns and three columns using CSS flex option. It also shows an example of responsive styling of the columns.

The flex CSS shorthand property makes it easier to design flexible responsive layout structure without using float or positioning.

In first example there is a flex container with two flex items and in the second example there is a flex container with three flex items.

{% codepen https://codepen.io/preetkakkar/pen/LYJaQyY %}
Teamwork or Solo Development: Which Do You Prefer?
Tags: discuss, beginners, codenewbie
Published: 2023-04-20 07:00:00

Working with a team can bring diverse perspectives and a sense of camaraderie, while working solo can give you the freedom to make all the decisions and work at your own pace. So are you a lone wolf or a team player? Or do you prefer to mix it up?

Share your thoughts in the comments!

---

Follow the [CodeNewbie Org](https://dev.to/codenewbieteam) and [#codenewbie](https://dev.to/t/codenewbie) for more awesome discussions and online camaraderie!
Synchronous Redo Logging
Tags: opengauss
Published: 2023-04-20 06:57:43

The **Synchronous Redo Logging** option is the simplest and most strict redo logger. When a transaction is committed by a client application, the transaction redo entries are recorded in the WAL (Redo Log), as follows –

1. While a transaction is in progress, it is stored in the MOT’s memory.
2. After a transaction finishes and the client application sends a **Commit** command, the transaction is locked and then written to the WAL Redo Log on the disk. This means that while the transaction log entries are being written to the log, the client application is still waiting for a response.
3. As soon as the transaction's entire buffer is written to the log, the changes to the data in memory take place and then the transaction is committed. After the transaction has been committed, the client application is notified that the transaction is complete.

**Technical Description**

When a transaction ends, the SynchronousRedoLogHandler serializes its transaction buffer and write it to the XLOG iLogger implementation.

Figure 1 Synchronous Logging

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6obuna4yde0nkzw4eazd.png)

**Summary**
The **Synchronous Redo Logging** option is the safest and most strict because it ensures total synchronization of the client application and the WAL Redo log entries for each transaction as it is committed; thus ensuring total durability and consistency with absolutely no data loss. This logging option prevents the situation where a client application might mark a transaction as successful, when it has not yet been persisted to disk.

The downside of the **Synchronous Redo Logging** option is that it is the slowest logging mechanism of the three options. This is because a client application must wait until all data is written to disk and because of the frequent disk writes (which typically slow down the database).
Deno's New Built-In Key-value Database "KV"
Tags: deno, database
Published: 2023-04-20 06:51:37

I just learned about a new feature in Deno and I wanted to share it with y'all. It's a built-in database called "KV" which aptly stands for key-value. 

https://deno.land/manual@v1.32.5/runtime/kv

Checkout Ryan Dahl's talk here where he demos the feature (this video autoplays at 14:34)

{% embed https://www.youtube.com/embed/LVEGRj3RZSA?start=874 %}

I'm super excited about this feature. I believe that Deno has done something really special here. As a company, Deno is unique. They have the ability to bake in useful features into the runtime that become superhuman when deployed on their cloud platform, [Deno Deploy](https://deno.com/deploy), similar to the relationship that Vercel has with Next.js. The API for KV can work with SQLite locally and can be hijacked on the cloud platform to work with distributed FoundationDB. This is genius. Overall, I'm happy that Deno is adding useful features to the runtime that will help developers build apps quickly.
How To See Journal Entries In QuickBooks?
Tags: quickbooks, accounting
Published: 2023-04-20 06:48:51

The answer to the query "[how to see journal entries in QuickBooks](https://errorgenie.com/quickbooks/how-to-view-journal-entries-in-quickbooks/)" is to go to the "Reports" menu, choose "Accountant & Taxes," and then select "Journal." To display the journal entries for a certain date range, transaction type, or account, you may now modify the report. Additionally, you can click on specific entries to get the transactional data. Both QuickBooks Desktop and QuickBooks Online have access to this capability.
Upgrading our CSS habits: aspect-ratio
Tags: css, tricks
Published: 2023-04-20 06:30:36

---
title: Upgrading our CSS habits: aspect-ratio
published: true
description: Using aspect-ratio you can set an element's height and width automatically
tags: css, tricks
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-04-20 06:15 +0000
---

The CSS [aspect-ratio property](https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio) is pretty amazing. You can define a ratio of width to height and it will resize the element accordingly. 

![Resizing an element to different aspect ratios](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p0wvqoc493c72ev80nhf.gif)

You can try it out [in this pen](https://codepen.io/codepo8/pen/MWPjNxW):

{% codepen https://codepen.io/codepo8/pen/MWPjNxW %}

Where this shines is videos, image content and embeds. No more hacks with relative positioning and percentages. Browser support [is green all over](https://caniuse.com/mdn-css_properties_aspect-ratio), so, like me, it makes sense to upgrade your CSS habits.
UPI Payment Integration Response Status Without SDK Files?
Published: 2023-04-20 06:26:39

{% stackoverflow 75764269 %}

0


I am working on opening GooglePay, PhonePe or PayTM app when the user taps on Pay via UPI without SDK.

I know that by following an URL Deeplink like the following, we can open UPI apps for in mobile.

"upi://pay?pa=upiaddress@okhdfcbank&pn=JohnDoe&cu=INR"

As of now i am done my project iOS app to UPI Payment app redirect with bill values (UPI ID, Name, Bill Amount) at the same time UPI payment/transaction also debited/completed successfully. Then i am came back to Native iOS App OrderPlaced Method also i am done it.

But my question is how to get the transaction status from there? I need to track which payment/transaction is success and which is failure.

I tried reading NPCI documents, but did not find any solution.

How do I implement that? UPI Payment/Transaction Status/Response/Failure in Swift iOS.

And Thanks.
Coercion and Falsy values in Javascript.
Tags: coercion, falsy, javascript, webdev
Published: 2023-04-20 04:46:18

In JavaScript, coercion is the process of converting a value from one type to another. This can be done implicitly or explicitly, and it can lead to some unexpected behavior if you're not careful. One area where this is particularly true is with falsy values.

Falsy values are values that are considered false when evaluated in a boolean context. The following values are considered falsy in JavaScript:

\> false
\> null
\> undefined
\> 0
\> NaN
\> '' (an empty string)

When you try to use one of these values in a boolean expression, JavaScript will automatically coerce it to a boolean value. For example, if you have the following code:

```
if (0) {
  // This code will not execute
} else {
  // This code will execute
}
```
In this case, the value 0 is considered falsy, so the condition in the if statement evaluates to false. JavaScript coerces the 0 to the boolean value false, so the else block will execute instead.

While coercion can be useful in some cases, it can also lead to unexpected behavior if you're not careful. One common issue is when comparing values using the double equals (==) operator. This operator performs type coercion if the types of the two values being compared are different.

For example, consider the following code:
```
if ('0' == 0) {
  // This code will execute
} else {
  // This code will not execute
}
```
In this case, the string '0' is coerced to the number 0, so the condition in the if statement evaluates to true. This can be confusing if you're not expecting it, so it's generally a good idea to use the triple equals (===) operator instead, which does not perform type coercion.

Another common issue with coercion is when dealing with null and undefined values. Because both of these values are considered falsy, they can sometimes be used interchangeably. However, they have different meanings in JavaScript. Undefined means that a variable has been declared but has not been assigned a value, while null means that a variable has been explicitly assigned the value null.

If you're not careful, you can accidentally coerce null or undefined to a different type and end up with unexpected behavior. For example, consider the following code:

```
var x;
console.log(x + 1); // This will log NaN
```
In this case, the variable x has been declared but not assigned a value, so its value is undefined. When you try to add 1 to undefined, JavaScript coerces the undefined value to the NaN (not a number) value, which is not what you probably intended.

I will conclude with the verdict that, coercion can be a useful feature in JavaScript, but it can also lead to unexpected behavior if you're not careful. Make sure you understand how JavaScript coerces values in different contexts and be aware of the potential pitfalls, especially when dealing with falsy values like null and undefined.
Why AT commands give different results on different devices
Tags: hfp, atcommands, bluetoot, c
Published: 2023-04-20 06:25:56

I am sending AT commands to an android/ios device from windows over a bluetooth(hfp) connection  and when I checked some AT commands like ATD,AT+CLCC,ATA,AT+CHUP give same results on all devices but AT+CNUM gives different results on different devices, so is it because of a different android versions or bluetooth versions.

I wanted to know on which sim i am getting a call if i have a dual sim device over a bluetooth connection with AT commands. 
Right now on Oppo F11 pro (Android 11,Bluetooth v:4.2) AT+CNUM gives the sim number on which i am receiving a call but on other devices like pixel 6a,Iphone 12 pro, One Plus 10t it gives the default sim information not the one i am using for call.
Animation -24 : Paper rotating CSS loader
Tags: css, design, animation, webdev
Published: 2023-04-20 06:22:17

These days if a website takes more than a few seconds to load, people tend to close the page and move on. CSS loaders are a great way to keep your users engaged while your website loads.

Free CSS Loading Animation for your website 

#### Paper rotating CSS loader

---

{% youtube flgrxEdxRKs %}

 ---
### [Source code](https://democoding.netlify.app/loaders/paper-rotating-css-loader)


---

## For more information
 

1. Subscribe my Youtube Channel 
[https://www.youtube.com/@democode](https://www.youtube.com/@democode) 

2. Check out my Fiver profile if you need any freelancing work
[https://www.fiverr.com/amit_sharma77](https://www.fiverr.com/amit_sharma77)

3. Follow me on Instagram
[https://www.instagram.com/fromgoodthings/](https://www.instagram.com/fromgoodthings/)

4. Check out my Facebook Page 
[Programming memes by Coder](https://www.facebook.com/programmingmemesbycoders)

5. Linktree
[https://linktr.ee/jonSnow77](https://linktr.ee/jonSnow77)

 
---
---

{% twitter 1642235382074064896 %}
The Oracle Cloud 22D Release: Every Detail You Need to Know
Tags: oracle, cloud, release
Published: 2023-04-20 06:07:02

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rb51ed09lnz7lvew27o.jpg)
The essence of the Oracle Cloud Application is the idea of ongoing innovation. Oracle releases updates on a quarterly basis to assist clients in managing their businesses successfully and efficiently. The Oracle Cloud 22D release, the most recent in this series, adds new functionality, features, and customer enhancements.

Unquestionably, the Oracle 22D release has several advantages. However, many Oracle users find it challenging to apply Oracle Cloud updates. The reason for this is that they might interfere with business continuity if installed without adequate testing. In this article, we’ll go over how a thorough testing strategy will reduce the chance of your Oracle Cloud account breaking, enabling you to concentrate on how to use the new features Oracle has rolled out.

Why you need automated testing for Oracle Cloud updates
By automating testing, Oracle users not only have the opportunity to test everything they need, but they are also guaranteed that their most important processes are operating as intended and are notified if anything goes wrong so they can fix it before it has an impact on the end users.

**Automated Testing For Frequent Oracle Updates**

The Oracle Cloud receives more than a thousand changes per update, which can occur every week or every three months. To ensure business agility and quality, continuous testing is done to find defects early and fix them right away.

Given the frequency of updates, the regularity of changes, and the essential functionality that is affected, no amount of manual testing can totally eliminate risk from core business operations. The only way to achieve the requisite business risk coverage with the needed pace is through extreme Oracle test automation.

**Repeatability of Tests**

With the use of automated testing technologies, testers may quickly write robust tests that need little upkeep. The test suite may be seamlessly updated as application needs change with each release or update. With each Oracle cloud update, these automated testing tools may identify the tests that are impacted, hence reducing risks.

**Good Test Coverage**

Insufficient test coverage is one of the greatest problems with Oracle testing. With each upgrade, numerous functional and non-functional properties are added, changed, or removed. The overall test coverage is constrained by the small number of test scripts that can be manually executed. An automated testing strategy must be used to adequately cover the test.

Opkey is the industry’s leading test automation solution, that can speed up the rollout of the Oracle 22D release while lowering business risk, making testing a stimulant for creativity.

The Oracle Cloud 22D release has brought many new features and functionalities to the Oracle Cloud’s SCM, Financials & HCM modules.

To gain insight into the updates in these modules, read Opkey’s Advisory Document for the Oracle Cloud 22D Release.