teleren/devto huggingface dataset:
New Log4j vulnerability was found in 2.15.0 which is less dangerous
Tags: security, log4j, vulnerability, java
Published: 2021-12-15 14:38:44

As to [Log4j](https://logging.apache.org/log4j/2.x/), found and [reported](https://logging.apache.org/log4j/2.x/security.html) was the new vulnerability also in 2.15.0 as [CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046). It was fixed in the next [2.16.0](https://logging.apache.org/log4j/2.x/changes-report.html#a2.16.0) released in 13 Dec 2021.
Well, it is less dangerous than one in 2.14.1 and above aka [log4shell](https://en.wikipedia.org/wiki/Log4Shell).

Log4j 2.15.0 was to fix the critical RCE vulnerability, [CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228) (log4shell), in 2.14.1 and above.

Although vulnerabilities were found in both, the two are obviously different. The former is caused by Thread Context Map (MDC) and has hard requirements to exploit.

There is [CVSS](https://en.wikipedia.org/wiki/Common_Vulnerability_Scoring_System), The Common Vulnerability Scoring System, to assign severity scores to vulnerabilities.

Compared to the CVSS scores Apache published on recent Log4j vulnerabilities, that of CVE-2021-44228 (log4shell) is 10 (the highest, the worst) and that of CVE-2021-45046 in 2.15.0 is 3.7 (lower).

It is easy for attackers to exploit CVE-2021-44228 (log4shell) as it doesn't have hard requirements. On the contrary, to exploit CVE-2021-45046 in 2.15.0 is not.
It's true both on Log4j have risk but also the two vulnerabilities are very different in terms of security.

By the way, Log4j 2.16.0, released on 13 Dec 2021, disabled all JNDI (Java Naming and Directory Interface) features by default and also removed the message lookups feature in order to prevent more vulnerabilities from being found in the future thanks to [Apache Software Foundation](https://apache.org/).

---

This post is based on [the tweets by my company](https://twitter.com/scqrinc/status/1471267380839940096).
# Redux #Its Concepts and #Why Redux?
Published: 2021-12-15 14:38:21

**Redux** 
Redux is a predictable state container for js apps. Its a state management library. 

   # Importancy:

    - For js apps:
       - Can be used React, Angular, Vue or even vanilla js
        
    - A state container:
       -  Redux stores the state of an application
       -  Consider a React App state of a component
       -  State of an app is the represented by all the individual components of that app
       -  Redux will store and manage the application state.
       -  A state container for js app  

    - Predictable

**Why Redux?**
 - Can Manage the state of your application in a predictable way, redux can help you.  

 - Lifting a state up for far component is not better solution because component tree grows long. We can 
      solve this problem by storing state with Redux. 

 - State is controlled outside the components and if a component need to update its state need to        
      communicates with the state container.     


**Redux will be used opposite of useContext() and useReducer() **  


**Three Core Concepts of Redux**
 - Store   => A "store" that holds the state of a application. 
 - Action  => An "action" that describes the changes on the state of the application.
 - Reducer => A "reducer" which actually carries out the state transition depending on action. 
   
     These three concepts contains three principle of Redux:
      - First Principle:
          The state of your application is stored in an object three within a single store. 
          Maintain our application state in a single object which would be managed by the Redux store.

      - Second Principle: 
          The only way to change the state is to emit an action, an object describing what happened.
          
          To update the state of your app, you need to let Redux know about that with an action. 
          Not allowed to directly update the state object. 
      
      - Third Principle:       
         To specify how the state tree is transformed by actions, you write pure reducers.

          Reducer = (prevState, action) => newState
Breaking Changes tl;dr 5: “Level 3 REST: Helping Make REST Fun Again”
Tags: podcast, news, webdev, architecture
Published: 2021-12-15 14:35:19

{% spotify spotify:episode:7jCg6y47SDBwu7sYZszFYu %}

In this Breaking Changes tl;dr mini-episode, Postman Chief Evangelist Kin Lane welcomes Matt to get insights into Level 3 REST concepts and Matt’s disciplined approach to REST. 


**Host:** Kin Lane, Chief Evangelist at Postman ([Linkedin](https://www.linkedin.com/in/kinlane/), [Twitter](https://twitter.com/kinlane))

**Speaker:** Matthew Bishop, Author of Level 3 REST and API Strategist at AdapTech Group ([Linkedin](https://www.linkedin.com/in/matt-bishop-l3/), [Twitter]( https://twitter.com/mattbishopl3))

Matthew Bishop has been innovating across industries as diverse as e-commerce and print publishing for more than 20 years, and has practiced internet-delivered API design since the late 1990s. His Level 3 REST website distills his API development experience into a set of patterns that make hypermedia APIs easy to use and scale in any domain.

You can [follow Breaking Changes](https://dev.to/breakingchanges) to get episode notifications and listen right in your feed — or subscribe on your platform of choice! 
 
- 
[Youtube ](https://www.youtube.com/playlist?list=PLM-7VG-sgbtA5ywMlGAYlPo_PYy6vdJ4O)

- 
[Spotify](https://open.spotify.com/show/5ig80ZlBLiC2iXxql0s1q2)

- 
[Apple Podcasts](https://podcasts.apple.com/us/podcast/breaking-changes/id1574147652) 

- 
[Google Podcast](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkLnBvZGJlYW4uY29tL2JyZWFraW5nY2hhbmdlcy9mZWVkLnhtbA==)

- 
[Amazon Music ](https://music.amazon.com/podcasts/ea40d8b4-8cbb-4061-b618-794c3bbbbd42/breaking-changes)

- 
[RSS Feed](https://www.google.com/url?q=https://feed.podbean.com/breakingchanges/feed.xml&sa=D&source=docs&ust=1638470528888000&usg=AOvVaw0el4gQ5fXUW4tCFuvVOxQL)


Watch the full episode here:

{% youtube yPlsMeoDst4 %}

PS: We’re new here and excited to be part of the community.  Hit ⭐️ or show :heart: if you like an episode. What topics would you like us to cover in the next Breaking Changes episodes?
Breaking Changes tl;dr 4: "An Overview of the Idempotency Request Header Field”
Tags: news, podcast, webdev, architecture
Published: 2021-12-15 14:34:08


{% spotify spotify:episode:1T3yq6gpBqmxPiGEtExAvV %}

The HTTP Idempotency request header field can be used to carry idempotency key in order to make non-idempotent HTTP methods such as POST or PATCH fault-tolerant.

In this Breaking Changes tl;dr mini-episode, Postman Chief Evangelist Kin Lane welcomes Sanjay Dalal and Jayadeba Jena to discuss their recent submission of a draft to the IETF Network Working Group for an Idempotency-Key HTTP header field. The discussion aims to get insights into standardization within the API sector and understand the value of establishing standards from existing patterns.

`
![An Overview of the Idempotency Request Header Field](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qf0nkblwmt0kzvsaaly5.jpg)

**Host:** Kin Lane, Chief Evangelist at Postman ([Linkedin](https://www.linkedin.com/in/kinlane/), [Twitter](https://twitter.com/kinlane))

**Speakers:**
- Jayadeba Jena, Director, API Platform at PayPal ([Linkedin](https://www.linkedin.com/in/jayadeba-jena-1a6a0020/))

- Sanjay Dalal, API Digital Transformation Leader ([Linkedin](https://www.linkedin.com/in/sanjaydalal/))

You can [follow Breaking Changes](https://dev.to/breakingchanges) to get episode notifications and listen right in your feed — or subscribe on your platform of choice!
 
- 
[Youtube ](https://www.youtube.com/playlist?list=PLM-7VG-sgbtA5ywMlGAYlPo_PYy6vdJ4O)

- 
[Spotify](https://open.spotify.com/show/5ig80ZlBLiC2iXxql0s1q2)

- 
[Apple Podcasts](https://podcasts.apple.com/us/podcast/breaking-changes/id1574147652) 

- 
[Google Podcast](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkLnBvZGJlYW4uY29tL2JyZWFraW5nY2hhbmdlcy9mZWVkLnhtbA==)

- 
[Amazon Music ](https://music.amazon.com/podcasts/ea40d8b4-8cbb-4061-b618-794c3bbbbd42/breaking-changes)

- 
[RSS Feed](https://www.google.com/url?q=https://feed.podbean.com/breakingchanges/feed.xml&sa=D&source=docs&ust=1638470528888000&usg=AOvVaw0el4gQ5fXUW4tCFuvVOxQL)

We hope you enjoy the show this week!

Watch the full episode here:

{% youtube 8vsyMPKzh1M %}
PS: We’re new here and excited to be part of the community.  Hit ⭐️ or show :heart: if you like an episode. What topics would you like us to cover in the next Breaking Changes episodes?
What should a freelance developer consider while selecting PHP frameworks?
Published: 2021-12-15 14:18:30

Hypertext preprocessor or PHP is a server-side and open-source scripting language. As of August 2021, around four-fifths of the existing websites use PHP during development. With no signs of the popularity of PHP subsiding, it is high time businesses start to focus on PHP development if they haven't already. Some of the most popular websites like Wikipedia and Facebook run using PHP. 

A PHP framework streamlines the development process of web applications by providing a structure to them. Adopting the right frameworks can help you make the development process efficient. Additionally, the integration of PHP frameworks allows a business to improve the responsiveness and user experience of the applications and websites. 

As a freelance PHP developer, you should think carefully before selecting a PHP framework. Below are some criteria you can keep in mind to help you:

Support provided by the framework: While coding, you are bound to encounter bugs and errors. Hence, you should have a point-of-contact that can address your queries and concerns. This point is interrelated with the popularity of the framework. The framework community can be an important factor to help you navigate through any hindrance you might face while working on PHP development.

Communities available: While selecting a PHP framework, you should prefer the community-driven ones. Thus, you can be sure that a dedicated team is working to improve the framework consistently.

Popularity: The popularity of the framework is linked to the above points. If you adopt such frameworks, PHP testers working on the application will have online resources to fall back on if they get stuck at some point.

Building scalable applications: In today's world, scalability is an integral factor while making any decision. You should work on a framework that allows you flexibility and is easily scalable in the future.
TIL how to create Github repos with Github
Tags: todayilearned, cloud, github, linux
Published: 2023-05-19 20:37:50

---
title: TIL how to create Github repos with Github
published: true
date: 2021-12-15 13:55:00 UTC
tags: TIL,cloud,github,linux
canonical_url: https://www.zufallsheld.de/2021/12/15/til-how-to-create-github-repos-with-github/
---

I needed to create multiple Github repositories and grant access to them for different users. After creating the first repository by hand and granting access to it, I had enough of it. There are just too many damn clicks!

So I used the CLI. Github has a nice [cli-program](https://cli.github.com/) called gh. With it you can easily create new repositories:

```
gh repo create --public user/repo

```

Adding collaborators to the repository was a little bit harder since gh does not provide an easy way to do this. However you can easily talk to the REST-API with gh:

```
gh api --method=PUT repos/user/repo/collaborators/rndmh3ro -f permission=admin

```
Wednesday Links - Edition 2021-12-15
Tags: java, jvm, spring, kotlin
Published: 2021-12-15 13:52:02

New AOT Engine Brings Spring Native to the Next Level(6 min)☝️
https://spring.io/blog/2021/12/09/new-aot-engine-brings-spring-native-to-the-next-level

Migrating a Spring Boot application to Java 17 – the hard way(9 min)🔨
https://blog.codecentric.de/en/2021/12/migrating-spring-boot-java-17/

Spring Cloud Gateway and gRPC(4 min)⛩️
https://spring.io/blog/2021/12/08/spring-cloud-gateway-and-grpc

Secure communications end-to-end for Spring Boot apps – in Zero Trust environment(6 min)↔️
https://spring.io/blog/2021/12/08/secure-communications-end-to-end-for-spring-boot-apps-in-zero-trust-environment

Spring Boot Tip on new metrics(30 sec)📊
https://twitter.com/piotr_minkowski/status/1468502383005208578

Log4Shell: RCE 0-day exploit found in log4j 2, a popular Java logging package(6 min)💣
https://www.lunasec.io/docs/blog/log4j-zero-day/

Log4J2 Vulnerability and Gradle(4 min)💣
https://blog.gradle.org/log4j-vulnerability

Log4J2 Vulnerability and Spring Boot(2 min)💣
https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot

Log4j thoughts...(30 sec)🤔
https://twitter.com/mikemybytes/status/1470003615469346817

Results of the Kotlin Features Survey 2021(4 min)🗳️
https://blog.jetbrains.com/kotlin/2021/12/kotlin-features-survey-2021-results/

Kotlin 1.6 Support in IntelliJ IDEA 2021.3(2 min)🏄‍♂️
https://blog.jetbrains.com/kotlin/2021/12/kotlin-1-6-support-in-intellij-idea-2021-3/

Arrays of Wisdom of the Ancients(30 min)🦉
https://shipilev.net/blog/2016/arrays-wisdom-ancients/

Writing a simple 16 bit VM in less than 125 lines of C(25 min)🍱
https://www.andreinc.net/2021/12/01/writing-a-simple-vm-in-less-than-125-lines-of-c

Scaling the Practice of Architecture, Conversationally(19 min)🪴
https://martinfowler.com/articles/scaling-architecture-conversationally.html
Small Wins for 2021
Tags: idorecall, 2021, impostersyndrome
Published: 2021-12-15 13:46:36

---
title: Small Wins for 2021
published: true
description: A technique for tracking small advances in knowledge or methods
tags: [ "idorecall", "2021", "imposterSyndrome"] 
cover_image: https://i.imgur.com/J6WxULN.png
---

# Small Wins for 2021

## My small wins!

Here's a list of the things that I did or learnt last year that were not earth shatteringly amazing points in my career - most of them aren't that important or memorable.  But that's a great reason to record them
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p53973vr6vvvp73llhzx.png)

## Why keep this list?

Keeping a list like this helps with self esteem, counters imposter syndrome and helps show a realistic view of the things you've learnt.  The next time you have a bad day and think "I can't learn anything!  Why am I so behind on the latest tech?" take a look at your small wins list and it will put it in perspective.  Maybe you aren't a thought leader or incredible creative- but you have done plenty of stuff!
 
## Make this a New Year's resolution!

Why not start a list like this?  I've had mine since 2017!  It can help you with your motivation and it's a great resource if you have a review or assessment
#100 days of code after 1 year of uncertainty
Published: 2021-12-15 13:39:54

#Why i'm doing this.

######before any of that, an introduction.

my name is adnan, but you can refer to me as ad, i'm a twenty-three year old from morocco, i'm an aspiring it enthusiast and has always been fascinated by information technology and how it influenced my upbringing, i'm also a cancer survivor **two years free** almost, a bookworm and i recently went a school that is very much like your regular webdev bootcamps.

######Back to the why

i have never written a blog before in my life, haven't cleared that out this article may seem a bit sloppy but hit a sweet spot if you related to my experience or going through it right now, i mainly decided to this for myself (sorry if misinterperted) i want to track my journey starting today and this is the first blog that will have many follow ups, now let's get to the real reason why, recently i joined a webdev bootcamp one of the firsts in our country as this concept is still completely new, having dropped out of school back when i was 16, i never graduated high school and spent most of my time laying on the couch watching tv, reading manga or books, 
back in December of 2019 i was diagnosed with a hodgkin's lymphoma classic stage 4 cancer, in regular english my white blood cells sort of had cancer cells, loads of them, i went through treatment and eventually was cancer free by august 2020 i joined this bootcamp by january 2021, first 3 months were the basics , start with C and algos and data structures after that move on to webdev with html  and css then learn some php to develop a full stack app with a functioning CRUD, then here comes LARAVEL and oh my god i'm not even sure if i should dig deep into flexbox or grid, maybe webdev is not for me? thoughts like this start to wrap on  your head, we had a three months break and now we're back to learn the MERN stack and i'm completely lost, i felt stuck in tutorial hell and tried to chase perfection instead of learning in every project i tried to build, i decided it's maybe time to try something i was never brave enough to do so, commit publicly to 100 days of code, it's pretty simple with two rules, code for at least an hour every day for 100 days, commit or tweet publicly about what you did or learnt, so that's that.


######the Path
i have already started with TOP(the odin project) curriculum and just reached the the css section specifically the flexbox one, i decided that i will dedicate 100 days of code to go through top's curriculum and try to build projects on the side and hopefully get hired a year from now or so, i will try to blog about each day of the journey to also keep track of my progress and also be able to compare myself to how i was at any point of the journey, thank you for reading through this and if you are interested or on the path aswell reach out to me [here](https://twitter.com/AdnaneBouthir).
UI vs Frontend!
Tags: webdev, css, design, productivity
Published: 2021-12-15 13:37:09

## A thin line between UI and Frontend

This is useful for those who people who don't know about what's the difference between frontend development and UI designing.

Well, UI is generally creating a layout of a website (considering it's about website), whereas frontend development is implementing that design to real-time.
Imagine your angry UI designer knows how bad you're at implementing abstract arts and vectors in a webpage, so he/she designs an UI with full of those. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t5p872vq1k9xnqnyro8u.jpg)
You'll in somewhat in trouble, that's what is frontend development.

## How to overcome problems like a webpage consist of many abstract vectors?

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ckhlj37923myjsgeg1k.jpg)
Listen, just go and master the technique of CSS positioning, it'll help a lot, now go to your UI designer's Figma, or whatever software he/she uses for designing, ask them to send the SVGs of those vectors and then it's upon you how you wanna add them in your webpage.
_You're ready to go!!!_
Using Drop Down Picker in React Native Expo Version 36 SDK
Tags: reactnative, javascript, android, ios
Published: 2021-12-15 13:36:53

{% stackoverflow 65283728 %}
For Expo this will work.The React native picker suggested in their expo documentation was not working for me over version of 36 react native expo sdk.
```jsx
import { Picker } from 'react-native' 
// state
 const [picked, setPicked] = useState(1.15);

 <Picker
        selectedValue={picked}
        style={{ height: 50, width: 100 }}
        onValueChange={(itemValue, itemIndex) =>
          setPicked(itemValue)
        }>

        <Picker.Item label="Canda 5%" value={1.05} />
        <Picker.Item label="Japan 8%" value={1.08} />
        <Picker.Item label="USA 10%" value={1.10} />
        <Picker.Item label="Egypt 14%" value={1.14} />
        <Picker.Item label="Saudi Arabia 15%" value={1.15} />
        <Picker.Item label="China 16%" value={1.16} />
        <Picker.Item label="Algeria 17%" value={1.17} />
        <Picker.Item label="18%" value={1.18} />
        <Picker.Item label="German 19%" value={1.19} />
        <Picker.Item label="German 19%" value={1.20} />
</Picker>
```
Nuxt3 + Express API
Tags: vue, nuxt, express
Published: 2021-12-15 13:34:51

So, a while ago I needed this integration for a personal project, and of course I used the all mighty Google, but could not find any step by step tutorial. All the information related to this topic contains [Nuxt3 API Routes](https://v3.nuxtjs.org/docs/directory-structure/server), but when you want to be a little special 😇 the Universe works against you. 
You can check the steps below and let me know what you think, or if you have anything you want to add let me know in the comments. 


# First step

Create a new Nuxt3 app using: 

```bash
npx nuxi init nuxt3-express
```

After that, cd into that directory and install the dependencies:

```bash 
cd nuxt3-express

# Using NPM
npm install 
# Using Yarn
yarn install
```


You need to create a folder into the root of the project called `server-middleware` (you can choose the name here, but it needs to be different from `server` so it will not make a conflict with [this](https://v3.nuxtjs.org/docs/directory-structure/server)) in your project's root directory.

After that, install Express:

```bash 
# Using NPM
npm install express
npm install -D @types/express
# Using Yarn
yarn add express
yarn add -D @types/express
```

## Second step

Now we can create a basic api with Express. Make an `index.ts` file in the `server-middleware` folder.

In the `index.ts` file add the following snippet: 

```ts 
import express from "express";
const app = express();

app.use(express.json());

app.get("/", (req, res) => {
  res.json({
    message: "🦄🌈✨👋🌎🌍🌏✨🌈🦄",
  });
});

export default app;

```

It is important to export the express app so that nuxt can use it, so don't forget to do that.

## Final Step

Search for `nuxt.config.ts` in the root of the project and add a `serverMiddleware`.

```ts
import { defineNuxtConfig } from "nuxt3";

// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
export default defineNuxtConfig({
  serverMiddleware: [
    // Will register file from project server-middleware directory to handle /server-api/* requests
    { path: "/server-api", handler: "~/server-middleware/index.ts" },
  ],
});

```

The value that you set for the property `path` in the above snippet will be added before your routes from express.

At this moment, you should be able to navigate to `/server-api` and you will receive:
```json
{"message":"🦄🌈✨👋🌎🌍🌏✨🌈🦄"}
```

Pretty similar with the Nuxt2 approach, right? 🤔