teleren/devto huggingface dataset:
Next-Auth is hell
Tags: nextjs, nextauth, webdev, discuss
Published: 2024-01-08 10:25:23

Today, I want to talk a bit about Next.js.

Probably one of the best decisions I've made recently was switching to it. It's genuinely a powerful tool for solo founders. You don't need to write a separate API and worry about SEO optimization - Next.js does it for you. I'm sure there are some hacks to make it even better, but what's available by default in this direction looks quite impressive. For example, a page with an editor, which is inherently heavy, has pretty good metrics in PSI, although I didn't do anything special for it.

However, there are some problematic areas. For instance, authentication. Many people complain that the examples in the official documentation provide very scant information on how to make a working auth system.

Next.js, by default, promotes the use of [next-auth](https://next-auth.js.org/). But the community, to put it mildly, is [not satisfied](https://www.reddit.com/r/nextjs/comments/18olw72/nextauth_is_hell/) with this tool. For example, setting up an auth with a session that will be stored in the DB requires incredible hacks and suffering.

So, I've identified a few other options to handle this situation.

* Custom approach. I found this [snippet](https://gist.github.com/epicbytes/7628f9a341fc31985475157c2b285846) on the internet, it might be useful for someone.
* [Lucia Auth](https://lucia-auth.com/). Many people on Reddit speak very positively about this tool, and I'll likely work with it.
* [Clerk](https://clerk.com/). Essentially, it's a SaaS that takes all the burdens of authentication. It seems like a cool thing for small projects, but I haven't tried it, so it's hard to say.

Honestly, I'm still hesitating between options 2 and 3.

What do you use for user authentication in your project?
What is Black Friday?
Tags: watercooler, discuss, jokes
Published: 2024-01-08 10:24:50

---
title: What is Black Friday?
published: true
description: I'm seeing a Black Friday advert in January.
tags: watercooler, discussion, jokes
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-09-25 07:35 +0000
---
I'm British, so maybe I am missing something, but I thought I had an understanding about Black Friday.

1. It's a day.
2. On that day consumers treat retail staff and each other badly.
3. On that day corporations treat retail staff and consumers badly.
4. It's the Friday after Thanks Giving in the USA.

If all of that is true, this advert from OVHcloud is worrying and confusing, because
1. Black Friday for developers seems like I'm going to have a bad time, as a developer.
2. Isn't USA Thanks Giving in October? It's January when I am seeing the ad.

![An advert on dev.to from OVHcloud offering Black Friday deals to developers](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1y2x1o8qbqyiapt097yx.PNG)
The Ultimate Guide to Meeting online Bukit Indah Girl: A Step-by-Step Tutorial
Published: 2024-01-08 10:13:33

In this era of digital connectivity, meeting someone from a specific area has never been easier, especially with the vast array of online platforms available. If you're aiming to connect with Bukit Indah girls, this step-by-step guide will assist you in navigating the online sphere effectively.

Understanding Bukit Indah Culture and Etiquette:
To build a genuine connection, it's crucial to comprehend the local culture and etiquette of Bukit Indah. Show respect for their traditions and values, as this demonstrates your genuine interest and consideration.

Choosing the Right Platform:
Selecting the appropriate online platform significantly impacts your chances of meeting **[Bukit Indah girls](https://jbescortangels.com/locations/bukit-indah/)**. Whether it's social media networks, dating apps, or forums, opt for platforms where you're likely to find individuals sharing similar interests or residing in Bukit Indah.

Crafting an Engaging Profile:
Your profile serves as your first impression. Ensure it reflects your personality authentically while highlighting your respect for Bukit Indah culture. Use appealing pictures and a well-written bio to attract potential connections.

Initiating Meaningful Conversations:
Engage in conversations that are respectful, genuine, and thoughtful. Show interest in their culture, traditions, and daily life. Avoid generic messages and focus on creating a meaningful connection.

Respecting Boundaries and Privacy:
Always prioritize respect for privacy and boundaries. Understand that not everyone may be open to connecting online, and it's essential to accept and respect their decisions.

Arranging a Meet-up or Video Call:
Once a level of trust is established, consider arranging a meet-up or video call. Ensure safety precautions and mutual agreement are in place before taking this step.

Being Open-Minded and Patient:
Building meaningful connections takes time. Be patient and open-minded throughout the process. Respectful interactions and genuine interest will pave the way for a meaningful connection.

Reflecting on Cultural Differences:
Embrace cultural differences as opportunities for learning and growth. Approach these differences with curiosity and respect, fostering a deeper understanding of Bukit Indah culture.

By following these steps, you'll navigate the online sphere with respect, authenticity, and a genuine interest in connecting with Bukit Indah girls. Remember, building relationships online requires patience, understanding, and a willingness to learn from each other's cultures.
Decoding the Tech Maze: Demystifying SRE and DevOps for Everyone
Tags: sre, devops, decoding, comparison
Published: 2024-01-08 10:08:34

## Introduction:
In the ever-evolving world of technology, two terms often thrown around are Site Reliability Engineering (SRE) and DevOps. They sound fancy, but what do they really mean? Are they the same thing, or do they have their own unique roles in the tech landscape? Let's break it down in simple terms.

## Understanding DevOps:
DevOps, short for Development and Operations, is like a magical bridge that connects software development with IT operations. Imagine it as a team of wizards ensuring that the code developers create not only works flawlessly but also smoothly integrates with the infrastructure it runs on.

In simpler terms, DevOps is all about teamwork and collaboration. Developers and operations folks come together, share responsibilities, and work hand-in-hand to build, test, and deploy software. The goal? Faster and more reliable delivery of applications.

## Meet the SRE Heroes:
Now, enter the Site Reliability Engineer, or SRE. If DevOps is the magical bridge, SREs are the guardians of that bridge. They focus on making sure that the software runs reliably and efficiently once it's out in the wild.

SREs wear many hats. They're part developers, part operations experts, and part detectives. Their mission is to prevent and solve issues before they impact users. Imagine them as the superheroes of the tech world, constantly monitoring, tweaking, and optimizing to keep everything running smoothly.

## The Main Differences:
- Focus and Specialization:

DevOps: Collaboration and communication between development and operations teams.

SRE: Reliability, performance, and automation in production environments.

- Goals:

DevOps: Faster and more efficient software development and delivery.

SRE: Reliability, availability, and performance of applications in production.

- Responsibilities:

DevOps: Shared responsibilities across development and operations teams.

SRE: Focus on reliability, with an emphasis on proactive measures to prevent issues.

- Mindset:

DevOps: Culture of collaboration, communication, and continuous improvement.

SRE: Reliability is paramount, and automation is a key tool for achieving it.

## Conclusion:
In simple terms, DevOps is the magical team that makes the software, and SREs are the guardians ensuring that the magic stays strong even after the software is out in the world. DevOps is about breaking down silos and fostering collaboration, while SRE is about ensuring the reliability of the applications.

So, next time you hear someone talking about DevOps and SRE, remember it's not just tech jargon – it's about teamwork, reliability, and making the digital world a better place, one code commit at a time.
We Hit 10,000 Stars
Tags: github, go, opensource
Published: 2024-01-08 10:07:55

We hit 10,000 stars on GitHub at the beginning of 2024.

🎉 Huge thanks to everyone in our amazing community. 
Every commit, PR, and issue.
Every question, answer, and share.
Every contribution, translation, and advice.

🙌 We’ll keep shaping the future of Q&A platform, with 10,000 stars illuminating the path ahead. ✨

You are always welcome to join our community and unlock collective wisdom for a brand new 2024.
https://github.com/apache/incubator-answer
Design Custom Laptop Emojis with Simplified AI Emoji Maker Online
Published: 2024-01-08 10:06:16

Bring a touch of technology to your messages with unique **[Laptop emojis](https://simplified.com/ai-emoji-maker/laptop)** generated using Simplified AI Emoji Maker Online. Whether you want to express your love for laptops, showcase your tech-savvy side, or simply enjoy the creativity of Laptop emojis, this platform offers the tools and flexibility to bring your unique style to life. Let your messages reflect your tech enthusiasm with these captivating Laptop emojis.
CLZL Chan Le ZaloPay
Tags: clzl, chanlezalopay, chanleiiuzalopay
Published: 2024-01-08 09:55:34

CLZL - Chẵn Lẻ Zalo - Chẵn Lẻ ZaloPay - Chẵn lẻ tài xỉu ZaloPay . CLZL là một trò chơi đoán số chẵn lẻ trên ứng dụng ZaloPay. Trò chơi này được phát triển bởi Công ty Cổ phần VNG Technology (VNG), một công ty công nghệ hàng đầu tại Việt Nam.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8906x7tdkjh75ur0nnnp.jpg)
CLZL - Chẵn Lẻ Zalo - Chẵn Lẻ ZaloPay - Chẵn lẻ tài xỉu ZaloPay
Chẵn Lẻ ZaloPay - CLZL được ra mắt vào tháng 10 năm 2022 và nhanh chóng trở thành một trò chơi phổ biến tại Việt Nam. Trò chơi này thu hút được đông đảo người chơi ở mọi lứa tuổi, từ học sinh, sinh viên đến người đi làm.

Cách chơi CLZL Chẵn Lẻ ZaloPay

CLZL Chẵn Lẻ ZaloPay là một trò chơi đơn giản, dễ chơi. Để chơi CLZL, người chơi cần thực hiện các bước sau:

Mở ứng dụng ZaloPay.
Nhấp vào tab "Tài chính".
Nhấp vào trò chơi "CLZL".
Chọn số tiền cược.
Dự đoán số chẵn hoặc lẻ.
Nhấp vào nút "Chơi".
Nếu dự đoán của người chơi đúng, người chơi sẽ thắng cược. Số tiền thắng cược sẽ được cộng vào tài khoản ZaloPay của người chơi.

Luật chơi CLZL Chẵn Lẻ ZaloPay

CLZL Chẵn Lẻ ZaloPay sử dụng một con xúc xắc để xác định kết quả. Mỗi lần chơi, con xúc xắc sẽ được tung lên và rơi vào một trong sáu mặt. Nếu mặt xúc xắc xuất hiện là số chẵn, người chơi dự đoán chẵn sẽ thắng cược. Nếu mặt xúc xắc xuất hiện là số lẻ, người chơi dự đoán lẻ sẽ thắng cược.

Tỷ lệ thắng cược CLZL Chẵn Lẻ ZaloPay

Tỷ lệ thắng cược của CLZL là 50/50. Điều này có nghĩa là người chơi có 50% cơ hội thắng cược mỗi lần chơi. Tuy nhiên, tỷ lệ thắng cược thực tế có thể thay đổi tùy thuộc vào số tiền cược của người chơi.

Ưu điểm của CLZL

Chẵn Lẻ ZaloPay là một trò chơi có nhiều ưu điểm như:

Trò chơi đơn giản, dễ chơi, phù hợp với mọi lứa tuổi.
Trò chơi có tỷ lệ thắng cược cao.
Trò chơi có thể mang lại cho người chơi những khoản tiền thưởng hấp dẫn.
Nhược điểm của CLZL

CLZL - Chẵn Lẻ Zalo Pay cũng có một số nhược điểm như:

Trò chơi có tính chất may rủi cao.
Trò chơi có thể gây nghiện cho người chơi.
CLZL - Chẵn Lẻ Zalo - Chẵn Lẻ ZaloPay - Chẵn lẻ tài xỉu ZaloPay. CLZL là một trò chơi giải trí hấp dẫn, mang lại cho người chơi những phút giây thư giãn và cơ hội kiếm tiền thưởng. Tuy nhiên, người chơi cần chơi CLZL một cách có trách nhiệm và không nên đặt cược quá nhiều tiền.

[https://facebook.com/chanlezalopay.biz/](https://facebook.com/chanlezalopay.biz/)
[https://twitter.com/chanlezalo48215](https://twitter.com/chanlezalo48215)
[https://linkedin.com/in/chanlezalopay/](https://linkedin.com/in/chanlezalopay/)
[https://pinterest.com/chanlezalopaybiz/](https://pinterest.com/chanlezalopaybiz/)
[https://tumblr.com/chanlezalopaybiz](https://tumblr.com/chanlezalopaybiz)
[https://reddit.com/user/chanlezalopaybiz](https://reddit.com/user/chanlezalopaybiz)
[https://vimeo.com/chanlezalopay](https://vimeo.com/chanlezalopay)
[https://dribbble.com/chanlezalopaybiz](https://dribbble.com/chanlezalopaybiz)
[https://behance.net/chanlezalopay](https://behance.net/chanlezalopay)
[https://youtube.com/@chanlezalopaybiz](https://youtube.com/@chanlezalopaybiz)
How to Pass the Microsoft AZ-500 Exam with Confidence: A Comprehensive Review of Exam Dumps
Published: 2024-01-08 09:51:26

I love making complex technical topics easy to understand. Here is… 2. Microsoft [AZ-500 Dumps](https://shorturl.at/adqQ2) Azure Security Technologies AZ-500 Exam Preparation Specialization This is another great resource to prepare for the Microsoft Azure Security Technologies exam and the AZ -500 exam on Coursera, as it is created by Microsoft itself , which means you will learn from the source itself. This course is closely aligned with DumpsBoss and covers the entire syllabus, making it the best course for the AZ-500 exam. You will also receive a $50 voucher that you can use to book your exam at a [AZ-500 Exam Dumps](https://shorturl.at/adqQ2) discounted price. As for how to take this course, you can take it directly or join Coursera Plus, a subscription to more than 7,000 Coursera courses and certifications. Microsoft Azure Security Technologies AZ-500 Exam Prep Start your career in cloud computing. Prepare for the Microsoft AZ-500 certification exam. Earn 50% off the Microsoft course… 3. AZ-500 Exam Prep: Microsoft Azure Security Technologies (January 2022) This is another great course that I highly recommend for developers taking the exam Azure Security Technologies or AZ 500. Not only is this course up to date and covers all of DumpsBoss, it also comes with interactive labs, flashcards, and a 50-question practice test. 

GET UPTO 60% OFF ……… >>>>>>>>  https://shorturl.at/adqQ2
https://examdumpsplanet.com/
Orange Spain Internet access hit by cyberattack
Published: 2024-01-08 09:43:31

🔐✨Orange Spain's recent internet outage sheds light on the critical intersection of cybersecurity and internet infrastructure. Explore how a hacker exploited BGP and RPKI vulnerabilities, disrupting services and prompting a crucial discussion on the importance of two-factor authentication. Learn more about securing your digital assets in an ever-evolving threat landscape. Protect your business, we can help you implement MFA.

https://www.relianoid.com/blog/orange-spain-internet-access-hit-by-cyber-attack/

#Cybersecurity #BGP #RPKI #NetworkSecurity #DigitalResilience #TwoFactorAuthentication #OrangeSpain #InfoSec #TechSecurity #InternetSafety #CyberThreats #SecurityAwareness #DigitalTransformation #ITSecurity #DataProtection #MFA #MultiFactorAuthentication
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2qsjhutzjsmw658tvfa.jpg)
Transform with Wake UP: Chaos to Clarity Book Insights
Published: 2024-01-08 09:42:14

Discover profound insights with "**[Chaos to Clarity](https://wakeupwithmarci.com/chaos-to-clarity-community/
)**," the empowering book by Wake UP With Marci & Hilary. Dive into a transformative journey addressing mental health, recovery, and mindset shifts. Join the Chaos to Clarity community at our website and explore resources for living your happiest life. Let Marci Hopkins guide you from chaos to clarity with stories of hope and resilience. Embrace a life of empowerment and well-being.
Enhancing Quantitative Algorithm insights with AGE
Published: 2024-01-08 09:30:21

**Introduction** 
As an open-source, graph database specifically tailored for handling complex relationships and vast datasets, Apache AGE offers a myriad of advantages that make it an optimal choice for powering machine learning-driven trading strategies.

**Why Apache AGE for Quantitative Algorithm Trading?**
**Graph Structure:** 
Apache AGE leverages a graph structure, ideal for representing interconnected data prevalent in financial markets. This structure allows for efficient modeling of relationships between various market entities like stocks, sectors, and economic indicators. As trading decisions often rely on understanding these relationships, AGE's graph format proves invaluable.

**Performance and Scalability:**
In the high-speed environment of trading, performance is paramount. Apache AGE's ability to handle massive datasets and perform complex queries with exceptional speed ensures real-time analysis. Its scalability allows for seamless growth, accommodating the ever-increasing volume of market data without compromising efficiency.

**Flexibility and Adaptability:**
Quantitative trading strategies constantly evolve. Apache AGE's flexibility in schema allows traders and data scientists to easily modify and update data models to incorporate new market variables or adjust existing parameters. This adaptability is crucial in keeping strategies aligned with changing market dynamics.

**Querying and Analysis Capabilities:** 
The query language, Cypher, tailored for graph databases, simplifies complex queries. This feature-rich language enables traders to extract intricate insights from interconnected data points efficiently. Machine learning models can seamlessly integrate these insights for more accurate predictions.

**Conclusion:**
In the fast-paced world of quantitative algorithm trading, Apache AGE emerges as a robust and agile solution. Its graph-based architecture, coupled with exceptional performance and flexibility, caters specifically to the intricate relationships and large datasets prevalent in financial markets. By leveraging Apache AGE, trading firms can harness the power of machine learning in a dynamic environment, paving the way for more informed, agile, and profitable trading strategies. As the financial landscape continues to evolve, Apache AGE stands as a cornerstone technology, empowering traders to navigate complexities and extract valuable insights for success.
Digital Marketing Course in Islamabad
Tags: digital, course, education, marketing
Published: 2024-01-08 09:18:34

Embark on a transformative learning experience with our [Digital Marketing Course in Islamabad](url). Tailored to meet the unique demands of Islamabad's dynamic business landscape, this course provides a comprehensive exploration of essential digital marketing strategies. From mastering SEO techniques to crafting compelling content and navigating social media platforms strategically, participants gain practical insights through hands-on projects and real-world applications. With industry insights from local experts and networking opportunities, this course not only equips individuals with the skills needed to excel in the digital domain but also provides a platform for forging valuable connections within Islamabad's thriving business community. Elevate your career prospects and navigate the digital landscape with confidence by enrolling in our Digital Marketing Course in Islamabad.
How to Display PDF in WPF Application
Tags: wpf, pdf, programming
Published: 2024-01-08 09:15:03

In modern software development, the need to integrate versatile tools like PDF viewers into applications has become increasingly common.


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

For Windows Presentation Foundation (WPF) developers, adding a PDF viewer can greatly enhance the usability and functionality of their applications.

WebView2, powered by Microsoft Edge, offers a seamless way to embed web content into desktop applications, making it an excellent choice for integrating a PDF viewer into a WPF app.


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

In this blog post, I’ll guide you through the process of adding a PDF viewer to your WPF application using WebView2. This tutorial assumes you have a basic understanding of WPF and Visual Studio.

## How to Add PDF Viewer in WPF

- Create a WPF Project:
Open Visual Studio and create a new WPF project or use an existing one where you want to integrate the PDF viewer.

- Install WebView2 NuGet Package:
Right-click on your WPF project in Solution Explorer, select “Manage NuGet Packages,” and search for “Microsoft.Web.WebView2.” Install the package into your project.

- Add WebView2 Control to Your WPF Window:
In your XAML file, add the WebView2 control by including the following namespace:

```
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
```

Then, add the WebView2 control to your window:

```
<wv2:WebView2 Source="path-to-your-pdf-file"/>
```

- Run Your Application:
Build and run your WPF application. Verify that the WebView2 control displays the PDF file as expected and test its functionalities.


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

## Conclusion:
Integrating a PDF viewer into a WPF application using WebView2 offers a flexible and efficient solution. WebView2 allows seamless integration of web content, making it a powerful tool for displaying PDFs and leveraging web-based functionalities within your desktop application.

By following the steps outlined in this post, you can enhance your WPF application by enabling users to view and interact with PDF documents directly within the application interface, providing a more immersive and convenient user experience.

Remember, this tutorial provides a basic implementation. You can further customize the PDF viewer’s appearance, implement additional functionalities, and handle edge cases according to your application’s requirements.
px, em, rem and percentage in Responsive Design
Tags: webdev, beginners, programming, css
Published: 2024-01-08 09:08:32

It is encourage to build website on 'mobile-first' design to optimize the experience of mobile user! To do that we can write base CSS with mobile design first then only use `media queries` to adjust the layout for wider screens.

There are 4 type of unit we used to adjust the size of element: 

1. Pixels (`px`): **Absolute units** that always appear the same size on screen.
2. `em`: **Relative unit** that 1em is equal to the parent element's font-size value. Example if the paragraph have `font-size: 20px` then if we set the `margin-left: 1.5em` is equal to 30px of margin-left.
3. `rem`: **Relative unit** that 1rem is always relative to the root <html> element. Example html have `font-size: 16px` by default, so 1rem = 16px.
4. Percentage (`%`): **Relative value** that % is based on the value of its parent element. Example `main` have width of 720px, then if we set the child `div` element `width: 80%` is equal to 576px.

Which is the best to use? It depend:
1. `px`: Pixel is suggest to use on `max-width` element. Example of `div` max-width is set to 720px and no matter how big the screen is the max-width still fix on 720px. 
2. `em`: EM is suggest to use on `margin` and `padding`. The margin and padding will then scale based on the element's current font size.
3. `rem`: REM is suggest to use on `font-sizes` element so that there is no compounding issue from `em` and the font size is known because based on <html> root element which is 16px.
4. `%`: Percentage is suggest to use on width especially container and image for size flexibility based on parent element.
5. Beside the unit suggest above there is unitless number values too. Example of `line height` property which can be set to value `1` only. `1.5` is suggest to set on line height which is 1.5 times the font-size especially on paragraph. 

Another thing to highlight is common breakpoints for responsive design which is:
- 480px
- 768px
- 1024px
- 1280px

Thanks for your time to finish read about my post. Feel free to share your idea and thought! 😸

```js
let life = {
  first: 'eat',
  second: 'sleep',
  third: 'code',
  forth: 'repeat',
};

const {first, second, third, forth} = life

function capital(word) {
  return word[0].toUpperCase() + word.slice(1)
}

console.log(`${capital(first)}, ${capital(second)}, ${capital(third)}, ${capital(forth)}!`);
```
Andrew Tan