teleren/devto huggingface dataset:
Downgrade your android device to android 10
Tags: downgrade, android11, root, hacking
Published: 2024-04-11 14:05:07

**_Caution: This is only to unlock the oem of your mobile 
            phone and should be done only if you have android 
            12 or above in your device_**

## Enable Developer Options:
 1. Head to settings on your device.

 2. Click on about device
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qf85jfxra9hktw0kppdx.jpeg)

 3.Tap on Build number 7 times to enable developer options

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

 4. You will get a popup saying that you are a developer now.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/keyqg247tqme6q8i2sh4.jpeg)

 5. Head to developer options on your phone and turn the 
    on advanced reboot and USB debugging.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sy1v7yrdnnqefi3j7grl.jpeg)
 
 6. Connect your phone to your PC with a USB cable.

 7.Once you've backed up all of your data, you'll need to 
   download an Android factory image of the version you want 
   to go back to. You can find this at the manufacturers 
   website if not then best place to find it is [XDA forums](xdaforums.com) 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tj77n7aenispw2r6eiec.png)

 8. Download the [SDK platform tools](https://developer.android.com/tools/releases/platform-tools) if you are using windows then,
 
  9. Extract the zip file to the desired location. 

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


 10. Navigate to the platform tools folder and type cmd in the search text-box

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

 11. Then type 

```
adb devices
```
 in the command prompt. You will get a string with the device being connected to your pc

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/79uyc8395t3cq2cl5grp.jpeg)

 12. Type 

```
adb reboot bootloader
```
 in the command prompt.

 13. Your device will reboot into fastboot mode.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/73xl5auoao83qeroulcl.jpeg)

 14. Now you learnt how to set your phone to fastboot mode.
 
 15. Press the power button and boot your device.
 
 16. Search for your local updater apk (for oneplus it is
     [oplocal updater](https://androidfilehost.com/?fid=15664248565197197812) 
 
 17. **_Caution: remember to do this in fastboot mode_**
     From the stock rom you downloaded, take the .img file 
     and type the following command in the same directory     

```
fastboot flash bootloader [bootloader file name].img
```
 
   

 18. Downgrade to the desired version by selecting it in the 
     apk installer.

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


Now you are good to go your mobile phone will be downgraded to the one you like.
JWT
Tags: jwt, security, token
Published: 2024-04-11 13:33:32

## Fast Guide

Here are the main precautions when using JWT tokens:

**1. Use a strong signature**

When we sign our token, we need to use a sizable secret.

We can sign a JWT token in several ways, but the main ones are using symmetric (**HS256**, **HMAC + SHA-256**) and asymmetric (**RS256**, **RSA + SHA-256**) keys.

As a recommendation, it is better to use asymmetric signature, since:

- Only one service can generate the token (using private key), while other services can only verify it (public key).
- If the private key is compromised, rotating it does not break other applications with the current token, after all, the public verification keys will continue to work.

---
**JWT with asymmetric key**
```
const fs = require('fs');
const jwt = require('jsonwebtoken');
​
// use 'utf8' to get string instead of byte array  (512 bit key)
const privateKEY = fs.readFileSync('./private.key', 'utf8');
const publicKEY = fs.readFileSync('./public.key', 'utf8');
​
const payload = {
  name: 'Gandalf'
}
​
// SIGN
const signOptions = {
  issuer: "Authorizaxtion/Resource/This server",
  subject: "iam@user.me",
  audience: "Client_Identity",
  expiresIn: "1d",
  algorithm: "RS256"
};
​
const token = jwt.sign(payload, privateKEY, signOptions);
console.log('\n\n=== TOKEN ===');
console.log(token);
​
​
// VERIFY
var verifyOptions = {
  issuer: "Authorizaxtion/Resource/This server",
  subject: "iam@user.me",
  audience: "Client_Identity",
  expiresIn: "1d",
  algorithm: "RS256"
};
​
const verified = jwt.verify(token, publicKEY, verifyOptions);
console.log('\n\n=== VERIFIED ===');
console.log(verified);
​
​
// DECODE
const decoded = jwt.decode(token, { complete: true });
console.log('\n\n=== DECODED ===');
console.log(decoded);
```
​

---


See a functional example at [Replit](https://replit.com/@bhrott/JWT-RS256-Nodejs#index.js)

**2. Always define the algorithm when performing the check**

There is a type of vulnerability that occurs in some JWT configurations which is the [None Algorithm](https://blog.pentesteracademy.com/hacking-jwt-tokens-the-none-algorithm-67c14bb15771)


In summary, the attacker changes the JWT header to:

```
{
  "typ": "JWT",
  "alg": "none"
}
```


And in the backend the lib we use takes the alg value and ignores the verification key.
To prevent this from happening, we must always define the alg when checking the token:

```
var verifyOptions = {
  //...
  algorithm: "RS256"
};
​
const verified = jwt.verify(token, publicKEY, verifyOptions);
```

---


**Usefull links**

- [Official Site - jwt.io](https://jwt.io/)
- [RFC 7519](https://www.rfc-editor.org/rfc/rfc7519)
- [tokens.dev](https://token.dev/)
- [Portswigger Academy - JWT Attacks](https://portswigger.net/web-security/jwt)
- [Auth0 - JWT](https://auth0.com/docs/secure/tokens/json-web-tokens)

---

**Articles**

- [How to use Azure to crack API auth tokens](https://danaepp.com/how-to-use-azure-to-crack-api-auth-tokens)
Apple Charging Wires
Tags: apple, usbc, lightnincable, eu
Published: 2024-04-11 13:30:11

Apple was known for having lightning cables, which was exclusively for most Apple products. As USB-C wire has become a universally accepted standard wire, European Union law required Apple to have USB-C phone chargers for all future Apple devices by 2024.

With the release of the Iphone 15, customers have expressed their frustrations because of the new charging wire standards. Customers have been accustomed to using the lightning wire that they can’t use the lightning wires they have in their possession, since their new iphone now has a USB-C charging port. 

Some people have multiple lightning cables in their possession, and they wonder what is the point of having the lightning cables now that they’re basically obsolete. It may be obsolete with the future Apple products, customers can still  use their lightning Apple devices that still has a lightning cable port. The law from the EU only refers to future apple products, now the ones that are currently being used now. The only question is when will the next universally accepted charging wire be introduced.
Sloan's Inbox: How important is understanding backend as a website designer?
Tags: discuss, career
Published: 2024-04-11 13:30:00

Hey folks! Sloan, DEV Moderator and mascot. I'm back with another question submitted by a DEV community member. 🦥

For those unfamiliar with the series, this is another installment of Sloan's Inbox. You all send in your questions, I ask them on your behalf anonymously, and the community leaves comments to offer advice. Whether it's career development, office politics, industry trends, or improving technical skills, we cover all sorts of topics here. If you want to send in a question or talking point to be shared anonymously via Sloan, that'd be great; just scroll down to the bottom of the post for details on how.

Let's see what's up this week...

### Today's question is:

> I'm quite intimidated by the thought of learning backend development. I'm still fairly new to everything software development and have been scoping out all I need to learn development-wise to be a successful web developer. This is the area that I find most daunting!
>
> I have a design background and am most interested in getting into website design. I like the idea of laying out a webpage for a client and helping them to create something visually pleasing and easy to navigate. I think I would do well at this, but I know I still have a lot to learn. 😅
>
> I know there are CMSes and website builders out there that can help handle some of this for me, but I also want to further my programming knowledge so that I'm not confined to templates. I'm curious if anybody can help guide me in what I need to know to get going. And, is my fear of backend development really warranted? 😱 
 
Share your thoughts and let's help a fellow DEV member out! Remember to keep kind and stay classy. 💚

---

*Want to submit a question for discussion or ask for advice? [Visit Sloan's Inbox](https://docs.google.com/forms/d/e/1FAIpQLSc6wgzJ1hh2OR4WsWlJN9WHUJ8jV4dFkRDF2TUP32urHSAsQg/viewform)! You can choose to remain anonymous.*
DevOps Shorts 028 - Peter Guagenti
Tags: devops, platformengineering, podcast, ai
Published: 2024-04-11 13:29:40

I haven't posted about DevOps Shorts episodes here yet, I think. Mainly publishing them on my homepage at https://antweiss.com. But now I intend to re-post them here too for wider exposure.

So here goes:

## Peter Guagenti - The AI is an Iron Man Suit for the Mind


![Peter Guagenti](https://councils.forbes.com/profile/_next/image?url=https%3A%2F%2Fs3.amazonaws.com%2Fcco-avatars%2F49668400-f321-45cf-9e7b-7b82383a3dd4.png&w=256&q=75)


Today's episode is a bit of a departure from my regular format. And it's symbolic. The evolution of GenAI is definitely changing how we work in IT. The change may still not be very evident but we all know it's coming. And we still need to understand what changes. Beside the StackOVerflow drop in popularity that is.

That's why my guest this time is Peter Guagenti - the President and CMO at [Tabnine](https://www.tabnine.com/) - the AI coding assistant. Peter has worked at Nginx, CockroachDB and SingleStore, so he has a deep understanding of platform tooling and open source. And today he's bringing the message of AI-assisted coding. And together we're trying to understand how that changes platform and Devops work.

Listen to the episode to learn:
- Why AI changes everything about how we work (in DevOps too)
- Where AI extends beyond code completion/generation
- What's the role of context awareness
- How it changes our creativity


The episode is live on:

- [Spotify](https://open.spotify.com/episode/3fOYs0gHHHr29mnOArq1Fq?si=9510ebedf86047ec)

- [Youtube](https://youtu.be/MViM52Bgcgo) - also embedded at the bottom of this post.

Watch out for new episodes!

_This episode is brought to you by [PerfectScale](https://perfectscale.io) - the automated K8s optimization and management platform_


To watch DevOps Shorts 028:

{% embed https://youtu.be/MViM52Bgcgo %}
Ibuprofeno.py💊| #78: Explica este código Python
Tags: python, spanish, programming, beginners
Published: 2024-04-11 13:00:00

## **<center>Explica este código Python</center>**
#### <center>**Dificultad:** <mark>Fácil</mark></center>

```py
dos = two = deux = 2
print((dos + two - 2)**deux)
```

👉 **A.** `2`
👉 **B.** `16`
👉 **C.** `4`
👉 **D.** `SyntaxError`

---

{% details **Respuesta:** %} 

👉 **C.** `4`

En Python podemos asignar el valor a varias variables en una sola línea. En nuestro ejemplo las 3 variables tendrán el valor de `2`, dicho esto tendremos algo como: `(2 + 2 - 2)**2` dando como resultado `4`.

{% enddetails %}
Ibuprofeno.py💊| #77: Explica este código Python
Tags: python, spanish, programming, beginners
Published: 2024-04-11 13:00:00

## **<center>Explica este código Python</center>**
#### <center>**Dificultad:** <mark>Intermedio</mark></center>

```py
cadena = "3+5"
print(cadena.partition("+"))
```

👉 **A.** `(3, '+', 5)`
👉 **B.** `('3', '+', '5')`
👉 **C.** `['3', '+', '5']`
👉 **D.** `Ninguna de las anteriores`

---

{% details **Respuesta:** %} 

👉 **B.** `('3', '+', '5')`

La función `partition()` en Python se utiliza para dividir una cadena en una tupla de tres partes, utilizando un separador especificado. Esta función devuelve una tupla que contiene tres elementos:
* La parte de la cadena antes del separador.
* El separador mismo.
* La parte de la cadena después del separador.

La sintaxis general es:
```py
cadena.partition(separador)
```
Donde `cadena` es la cadena en la que deseas realizar la partición y `separador` es el carácter o subcadena que se utiliza para dividir la cadena. Es importante tener en cuenta que `partition()` devuelve una tupla incluso si el separador no está presente en la cadena.


{% enddetails %}
Empresas brasileiras que usam, ou usaram, Elixir ou Erlang
Tags: elixir, erlang, beam
Published: 2024-04-11 12:55:00

Empresas brasileiras que usam (ou usaram) Elixir ou Erlang que já tiveram entrevistado(a)s no Elixir em Foco:

- Cumbuca (que antes se chamava Comadre)
- Solfácil
- Stone
- Árvore
- SumUp Brasil (é uma empresa de fora, mas com unidade no Brasil)
- Trybe
- EBANX
- Dashbit  (dá pra considerar brasileira, uma vez que o criador é o José Valim?)
- Infleet - Gestão de Frotas
- SWAP
- FAVU


---

Já estas empresas foram mencionadas lá no Telegram Elixir Brasil:

- "A **Accenture** usa em 1 projeto interno"
- "Payfy, se não me engano"
- "Se não me engano o streaming da **globo** usa. **Obramax** também usa"
- "Tava curioso justamente nisso. Em Belém tem **idopterlabs** e **i9amazon**"
- Minha biblioteca
- https://www.useoinc.com.br/
- JustTravel
- WillBank


--- 

Estas nós descobrimos diretamente:

- Signove usa Erlang


--- 

Empresas mencionadas nos comentários aqui ou no Twitter:

- https://iobee.io/
- Finbits
FINQ's weekly market insights: Peaks and valleys in the S&P 500 – April 11, 2024
Tags: ai, stockmarket, stocks, sp500
Published: 2024-04-11 12:53:05

This week's spotlight shines on the S&P 500's standout performers and those facing hurdles, illuminated by our advanced AI insights.

**Top achievers:**

- Salesforce (CRM) climbs to the top, showcasing its edge in innovation and market reach.
- Amazon (AMZN), with its strategic growth and strong sales, secures a close second.
- Microsoft (MSFT) impresses in third, driven by its technological advancements.

**Facing challenges:**

- Loews Corp (L)
- Viatris Inc (VTRS)
- Fastenal Co (FAST)

**Importance of insight:**
Leveraging Crowd Wisdom and Professional Wisdom, our AI framework provides a comprehensive perspective of the market. This approach enables strategic investment decisions, offering clarity in the complex landscape of stock investment.

Stay tuned for ongoing insights to navigate market dynamics effectively.

**Disclaimer: Information provided is for educational purposes only, not financial advice. Always consider your financial goals and risk tolerance before investing.**
App Development Company Pune India
Published: 2024-04-11 12:46:26


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

Revolutionize Your App Development Experience in Pune, India! Discover Top-Notch Cross-Platform Solutions with React Native and Flutter. Elevate Your Mobile Presence Today! https://mobisoftinfotech.com/mobisoft-company/app-development-company-in-pune

 #CrossPlatformApp #PuneIndia #AppDevelopment #ReactJS #Flutter
Images Optimization: decoding attribute
Tags: webdev, javascript, html, performance
Published: 2024-04-11 12:45:17

When you are programmatically optimizing images on your website, the decoding attribute can be a helpful tool, depending on your use case, in addition to other optimization techniques.

Simply, you add this attribute to the image and it can have 3 values:

1. decoding="sync" :
When the website loads, the main thread loads everything in order. When it encounters the image, it waits for the image to load and decode before continuing. This can be useful if images are essential to your use case, and it is better to wait for them to load. However, this will result in a longer loading time.

2. decoding="async" :
In this case, the main thread loads the image, but then continues to load the rest of the page and displays it. The image is displayed later, when it has loaded. This is suitable if images are not essential and will make the page load faster. However, it can cause layout shifting, which can affect your CLS performance metric. Therefore, if you know the dimensions of the image, it is a good idea to leave a blank space or skeleton for the image until it loads.

3. decoding="auto" :
Here, the browser is left to choose one of the other two options. This varies from browser to browser and is the default option if you do not specify it.
Videogame storage space optimization is terrible in some games
Tags: gamedev
Published: 2024-04-11 12:42:46

How can people bear to play live service videogames that require 10+ GB update every week?

By the time the update is completed, I do not even want to play anymore. Do the game developers not understand it?

I do not mind a quick 1 GB update, but the huge dumb file updates need to stop

I frown at these worst offenders: Fortnite and Genshin Impact
Sell and Monetize Your Courses with LectureKit
Tags: buildinpublic, lecturekit
Published: 2024-04-11 12:39:21

Hey everyone,

I'm thrilled to announce some exciting updates coming to [LectureKit](https://lecturekit.io) that will empower creators to monetize their courses like never before!

After listening to your feedback and suggestions, we've been hard at work developing new features to enhance your experience on [LectureKit](https://lecturekit.io).

One of the most requested features has been the ability for creators to sell their courses and get paid. I'm excited to share that we're rolling out integrations with both Stripe and LemonSqueezy, giving you the flexibility to choose the payment processor that best suits your needs. With these integrations, you'll be able to effortlessly set up payment walls for your courses and start earning revenue from your content.

But that's not all. We're also introducing a sign-up wall feature, allowing you to require users to sign up before accessing your courses. This feature provides you with valuable insights into your audience and enables you to build a community around your content.

Stay tuned for more updates as we continue to improve LectureKit!

Thank you for your continued support and feedback!

Link: [LectureKit](https://lecturekit.io)
Experts in Bespoke Destination Weddings in Portugal
Tags: dreamwedding, portugalweddingdestination, destinationweddinginportugal, weddingplanningservices
Published: 2024-04-11 12:13:09

Let us join you and be there to help you plan and manage all of the details that go into planning your dream wedding in Portugal. Our goal is to make this process as smooth as possible so that you are able to be fully present and enjoy every moment of this incredibly special time with friends and family at your [Portugal destination wedding](https://www.white-dots.com/). We look forward to making your dream a reality.

## White Dots Weddings

Experts in bespoke destination weddings in Portugal​
When it comes to destination weddings, Portugal has so much to offer: from romantic architecture, quaint beachside locations, and stunning nature, you can really find whatever you have dreamed up for your special day. Our goal at White Dots Weddings is to be by your side listening to you, helping you choose the perfect location to say your vows, and allowing you to cherish every precious moment while creating an unforgettable experience for your guests.

We take it as a challenge to bring to life your vision for your perfect wedding. That means that attentiveness, attention to detail, and creativity are our key values. This entails making ourselves available for active consultation, brainstorming sessions, and frequent revisions – all while keeping efficiency and good taste in mind.

Take a few minutes to get to know our team and our process below, and if you have any questions or are ready for a consultation, don’t hesitate to [contact us](https://white-dots.com/contact/). We look forward to getting to know you and helping you create an unforgettable wedding experience.
Best IT Solution Services | Top IT Solutions | Egiz Solution
Tags: development, design, web, javascript
Published: 2024-04-11 12:11:21

Discover the [best IT solution services](https://egizsolution.com/****) from Egiz Solution, an expert in creative technology solutions. We specialize in providing complete IT services that are customized to the specific requirements of organizations. Our services include cutting-edge software development, strong cloud computing solutions, advanced cybersecurity, efficient networking, and dependable IT support. Egiz Solution prioritizes client satisfaction by providing high-quality, unique IT solutions that improve performance and efficiency. Whether you're a startup, small business, or huge corporation, our skilled staff is dedicated to resolving your technology difficulties and propelling your company ahead. Experience the difference with Egiz Solution, your reliable partner for excellent IT solutions. For more information, please contact us at +91-7667050525.