teleren/devto huggingface dataset:
Okta Completes Acquisition of Auth0
Tags: security, auth0, okta
Published: 2021-05-03 21:22:58

Okta, Inc, today (May 3, 2021) announced the successful completion of its acquisition of Auth0. Together, Okta and Auth0 address a broad set of digital identity use cases, providing secure access and enabling everyone to safely use any technology.

Auth0 will operate as an independent business unit within Okta, led by Auth0 Chief Executive Officer and Co-Founder Eugenio Pace, reporting directly to Todd McKinnon, Chief Executive Officer and Co-Founder of Okta. Both Okta’s and Auth0’s platforms will be supported, invested in, and integrated over time — accelerating innovation and making the Okta Identity Cloud even more compelling for the full spectrum of customers and users.

“Identity is one of the most strategic investments an organization will make today. A single, unified identity platform has the power to transform an organization by providing seamless and secure access for both customers and employees,” said McKinnon. “Okta and Auth0 have always shared a vision for the identity market. We’re also both cloud-first, customer-first companies. By joining forces, we’ll give our customers more choice and flexibility, driving tremendous value and enabling them to accelerate innovation. Together, we will shape the future of identity on the internet, empowering developers to build with identity at the foundation.”

"As Okta and Auth0 join forces today, bringing together two exceptional companies, I'm more confident than ever that we will deliver on our shared vision to secure access for everyone," said Pace. "Auth0's focus has always been on enabling product builders to innovate, and now as one company with a shared vision and combined resources, that innovation will only increase."

Okta’s and Auth0’s comprehensive, complementary, and flexible identity platforms solve every identity use case, regardless of the audience or user. Okta pioneered cloud-based identity, offering enterprise-grade reliability and world-class security while prioritizing customer success for organizations of all sizes. Auth0 was built by developers for developers. Application builders around the world are loyal to Auth0 for its extensibility, ease of use, scope of documentation, and developer-friendly experience. With combined expertise across developer communities and the enterprise, Okta and Auth0 will provide enhanced depth and breadth of identity solutions and will be even better suited to integrate quickly into the modern tech stack of today’s developers.

[Read more...](https://auth0.com/blog/okta-acquisition-announcement/?utm_source=content_synd&utm_medium=sc&utm_campaign=okta-auth0)
Cowin Vaccine Notifier
Tags: watercooler, productivity, cowin
Published: 2021-05-03 21:15:43

To help people notify about new vaccination slots being opened in their area in India, I have developed a very simple app: 

https://cowin.tuls.in

Just enter your email id, age & area pincode against which you want to search the slots. If a valid slot is found matching your age group and pincode, you will be sent an email with the details of the same.

Currently:
- the system checks for new slots every 2 hour, which might be changed depending on the users registration. This also means that you will receive the same emails every 2 hour. Please feel free to block the sender's email id if you are done with the vaccination and no londer require the service. An unsubscription functionality is in plan to rectify the same
- the system checks for new slots for today & 7 upcoming days
- the system automatically deletes users who registered before 7 days, to ensure new users get an equal chance to register. Also because the system is running on a server with limited resources. So, if you want to continue getting the updates, just register once again after 7 days

Future improvements:
1. Allow users to unsubcribe
2. Allow users to enter multiple pincodes
3. Allow users to enter till how many upcoming days do they want to check the slot availability for

Please share your feedback at: openciappdev@gmail.com
Debugging Tactics
Tags: java, javascript, python, webdev
Published: 2021-05-03 21:07:58

<em>“At some point, everything's gonna go south on you and you're going to say, this is it. This is how I end. Now you can either accept that, or you can get to work.”</em>

—Mark Watney, <em>The Martian</em>

<hr>

This quote inspired me to write an <a href="https://nevkatz.medium.com/7-strategies-for-finding-the-toughest-bugs-in-your-code-19b40573b4c2?sk=b3a91b91d1be9369ffec8cd900c9fd4a">article</a> on how to survive when faced with a seemingly insurmountable bug in your project. Before you scream into the void about your ever-elusive bug, check out <a href="https://nevkatz.medium.com/7-strategies-for-finding-the-toughest-bugs-in-your-code-19b40573b4c2?sk=b3a91b91d1be9369ffec8cd900c9fd4a">Seven Strategies for Finding the Toughest Bugs in Your Code</a>. Who knows - it may be hiding in plain sight.

Encounters with tough-to-solve bugs can make coding feel like a rollercoaster of hopelessness and euphoria. And sometimes you are the only one who will have the background knowledge needed to solve them efficiently.

If you've already been at it for hours, you're not alone. 

And if it has been a bug-free week so far, there's still time - so keep some of these tips in your back pocket next time you find yourself down the rabbit hole. 

You can do it.
Proxy Pattern in JavaScript
Tags: javascript, webdev
Published: 2021-05-03 21:03:24

Just a catch up about how the Proxy object works on JavaScript to allow us to implement Proxy patterns.

📌 JavaScript's Proxy object allows us to intercept and modifies any JavaScript object.

📌 JavaScript's Proxy object is an elegant and safe way for creating or extending libraries, caching, error handling, and complex data manipulation on JavaScript.

```javascript
const obj = {a: 1, b: 2};

const arrProxy = new Proxy(obj, {
  get: function (item, property) {
    if (item.hasOwnProperty(property)) return item[property];

    return "default value";
  },
});

arrProxy.z; // "default value"
arrProxy.a; // 1
```
💡 What are the use cases that you most liked to use such a JavaScript feature? 

📚 Still, for a detailed API spec of Proxy's object in JavaScript, take a look in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy).
Monoliths vs Microservices
Published: 2021-05-03 20:52:17

Mono means one, while Micro means very small. When you hear the words monolithic vs microservices, you can't help but to differentiate  between them as one system being huge and the other as small.

<h1>What is a Monolith?</h1>
A monolith is an application structure that consist of one system. The entire system function is based on a single application. This makes the developing process faster than a microservice because they do not need to communicate through API's. This also has its cons because if one project in a monolith structure files the entire system is compromised.Eventually making it even more difficult to find what caused the error because the entire system in on the server.
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y5k3nph9ygh2wnucxdmx.png)
 

<h1>What are Microservices?</h1>
A microservice application architecture where every feature is its own application. Instead of every feature being on a single application like a monolith, microservice treats each feature ass its own application than communicated to them through an API of some sort. This makes it easier to detected errors and does not cause the entire system to shutdown when one feature is compromised.
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/18qph0wje0q4f2wv7xql.png)
 
https://www.youtube.com/watch?v=sUuqc02kvSw
Ruby on Rails Project
Published: 2021-05-03 20:29:07

The third month has passed which means it was once again project week, this time using ruby on rails. This month was especially hard for me to focus on the labs and lectures, mainly because of mental exhaustion. Everything I tried to learn seemed so complex to understand so I was very concerned when it came to planning for my project. In theory, it was very simple: I was just going to make an extension of my previous wrestling Sinatra project. But applying all the new things I learned turned out to be challenging. 

I set up my models which were user, wrestler, and team, with wrestlers being the join table. I added the necessary code for each of their controllers. Up to this point, everything was fairly simple. The problem came when I was setting up my forms for the wrestlers new page. Wrestlers have five attributes: name, where they're from, birthdate, belts, and special moves. So I was surprised when I hit the submit button and saw an error that said "Team must exist." 

In my models, teams have many wrestlers and wrestlers belong to teams, but teams weren't meant to be an attribute to create a new wrestler. I spent maybe three hours trying to fix this error with a couple of people until I did eventually figure out the solution the next morning. I ended up making a nested form with an option for a user to create a new team for that wrestler, or to select from an existing team. I had to add team_attributes to my wrestlers_params method in my wrestlers controller for it to all work out.
How To Easily Use Animations From Cool Designers In Your Web App?
Tags: webdev, javascript, react, uiweekly
Published: 2021-05-03 20:06:21

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/06bu2bvrww2wdznfqgam.PNG)

The truth is, to have cool animations in your web app like loading animation, you don't need to be a good designer cause we've got designers who do that and you just need to get some help from them.

###Ever Heard Of Lottie Files?
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zjfdu97mxt1aacg924tg.PNG)
Lottie Files is an animation library from Airbnb where it is web developers' go-to site to look for awesome animations, use it in our app and then pretend like we did it from scratch to non-techies.

Anyway, here's how to use it in your React project.
##### Step 1:
Add this package to your dependency
```javascript
npm i react-lottie
```

##### Step 2: 
Head over to https://lottiefiles.com/search?q=loading&category=animations and select any animation. Download the file in JSON format and keep it in your project directory, preferably in a folder named assets.

##### Step 3: 
Create an animation component- in this case a loader component (you can literally copy & paste the code snippet below and it'll work but be sure to import the right JSON file).
```javascript
import Lottie from "react-lottie";
import animationData from "../assets/6472-loading.json";

function Loader() {
  const defaultOptions = {
    loop: true,
    autoplay: true,
    animationData: animationData,
    rendererSettings: {
      preserveAspectRatio: "xMidYMid slice",
    },
  };

  return <Lottie options={defaultOptions} height={100} width={100} />;
}

export default Loader;
```

##### Step 4:
You probably know how to use this now. One common use case is to have a boolean variable like isVisible and show this component depending on the value like:
```javascript
{ isVisible && <Loader /> }
```
Monoliths vs Microservices
Published: 2021-05-03 19:39:25

# What is a Monolith?
A monolith architecture is one that keeps all resources in one big server. This is something that isn't necessarily beneficial, because if one aspect of this fails, then this means that the entire monolith will go with it. In addition to this, trying to make code changes can be a difficult process because the entire platform would have to compile in order for the change to be complete. 

# What Are Microservices?
A microservice architecture incorporates smaller applications that are tied together through application integration. These microservices can be more simple to develop given their smaller scope. 
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jlhax9ou7pfb6d9qcft3.png)

One of the benefits that microservices bring to the table is that since each of the different functions can be separated across the network, if one function was to have an error then it wouldn't affect the other parts of the system. One of the biggest benefits to a microservice is its simplicity. When applications are split into smaller fragments, it is much easier to build and maintain. Also, managing that code that's written is much easier since it is all split in to separate chunks. 

Ultimately, microservices make big solutions for problems much easier and allow for more flexibility between teams. The use of microservices is not all beneficial, but for bigger projects, the need to frequently update individual parts of a systems is best coupled with microservices as opposed to monoliths.

{% youtube -V_KmH8ir0M %}
Elasticsearch Perfect Shard Size
Tags: elasticsearch
Published: 2021-05-03 19:24:10

Documents in Elaticsearch are logically grouped into a data structure called index. One index can contain a massive number of documents.

You can think of an index like a database table and a document like a database row.

But, luckily Elasticsearch is built around distributed concepts, so a single index (table) can be split into multiple physical locations by storing documents in multiple shards. One index is built of multiple shards which contain documents. All shards together make up a single index.

Now a substantial problem arises. You can choose the number of shards only once at the beginning of index creation. Depending on the number of shards, Elasticsearch knows where to assign specific documents on writes and find them on reads.

So if there are three shards, the location is calculated by hashing function and modulo of three. If you were allowed to change the shards number later, the modulo function of four would produce incorrect results.

## So, how many shards should the index have?

Quite often, techs working with Elasticsearch ponder how many shards a single index should have. Two, three, four, or... a hundred?

And the answer is: it is a wrong question :)

## The correct question: how large should a single shard be?

So the answer is: **a single shard should be of size 5 to 40 GB.**

Depending on the number of documents you plan to store in your index and their size, you can plan the number of shards for the index.

**If you intend to have 1 GB of data, it's enough to have just one shard :)**

**But if you have 100 GB of data, it's better to have 3-20 shards.**

The specific number depends on your performance benchmarks.

The more shards, the better it is to scale them out on multiple nodes. The less, the latency on communication is lower (calculations are performed locally).

## What if I'm not sure how much data I am going to have?

The answer is: start small. If the need for more shards arises, you can always reindex the data on the index with a more precise number of shards later on.

## Wrap Up 🙌
Choosing the correct number of shards for an Elasticsearch index is one of the most important decisions to make at the beginning. Make sure you use the correct numbers, so you gain the best performance experience for your cluster.
✨ Learning is not a destination... it's a lifelong journey
Tags: motivation, career, programming, design
Published: 2021-05-03 19:21:13

While the path may be full of twists and turns, bumps and burns... there are some essential checkpoints that will help you along the way.

---

### 🏞 Find your path
As your learning journey begins, you may feel overwhelmed with all of your options. Which programming language should you start with? Front-end, back-end, design, something else?!

Take a deep breath... and know that there's no wrong place to start. What interests you the most? What feels like it will be the best starting point for you? Just start somewhere... and grow from there.

---

### 🌱 Learn and grow
Once you've found and committed to your learning path, you're well on your way! Design a learning groove that works for your daily lifestyle. If learning 15 minutes per day is most beneficial for you, go for it! 

Again, there's no wrong way. Just make sure you set yourself up for success with reasonable daily goals so you are building momentum. Be sure to also take breaks so that you can digest everything you're learning - you'll come back fresh!

---

### 💬 Ask for help
You may encounter challenges along the way. You may sail right through. One thing's for sure, you will eventually come upon roadblocks - it's part of the journey! It's important to surround yourself with folx and resources that can help you unblock things and move forward.

Be sure to reach out to your loved ones and friends for support. Build or join a community that you can reach out to and ask for help when challenges arise. Utilize your resources - Google-it, Stack Overflow-it, Dev.to-it.

Overcoming challenges along the way will help you to successfully learn... and your support networks and online resources are key to that success.

---

### 🛤 Stay on track
There may come a point along your learning journey where you start to deviate from the path... you might miss a day (or a few). That's okay! Life happens. The most important thing is to hop back on the track when you are able and start moving again. 

You may have needed a bit of time to digest everything you've been working with. Just don't give up on your goals - know that you can reach the top of that mountain you're climbing.

---

### ✅ Achieve your goals
Whether you're working on small daily goals, or big picture goals... reaching those achievements is vital to feeling like you're getting somewhere on your learning journey. It will propel you from success to success.

We know it's not always easy. Be sure to give yourself some props! You are doing an amazing job juggling life alongside learning. Keep receipts of your achievements so that you can refer back to them if you feel like giving up or if Imposter Syndrome sets in.

Once you've accomplished your goals – go after new ones. The key to being a lifelong learner is doing it for the love of learning... and finding joy in the growing process.

### Keep going - don't give up! 💜

---

## 💬 Join the conversation

Every learning journey is unique. Are there any other essential checkpoints you have to keep you motivated and growing?  **Leave a comment below!**
Real time group chat app built with PHP/Laravel, VueJs and Pusher
Tags: php, vue, laravel, pushercontest
Published: 2021-05-03 19:04:44

I built a group chat app using Laravel, I wanted to share it with the community to inspire those who are looking for side projects ideas.

link to the code: www.github.com/kevilondo/group-chat
link to the video: https://www.linkedin.com/posts/kevin-ilondo-002a411bb_programming-webdev-webapp-activity-6793932838757576704-Vh0Z
Multi-touch with Doodle
Tags: showdev, kotlin, webdev
Published: 2021-05-03 19:03:53

See how to easily use multi-touch and file drag-drop to make a simple [photo viewer](https://nacular.github.io/doodle-tutorials/#/photos) using Doodle. Doodle [tutorials](https://nacular.github.io/doodle-tutorials) is a good place to see in-depth examples of how to build apps.

[Doodle](https://github.com/nacular/doodle) is a pure Kotlin UI framework for the Web, that lets you create rich applications without worrying about Javascript, HTML or CSS. Check out the [documentation](https://nacular.github.io/doodle) to learn more.

Feedback is always appreciated.
Howdy NextJS getServerSideProps()?
Tags: nextjs, javascript, frontend
Published: 2021-04-29 17:16:23

In Next.js, There are two ways to pre-render a page:

- Static 
- Server-Side Pre-rendering

We already cover static pre-rendering in our [earlier articles](https://ashutosh.dev/blog/post/2021/04/what-is-getstaticpaths-nextjs). In this section, we cover how to generate pages on the server-side in Next.js.

Most of the time, you don't need to generate pages on the server-side. Static generation serves the purpose for us. But sometimes, static generation is not enough when we want to access an object or, let's say, cookies or session, etc.

A perfect example of this scenario is the user details page. Why? Because we don't know which user is sending the request to his/her details from the server. Hence it is unlikely to pre-render the user details page.

```javascript
function UserProfilePage(props) {
    return (
        <div>
            <div>
                Username: <span>{props.userFullName}</span>
            </div>
            <div>
                 Email: <span>{props.userEmail}</span>
            </div>
        </div>
    )
}
export default UserProfilePage
export async function getServerSideProps(context){
    // Default Node objects. If you change it to request and response. It will not work
    const { params, req, res } = context 
    // console.log(req)
    // console.log(res)
    return {
        props:{
            userFullName: 'Michael Foo',
            userEmail: 'michael@example.com'
        }
    }
}
```

Go to the browser and visit http://localhost:3000/profile



The function getServerSideProps() not called when the app builds. However, it's called for every incoming request to the server.



Not only this, but in getServerSideProps(), we also get access to the request (to be precise req) and response (res). 



You can try removing the comments in the console.log lines in the code.



Last but not the least, just run "yarn build" and observe the messages during the generation of the build.

Refer the attached image for details.

<img src="https://raw.githubusercontent.com/akuks/Misc/main/Images/Nextjs_Create_Build.png" />
How to create a SpringBoot XML REST Service
Tags: springboot, restservice, xml
Published: 2021-05-03 18:56:38

https://grokonez.com/spring-framework/spring-boot/create-springboot-xml-rest-service

How to create a SpringBoot XML REST Service

In the tutorial, JavaSampleApproach will show you way to create a SpringBoot XML REST Service.

<!--more-->
<div id="tuttoc" class="jsa-toc"></div>

<div id="tutcontents">

<h2>I. Technologies</h2>
– Java 1.8
– Maven 3.3.9
– Spring Tool Suite – Version 3.8.1.RELEASE
– Spring Boot: 1.5.1.RELEASE
<h2>II. Overview</h2>
- If on the classpath has <strong>Jackson XML extension</strong> (<code>jackson-dataformat-xml</code>), SpringBoot will be used to render XML responses.
- If <code>jackson-dataformat-xml</code> is not available, <strong>JAXB</strong> in JDK will be used with a required annotation <code>@XmlRootElement</code> in model:
<pre><code class="language-java">
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Customer {
	private String firstname;
	...
}
</code></pre>
- GET requests must have <strong>Accept: text/xml</strong> header.
- POST requests must have <strong>Content-Type: text/xml</strong> header.
<h2>II. Practice</h2>
<h3>1. Create Spring Boot project</h3>
Create SpringBoot Web App project with dependency <code>spring-boot-starter-web</code>:

More at:

https://grokonez.com/spring-framework/spring-boot/create-springboot-xml-rest-service

How to create a SpringBoot XML REST Service
Oh!!! Einstein can speak again ...
Tags: machinelearning, news, watercooler
Published: 2021-05-03 18:54:22

Audio content production company Aflorithmic and digital human creators UneeQ have collaborated to synthesize the voice of renowned historical scientist, Albert Einstein.

Einstein to respond quickly to user questions, similar to a customer service chatbot or personal assistant. To achieve this, they created a real-time turnaround for input text received by the computational knowledge engine to Aflorithmic's API. Since then, in only two weeks, the research teams managed to decrease the Einstein bot's response time from 12 seconds to less than three seconds.

Overall, both companies predict the Digital Einstein project as just the beginning for the interactive potential of conversational AI with humans.

Watch video:
https://youtu.be/RiWB2o-9qMs

Please also read learning from Einstein's life in lis of articles  in my profile.