teleren/devto huggingface dataset:
Develop a mobile app with NO coding!!
Published: 2021-04-21 00:45:50


I have recently stumbled upon a website which allows you to create mobile apps for free without any coding. In fact, the first thing you see when you land on Glideapps [website](https://www.glideapps.com/) is "Build an app from a Google Sheet in five minutes, for free".

I was very intrigued by this statement, so I quickly signed up and started browsing around. I quickly saw that this was extremely easy, and the end result looks very professional. The only thing you need is just a spreadsheet with some data.

Glideapps can quickly transform spreadsheets into beautiful, very easy-to-use and professional apps, without any code. You first create a spreadsheet and then you can build your app from scratch or with a template. Then you can share it with anyone without the need to install an APK. Its just a browser link. 

Here is a glimpse of what Glideapps can do, with my currently in development personal project of a price tracker for any product that exists in the web. You just need to add the link of the item to the spreadsheet!


![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9vfrpxb78x8fgd4vwz0.JPG)![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o9fqr8v3xwkugutr72g2.JPG)![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ra1tfnnazi2f7nqlhi5n.JPG)


As you can see, the same spreadsheet data can be shown with different formats that best suits your needs. 

And the best part about it... The free tier is very generous if you are going to develop small personal projects.

**P.S:** If this seems like an interesting website and would like to know more about it, I can release a tutorial series about Glideapps. I welcome any comments :grinning:
Training GPT without code
Tags: nlp, machinelearning, deeplearning
Published: 2021-04-21 00:40:56

Train your own GPT2 using only data without code.

You can learn how to use it on YouTube below.

teachable-nlp : https://ainize.ai/teachable-nlp
tutorial : https://www.youtube.com/watch?v=hzujZOT1qz8
An iPad Pro with a Mac Chip, but what about the OS?
Tags: ipad, apple
Published: 2021-04-21 15:28:46

---
title: An iPad Pro with a Mac Chip, but what about the OS?
published: true
date: 2021-04-21 00:31:47 UTC
tags: iPad, apple
canonical_url: https://peterwitham.com/ipad-pro-m1-chip
---

It feels like the day has finally arrived when an iPad has the same chip as a desktop Mac. Yes, I’m talking about the new iPad Pro with the M1 chip.

My MacMini performs exceptionally well for me, and that’s what matters at the end of the day. Not the specs, the stats, or charts, but does it run as you want.

So with that, I’m very excited to see how the iPad Pro grows up with this chip for things like video and audio editing. But there is a problem.

iPadOS is not macOS. To me, it still feels wrong. Now that they have the same chip, plus the iPad has cursor support, why is Apple resisting the obvious and making the iPad the computer we want it to be?

Probably because it would hurt low-end Mac sales, I get that. But what happened to Apple and the ‘takes courage’ attitude? Have the bean counters finally taken over the henhouse, and everything is just about the money?

I, for one, hope not. Let’s see iPadOS 15 bring this thing home and take on Microsoft’s Surface line, which is also very impressive and has a desktop OS.
Are coding bootcamps worth it in 2021?
Tags: programming, webdev, javascript
Published: 2021-04-21 00:19:55

Going to a bootcamp is a big commitment. I went to one when they first started to become popular. There is a lot that goes into picking one and if going to one is right for you.

In this video, I talk about the pros and cons of going to a bootcamp, some free alternatives I think are a great place to start, and A LOT MORE!

[Click to watch and find out more!](https://www.youtube.com/watch?v=wn6sg4c2ZLo)
Back on track to basic DOM manipulation
Published: 2021-04-21 00:15:30

So now that we've gone over variable assignments and have also talked about functions and methods, we're now ready to finally put it all together to discuss the DOM manipulation we want to achieve. For the final time, we want to take a phrase that is inputted by the user and have it render onto the page when the user clicks the submit button on the form.

![Screen Shot 2021-04-20 at 8.07.30 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/snclthuqdt2d8yhs56ax.png)

As we examine the HTML document we can see that our form has an ID of `formPhrase`. With that knowledge, we can set it to a variable. We can also attach a variable to our div with the id of phrasePlace since we'll be adding HTML within the opening and closing tags. 

 ![Screen Shot 2021-04-20 at 8.08.01 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p75hwjb7kibvn7w4nizm.png)
  

Now that we have our form able to be accessed as a variable we can now use methods on the variable that represents a particular HTML element. For this example we will use .addEventListener().  This will let allow javascript to listen out for the appropriate action to perform some sort of work.  The action, in this case, being 'submit'. That would be the first argument passed to the method with the second being a callback function. 

```
form.addEventListener("submit", function(event){
  event.preventDefault();
  const phrase = event.target.phrase.value;
  phrasePlace.innerHTML += placePhrase(phrase);
});
```

Within the blocks is where we would put our code. Above in the example, we have an argument (event) being passed into the callback function and then we're calling a preventDefault method on the event as the first statement in the function.  On the submission of a form, it's normal behavior for the page to refresh, but we don't want that in this case. Since we aren't fetching to a database the phrases that we would have rendered would be erased and to avoid all of that we're telling the event to not cause a refresh and instead continue with the function.  The next line grabs the phrase from the input field. Finally, using a function that takes the argument of phrase and returns HTML with the actual phrase. This returned HTML will be placed in the div that has an ID of phrasePlace. 

Take a breath, that was alot of information. Hopefully, this wordy explanation helped to shed light on what DOM manipulation is. Now practice with different types of event listener keywords and see what you find. The only way to learn is to practice!
Reusing integration blocks in Kumologica
Tags: serverless, aws, microservices
Published: 2021-04-21 00:13:42

The key principles of almost all the IT enterprises and startups focussed today are

* Speed of development
* Easy maintenance of application
* Reduced cost and effort of development

Above 3 principles are now strong pillars behind a good digital strategy and critical part of a good innovation team.
Low code development and serverless has already increased the speed of development and reduced the overall cost of ownership of an application but still there is room for further gain. This further gain can be achieved with proper design of a code by considering reusability of certain functionality across different services.

[Kumologica](https://wwww.kumologica.com/) gives components which allows the developers to build a reusable functionality easily and at the same time a quick and seamless way for sharing the reusable component with the peer developers or across the team.

In Kumologica you can build a reusable integration block using a processor node. The common functionality or logic that has been identified to be reused across different services or flows can be defined between the processor in node and processor out node.

<img src="https://miro.medium.com/max/1400/1*5SIhIWPkk9Nj5VB5Y88nPQ.png"/>

<h2>Scenario</h2>

In this scenario developer A builds a service. The team members later find that the service they are developing requires a similar logic. Now we will see how the developer A will build the reusable logic in Kumologica and how it’s going to be shared with his peer developers.

<h2>Implementation</h2>

**Building and exporting the reusable integration block**

In order to create the reusable flow we are going to make use of the subflow option under the processor node.
Developer A selecting the reusable logic block and exporting using copy to clipboard. The copied JSON content is shared to the developer.

{% youtube B_njO9eXpls %}

**Importing of integration block**

Importing the logic block by peer developers on their designer and refer the block in their main flow using processor node.

{% youtube cSn1afceMW8 %}
Minimum viable agility
Tags: scrum, extremeprogramming, agile, productivity
Published: 2021-04-23 17:49:47

---
title: Minimum viable agility
published: true
date: 2021-04-21 00:00:00 UTC
tags: scrum,extremeprogramming,agile,productivity
canonical_url: https://jhall.io/archive/2021/04/21/minimum-viable-agility/
---

Joakim Sundén, in his talk [_You can do better than the Spotify Model_](https://vimeo.com/240125835) talks about the concept of “Minimum viable agility” (around 27m):

> Every time you have a new team, or a team splits, they kind of have to reinvent the wheel about on how we should be work. Maybe we should do it that we have this “Minimum viable agility” and that’s what you start with. Feel free to opt out, but people shouldn’t have to opt-in all the time."

I see the same all the time for startups, too, not just new teams in large companies (like Spotify).

So what does Minimum viable agility look like? If you have no other guide (such as another team you can copy), a simple answer is to choose from the well-established, existing agile methodologies. Scrum and XP are probably a great starting point. They’re both well documented, so you won’t have to spend much time bikeshedding on how to do things.

Just don’t get stuck thinking that you have to follow the Scrum and XP “rules” rigidly. Do what works for you.

* * *
If you enjoyed this message, [subscribe](https://jhall.io/daily) to _The Daily Commit_ to get future messages to your inbox.
How to get the creation time of the file synchronously using Node.js?
Tags: node
Published: 2021-04-21 00:00:00

---
  title: How to get the creation time of the file synchronously using Node.js?
  published: true
  tags: Nodejs
  date: Wed Apr 21 2021 05:30:00 GMT+0530 (India Standard Time)
  canonical_url: https://melvingeorge.me/blog/get-creation-time-of-file-synchronously-nodejs
  cover_image: https://melvingeorge.me/_next/static/images/main-d431a78b978657a087d8f796f9f87349.jpg
  ---
  [Originally posted here!](https://melvingeorge.me/blog/get-creation-time-of-file-synchronously-nodejs)
  
To get the creation time of a file synchronously, you can use the `statSync()` method from the `fs` (filesystem) module and then use the `birthtime` property from the returned `stats` object in Node.js.

Let's say we have a file called `myFile.txt` in which you want to get the time of creation. Here you can use the `fs.statSync()` method and pass:

- the `path` to the file as an argument.
- the method returns a `stats` object where we can use the property called `birthtime` to get the creation time.

**The `birthtime` property returns a valid `Date` object in JavaScript**

It can be done like this,

```js
// require fs module
const fs = require("fs");

// using fs.statSync() method to get all stats
const stats = fs.statSync("./myFile.txt");

// get creation time of the file
const creationTime = stats.birthtime;

console.log("File created at: ", creationTime); // File created at:  2021-04-30T23:53:07.633Z
```

See the above code live in [repl.it](https://replit.com/@melvin2016/get-the-creation-time-of-file-synchronously-nodejs).

If you want to see the `Date` in a more human-readable way you can use the `Date` object methods. Let's use the `toUTCString()` method like this,

```js
// require fs module
const fs = require("fs");

// using fs.statSync() method to get all stats
const stats = fs.statSync("./myFile.txt");

// get creation time of the file
const creationTime = stats.birthtime;

console.log("File created at: ", creationTime.toUTCString()); // File created at: Fri, 30 Apr 2021 23:53:07 GMT
```

That's it! 😀

### Feel free to share if you found this useful 😃.

---
Run Code when You Leave Your Angular App
Tags: angular
Published: 2021-04-23 05:44:14

---
title: Run Code when You Leave Your Angular App
published: true
date: 2021-04-21 00:00:00 UTC
tags: angular
canonical_url: https://medium.com/ngconf/run-code-when-you-leave-your-angular-app-d4ef30472d20
---

## [tldr;](#tldr)

We have all seen and likely used the `ngOnDestroy` lifecycle hook. But did you know it doesn't fire when the browser tab is refreshed or closed or the URL is changed to a new page? What do you do if you need to do some cleanup when the entire Angular app is destroyed? It turns out to not be too hard through the use of a `@HostListener`.

## [What's the Problem?](#whats-the-problem)

I was recently working on an issue in an app that needed to be resolved by clearing a portion of the `localStorage` when the Angular app redirected to the authentication server. I figured it would be simple; I would just use `ngOnDestroy` in the main `AppComponent` and clear the `localStorage` item! But it turns out that didn't work. The Angular docs say this about the `ngOnDestroy` hook:

> Called immediately before Angular destroys the directive or component.

Notice it does _not_ say that it is called before the browser destroys the Angular app. So my first stab at solving the problem didn't work. Luckily I found another way that's just as simple to solve this problem.

## [Using the HostListener](#using-the-hostlistener)

Depending on the amount of time you've used Angular, you may or may not know about the `HostListener` decorator. This decorator "declares a DOM event to listen for, and provides a handler method to run when that event occurs". In other words, you use this decorator in a component to listen to DOM events and run handler functions when the event fires. This is what you can use to run certain pieces of code when the application is destroyed by the browser (by refresh, or changing to a new site, or whatever the case may be).

The two DOM events that I used to accomplish this were `beforeunload` and `unload`. The `beforeunload` event fires when a window is about to unload its resources. The `unload` event fires when the window is unloading its content and resources. Depending on your situation, either of these could work. Here is how the `HostListener` can be used with one of these events:

```
export class AppComponent implements OnInit {
  @HostListener('window:unload', ['$event'])
  unloadHandler(event) {
    // ...
  }

  @HostListener('window:beforeunload', ['$event'])
  beforeUnloadHandler(event) {
    // ...
  }
}

```

With these `HostListener`s, the functions underneath the decorator will be run when the event fires in the browser. Inside those functions is where you will run the cleanup code.

## [Conclusion](#conclusion)

While there isn't a lifecycle hook for the app being destroyed by the browser, a `HostListener` and an event to listen to will accomplish the same result. You can use this same method for any event that the browser fires.
3 Years of VueJS (2021) Link Only
Tags: vue, javascript
Published: 2021-04-20 23:57:56

[https://anthony-sarkis.medium.com/3-years-of-vuejs-2021-7e3127a930dc](https://anthony-sarkis.medium.com/3-years-of-vuejs-2021-7e3127a930dc)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/onr4wa502e3mlis0bnze.PNG)
What would you like to know most about the future of the Forem product? Answer for the chance to be featured on our podcast!
Tags: discuss, podcast, forem, meta
Published: 2021-04-20 23:36:47

---
title: What would you like to know most about the future of the Forem product? Answer for the chance to be featured on our podcast!
published: true
tags: discuss, podcast, forem, meta
---

The [DevDiscuss Podcast](https://dev.to/devdiscuss) begins with an interview and ends with commentary from listeners — and we like to feature the actual _voices_ from our community!

To inform an upcoming episode of the show, we'd like to know...

> ### **“What would you like to know most about the future of the Forem product?”** 
  
For your chance to hear your actual comments on an upcoming episode, answer the question above by:

- Calling our Google Voice at +1 (929)500-1513 and leave a message 📞

- Sending a voice memo to pod@dev.to 🎙

- OR, leaving a comment here (we'll read your response aloud for you) 🗣

_Please send in your recordings by Wednesday, April 21st at Midnight, ET (9 PM PT, 4 AM UTC)_

_**Voice recordings will be given priority placement**_ 😉 

---
If you want to start public speaking, just ask
Tags: career, journey, advice
Published: 2021-04-20 23:33:19

---
title: If you want to start public speaking, just ask
published: true
description: Bytes of Wisdom is a new project by Sam Jarman that brings together snippets of advice for software engineers
tags: career, journey, advice
//cover_image: https://direct_url_to_image.jpg
---

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1cwybiffx3av3g7l2m6r.png)

What you might not realise that a lot of organisers of internal conferences, meetups, external conferences and more actually want speakers. One of the biggest fears for these people is that no one wants to speak at their conference, and then no one attends. There are literally thousands (if not more) of dollars at stake when organising a conference, so applying to speak or offering a short talk at a meetup will bring a massive smile to the organiser's ear. So reach out, say "I have an idea for a talk since I've done xyz recently".

After that, it's a numbers game. Apply for every darn CFP, the process in which you make a proposal for a talk, you see (that makes sense). Some more practical tips - there are many tech conference aggregators out there (Callback Women, etc). They go deep with information such as travel and accommodation assistance and sometimes childcare. There are also many, many articles online in most communities of "conferences on technology x" that are worth subscribing to and keeping an eye on. 

Heads up: As with any terse bit of advice, there will be exceptions of course, and subtleties and nuance that can't possibly be captured in a Byte of Wisdom. This has been what I've experienced, I'd love to hear yours in the comments too!

You can catch up with all the other bytes at http://bytesofwisdom.com/
I'm new at this
Published: 2021-04-20 23:15:13

I'm Samuel Socorro, yeah... funny last name if you know spanish XD, im venezuelan but i live actually in Santiago of Chile, i want to become in a backend programmer, or maybe frontend idk, i took this seriously last year but i didn't not do too much, this year i'll go with all i have. I can code in python(my favority programming language), C++(the first one i learned), and i'm starting to learn javascript, i really don't cares anymore about the languaje, everything's the same, but ok, this is taking too much, i hope to keep learning with all of you! not forget to drink water, and that's all, bye bye.
Day 349 : Guilty All The Same
Tags: hiphop, code, coding, lifelongdev
Published: 2021-04-20 22:55:35

_liner notes_:
- Professional : Had an all hands meeting today where everyone in the company comes together and hear from the folks at the top. Then I got a new Web Component finished up, published and did a pull request on the repo. Had another meeting to kick off the 2 day internal hackathon for this quarter. I'll actually be working on something that I was going to use in my side project anyway, so that works out. haha

- Personal : Whew, last night I ran into some issues trying to get my Svelte / Sapper application up on Firebase. Ran into some errors while installing some libraries that said something about the version of node I was using. So I had to work out how to update my node version. That was a whole thing. Ended up installing NVM and upgraded through that. That didn't help. Still had errors whenever I tried to deploy my function to Firebase. After a bunch of stuff, looks like Svelte / Sapper doesn't work with node 12, maybe? Still not sure. I downgraded to node 10, deleted the function and deployed it again and then it worked. After that, I watched an episode of "Dr. Stone" and went to sleep.

![Salto Grande, Chile landscape with mountains in the distance and moss-covered hills with a stream and waterfall in the center](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebc8med4szh8xq3cwy2a.jpg)

So, Derek Chauvin was found guilty on all charges. It only took high quality videos from multiple angles to get a conviction. He was found guilty all the same. We'll see how much time he gets. Got a rough layout created of how the different parts of my hackathon project will look. Think I'll figure out more how things will work together and set up a starter project. Watch another episode of "Dr. Stone" and go to sleep. 

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube cEaEdLQbAFM %}
CSS Tips: Reset Element With all: unset [Simple]
Tags: programming, webdev, tutorial, beginners
Published: 2021-04-20 22:43:15

You will always facing this problem if you write the CSS code by yourself, no CSS framework, and any CSS/SASS/SCSS library.

Yeah, some elements has their default behavior/appearance thus we can decide by ourself 

## No Default Style, Please Reset it!

Reset this element then make new style or remain the default.

But, probably I would like to resetting this element, and make my own style.

### Button Element
for example, we have button element and the default style looks like quite ugly. 

so I have to restyling this element, but before I do that. 

I must reset the default appearance.

```css
button {
  background: none;
  padding: 0px;
  margin: 0px;
  border: none;
  outline: none;
}
```
You know? There's more simple way to reach out something as above with only one declaration, yeah with `all: unset;`

## Use all: unset to Reset Elements
Look at this code below, you might be surprised with this magic.
```css
button {
  all: unset;
}
```
### The Result
You can compare both the result, button with class `old` is with old way to reset element, and button with class `simple` is with new/simple way to reset element.

{% codepen https://codepen.io/nurofsun/pen/gOgBBNp %}

I think, the result is the same, but for more information which browsers supported `all: unset;` declaration you can take a look on [canise](https://caniuse.com/?search=all)

Thanks.