teleren/devto huggingface dataset:
Podman $XDG_RUNTIME_DIR not set
Tags: devops, linux, tutorial
Published: 2020-09-21 13:51:30

#OS
Fedora 31

#Work around

```
To add the command
su root
vim /etc/bashrc
export XDG_RUNTIME_DIR=/run/user/$UID
```

```
su root
mkdir /run/user/1002
chown johnny2020:johnny2020 1002
chmod 700 1002
```

# Create storage.conf

```
su johnny2020
vim ~/.config/containers/storage.conf

[storage]
  driver = "overlay"
  runroot = "/run/user/1002/containers"
  graphroot = "/home/johnny2020/.local/share/containers/storage"
  [storage.options]
    size = ""
    remap-uids = ""
    remap-gids = ""
    ignore_chown_errors = ""
    remap-user = ""
    remap-group = ""
    skip_mount_home = ""
    mount_program = "/usr/bin/fuse-overlayfs"
    mountopt = ""
    [storage.options.aufs]
      mountopt = ""
    [storage.options.btrfs]
      min_space = ""
      size = ""
    [storage.options.thinpool]
      autoextend_percent = ""
      autoextend_threshold = ""
      basesize = ""
      blocksize = ""
      directlvm_device = ""
      directlvm_device_force = ""
      fs = ""
      log_level = ""
      min_free_space = ""
      mkfsarg = ""
      mountopt = ""
      size = ""
      use_deferred_deletion = ""
      use_deferred_removal = ""
      xfs_nospace_max_retries = ""
    [storage.options.overlay]
      ignore_chown_errors = ""
      mountopt = ""
      mount_program = ""
      size = ""
      skip_mount_home = ""
    [storage.options.vfs]
      ignore_chown_errors = ""
    [storage.options.zfs]
      mountopt = ""
      fsname = ""
      size = ""

```

###It will only create the directory /run/user/$UID  if you login via ssh

#Networking
[container-networking-podman](https://www.redhat.com/sysadmin/container-networking-podman)


#podman cp

```
[johnny2020@localhost ~]$ podman cp --pause /home/jos/myfile testpo:/tmp/
Error: invalid arguments /home/johnny2020/myfile, testpo:/tmp/ you must use just one container
[johnny2020@localhost ~]$ podman cp --pause /home/johnny2020/emyfile testpo:/tmp/
Error: invalid arguments /home/johnny2020/emyfile, testpo:/tmp/ you must use just one container
[johnny2020@localhost ~]$ podman cp --pause /home/johnny2020/myfile testpo:/tmp/
Error: invalid arguments /home/johnny2020/myfile, testpo:/tmp/ you must use just one container
[johnny2020@localhost ~]$ podman cp --pause /home/johnny2020/myfile /tmp
Error: invalid arguments /home/johnny2020/myfile, /tmp you must use just one container
[johnny2020@localhost ~]$ podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS             PORTS                  NAMES
b73dc0a99f2f  docker.io/library/nginx:latest  nginx -g daemon o...  17 minutes ago  Up 13 minutes ago  0.0.0.0:37895->80/tcp  testpos
[johnny2020@localhost ~]$ podman cp --pause /home/johnny2020/myfile b73dc0a99f2f:/tmp/
Error: can not pause containers on rootless containers with cgroup V1: this container does not have a cgroup
[johnny2020@localhost ~]$ podman cp /home/johnny2020/myfile b73dc0a99f2f:/tmp/
[johnny2020@localhost ~]$

```
พื้นฐาน JavaScript เบื้องต้น
Tags: javascript
Published: 2020-09-21 13:49:52

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/io2xjx6ls6sfrfnhejd6.png)
๋JavaScript เป็นภาษาสคริปต์เชิงวัตถุ (ที่เรียกกันว่า “สคริปต์” (script) ซึ่งในการสร้างและพัฒนาเว็บไซต์ (ใช่ร่วมกับ HTML) เพื่อให้เว็บไซต์ของเราดูมีการเคลื่อนไหว สามารถตอบสนองผู้ใช้งานได้มากขึ้น ซึ่งก่อนที่จะเริ่มเรียนเรื่อง JavaScrip นั้น จำเป็นต้องมีความรู้พื้นฐานเรื่อง HTML และ CSS เสียก่อน

###สิ่งที่ควรรู้ใน JavaScript-101###
- ตัวแปรใน JavaScript
- รู้จักกับ function ใน JavaScript 
- Array ชุดของข้อมูล
- Loop ใช้ทำซ้ำตามเงื่อนไขที่กำหนด 

 Javascript : [JavaScript Tutorial](https://www.w3schools.com/js/)

###1ตัวแปรใน JavaScript###
**ใน JavaScript จะมีการประกาศตัวแปรอยู่ 4 วิธีคือใช้ var, let, const หรือจะไม่ใช้อะไรเลยก็ทำได้ครับ**
 - var คือ การประกาศตัวแปรสำหรับใช้ใน code ในส่วนที่ถูกรันในส่วนนั้นๆ อาจจะหมายถึงทั้ง function หรือทั้งไฟล์เลยก็เป็นได้
```
var test = 123;
if (true) {
   var test= 456;
}
console.log(test); // 456
```
 - let คือ การประกาศตัวแปรสำหรับใช้เฉพาะใน scope นั้นหรือเฉพาะใน block นั้นๆ
```
let test = 123;
if (true) {
   let test= 456;
}
console.log(test); // 123
```
 - const คือ การประกาศตัวแปรแบบค่าคงที่ หรือพูดง่ายๆคือตัวแปรแบบ Read Only
```
onst PI = 3.14
PI = 1 // "PI" is read-only เปลี่ยนค่าไม่ได้อีกแล้วนะ
const obj = { a: 1 }
const obj = { a: 2} // แต่การเปลี่ยนค่าภายใน object ไม่ได้ทำให้ memory  
address เปลี่ยนไป obj.a = 2 
console.log(obj) // { a: 2 }
```
 - ไม่ระบุ คือ การประกาศแบบ global การประกาศตัวแปรแบบ global คือการประกาศแบบใดก็ได้แต่เอาไว้ใน scope นอกสุด
Shell (Mac, Linux):


###2.รู้จักกับ function ใน JavaScript###
สำหรับ function ใน JavaScript 
- มันสามารถเก็บลงตัวแปรได้
- สามารถส่ง function เป็น argument เข้าไปใน function อื่นๆได้
- สามารถ return ค่าออกมาเป็น function ก็ทำได้

ฟังก์ชั่น หรือชุดคำสั่งที่รวม Statement การทำงานเอาไว้ สามารถเรียกชื่อมาใช้งานตามที่เราต้องการใช้ได้
```
function ชื่อฟังก์ชั่น( ตัวแปรพารามิเตอร์ถ้ามี ){
Statement ที่ต้องการให้ทำงาน เมื่อมีการเรียก function
return <- ถ้าต้องการส่งค่าบางอย่างกลับไปนอกฟังก์ชั่น เมื่อการทำงานมาถึงจุดนี้
}
```
####ตัวอย่างการเรียกใช้ฟังก์ชั่น เมื่อสร้างไว้เบื้องต้น####
```
function hello() {
}
hello(); // เรียกใช้งาน
```

###4.Array ชุดของข้อมูล###
เป็นตัวแปรพิเศษซึ่งสามารถเก็บมากกว่าหนึ่งค่าในแต่ละครั้งหากต้องการมีรายการสินค้า (ตัวอย่างเช่นชื่อรถ) การจัดเก็บรถยนต์ในตัวแปรเดี่ยวอาจมีลักษณะดังนี้:
```
var cars = ["Saab", "Volvo", "BMW"];
```
ในการเข้าถึงของอาร์เรย์ค่าเริ่มต้นของ Index จะมีค่าเท่ากับ 0 เสมอ
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/rqi8enip135jhkki4t85.png)

###5.Loop ใช้ทำซ้ำตามเงื่อนไขที่กำหนด###
#####Loop for#####
```
for ( ตัวแปรเริ่มต้น ; กรณีเทียบ (Condition) ; เพิ่มค่าตัวแปร ) {
Statement ที่ต้องการให้ทำงาน ถ้ากรณีเทียบยังเป็นจริงอยู่
}
```
#####ตัวอย่างการทำงาน Loop for#####
```
for (var i = 1; i < 5 ; i++ ){
console.log(i);
}
/*
ผลลัพธ์เราจะได้
1 2 3 4
เพราะรอบสุดท้าย i มีค่าเป็น 5 ซึ่งจะทำให้ส่วนเทียบเป็นเท็จ เป็นการหยุด loop
*/
```
"Build With Me" show with Doc Williams in UI Bakery – Live
Tags: webdev, lowcode, nocode, uiweekly
Published: 2020-09-21 13:49:40

Hey all! 

On Sep 23 (Wed), 11 a.m. (EST) / 8 a.m. (PST) – join us at the “Build With Me” show on YouTube with Doc Williams.
Doc will create a feature-rich #dashboard integrated with #Airtable in UI Bakery (a low-code development platform) during a live stream.

Register here: https://brand-factory-inc.ck.page/4a92c487c2
﻿
Rewriting normal function as arrow function
Tags: javascript, webdev, beginners, codenewbie
Published: 2020-09-21 13:40:52

```
const func = function() {
    console.log('a');
    return 5;
};
func();
```

Equivalent arrow function of the above Regular function
```
const func = () => (console.log('a'), 5);
func();
```

---

**Thanks for reading 💙**  
Follow **@codedrops.tech** for daily posts.  
[Instagram](https://www.instagram.com/codedrops.tech/) ● [Twitter](https://twitter.com/codedrops_tech) ● [Facebook](https://www.facebook.com/codedrops.tech/)

Micro-Learning ● Web Development ● Javascript ● MERN stack ● Javascript  
**[codedrops.tech](https://www.codedrops.tech/)**
Building FullStack Serverless Application using AWS-SAM — Part 5/5
Tags: aws, serverless, vue
Published: 2020-09-21 13:32:34

Being a procrastinator this series is a new benchmark for me. I hereby complete what I intended to do. 

In the last 1 month, I have delivered ~2 hours worth of hands-on content where a Fullstack Serverless Application was built using the AWS's Serverless Application Model.

This is the stack,
- UI built using Vue.js
- Backend using AWS Lambda
- Persistence using AWS Dynamo DB
- Service rendering using AWS API Gateway
- Static Hosting using AWS Amplify

Backend GitHub -> https://github.com/VinodhThiagarajan1309/sam-food-truck-endpoints

Vue FrontEnd -> https://github.com/VinodhThiagarajan1309/food-truck-app

Feel free to fork and send in interesting PR if at all interested.

This is the very recent and the final part of the series -> [![](http://img.youtube.com/vi/9p-HA_sJT88/0.jpg)](http://www.youtube.com/watch?v=9p-HA_sJT88 "AWS FullStack Serverless - Part 5/5")

This is the whole series playlist -> https://www.youtube.com/playlist?list=PLm77mruelczpEolgQCKa4S9cNkCMp7qSv

Vinodh
Update: 🏆 GitHub Profile Trophy / Add dynamically generated GitHub Trophy on your readme
Tags: opensource, github, typescript, showdev
Published: 2020-09-21 13:19:33

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/172j398l8w0c5af68kze.png)

I updated the GitHub Profile Trophy.

**Repository: https://github.com/ryo-ma/github-profile-trophy**

# Added themes

I added the following themes.

https://github.com/ryo-ma/github-profile-trophy#flat

### flat

```
https://github-profile-trophy.vercel.app/?username=ryo-ma&theme=flat
```
![Alt Text](https://user-images.githubusercontent.com/6661165/92325601-039b9300-f087-11ea-983a-fce8133549ee.png)

### onedark

```
https://github-profile-trophy.vercel.app/?username=ryo-ma&theme=onedark
```
![Alt Text](https://user-images.githubusercontent.com/6661165/92327052-d99b9e00-f091-11ea-9a24-c7ec86982370.png)

### gruvbox

```
https://github-profile-trophy.vercel.app/?username=ryo-ma&theme=gruvbox
```
![Alt Text](https://user-images.githubusercontent.com/6661165/92315152-e9c56600-f01c-11ea-9536-1bfbb158cfcb.png)

### dracula

```
https://github-profile-trophy.vercel.app/?username=ryo-ma&theme=dracula
```
![Alt Text](https://user-images.githubusercontent.com/6661165/92490273-c91f2b00-f22b-11ea-9481-b5daae4d7bc3.png)

### monokai

```
https://github-profile-trophy.vercel.app/?username=ryo-ma&theme=monokai
```
![Alt Text](https://user-images.githubusercontent.com/6661165/93725426-2c289e80-fbea-11ea-96a4-f6490ccf2126.png)


# Support to the margin between trophies
You can put a margin in the width and height between trophies.
https://github.com/ryo-ma/github-profile-trophy#margin-width

```
https://github-profile-trophy.vercel.app/?username=ryo-ma&column=3&margin-w=15&margin-h=15
```
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/i2wzyiqqm0ge6n89poqc.png)


# Added several secret trophies

The acquisition condition is secret, but you can know the condition by reading this code.
https://github.com/ryo-ma/github-profile-trophy#secret-rank

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/oxmx27vingnk933vz15j.png)

---

Please try this!😁

**Repository: https://github.com/ryo-ma/github-profile-trophy**
How I can make Infobip not to deliver the message if I develop my app locally?
Tags: help, infobip, apisandbox
Published: 2020-09-21 13:11:40

My application Uses Infobip's [omni API](https://www.infobip.com/docs/mobile-app-messaging/send-push-over-omni-api) and I want during local development to use a sandbox API in order to avoid sms sending into an actual number but to be able to look that sms messages are sent.

So do you know whether Infobip offers a sandbox API to play with?
My journey in the Linux kernel world!
Published: 2020-09-21 13:04:25

I have recently graduated from my Linux Kernel Mentorship program and it has been the most life-changing experience. I started my journey in the Linux kernel development with little knowledge. I got in touch with my mentor and started exploring the dropwatch utility. Gradually I got familiar with it and started working on the first steps of the project. 

Dropwatch is a utility that monitors dropped frames by having userspace record them over the dropwatch protocol over a file. The goal of the project was to augment this kernel feature to create a dummy network interface for the purpose of cloning and queuing packets which otherwise would have been dropped by the kernel.

During my mentorship, I have learned in-depth about serialization, concurrency, and recursion.

- Serialization

This has been the most important lesson during the mentorship. I created a pair of spinlocks with the purpose of protecting the dummy network interface while the user was checking its value, acting on it, or setting a new value. In the case of concurrency and recursion, that would cause deadlocks. One thing I noticed, was to make sure spinlocks were being correctly used to protect the shared data structures everywhere it is used. 

These were my main challenges during the mentorship:

- Concurrency

There were cases where the dummy network interface was being accessed by another process or thread of execution and the users want only one process to access it at a time. One example is that the user would want to disable dummy module (rmmod). 

- Recursion

A network packet gets dropped somewhere in the network stack and it calls trace_drop_common() to record tit. With the augmented code, netif_receive_skb() is called, which causes the skb to get dropped, causing trace_drop_common() to get called again. 



Making progress every week is what keeps me motivated. The kernel community was helpful and responsive to my patches. Their reviews have offered me a different perspective and helped find new solutions to the problems I faced. I am planning to continue learning and contributing to the Linux kernel and be active in the community.

I want to thank everyone who is supporting and guiding me on this journey!
100DaysOfCode | Day 41
Tags: challenge, beginners, 100daysofcode, python
Published: 2020-09-21 12:50:25

▄█ █▀█ █▀█ █▀▄ ▄▀█ █▄█ █▀ █▀█ █▀▀ █▀▀ █▀█ █▀▄ █▀▀
░█ █▄█ █▄█ █▄▀ █▀█ ░█░ ▄█ █▄█ █▀░ █▄▄ █▄█ █▄▀ ██▄


Hey everyone, I', really so excited to share my experience with you every-single-day :)

These days my web application project is getting more complicated cause I need to face more challenges with __Databases__ and learn how to deal with them.
That's what I love about coding and programming cause I have a lot of challenges every-day and I have to force myself to face and solve them and again!

Sometimes I think that's not in my case, I'm not making any progress but when I see my background to compare myself with last month I know that I made it!

No need to say that I gave up and I had some rest in my process, But those are part of every journey!

You can not make yourself stronger without having problems, without failure, without having some rest and coming back again.

I believe these kinds of things are making our life more beautiful, without them we don't have enough passion to solve them.


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/hrmm1x9dqd6ke663376g.jpg)<figcaption>__Keep it up__</figcaption>

#Keep Moving Forward ツ

##Enjoy Your Journey 👊

##Code with 💛

__🅑🅐🅝🅙🅘__
Why you don't need to remap the escape key in Vim !
Tags: vim, config
Published: 2020-09-21 12:45:48

---
title: Why you don't need to remap the escape key in Vim !
published: true
description: Why you can live without remapping the escape key and at the same not move your hand !
tags: vim, config
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/lvsquz9wqnv5fqi26cam.png
---

Vim by its nature is very heavy on the `<Esc>` key usage. It's very important in the modal editing philosophy of the editor. But when we are talking about Vim, we are talking about minimal hand movement in the first place, since it is the reason behind all of its design choices. For this reason many have found the usage of the `<Esc>` very unintuitive to use, and prefer to map it to a more easier to access key combination. Many tutorials over the internet suggest changing it to a combination close to the home row like `jk`, a combo I did not personally find useful. 

However the designer of Vim did not forget about the user that might find __exhausting__ to use `<Esc>`. When diving in the documentation of Vim, we can notice in the intro page by typing:

```
:help escape
```

We can read on this page a more clever key combination that is already built in the default Vim configuration.

```
<Esc>	escape	CTRL-[	27	escape	<Esc>
```

We can see that `<Esc>` is also mapped to `<C-[>`. And this is very interesting since Vim by default gives us a more __easier__ to use key combination for the escape key out of the box. 

It can take some time to get used to using this key combination, but it will quickly become your favorite since, you can start from it to make other more interesting key combinations; like an escape key of the built-in terminal.

What do you think about this key combination, or do you already use a more interesting one in your configuration.
Programacão assíncrona no C#
Tags: async, csharp
Published: 2020-09-21 12:44:51


A programação assíncrona é importante nos nossos sistemas, pois caso fosse necessário aguardar cada processo, a experiência do usuário seria afetada com o bloqueio de todos os processos. 

A aplicação não responderia e o usuário concluiria que houve uma falha ao invés de estar apenas aguardando o fim do processo. 

Quando são utilizados métodos assíncronos a aplicação continua a responder.

Essa alternativa é importante para funções que demandam tempo de resposta como uma consulta a uma API ou uma gravação de documentos. 

Para utilizar facilmente o recurso de programacão assíncrona as características a seguir resumem bem o que um método assíncrono necessita:

- A assinatura do método inclui um modificador <i> async </i>

- Por convenção o nome de um método assíncrono termina com o sufixo Async

- O tipo do retorno é um dos seguintes:

```
      1. Task<TResult>
      2. Task 
      3. void 
```
<b> O primeiro caso ocorre quando o método contém um retorno especificando seu tipo como por exemplo int </b>

<b>Para o caso de métodos que não contém um retorno é usado o Task. </b>

<b> O último caso é usado para event handlers </b>
- O método deve incluir ao menos um operador <i>await</i> que marca o ponto onde o método não pode continuar até que a operação assíncrona seja finalizada.

Exemplo utilizando as características mencionadas:
```
public async Task<int> GetUrlContentLengthAsync()
{
    var client = new HttpClient();

    Task<string> getStringTask =
        client.GetStringAsync("https://docs.microsoft.com/dotnet");

    DoIndependentWork();

    string contents = await getStringTask;

    return contents.Length;
}

void DoIndependentWork()
{
    Console.WriteLine("Working...");
}

```
Dev Card
Tags: webdev, showdev, html, javascript
Published: 2020-09-21 12:35:14

A minimal portifolio card for developers (DevCard) 💙  

Github:- https://github.com/RajasekharGuptha/DevCard

Don't forget to give ⭐ if you like it. 

{% codesandbox rd3mf %}
You can make it your's with simple changes.

I have used:
+ HTML5 
+ CSS3
+ Icons: Font Awesome


**Making it Yours**


# Clone this repository
$ git clone https://github.com/RajasekharGuptha/DevCard.git  
or  
just fork this repository  

(Ignore ***_readme_images_*** folder)

Make it yours with these simple changes.  

+ In index.html :

![Dev name](https://dev-to-uploads.s3.amazonaws.com/i/acwasfhkbot56p7mxs7h.png)
  1. Change Dev_name to your name (highlighted above)
  2. Add your Description
  
![Social Media](https://dev-to-uploads.s3.amazonaws.com/i/joxdcr8nm9ebyp79xeev.png)  

  1. replace my links with your's (highlighted above)
  2. Comment or un comment icons as per your wish

![Website](https://dev-to-uploads.s3.amazonaws.com/i/lfdipdeaipwh8vb9qpuk.png)

+ replace with your website or blog link or comment it out if you don't want to.

 
After making changes deploy it.  

I highly recommend Github Pages to deploy as it is so simple  
+ Add modified files to your repository and enable Github pages in repository settings..


Feel free to contribute and take **DevCard** to further level

Consider following on [twitter](https://twitter.com/rajasekhar_24)
What tech-stack do you use for your portfolio?
Tags: webdev, discuss, portfolio
Published: 2020-09-21 12:29:35

---
title: What tech-stack do you use for your portfolio?
published: true
description: 
tags: webdev, discuss, portfolio
cover_image: https://www.gatsbyjs.com/static/9a172caa0d7bafa251ede1162087bded/685e5/home-page_fast-to-build.jpg
---
Nowadays common way for building personal portfolios is to use SSGs like [Gatsby](https://www.gatsbyjs.com/) or [NextJS](https://nextjs.org/) due to speed, maintenance, security, deployment, etc.

What tech stack do you use for your personal portfolio?
Character Counter with HTML and JS
Tags: counter, javascript, html, charactercount
Published: 2020-09-21 12:20:31

[[clique aqui para português]](https://medium.com/walternascimentobarroso-pt/contador-de-caracteres-com-html-e-js-648ee612d7be)

When we are working with text it is sometimes necessary to know how many characters the text has, or how many words. recently i needed something similar and after using some online tools i thought it would be interesting to create my own character counter, and that is what we are going to do.

## CODE

First we will create the interface, we will do something simple, using only HTML.

```html
<h1>Contador de caracteres</h1>

<form name="form_main">
  <fieldset>
    <legend>Contador</legend>
    <label for="text">Texto:</label> <br>
    <textarea name="text" id="text" cols="30" rows="10" oninput="countText()">
    </textarea><br>
    <label for="characters">Caracteres: </label>
    <span id="characters"></span><br>
    <label for="words">Palavras: </label>
    <span id="words"></span><br>
    <label for="rows">Linhas: </label>
    <span id="rows"></span><br>
  </fieldset>
</form>
```

The HTML structure used oninput, an event that is triggered whenever we have a new data entry.

Now let’s create the countText function.

```javascript
function countText() {
  let text = document.form_main.text.value;
  document.getElementById('characters').innerText = text.length;
  document.getElementById('words').innerText = text.length == 0 ? 0 : text.split(/\s+/).length;
  document.getElementById('rows').innerText = text.length == 0 ? 0 : text.split(/\n/).length;
}
```

There, it’s that simple.

## Demo

See the complete project working below.

{% codepen https://codepen.io/WalterNascimento/pen/KKzgOja %}

## Youtube

If you prefer to watch, I see the development on youtube (video in PT-BR).

{% youtube 31tYNh-PGnQ%}

## Thanks for reading!

If you have any questions, complaints or tips, you can leave them here in the comments. I will be happy to answer!

😊😊 See you! 😊😊
Daily Developer Jokes - Monday, Sep 21, 2020
Tags: jokes, dailydeveloperjokes
Published: 2020-09-21 12:00:12

---
title: "Daily Developer Jokes - Monday, Sep 21, 2020"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
cover_image: "https://private.xtrp.io/projects/DailyDeveloperJokes/thumbnail_generator/?date=Monday%2C%20Sep%2021%2C%202020"
published: true
tags: #jokes, #dailydeveloperjokes
---

Generated by Daily Developer Jokes, a project by [Fred Adams](https://xtrp.io/) ([@xtrp](https://dev.to/xtrp) on DEV)

___Read about Daily Developer Jokes on [this blog post](https://xtrp.io/blog/2020/01/12/daily-jokes-bot-release/), and check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/).___
### Today's Joke is...
![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258be05ecc.png)

---
*Have a joke idea for a future post? Email ___[xtrp@xtrp.io](mailto:xtrp@xtrp.io)___ with your suggestions!*

*This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit.*

<!-- 
Joke text:
___Q:___ What did the computer do at lunchtime?

___A:___ Had a byte!
 -->
Important points for Java interface
Tags: java, interface, corejava, oop
Published: 2020-09-21 11:49:37



interface I1
{
    public void show(); 
    //interface tells the class what to do
}
class Test implements I1
//for interface use implements keyword
{
   public void show()
   //It is necessary to create body of abstract method in child class
   {
       System.out.println("1");
   }
    

public static void main(String[] args)
{
   //We cannot create an object of interface so we have created the object of test class here
    Test t=new Test();
    t.show();
    
}
}