teleren/devto huggingface dataset:
How to Install Docker
Tags: docker, github, php, tutorial
Published: 2022-01-24 02:30:26

###Docker Download Links
**[Mac](https://docs.docker.com/desktop/mac/install/)**
**[Windows](https://docs.docker.com/desktop/windows/install/)**
**[Linux](https://docs.docker.com/engine/install/)**

###Getting Ready to Install
I personally use a Mac so this tutorial will be mainly following my process. I assume the steps for Windows will be similar and Docker provides Linux users steps to get it running on your device!

For this tutorial I will focus on cloning a GitHub repository and creating a build of it into Docker. I will be using the HaxCms repo in the example.

**[HaxCms Repo] (https://github.com/elmsln/HAXcms)**

Prior to the installation, make sure to clone your repo onto your device.

*if you are unsure on how to clone your repo follow this tutorial provided by [Github](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)*

####Installation Steps
1. Install Docker onto your device
2. Open Docker Desktop once you complete the installation
3. Create an account (or login to an existing account)


####How to Build an Image and Run it
To begin, we will be using that repo cloned earlier.

1. Open your terminal
2. Go to the file of your GitHub repo using `cd {file path}` 
![Example of the file path I used for this example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vqpslltrpaeep9szwc8i.png)
3. Enter `docker build . -t {name of build}` Since I was installing HAXCms, I named my build "hax" so the command I entered was `docker build . -t hax`
4. In order to run the container, use `docker run -dp 80:80` or go into docker and select using port 80.

The nice thing about Docker is when you go to run your build, this window will pop up.

![A photo of the pop-out window which will appear when you run your build in docker](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/whdwvj7n4g6pfbwut1v8.png)

Enter the 80 onto the **Local Host** portion of this pop up. 

5. Open your browser of choice and enter `localhost:80`
*if you selected a different port, enter the number that reflects it in the local host*

Since I used Mac, I did notice that when I attempted to run HaxCms it would not work on Safari but did work on Chrome! So if you are a Mac user as well and having trouble with it on Safari, try to switch over to Chrome.

6. Once the site runs, you should see your build! In this case I saw this screen.

![HAXCms screen](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cr89utc18d2ndqa453y0.png)


####Stopping the container
This is pretty simple! Just open Docker Desktop once again and find the current container that is running. A small menu on the right should be there, one of the options is stop.
Indonesia Kekurangan Juru Bahasa Isyarat
Tags: magangkomatiksrd
Published: 2022-01-24 00:16:24

Bahasa isyarat adalah bahasa yang digunakan oleh penyandang disabilitas tuli untuk berkomunikasi. Juru Bahasa Isyarat (JBI) adalah orang yang menerjemahkan bahasa lisan ke dalam bahasa isyarat. Untuk menikmati suatu program atau acara dengan nyaman, maka penyandang disabilitas biasanya membutuhkan seorang penerjemah ataupun _running text_.

Menurut saya pribadi masih banyak acara yang kurang ramah bagi penyandang tuli. Saya jarang menemukan adanya penerjemah di suatu acara yang seharusnya bisa dinikmati oleh penyandang tuli salah satu contohnya yaitu kajian. Meski begitu, sekarang berita di televisi sudah diwajibkan menggunakan bahasa isyarat sehingga kawan-kawan penyandang tuli bisa terbantu.

Kenapa masih banyak acara yang kurang ramah untuk penyandang tuli? Menurut saya hal ini bisa terjadi karena acara tersebut kekurangan dana untuk merekrut seorang penerjemah. Selain itu, hal ini mungkin saja terjadi karena kurangnya SDM yang bisa menerjemahkan bahasa lisan menjadi bahasa isyarat. 

Merujuk pada artikel [liputan6.com](https://www.liputan6.com/disabilitas/read/4178978/dilema-juru-bahasa-isyarat-antara-profesi-dan-sukarela), diperkirakan setiap daerah hanya memiliki juru bahasa isyarat yang jumlahnya kurang dari sepuluh orang bahkan ada beberapa daerah yang sama sekali tidak memiliki juru bahasa isyarat

Seiring dengan berkembangnya zaman, tentunya teknologi yang ada sekarang sudah sangat berkembang. Lalu apakah kita bisa memanfaatkan teknologi ini untuk membantu para penyandang tuli?

---

Referensi
- https://solo.tribunnews.com/2016/09/25/indonesia-kekurangan-juru-bahasa-isyarat
- https://www.liputan6.com/disabilitas/read/4178978/dilema-juru-bahasa-isyarat-antara-profesi-dan-sukarela
- https://bisnis.tempo.co/read/1035259/penggunaan-bahasa-isyarat-di-acara-televisi-akan-diwajibkan
Mencari Rekan Kerja Yang Sepemikiran
Tags: magangkomatiksrd
Published: 2022-01-24 02:17:35

Sesudah lulus kuliah pasti kita bertanya-tanya apa yang selanjutnya kita lakukan? sebenarnya mudah saja kita tinggal melamar kerja karena kita sudah memiliki gelar yang kita punya. tetapi bagi orang yang ingin membuat bisnis sendiri atau merintis start-up sendiri pasti memerlukan rekan kerja yang sepemikiran. Dan darimana kita mencari orang-orang yang kita butuhkan tersebut?

Memulai membangun bisnis sendiri merupakan tugas yang tidak mudah. Selalu membutuhkan tim yang ahli pada bidangnya yang dapat menganalisis pasar secara mendalam, menentukan pesaing utama, menemukan ide, menetapkan anggaran berdasarkan kebutuhan projek dan tim yang ahli untuk memasarkannya di platform yang tepat. Membangun tim profesional bukanlah tugas yang mudah karena kita harus fokus pada permulaan dan pada saat yang sama, kita dapat menghabiskan banyak waktu untuk menyewa ataupun mencari tim profesional yang sesuai dengan keinginan kita. 

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

Memiliki rekan bisnis tentu akan sangat menguntungkan jika kerja sama yang kita lakukan dengannya berhasil. Namun bagaimana bila rekan bisnis kita ternyata orang yang salah untuk diajak bekerja sama? Bagaimana jika rekan bisnis kita tidak membawa keuntungan malah membawa kerugian? Tentu kita tidak ingin hal ini terjadi. 


Oleh karena itu aplikasi manajemen startup sangat diperlukan. Dengan menambahkan fitur-fitur yang berguna dan bermanfaat, aplikasi ini dapat membantu kita untuk membangun tim profesional, menganalisis target pasar, mengidentifikasi biaya yang dibutuhkan untuk investasi, dan menyediakan database investor yang benar-benar tertarik untuk terlibat dalam projek tersebut.

Artikel ini dibuat oleh Antonius Wisnu - Internship KOMATIK SRD 2022
How I cleaned up Jetson Nano disk space by 40%
Published: 2022-01-24 02:14:31

I was trying to install NVIDIA DeepStream 6.0 on my tiny IoT Edge device - Jetson Nano but I hardly got 291 MB space left on my device. 

```
 df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p1   15G   14G  291M  98% /
none            947M     0  947M   0% /dev
tmpfs           986M   40K  986M   1% /dev/shm
tmpfs           986M   44M  943M   5% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           986M     0  986M   0% /sys/fs/cgroup
tmpfs           198M   20K  198M   1% /run/user/1000
```

I followed the below steps to free up some disk space in NVIDIA Jetson Nano:

## Step 1. Update the existing repo

```
sudo apt update
```

## Step 2. Remove unnecessary packages

```
sudo apt autoremove -y
```

## Step 3. Clean up your repo

```
sudo apt clean
```

## Step 4. Remove Libreoffice related packages

```
sudo apt remove thunderbird libreoffice-* -y
```

## Step 5. Remove samples

sudo rm -rf /usr/local/cuda/samples \
    /usr/src/cudnn_samples_* \
    /usr/src/tensorrt/data \
    /usr/src/tensorrt/samples \
    /usr/share/visionworks* ~/VisionWorks-SFM*Samples \
    /opt/nvidia/deepstream/deepstream*/samples	

## Step 6. Remove local repos

sudo apt purge cuda-repo-l4t-*local* libvisionworks-*repo -y
sudo rm /etc/apt/sources.list.d/cuda*local* /etc/apt/sources.list.d/visionworks*repo*
sudo rm -rf /usr/src/linux-headers-*

## Step 7. Remove GUI


sudo apt-get purge gnome-shell ubuntu-wallpapers-bionic light-themes chromium-browser* libvisionworks libvisionworks-sfm-dev -y
sudo apt-get autoremove -y
sudo apt clean -y

## Step 8. Remove static libs 

sudo rm -rf /usr/local/cuda/targets/aarch64-linux/lib/*.a \
    /usr/lib/aarch64-linux-gnu/libcudnn*.a \
    /usr/lib/aarch64-linux-gnu/libnvcaffe_parser*.a \
    /usr/lib/aarch64-linux-gnu/libnvinfer*.a \
    /usr/lib/aarch64-linux-gnu/libnvonnxparser*.a \
    /usr/lib/aarch64-linux-gnu/libnvparsers*.a

Woah! I was able to install NVIDIA DeepStream 6.0 on my 16GB SD card.
Permasalah Pangan Lokal. Teratasi atau Belum ?
Tags: magangkomatiksrd
Published: 2022-01-24 02:01:47

Dengan melihat di lingkungan sekitar yang didominasi oleh mata pencaharian petani, masalah yang berkaitan dengan dunia pertanian menjadi lebih jelas. Pada era digital 4.0, penyediaan bahan pangan terkesan selalu memiliki permasalahan dari tahun ke tahun. Pemerintah pun sebenarnya sudah turun tangan untuk mengatasi hal tersebut mulai dari mengimpor bahan pangan hingga mensubsidi harga barang tertentu. Namun, terkadang terdapat oknum-oknum “nakal” yang menyengajakan untuk menimbun bahan tertentu untuk dapat memengaruhi harga pasaran. Tentunya hal tersebut sangat menyulitkan para pedagang mikro yang sangat bergantung pada bahan pangan tertentu.

Petani yang bersusah payah bekerja kadang kala mendapatkan bayaran dari hasil panennya dengan harga yang sangat murah, pemerintah yang bekerja untuk menyediakan bahan pangan selalu disalahkan karena harga pangan mahal. masyarakat lupa bahwa para pengepul hasil panen memiliki peran krusial dari perputaran penyaluran bahan pangan. Benar bahwa pengepul juga memiliki peran positif di dalamnya, tetapi tidak semua oknum tersebut memiliki niat baik dan sebagian lain hanya memikirkan masalah keuntungan pribadi.

Oleh karena itu, diperlukan sebuah sistem terintegrasi baru dengan fungsi utama menyalurkan bahan pangan secara langsung dari petani ke pedagang/pembeli. Hal tersebut tentunya dapat secara langsung menekan harga baik dari sisi petani maupun pengepul untuk tidak leluasa memanipulasi harga pasaran.
My Experience with Flatiron
Tags: beginners, webdev, career, devjournal
Published: 2022-01-24 01:34:51

I started with an idea, some money I had saved up, rumors of how terrible Ruby on Rails was to use (how terribly wrong they are), and a drive to learn. My only development background was working on an EverQuest server and creating content using Lua (another great programming language, very fast!). Flatiron accepted my application, and my web development career began!

Javascript was a language I knew about, but not to any usable degree. Functions made sense, I've known about how they work from Lua. Expressions are simple, I've done math before. Putting it together with HTML and CSS to create an actual web page? Incredible. Absolutely astounding to me.

I've never heard of React before Flatiron, I only assumed that based off the name, it had to do with reacting to something that happens. BOOM, nailed it. Now we're working with multiple pages of Javascript at once? Sign me up. And now with hooks, react is SO much simpler to use instead of having to type this.props every 2 lines. A language that is continuously worked on and modified with hooks is bound to be incredible and popular with any company.

After working on API's that I have little control over, it was getting a little frustrating not being able to manipulate the data the way I wanted it to be. That's when Ruby came along. This is where I felt I started to shine. The power of Ruby and object orientation was fascinating to learn. That, and ActiveRecord Association, working with databases and SQL, was irreplaceable knowledge. Add Rails on top of that, and we have a remarkable application on our hands.

I'd have to say the greatest part was seeing Rails in action. Building a form that takes not one, but two separate models, creates a new iteration of each one in the SAME form, and puts the two together? That alone was worth the time and effort with Flatiron. 

If you are on the fence about applying to Flatiron's Software Development course, let me tell you, my vote is yes. Do it. I'm certain it will change your perspective on coding as much as it has with me. I'm excited for my next project, and I hope you'll stay tuned for more!
Software Portability and Optimization
Tags: opensource, portability, optimization
Published: 2022-01-23 13:52:23

## Introduction 

After reading this article, you will know how to contribute to this great open source projects:

>  - Kubernetes?
>  - v8 JavaScript Engine ?

##### Kubernetes?

Licence: Apache License 2.0
GitHub: [Kubernetes](https://github.com/kubernetes/kubernetes)


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

Kubernetes, also known as K8s, is an open source system for managing containerized applications across multiple hosts. It provides basic mechanisms for deployment, maintenance, and scaling of applications.

[Getting Started On How To Contribute](https://github.com/kubernetes/community/blob/master/contributors/guide/README.md)

Nowadays, as with most projects on GitHub, it's become pretty easy to contribute to any project. Simple steps could sound like that:

1. Choose the [issue](https://github.com/kubernetes/website/issues/30281) you would like to solve. 
2. Fork and Clone the [repo](https://github.com/aserputov/KubernetesWebsite). 
3. Make a fix. 
4. Push it to the newly created branch with a similar name to the solving issue. 
5. Lastly, create a [Pull Request](https://github.com/kubernetes/website/pull/30282) and sign [CLA](https://github.com/kubernetes/community/blob/master/contributors/guide/README.md#sign-the-cla)


##### Node.js ?

Licence: BSD licenses
GitHub: [V8](https://github.com/nodejs/node)

Node.js is an open-source, cross-platform, JavaScript runtime environment.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ag3xm0v21vj1691fhhko.png)
 
[Getting Started On How To Contribute](https://github.com/nodejs/node#contributing-to-nodejs)

1. Choose the [issue](https://github.com/nodejs/node/issues) you would like to solve. 
2. Fork and Clone the [repo](https://github.com/aserputov/node). 
3. Make a fix. 
4. Push it to the newly created branch with a similar name to the solving issue. 
5. Lastly, create a [Pull Request]() 

## Conclusion

> ⚠️ Second Blog Post: [Link](url)

## Links

> 🖇 git https://github.com/aserputov
> 🖇 twitter https://twitter.com/aserputov\

_p.s This post was made for my SPO class Lab 1 assignment_
Paracetamol.js💊| #27: ¿Qué imprime este código JavaScript?
Tags: javascript, webdev, spanish, beginners
Published: 2022-01-24 00:18:34

## **¿Qué imprime este código JavaScript?**

```js
const person = {
  name: "Lydia",
  age: 21
};

for (const item in person) {
  console.log(item);
}
```

-     A: `{ name: "Lydia" }, { age: 21 }`
-     B: `"name", "age"`
-     C: `"Lydia", 21`
-     D: `["name", "Lydia"], ["age", 21]`

Respuesta en el primer comentario.

---
Brownie: How to import Ganache-cli accounts to your MetaMask wallet?
Tags: brownie, ethereum, ganache, metamask
Published: 2022-01-24 00:17:53


When we develop our smart contract in local environment with Python based Brownie framework we may be confronted with fact that even if Brownie use Ganache-cli under the hood we cannot find private keys of generated accounts. Accounts loaded with ETH are there but not a private keys. And of course we would need them if we want to import our accounts to MetaMask wallet and that is how synchronize what is going on the level of Brownie, Ganache and MetaMask. In this post I will present simple solution for this problem. 

If we type in terminal `$ brownie console` we will get something like 

![Brownie generate new account by using Ganache-cli](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bw4rn4uky54585q7ps2a.png)

It is obvious that Ganache accounts are there but there is no private keys which we need if we want to import them to our MetaMask wallet.  

And simple solution for this problem is:

Step 1: Open new terminal window and type `$ganache-cli` and you will get something like >>>

![Ganache-cli generated accounts](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bzm3dmocqr3z1ry4qaq9.png)

Step 2: Open new terminal window and type `$brownie console` 

In this moment Brownie will connect to already existing Ganache instance and he will load all created accounts (he will not start new Ganache instance). 

![Brownie load already existing Ganache-cli accounts](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jtwlnubkgl3xvgbopbz2.png)

Here we can see that account zero is same as in Ganche-cli terminal window account zero. 

Step 3: Add private keys from Ganache-cli to MetaMask import (change network to localhost:8545)


![Importing private keys from Ganache-cli to MetaMask](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r9y4br675138g7g3yj8c.png)


![Importing private keys from Ganache-cli to MetaMask](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z4x8g09wn4glfvmxkhju.png)


![Importing private keys from Ganache-cli to MetaMask](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ula6gm0hrr309rptgibg.png)


Now you can transfer from account to account in local environment and have all that synchronized across the Brownie, Ganache and MetaMask.
Streaming Docker Containers to your Browser
Tags: containers, cybersecurity, linux, docker
Published: 2022-01-24 08:49:36

---
title: Streaming Docker Containers to your Browser
published: true
date: 2022-01-24 00:04:03 UTC
tags: containers,cybersecurity,linux,docker
canonical_url: https://medium.com/geekculture/streaming-docker-containers-to-your-browser-75ae9d6e27f8
---

[![](https://cdn-images-1.medium.com/max/700/1*JOT3EiKl8wEDsCDskqdZ8g.png)](https://medium.com/geekculture/streaming-docker-containers-to-your-browser-75ae9d6e27f8?source=rss-299466747366------2)

Stream interactive Docker 🐳 containers over the web in just a few clicks with Kasm Workspaces ⚡

[Continue reading on Medium »](https://medium.com/geekculture/streaming-docker-containers-to-your-browser-75ae9d6e27f8?source=rss-299466747366------2)
What's the officially correct time to mark a user story "complete"?
Tags: userstories, agile
Published: 2022-01-27 14:12:29

---
title: What's the officially correct time to mark a user story "complete"?
published: true
date: 2022-01-24 00:00:00 UTC
tags: userstories,agile
canonical_url: https://jhall.io/archive/2022/01/24/whats-the-officially-correct-time-to-mark-a-user-story-complete/
---

Someone recently said to me:

> A user story obviously isn’t done until you have a complete functionality.

Which I pushed back against a little. I don’t think this is obvious. Or necessarily even true. There are many ways to write and use user stories. There’s no rule that every user story results in a complete, user-visible feature change.

As an extreme example, imagine you’re building a new 6-month-long feature (for the sake of argument, let’s pretend this isn’t insane, and against everything we Agile practitioners believe). At the end of our 6-month project, the feature is put into production… behind a feature flag.

Would we consider that story “done”? I don’t actually know. Since there aren’t rules. And that’s the point…

User stories exist to serve you (and ultimately the customer), not the other way around!

If you find that user stories assist you and your team in responding to changing requirements, and serving customers, then use them, and use them in a way that helps you achieve these goals. Don’t worry. The User Story Police won’t come by and tell you that you’re doing it wrong!

* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
How to get the object type from an array of objects in TypeScript?
Tags: typescript
Published: 2022-01-24 00:00:00

---
  title: How to get the object type from an array of objects in TypeScript?
  published: true
  tags: TypeScript
  date: Mon Jan 24 2022 05:30:00 GMT+0530 (India Standard Time)
  canonical_url: https://melvingeorge.me/blog/get-object-type-from-array-of-objects-typescript
  cover_image: https://melvingeorge.me/_next/static/images/main-81ae1d727db7a76fca6cca198d663699.jpg
  ---
  [Originally posted here!](https://melvingeorge.me/blog/get-object-type-from-array-of-objects-typescript)
  
To get the object type from an array of objects first, we can use the `typeof` type operator followed by the array variable name or array literal followed by writing a square brackets symbol (`[]`) and inside the square brackets, we can write the type `number` to get the type of array's elements.

### TL;DR

```ts
// an array of objects
const arrOfObjs = [
  {
    name: "Lily Roy",
    isAdmin: true,
    age: 29,
  },
  {
    name: "John Doe",
    isAdmin: false,
    age: 23,
  },
  {
    name: "Roy Daniels",
    isAdmin: true,
    age: 25,
  },
];

// get the type of the object inside
// the array `arrOfObjs`
type ArrObj = typeof arrOfObjs[number];

/*
👆 If you hover over the `ArrObj` type you will see this,

type ArrObj = {
    name: string;
    isAdmin: boolean;
    age: number;
}
*/
```

For example, let's say we have an array of objects like this,

```ts
// an array of objects
const arrOfObjs = [
  {
    name: "Lily Roy",
    isAdmin: true,
    age: 29,
  },
  {
    name: "John Doe",
    isAdmin: false,
    age: 23,
  },
  {
    name: "Roy Daniels",
    isAdmin: true,
    age: 25,
  },
];
```

Now to get the type of the object in the above array of objects first, we can use the `typeof` type operator followed by the array variable name in our case `arrOfObjs` followed by writing a square brackets symbol (`[]`) and inside the square brackets, we can write the type `number` to get the type of array's object elements.

It can be done like this,

```ts
// an array of objects
const arrOfObjs = [
  {
    name: "Lily Roy",
    isAdmin: true,
    age: 29,
  },
  {
    name: "John Doe",
    isAdmin: false,
    age: 23,
  },
  {
    name: "Roy Daniels",
    isAdmin: true,
    age: 25,
  },
];

// get the type of the object inside
// the array `arrOfObjs`
type ArrObj = typeof arrOfObjs[number];

/*
👆 If you hover over the `ArrObj` type you will see this,

type ArrObj = {
    name: string;
    isAdmin: boolean;
    age: number;
}
*/
```

Now if you hover over the `ArrObj` type you can see that this is now a type that consists of properties like `name`, `isAdmin`, and `age` having the types of `string`, `boolean`, and `number` respectively which is exactly what we want to happen.

We have successfully got the object type from an array of objects in TypeScript. Yay 🥳!

See the above code live in [codesandbox](https://codesandbox.io/s/get-object-type-from-array-of-objects-typescript-g62i49?file=/src/index.ts).

That's all 😃!

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

---