teleren/devto huggingface dataset:
Lint Your Database Schema With GitHub Actions Workflows
Tags: database, github
Published: 2020-11-05 20:58:29

Your project is probably moving to a DevOps model, and you are starting to check in infrastructure as code into your source code control system. This probably includes your database schema creation and migration scripts. As your development team makes changes to the database schema, wouldn't you like to flag schema design lints or non-adherence to both industry and project-specific standards and conventions?

A lot of database schema designers do not follow good design practices, simply because these are not documented well. Most programmers know about normalization, and take care to either normalize their tables, or deliberately denormalize them for performance reasons. However, what about "design smells", such as column names that are SQL reserved words, such as a column called `COUNT`? Or, foreign key and primary key columns that have different data types?

[SchemaCrawler](https://www.schemacrawler.com/) can lint your database schema. The [SchemaCrawler Action](https://github.com/marketplace/actions/schemacrawler-action-for-github-actions) integrates SchemaCrawler with GitHub Actions workflows, so you can generate a lint report for your database schema from your build pipeline.

It's easy. Take a look at the [example project](https://github.com/schemacrawler/SchemaCrawler-Action-Usage-Example), clone it, play with it. You will need to set up a directory called `.github/schemacrawler` in your project for additional Java jars and SchemaCrawler configuration. Then you can create a GitHub Action workflow and specify your SchemaCrawler command-line. You can put in secrets for your database username and password, and use those secrets with the SchemaCrawler Action. 

The database schema lint report is generated within the build pipeline, and you can find a way to copy it to a more useful place. The example project shows you how to make the diagram available as a build artifact in your GitHub repository. You may decide to use it to create a GitHub issue, post a Slack message, or to do something else with the report. If the lint report shows serious issues, you can fail your build pre-checks.

Once you set up your SchemaCrawler Action for GitHub Actions workflow, you will always have done a database schema lint based on the latest code check-in, and never have to worry about it again.

However, before you try this out, I would strongly suggest that you get familiar with the SchemaCrawler command-line. The best way to do this is to go through the [SchemaCrawler tutorials on Katacoda](https://www.katacoda.com/schemacrawler). Once you have gone through this, you will find it much easier to determine your SchemaCrawler command-line arguments.
Generate Database Diagrams With GitHub Actions Workflows
Tags: database, github
Published: 2020-11-05 20:41:50

Your project is probably moving to a DevOps model, and you are starting to check in infrastructure as code into your source code control system. This probably includes your database schema creation and migration scripts. As your development team makes changes to the database schema, they would like to see what the latest database schema diagram looks like.

[SchemaCrawler](https://www.schemacrawler.com/) can generate database schema diagrams as PNG files that you can include with your documentation. The [SchemaCrawler Action](https://github.com/marketplace/actions/schemacrawler-action-for-github-actions) integrates SchemaCrawler with GitHub Actions workflows, so you can generate a diagram from your build pipeline.

It's easy. Take a look at the [example project](https://github.com/schemacrawler/SchemaCrawler-Action-Usage-Example), clone it, play with it. You will need to set up a directory called `.github/schemacrawler` in your project for additional Java jars and SchemaCrawler configuration. Then you can create a GitHub Action workflow and specify your SchemaCrawler command-line. You can put in secrets for your database username and password, and use those secrets with the SchemaCrawler Action. 

The database diagram is generated within the build pipeline, and you can find a way to copy it to a more useful place. The example project shows you how to make the diagram available as a build artifact in your GitHub repository. You may decide to check it into your Wiki, upload it to a website, or to do something else with the diagram. 

Once you set up your SchemaCrawler Action for GitHub Actions workflow, you will always have a database schema diagram based on the latest code check-in, and never have to wonder if it up to date.

However, before you try this out, I would strongly suggest that you get familiar with the SchemaCrawler command-line. The best way to do this is to go through the [SchemaCrawler tutorials on Katacoda](https://www.katacoda.com/schemacrawler). Once you have gone through this, you will find it much easier to determine your SchemaCrawler command-line arguments.
Redefining customer experience, Ruby EC2 instances, and register for AWS re:Invent
Tags: performance, performancematters, monitoring
Published: 2020-11-05 20:39:04

Hi folks, 

Welcome to Performance Matters. This week, we're excited to bring you the [latest Tech Leaders' panel event](https://youtu.be/mLGVeNkv0LA). You won't want to miss the insights on building customer-centric software from some of the brightest minds in tech. 

We've also got the latest from CSS-Tricks, an interesting case study on which EC2 instance you should use for your Rails app, and an invite to the virtual AWS re:Invent conference.  

Enjoy! 

Your Curator 


------------------------------

### FEATURED ARTICLES

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

<strong>Tech Leaders event now on YouTube</strong>

In today’s digital world, leading companies are having to redefine what it means to deliver a flawless experience for their customers. This panel discussion holds some excellent learnings from seasoned leaders and is worth a watch. 

[Customer experiences in today's digital world](https://youtu.be/mLGVeNkv0LA)


<center>*(Please note that in New Zealand we have no social distancing rules or mask requirements in place.)*</center>



------------------------------

<strong>CSS Tricks and performance</strong>
 
The latest version of the popular newsletter has a strong focus on Real User Monitoring and performance. 

[Read the web version](https://css-tricks.com/newsletter/223-core-web-vital-tooling/)

------------------------------

<strong>The best EC2 instance type</strong>

So what type of EC2 instances should you run your Rails app on? The answer is simpler than it looks.

[Read the breakdown](https://www.fastruby.io/blog/rails/performance/ruby/best-ec2-instance-for-rails-apps.html)

------------------------------

### BUG OF THE WEEK

<strong>The software bugs that are years old, but haven't been patched</strong>

Almost two-thirds of vulnerabilities on enterprise networks involve flaws that are over two years old that have not been patched, despite fixes being available. They’re now at risk from bugs that could have been fixed years ago. 

[Read the article](https://www.zdnet.com/article/these-software-bugs-are-years-old-but-businesses-still-arent-patching-them/)

------------------------------

### COMMUNITY

<strong>AWS re:Invent registration is open — and it's free</strong>

Unlimited access to hundreds of sessions, this year's AWS event is not to be missed. 

[Check out the speakers and register here](https://reinvent.awsevents.com/)

------------------------------

If you think Performance Matters is pretty great, why not [sign up](https://performancematters.dev/) to receive it in your inbox every week? 🙌

------------------------------


![Made with Love by Raygun](https://dev-to-uploads.s3.amazonaws.com/i/gylnptlhm42m5jlmim8p.png)

------------------------------
What a strange journey it's been...
Tags: hacktoberfest
Published: 2020-11-05 20:37:28

### <b>Hacktoberfest 2020</b>

Due to Covid-19 and having Type 1 Diabetes, I was shielding from March until July.  To keep myself busy I completed the `Zero to Mastery` Web Development course on udemy. I heard about Hacktoberfest and wanted to put my new found skills to the test. It was a lot of fun, however, it wasn't without it's frustrations either. 

### <b>Background</b>

I am brand new to open source and found the whole GitHub experience a little daunting at first, however, the more I practiced the easier it became.

Before Hacktoberfest and the udemy course, I had dabbled a little in HTML and CSS. I think combining `Web Design` with `Development` is where my passion truly lies.

### <b>Progress</b>

I am overjoyed to report that I completed the Hacktoberfest 2020 challenge and successfully submitted four pull requests on GitHub.

I only have three words for anyone who is thinking of undertaking the challenge next year: <b>DON'T. GIVE. UP.</b> 

### <b>Contributions</b>

You can browse my GitHub profile at [https://github.com/rmchardie/] 


### <b>Reflections</b>

I learned a lot undertaking this challenge and I'm up for tackling next year's challenge as well. I think I'll try and push myself a little harder next time.
This isn't Bowling, This is Sinatra, There are Rules.
Published: 2020-11-05 19:28:16

I've always appreciated the past time of an afternoon or evening at the local bowling alley. Locals of all ages gather to hang out at the bowling alley to throw on a pair of ugly shoes and spend a few hours with their friends. 

I have a few friends who became rather serious about bowling however, and spend a lot of their time traveling around to different tournaments to bowl against other teams and meet people from all over the place. So I thought it would be cool to create a place where teams can check out local tournaments in their area, and also post about different tournaments in their area. And so I created 'Let's Go Bowling!'

I started off this project a touch overconfident about what it was going to take to make this project. I told myself I had it down and that, because I had done a lot of the labs well that I didn't have much to worry about.

And then, well, I got lost in the details. When I initially wrote my code, I could log in, I could create and view tournaments, and beyond that, every time I fixed one bug, something broke somewhere else. Routes were out of order, my login was being finicky, I would forget an equal sign that would change everything. A time was had by all. 

I learned to get scrappy with how I coded, I learned about how every little detail counts and how it plays into the bigger picture, I learned a lot about why what worked in the labs worked in my code. I learned how to breathe and walk away when I've been staring at code for so long.
What do you want to know about combining audio and code? Let us know for the chance to be featured on DevDiscuss!
Tags: discuss, podcast
Published: 2020-11-05 19:54:06

---
title: What do you want to know about combining audio and code? Let us know for the chance to be featured on DevDiscuss!
published: true
tags: discuss, podcast
---

### **A new season of the DevDiscuss podcast is coming up soon!**

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!

So, we'd love to hear your answers to the following question...

### ** What are some burning questions you have when it comes to combining audio and code?**
  
For your chance to appear 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 November 11th at 5 PM PT (8 PM ET Nov 11th // 12 AM UTC on November 12th)_

---

Can't wait to hear from you! ✌️
Printing Git Tree
Tags: git
Published: 2020-11-05 19:43:36

From time to time I need to print my git project's tree, so I can share it in the docs, or just go through it quickly to make sure it makes sense.

The required applications for the task
- [git](https://git-scm.com/) - we'll use it to find out which files and directories are committed in the current branch
- [tree](https://www.cyberciti.biz/faq/linux-show-directory-structure-command-line/) - a recursive directory listing program that produces a depth indented listing of files. We'll use it to print beautifully the output of git


### Getting Committed Files And Directories

The following command will recursively go through all the files and directories that were committed in the current git HEAD and print their names only.

```bash
$ git ls-tree HEAD -r --name-only

.dockerignore
.github/workflows/docker-latest.yml
... # omitted for brevity
tests/test_img_to_ascii.py
version
```

The output above is the exact output we need for `tree`.

### Printing Git Tree

Now, it's time to pipe the `git ls-tree` output to `tree`. We'll be using the `--fromfile` flag

> **--fromfile** Reads a directory listing from a file rather than the file-system.  Paths provided on the command  line  are files to read from rather than directories to search.  The dot (.) directory indicates that tree should **read paths from standard input.**

```bash
$ git ls-tree -r --name-only HEAD | tree --fromfile

.
|-- .dockerignore
|-- .github
|   `-- workflows
|       |-- docker-latest.yml
|       `-- release.yml
|-- .gitignore
|-- Dockerfile
|-- MANIFEST.in
|-- README.md
|-- main.py
|-- pyproject.toml
|-- requirements.txt
|-- scripts
|   |-- gh_create_release.sh
|   `-- version_validation.sh
|-- setup.cfg
|-- setup.py
|-- src
|   `-- appy
|       |-- __init__.py
|       |-- __main__.py
|       |-- assets
|       |   |-- __init__.py
|       |   `-- meirg-logo.jpg
|       |-- core
|       |   |-- __init__.py
|       |   `-- app.py
|       `-- utils
|           |-- __init__.py
|           |-- img_ascii.py
|           `-- message.py
|-- tests
|   |-- test_api.py
|   |-- test_greet.py
|   `-- test_img_to_ascii.py
`-- version

9 directories, 27 files
```

How beautiful is that? :)

### Creating An Alias

I don't really remember this command, I've just set it as an alias in `$HOME/bash_aliases`, here are the lines that I've added

```bash
treegit_func(){ git ls-tree -r --name-only HEAD | tree --fromfile; }
alias treegit=treegit_func
```

Now I can simply run in the terminal `treegit` and print the committed files and directories of the current HEAD, beautifully.

```bash
$ treegit

# Same output as before
```

### Final Words

The examples in this blog post were done on this git repository - [unfor19/python-project](https://github.com/unfor19/python-project)

I hope you find it useful, feel free to start a discussion, or ask questions below.
GraphQL Editor 3.0, iOS Accessibility Features, Raspberry Pi 400, & more on the DevNews podcast!
Tags: news, podcast
Published: 2020-11-05 19:14:30

---
title: GraphQL Editor 3.0, iOS Accessibility Features, Raspberry Pi 400, & more on the DevNews podcast!
published: true
description: Here's what's on tap for S2E2 of the DevNews pod!
tags: news, podcast
series: DevNews Season 2
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/zoxvbu0494gq3sxtjp4v.png
---

### **This week on the DevNews podcast...** 

{% podcast https://dev.to/devnews/s2-e2-ios-accessibility-features-graphql-editor-3-0-raspberry-pi-400-stripe-climate-and-codesandbox %}


### **@saronyitbarek and I discussed a variety of topics including...**
- The launch of Raspberry Pi 400 (which I'm _very_ excited about)
- Stripe Climate — the payment platform's foray into the green game, which allows you to donate part of your platform revenue to carbon-removal tech.
- CodeSandbox's $12.7M Series A Funding
- The new secret back tap feature on iOS 14.

We were also joined by [Kaya Thomas](dev.to/kthomas901), Senior iOS Engineer at [Calm](https://www.calm.com/) who chatted with us about the accessibility features on iOS that many people might not know about — and that mobile developers should _definitely_ know about while thinking about building for iOS. 


_You can [follow DevNews](dev.to/devnews) to get episode notifications and listen right in your feed_ — or subscribe on your platform of choice! Plus, if you leave us a review, we'll send you a free pack of thank-you stickers. Details [here](https://airtable.com/shr8oKAIMZgdYnBxx). 

## Quick Listening Links
- [Apple Podcasts](https://podcasts.apple.com/us/podcast/s2-e1-hacktoberfest-node-v15-edge-mcbroken-tech-related/id1525581923?i=1000496512267)
- [Spotify](https://open.spotify.com/episode/0uqAAj4nz3gywKlo3TQAtE)
- [Google](https://podcasts.google.com/feed/aHR0cDovL2ZlZWRzLmNvZGVuZXdiaWUub3JnL2Rldm5ld3NfcG9kY2FzdC54bWw/episode/aHR0cHM6Ly9kZXZwb2RzLmRldi9wb2RjYXN0cy9kZXZuZXdzLzEw?sa=X&ved=0CAQQkfYCahcKEwjg9ojkjezsAhUAAAAAHQAAAAAQAw)
- [Stitcher](https://www.stitcher.com/podcast/devnews)
- [Listen Notes](https://www.listennotes.com/podcasts/devnews/s2e2-ios-accessibility-Qot-XveGqFj/)
- [TuneIn](https://tunein.com/podcasts/Technology-Podcasts/DevNews-p1352512/?topicId=158372713)
- [RSS Feed](http://feeds.codenewbie.org/devnews_podcast.xml)
- [DevNews Website](https://devpods.herokuapp.com/podcasts/devnews/episodes/30)
- [PocketCasts](https://pca.st/enzbld07)

---
_Acknowledgements_ 
- _@levisharpe for producing & mixing the show_
- Our season two sponsors, [Triplebyte](https://triplebyte.com/a/YU8fSn0/d) and [Vonage](https://nexmo.dev/devnews2)!

# 🗞️🗞️🗞️
Handle Default Values - Building SaaS #65
Tags: python, django, models
Published: 2020-11-05 19:08:06

{% youtube 6hTpxgI0ZZU %}

In this episode, I updated a model to handle the default duration of new tasks. This default needed to come from the Course model instead of the CourseTask model so we had to determine how best to set that data in various forms. I also fixed some drop down selection bugs that populated a form with the wrong data. We made sure that all the code was well tested.

I created a new `default_task_duration` field to the `Course` model. The field records the number of minutes that will be set when create a new task. We added the field and wrote some model tests to confirm the behavior.

Then we updated the `Course` creation and edit forms. To do this, I needed to add the new field to the `CourseForm` model form and update the template to include the new field. After that, I fixed the POST tests that broke because the required field was missing.

Once the `Course` form was done, I moved on to the `CourseTask` views. We had to use `get_initial` to populate the `CourseTask` form with the right data from the `Course`. The data in `get_initial` was also needed by `get_context_data` so I created a `cached_property` to store the course and save an extra SQL query.

The next issue that I fixed was a problem with the selector for the task form. The form would display the wrong grade levels when a task could be added to multiple grades. The code pulled the grades from the current school year instead of the pulling the grade levels from the schoool year associated with the course. We found the error in the code and corrected the queries that were needed. After correcting the code, I added some test code to confirm that the problem was fixed programmatically.

At the end of the stream, I answered some questions from the stream about software interviews and portfolios.
The Best Python Resources for Beginners
Tags: discuss, python, beginners, tutorial
Published: 2020-11-05 19:07:14

My friend told me the other day that she would like to learn Python coding for data manipulation and visualization. Even though I know that there are tons of Python tutorials out there, I had no clue where to point her to. In particular, because I haven't ever learned Python properly, I might not be the best judge for evaluating Python tutorials 😄.

So I decided to phone-a-friend and ask wiser people for some recommendations. As my friend has no previous background in programming, the material needed to be for absolute beginners. Here's a list of the suggestions I got:

**Resources in English**
* [The Python Tutorial](https://docs.python.org/3/tutorial/)
* [FreeCodeCamp Video Course](https://www.youtube.com/watch?v=rfscVS0vtbw)
* [W3Schools tutorial](https://www.w3schools.com/python/python_intro.asp)
* [CodeAcademy course](https://www.codecademy.com/learn/learn-python-3)
* [Microsoft - Python for Beginners video course](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6)

**Resources in Finnish**
* [Helsinki Uni MOOC](https://python-s20.mooc.fi)
* [FITech Python course](https://fitech.io/fi/opinnot/ohjelmointi-pythonilla/)
* [Python course material](http://www.cs.hut.fi/~ttsirkia/Python.pdf)
* [Python course material (for high schools)](https://www.cs.helsinki.fi/group/linkki/materiaali/python-perusteet/materiaali.html)
* [Python course material (Aalto)](http://www.cse.tkk.fi/fi/opinnot/CSE-A1121/2015/yleista/index.html)

Is one of your favourite tutorials or learning resources missing? Please suggest more!

<span>Great sneak photo 🐍 by <a href="https://unsplash.com/@thenightstxlker?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Tamara Gore</a> on <a href="https://unsplash.com/s/photos/python?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span>
About me!
Tags: hacktoberfest
Published: 2020-11-05 18:57:41

<!-- ✨This template is only meant to get your ideas going, so please feel free to write your own title, structure, and words! ✨ -->


### Myself
My name is <b>Alen Paul Varghese</b>, a young developer from INDIA.
I joined <b>dev.to</b> because of the interesting and convincing articles in it helped me solve a lot of problems.
My friend told me about <b>Hacktoberfest</b> and I tried to get myself involved in the generous act.

### Background

I started learning python one year ago.
Currently learning both python and golang.
I learned so many new things during the journey.

### Progress

I currently working on 2-3 open-source telegram bots


### Reflections
Hacktoberfest was fun, I never been in a huge program like this before. It forced me to learn many new things.
and was been a huge honor to participate in it.Looking forward to participate in Hacktoberfest next year.
Guide to Ethereum 2.0
Tags: proofofstake, cryptocurrency, ethereum2, ethereum
Published: 2020-11-11 21:01:11

---
title: Guide to Ethereum 2.0
published: true
date: 2020-11-05 18:52:40 UTC
tags: proofofstake,cryptocurrency,ethereum2,ethereum
canonical_url: https://medium.com/coinmonks/guide-to-ethereum-2-0-36caea41f471
---

[![](https://cdn-images-1.medium.com/max/1920/1*mzi4U4JtZt-qt2_h09vpeQ.jpeg)](https://medium.com/coinmonks/guide-to-ethereum-2-0-36caea41f471?source=rss----721b17443fd5---4)

Let’s try to understand the fundamental concepts behind the epochal upgrade made by the world’s number two cryptocurrency.

[Continue reading on Coinmonks »](https://medium.com/coinmonks/guide-to-ethereum-2-0-36caea41f471?source=rss----721b17443fd5---4)