teleren/devto huggingface dataset:
How to run Ghost CMS + Docker + Digital Ocean
Tags: tutorial, webdev, ghost, docker
Published: 2020-04-03 18:02:26

---
title: How to run Ghost CMS + Docker + Digital Ocean
cover_image: https://repository-images.githubusercontent.com/9852918/c07a6680-edc8-11e9-901d-190d16e4d46c
published: true
description: Install Ghost CMS the #1 open-source headless NodeJS in your Digital Ocean server or local environment using Docker and Docker Compose easier, including SSL and a good performance. 
tags: tutorial, webdev, ghost, docker
canonical_url: https://blog.rafaelcg.com/how-to-run-ghost-cms-docker-digital-ocean
---

As a developer probably you heard before about [Ghost](https://ghost.org/) the #1 open-source headless Node.js CMS, I was planning to install it in [Digital Ocean using a simple $5 Droplet](https://bit.ly/342AroI) using Docker instead of their 1-click to install.

I did researches and I didn't find some developer-friendly method to get it started. So why not create one?!
If you want a quick start you can access my [Ghost CMS + Docker Compose repository](https://github.com/clean-docker/ghost-cms) to check it out!

# Motivation

What I most like, is the [Ghost's value proposition](https://ghost.org/about/) and what they want to achieve, the simplicity and well-designed panel and integrations motivated me to start too.
I wish more developers know the benefits to use it and to have the chance to test and use it in personal and professional projects as I did!

# Advantages

I decided to create something that makes it easier to start to use in production and in your local environment. So I created a bash script to have these advantages:

☝️ 1 command to install

👨‍💻 Ready to production and local development

⚡ Performance Optimized

🔒 SSL auto-renewed

## Stack

- Ghost CMS (Last version)
- MySQL 5.7
- NGINX
- Docker

## Bash commands

| Commands  | Description  |
|---|---|
| `./dc start`  | Start your containers  |
| `./dc stop`  | Stop all containers  |
| `./dc update`  | Get Ghost updates and restart containers |

# Environments

### Production

In production, you can run one command to install, specifying your domain as the last parameter.

```bash
curl -s https://raw.githubusercontent.com/clean-docker/ghost-cms/master/dc | bash -s setup mydomain.com
```

### Development

To prepare your local environment you just need to have Docker and Docker Compose installed and run:

```bash
git clone https://github.com/clean-docker/ghost-cms.git ghost
cd ghost/dev
docker-compose up -d
```

# Creating the script

I started assuming that you just created your environment and is running the script that I created to install, this below is the step-by-step description:

## Automatically

1. Change the domain in the NGINX and Docker file.
2. Update packages
3. Install SSL
4. Install Docker
5. Install Docker Compose
6. Prepare the Ghost folders
7. Configure the cron
8. Start the Docker containers
9. Show the URL to access

# 🙂 Thank you!

I hope you liked and enjoyed this post, I created it to the developer community to be motivated to test it as I did, if you have feedbacks please report or provide pull-requests, and don't' forget to give a star.
Multiple Image Upload | Upload Multiple Image in Laravel 7
Tags: laravel, image, upload, multiple
Published: 2020-04-03 17:52:03

Hello Artisan

In this tutorial i will show you laravel 7 multiple image upload example. I will show you multiple image upload with validation and after validation we will save it into database.

https://www.codechief.org/article/multiple-image-upload-upload-multiple-image-in-laravel-7
Friday Night Deploys: #16 The Self-Isolation Showdown Extravaganza (Part 1)
Tags: podcast, webdev, jokes
Published: 2020-04-03 17:35:36

## Intro
COVID-19 has forced a lot of changes to go fully remote, and so has our podcast! We're still moving forward with our weekly schedule. While this goes remote for the time being we apologize for any drops in audio quality and any delays in the conversation flow, we hope this gives us the chance to get better at podcasting remotely!

Last time the DevPlebs talk about: Making bad decisions in your early 20's! Getting shitty homemade tattoos! Wearing weightlifting gloves to do athletic things! Remote podcasting! Phil becoming a cam girl! The reason why our podcast is art! Phil's trust for Keith! Why we aren't giving tips for working remotely! Phil's unorthodox working conditions! Weird snacks! Having a disproportionate amount of waffles in the house! The Pomodoro technique! Dreaming code! Working at home with your partner! The tall stairs in Keith's house! More talk about weightlifting gloves? Keith's pillow-y hands and buttery skin! How this entire episode was just a 30-minute advertisement for Zoom! Keith's wife's intestinal issues! Going partially vegan! How our numbers compare to the Ladybug podcast! The Keswick High School Ultimate Frisbee team! An update on our self-isolation!

## Listen to The Full Episode!
{% spotify spotify:episode:6qCuPmMXeubH0RpS0sUPlg%}

_or [listen directly on spotify](https://open.spotify.com/episode/6qCuPmMXeubH0RpS0sUPlg)_

**We're also on...**
**Apple Podcasts:** https://podcasts.apple.com/us/podcast/16-the-self-isolation-showdown-extravaganza-part-1/id1485252900?i=1000469018307

**Google Music Podcasts:** https://play.google.com/music/m/Da7vdtejkyusnmrnlap7yv2fbzu?t=16_The_Self-Isolation_Showdown_Extravaganza_Part_1-Friday_Night_Deploys

**Our Website:** https://www.devplebs.tech/friday-night-deploys/16-the-self-isolation-showdown-extravaganza-part-1/

## Get In Touch With Us!
How have you been adjusting in isolation? If you would like to share for us to read out in the next episode you can reach us at the following...

**Twitter:** [@DevPlebs](https://twitter.com/DevPlebs).
**Email:** deadbeats@devplebs.tech

## Follow Our Twitters... If You Want!
[DevPlebs](https://twitter.com/DevPlebs).
[Keith Brewster](https://twitter.com/brewsterbhg).
[Phil Tietjen](https://twitter.com/phizzard).

You can also ask questions or give us some feedback about the show!
Chrome 80 brings support for let and class redeclarations in the Console
Tags: chrome, webdev, javascript, devtools
Published: 2020-04-03 17:33:20

Google Chrome browser built upon the open-source Chromium browser project manage and maintained by Google. 

With the release of **Chrome 80** version, now developers can redeclare with **let** and **class** in the console.

The inability to redeclare using let and class was a common annoyance amongst web developers who experiment new JavaScript code in the Console.

{% youtube idx4EO1TiZ8 %}

The **Console** now supports redeclarations of **let** and **class** statements. 

#### Note: Redeclaring a let or class statement in a script outside of the Console or within a single Console input will still cause a SyntaxError.

The versions prior to Chrome 80, would throw an error when redeclaring a local variable with let in the Console

![Screenshot for an example of the let redeclaration failing in the Console of Chrome 79](https://dev-to-uploads.s3.amazonaws.com/i/76nwl5uh1djgktr108sv.png)

Example of the let redeclaration in the Console of Chrome 80:

![Screenshot for an example of allowing the let redeclaration in the Console of Chrome 80](https://dev-to-uploads.s3.amazonaws.com/i/tiyqgaugt23xvz35v4tz.png)

Image Credit:
[Google Chrome Updates](https://developers.google.com/web/updates/2019/12/devtools)
Weekly metrics for your GitHub repos with VANITY
Tags: showdev, opensource, github
Published: 2020-04-03 17:31:04

---
published: true
title: Weekly metrics for your GitHub repos with VANITY
description: We're launching a new open-source project that emails you weekly GitHub metrics.
author: Nikolaos Kamarinakis
authorLink: https://nikolaskama.me/
canonical_url: https://meeshkan.com/blog/vanity-dev-open-source-github-metrics/
tags:
  - showdev
  - opensource
  - github
---

![VANITY logo](https://nikolaskama.me/content/images/2020/04/vanity_logo.png)

<br />


After searching for a way to gather weekly analytics on GitHub repositories and coming empty handed, we decided to build our own solution. So, we developed [VANITY](https://vanity.dev).

VANITY sends you a weekly email with a list of your repositories. Each repo is captioned with its latest metrics and a comparison to the previous week's performance.

<img src="https://nikolaskama.me/content/images/2020/04/vanity_sample_email.png" alt="Example of VANITY's weekly emails" title="Example of VANITY's weekly emails" width="300px">

## How it works

The entire project is open source and you can check out the [source code on VANITY's GitHub repo](https://github.com/meeshkan/vanity).

It is powered by the following dependencies and technologies (in no particular order):

- Queue management by [Bull](https://optimalbits.github.io/bull/)
- Job persistence with [Heroku Redis](https://www.heroku.com/redis)
- Emails sent with [SendGrid](https://sendgrid.com/)
- Email templates using [EJS](https://ejs.co/)
- Database models using [Sequelize ORM](https://sequelize.org/)
- Database tables stored in [Heroku Postgres](https://www.heroku.com/postgres)
- Hosting on [ZEIT Now](https://zeit.co/)
- Web application built with [Next.js](https://nextjs.org/)
- CSS design with [Tachyons](https://tachyons.io/)
- Error management with [Sentry](https://sentry.io/)

## Roadmap

There's a lot more that we want to add to VANITY. Here are a few of our ideas:

- Support for organization repositories 
- More metrics (such as number of *opened/closed issues*, *opened/closed pull requests*, and *commits*)
- Daily emails

You can keep track of the things we're working on at the [VANITY GitHub repository](https://github.com/meeshkan/vanity/issues).

## What do you think?

We'd love to hear what you think about VANITY, ideas for improvement, and features you want to see! Please, don't hesitate to [open an issue](https://github.com/meeshkan/vanity/issues) or [reach out via email](mailto:nikolaos@meeshkan.com).
What was your win this week?
Tags: discuss, weeklyretro
Published: 2020-04-03 17:27:12

---
title: What was your win this week?
published: true
description: Got to all your meetings on time? Started a new project? Fixed a tricky bug?
tags: discuss, weeklyretro
cover_image: https://cl.ly/188e843c2985/download/Image%202019-02-15%20at%202.36.37%20PM.png
---

👋👋👋👋

Looking back on your week -- what was something you're proud of?

All wins count -- big or small 🎉

Examples of 'wins' include:

- Getting a promotion!
- Starting a new project
- Fixing a tricky bug
- Cleaning your house...or whatever else that may spark joy 😄

![simpsons-puzzle](https://media.giphy.com/media/l2Je0nKwMm80HlsLC/giphy.gif)

Happy Friday!
Hack must go on!
Published: 2020-04-03 17:16:19

It has not been so long before we got faced with COVID-19, but it has already begun to affect many aspects of our lives. We started to feel its social and political effects deeply in our daily life. Our routine has changed. Measures have taken by governments, the majority of people trying to stay home. Although we are not used to living in these moments of crisis, -which we only see in the movies- somehow, we need to adapt ourselves daily and professionally. Many people have moved to the cloud, but **there were already some people there: web developers**.

## **HackYourFuture**

In HackYourFuture Belgium, a coding school for refugees, we already adapted ourselves to this strangeness. An essential part of our coding program is online self study and exercises.

_“We have a lot of experienced coaches around, so it was not that difficult at all to switch our Sunday offline classes to virtual ones :”_, says Yavuz (HYF student).

More than 50 students are currently attending online classes thanks to **volunteer coaches**. They answer student’s questions and guide them in their homework. Students express that they are missing our **warm offline-class atmosphere** in Brussels, their friends and especially _’the delicious foodsharing’_. According to one of our students, 'being a community also means that we share our bad times and struggles'.

_“Because we feel the need of keeping in close contact with our students, we do e-coffee meetings instead of homework reviews on Sunday mornings”_, tells Lien, community manager for HYF.

## **Mentorship with HR students**

HackYourFuture is **not just an ordinary coding school**. It prepares students for their new lives after their graduation as well. It can be very difficult to find your path in a completely new sector, especially for refugees and disadvantaged migrants. **Getting a new job** means:  many interviews, creating your network, having a proper resume and a cool LinkedIn profile. So, it is completely another proficiency.
Thanks to **a new partnership** between Artevelde University for Applied Sciences and HYF Belgium , a new mentorship program has launched this week. Artevelde’s HRM students are coaching our HYF students to give their Belgian career start a boost.

_“It’s amazing what student-mentors are capable of if you make them responsible for a specific coachee and when they feel that their support is appreciated”_, says Jo Lefevere (program manager for Bachelor HRM/Social Work).


The aim of the mentorship is to **support our students** to search for a job as a junior web developer on the one hand, and **bringing practice closer** to the HRM students. As Margaux, one of them, summarizes: _“This project is an unforgettable experience for me. The enthusiasm, perseverance and drive of the HYF students is so contagious that we achieve great goals.”_

### Get in contact!
Curious about [HackYourFuture Belgium](https://www.facebook.com/HackYFutureBE/)? Keep updated on [our Facebook page!] (https://www.facebook.com/HackYFutureBE/)
(MEGA) Diseño y Programación Orientada a Objetos en C+
Tags: curso, c, progracion
Published: 2020-04-03 17:15:56

La programación orientada a objetos (OOP) es una estructura de programación en la que los programas se organizan en torno a objetos en oposición a la acción y la lógica. Esta es esencialmente una filosofía de diseño que utiliza un conjunto diferente de lenguajes de programación como C#. Entender los conceptos de OOP puede ayudar a tomar decisiones sobre cómo debe diseñar una aplicación y qué lenguaje usar.

Todo en OOP se coloca junto como "objetos" autosostenibles. Un objeto es una combinación de variables, funciones y datos que realiza un conjunto de actividades relacionadas. Cuando el objeto realiza esas actividades, define el comportamiento del objeto. Además, un objeto es una instancia de una clase. Además, C# ofrece soporte completo para OOP incluyendo herencia, encapsulación, abstracción y polimorfismo.

¿Que aprenderás en este curso?
En este curso sobre desarrollo de software con C# orientado a objetos aprenderás a construir software utilizando buenas prácticas de programación orientada a objetos, identificar puntos de mejora en los distintos módulos de una aplicación, realizar diagramas UML de las clases del sistema y aplicar los cinco principios SOLID de diseño orientado a objetos.

ENCUENTRALO AQUI Y DESCARGALO GRATIS: https://codepici-blog.site/udemy-diseno-y-programacion-orientada-a-objetos-en-c/
Digitech is a plain Austin Web design and exhibiting office
Tags: design
Published: 2020-04-03 17:08:50

We are anxious to help brands with making human-centered unrivaled experiences that draw in, connect with and substitute the fitting group
Featured:-
With very nearly a period of comprehension to win prevalent arrangements, see whether DigiTech Austin web design agencies makes the site creation experience novel.
https://www.digitechwebdesignaustin.com/
Our Austin, Texas-based website composition has proper complex results.
Our respect winning Austin, Texas-based absolutely site structure and headway association utilizes right around a period of data to make inventive electronic experiences that pull in, attract and trade your optimal group. We use the shape prerequisites of the customer experience to discuss which are worked from over the floor.
Confirmed as a top site synthesis 

In addition, the computerized publicizing and showcasing association in Texas 

At Digitech, our basic role is to show improvement over we did beforehand. From the state of the customer experience to the advancement of the net look for gadget; our Austin-based foundation is in a situation to play out their joining. In the most extreme late decade, we had been respected to canvases with the part's biggest makers. our innovative and perceptive of making ultra-amazingly premium things for our buyer has paid for a couple of praises, that are seen by method for industry, even just like a huge site design organization in Texas basically as a top b2b improvement organization in the America.





Unrivaled Austin evaluated apex 1 

Web website structure and site design improvement traces in north the us 

Work environment spotter assesses that there are more than a hundred and twenty, 000 prevalent work environments inside the USA. all alone. This infers virtual has executed to get the top 1% of the offices required inside the North America grants provided through up city to in extra of 118,800 other site engineering organizations. We are a particularly structured store Austin website architecture association that makes the top level arrangement until the end of time. Our association is focused round helping our accomplice brands achieve their goals, win awards, and push the constraints of what's useful. at the off peril which you are set up to snap your photo to the accompanying stage, license our respect triumphing establishment take you there.
Converting UUID to ObjectID from legacy mongo database
Tags: mongodb, python
Published: 2020-04-03 17:06:22

Recently I had to work on a project previously maintained by another company and that had adopted UUID as object ids in the collections. I don't know why the previous team choose to adopt UUID but for I had to integrate this database to a node module that we develop using mongoose and we had problems with the string representation of the UUID as follow:

`client: "\u007fM6�u�K���2\u0006\u0002\u0001��"`

Due to the short period to solve the problem, my team and I decided that would be faster and easier to migrate the existing ids from the database to default's ObjectID than having to analyse how the python UUID was generated with the following script:


{% gist https://gist.github.com/doijunior/c967dad394f3513c983c9ddbfd86c6e0 %}

The case here is not to question whether to use ObjectID or UUID ( more about this in [mongodb blog](https://www.mongodb.com/blog/post/generating-globally-unique-identifiers-for-use-with-mongodb) ). Maybe I will work with node, mongodb and UUID in the future but for the moment we needed to solve this as fast as possible and the solution was to migrate the existing document ids.
Tabs v. Spaces: Let’s decide this
Tags: watercooler, discuss, style
Published: 2020-04-03 17:04:22

---
title: Tabs v. Spaces: Let’s decide this
published: true
description:  Let me know in the comments!
tags: watercooler, discuss, style
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/qlrgjeiqcgud2v8adoyd.jpg
---

Do you use tabs or spaces? Why? Let me know in the comments!
#ToggleTalk 1: My First Flag
Tags: toggletalk, featureflags
Published: 2020-04-03 16:57:56

Our first ever #ToggleTalk was held on April 1st. It coincided with my 1st anniversary at LaunchDarkly. Therefore, we found it fitting that the topic should be “my first flag.”  

**Questions we posed:**
What was the first flag you ever deployed?  What method did you use to deploy it?
What do you know now that you wish you knew before deploying your first flag? 
How have your feature flagging practices changed since your first flag? 
Did your first flag work as expected? 

My first introduction to feature flags came about eight years ago when I was a Product Manager at F5 Networks. With the waterfall methodology being used, feature releases were not common occurrences. Getting features into a release wasn’t always possible, so my team got creative. We decided to deploy the features behind a flag in a config file as early access.

## Highlight reel

The notion of “invisible behavior” came up in response to the question, **“How have your feature flagging practices changed since your first flag?”** Invisible behavior includes things like database migrations, logging levels, things not visible to end-users but still essential for making applications run smoothly. We often think of flags for user-facing features or UX components, but their use doesn’t have to be limited to that. Flags can be used for infrastructure and operational tasks. Think about what invisible areas you can use flags. 

{% twitter 1245429672470437888 %}

Some sage advice to those just starting with flags - **don’t build and deploy flags in a vacuum**. The flags you deploy may impact multiple business units. Remember to coordinate with others and get appropriate buy-in when necessary.

{% twitter 1245403886397132800 %}  

## Lessons learned

There’s a learning curve whenever you do something new. And hosting a Twitter chat is no exception. Thank you so much to those that provided feedback to help us make this stronger. We heard it was unclear whether we wanted people to respond to the questions posed. 

**Yes!** 

We absolutely want to hear from you. These questions are a jumping-off point to start a conversation. We want to know what you think. 

Going forward, we will also provide a brief description of a term or topic for those new to a topic. 

If you have tips or suggestions on how to make these better going forward, please don’t hesitate to send them along. 

Join us again next Wednesday, April 8th, for the next installment of #ToggleTalk. Until then, safe flagging. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/p5aekhoecku6pdxf88sn.png)
Dolt for Git Noobs
Tags: git, sql, dolt
Published: 2020-04-03 16:56:02

# TLDR

* Dolt is a SQL database with built-in Git versioning, branching, and distribution semantics that makes collaborating on and distributing data effortless.
* What Git does for files, Dolt does for data.
* Where Git versions files, allowing for fine-grained control, tracking, and management of files over time, Dolt versions data and database schema, allowing for fine-grained control throughout an entire Dolt repository and every branch it houses.
* Where Git supports the branching and merging of files for true user collaboration, Dolt supports branching and merging of data and databases, finally giving data producers and data consumers the tool they need to truly collaborate on data in a meaningful way.

[If this is interesting and you don't know much about Git or SQL databases, read the full blog on DoltHub](https://www.dolthub.com/blog/2020-04-03-dolt-for-git-noobs/)
100daysofcode Flutter
Tags: flutter, 100daysofcode
Published: 2020-04-03 16:46:41

day 25/100 of #100daysofcode #Flutter
Learning Flutter , courses Udemy from
@maxedapps

Today learning about provider, change notifier, mixin "with" ,more about "three dots"
https://github.com/triyono777/100-days-of-code/blob/master/log.md